You've already forked linux-packaging-mono
Imported Upstream version 5.18.0.246
Former-commit-id: 0c7ce5b1a7851e13f22acfd379b7f9fb304e4833
This commit is contained in:
parent
a7724cd563
commit
279aa8f685
49
external/llvm/unittests/Support/DynamicLibrary/PipSqueak.cxx
vendored
Normal file
49
external/llvm/unittests/Support/DynamicLibrary/PipSqueak.cxx
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
//===- llvm/unittest/Support/DynamicLibrary/PipSqueak.cxx -----------------===//
|
||||
//
|
||||
// The LLVM Compiler Infrastructure
|
||||
//
|
||||
// This file is distributed under the University of Illinois Open Source
|
||||
// License. See LICENSE.TXT for details.
|
||||
//
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "PipSqueak.h"
|
||||
|
||||
struct Global {
|
||||
std::string *Str;
|
||||
std::vector<std::string> *Vec;
|
||||
Global() : Str(nullptr), Vec(nullptr) {}
|
||||
~Global() {
|
||||
if (Str) {
|
||||
if (Vec)
|
||||
Vec->push_back(*Str);
|
||||
*Str = "Global::~Global";
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
static Global Glb;
|
||||
|
||||
struct Local {
|
||||
std::string &Str;
|
||||
Local(std::string &S) : Str(S) {
|
||||
Str = "Local::Local";
|
||||
if (Glb.Str && !Glb.Str->empty())
|
||||
Str += std::string("(") + *Glb.Str + std::string(")");
|
||||
}
|
||||
~Local() { Str = "Local::~Local"; }
|
||||
};
|
||||
|
||||
|
||||
extern "C" PIPSQUEAK_EXPORT void SetStrings(std::string &GStr,
|
||||
std::string &LStr) {
|
||||
Glb.Str = &GStr;
|
||||
static Local Lcl(LStr);
|
||||
}
|
||||
|
||||
extern "C" PIPSQUEAK_EXPORT void TestOrder(std::vector<std::string> &V) {
|
||||
Glb.Vec = &V;
|
||||
}
|
||||
|
||||
#define PIPSQUEAK_TESTA_RETURN "LibCall"
|
||||
#include "ExportedFuncs.cxx"
|
Reference in New Issue
Block a user