diff options
author | dim <dim@FreeBSD.org> | 2015-06-21 13:59:01 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2015-06-21 13:59:01 +0000 |
commit | 60174f118de85cbcad51deb11c650f22c9be2235 (patch) | |
tree | bc48361fe2cd1ca5f93ac01b38b183774468fc79 /unittests/ExecutionEngine/MCJIT/MCJITMultipleModuleTest.cpp | |
parent | 9b27354f6f3e9086d5f7abbc373b617209fc35b2 (diff) | |
download | FreeBSD-src-60174f118de85cbcad51deb11c650f22c9be2235.zip FreeBSD-src-60174f118de85cbcad51deb11c650f22c9be2235.tar.gz |
Vendor import of llvm trunk r240225:
https://llvm.org/svn/llvm-project/llvm/trunk@240225
Diffstat (limited to 'unittests/ExecutionEngine/MCJIT/MCJITMultipleModuleTest.cpp')
-rw-r--r-- | unittests/ExecutionEngine/MCJIT/MCJITMultipleModuleTest.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/unittests/ExecutionEngine/MCJIT/MCJITMultipleModuleTest.cpp b/unittests/ExecutionEngine/MCJIT/MCJITMultipleModuleTest.cpp index da6e25a..7d52a9a 100644 --- a/unittests/ExecutionEngine/MCJIT/MCJITMultipleModuleTest.cpp +++ b/unittests/ExecutionEngine/MCJIT/MCJITMultipleModuleTest.cpp @@ -194,14 +194,15 @@ TEST_F(MCJITMultipleModuleTest, two_module_consecutive_call_case) { // Module A { Global Variable GVA, Function FA loads GVA }, -// Module B { Global Variable GVB, Function FB loads GVB }, -// execute FB then FA +// Module B { Global Variable GVB, Internal Global GVC, Function FB loads GVB }, +// execute FB then FA, also check that the global variables are properly accesible +// through the ExecutionEngine APIs TEST_F(MCJITMultipleModuleTest, two_module_global_variables_case) { SKIP_UNSUPPORTED_PLATFORM; std::unique_ptr<Module> A, B; Function *FA, *FB; - GlobalVariable *GVA, *GVB; + GlobalVariable *GVA, *GVB, *GVC; A.reset(createEmptyModule("A")); B.reset(createEmptyModule("B")); @@ -213,9 +214,17 @@ TEST_F(MCJITMultipleModuleTest, two_module_global_variables_case) { FB = startFunction<int32_t(void)>(B.get(), "FB"); endFunctionWithRet(FB, Builder.CreateLoad(GVB)); + GVC = insertGlobalInt32(B.get(), "GVC", initialNum); + GVC->setLinkage(GlobalValue::InternalLinkage); + createJIT(std::move(A)); TheJIT->addModule(std::move(B)); + EXPECT_EQ(GVA, TheJIT->FindGlobalVariableNamed("GVA")); + EXPECT_EQ(GVB, TheJIT->FindGlobalVariableNamed("GVB")); + EXPECT_EQ(GVC, TheJIT->FindGlobalVariableNamed("GVC",true)); + EXPECT_EQ(NULL, TheJIT->FindGlobalVariableNamed("GVC")); + uint64_t FBPtr = TheJIT->getFunctionAddress(FB->getName().str()); TheJIT->finalizeObject(); EXPECT_TRUE(0 != FBPtr); |