diff options
author | Vasileios Kalintiris <Vasileios.Kalintiris@imgtec.com> | 2015-01-15 15:36:04 +0000 |
---|---|---|
committer | Vasileios Kalintiris <Vasileios.Kalintiris@imgtec.com> | 2015-01-15 15:36:04 +0000 |
commit | 799d5c924e36f275017cd441036f9c1a2a616c73 (patch) | |
tree | 96796f36d8ba46d73cfd6e3ee548342f9bcfb77d /llvm/unittests/ExecutionEngine | |
parent | f294d5b8291e7b035cd33f11e55f553d1b0c97a0 (diff) | |
download | bcm5719-llvm-799d5c924e36f275017cd441036f9c1a2a616c73.tar.gz bcm5719-llvm-799d5c924e36f275017cd441036f9c1a2a616c73.zip |
Fix the C-API MCJIT test for 32-bit big endian machines.
Avoid using unions for storing the return value from
LLVMGetGlobalValueAddress() and LLVMGetFunctionAddress() and accessing it as
a pointer through another pointer member. This causes problems on 32-bit big
endian machines since the pointer gets the higher part of the return value of
the aforementioned functions.
llvm-svn: 226170
Diffstat (limited to 'llvm/unittests/ExecutionEngine')
-rw-r--r-- | llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp b/llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp index 62967bdd327..f2a3000906e 100644 --- a/llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp +++ b/llvm/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp @@ -359,13 +359,10 @@ TEST_F(MCJITCAPITest, gva) { buildMCJITEngine(); buildAndRunPasses(); - union { - uint64_t raw; - int32_t *usable; - } valuePointer; - valuePointer.raw = LLVMGetGlobalValueAddress(Engine, "simple_value"); + uint64_t raw = LLVMGetGlobalValueAddress(Engine, "simple_value"); + int32_t *usable = (int32_t *) raw; - EXPECT_EQ(42, *valuePointer.usable); + EXPECT_EQ(42, *usable); } TEST_F(MCJITCAPITest, gfa) { @@ -376,13 +373,10 @@ TEST_F(MCJITCAPITest, gfa) { buildMCJITEngine(); buildAndRunPasses(); - union { - uint64_t raw; - int (*usable)(); - } functionPointer; - functionPointer.raw = LLVMGetFunctionAddress(Engine, "simple_function"); + uint64_t raw = LLVMGetFunctionAddress(Engine, "simple_function"); + int (*usable)() = (int (*)()) raw; - EXPECT_EQ(42, functionPointer.usable()); + EXPECT_EQ(42, usable()); } TEST_F(MCJITCAPITest, custom_memory_manager) { |