[llvm] r226170 - Fix the C-API MCJIT test for 32-bit big endian machines.
Vasileios Kalintiris
Vasileios.Kalintiris at imgtec.com
Thu Jan 15 07:36:04 PST 2015
Author: vkalintiris
Date: Thu Jan 15 09:36:04 2015
New Revision: 226170
URL: http://llvm.org/viewvc/llvm-project?rev=226170&view=rev
Log:
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.
Modified:
llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp
Modified: llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp?rev=226170&r1=226169&r2=226170&view=diff
==============================================================================
--- llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp (original)
+++ llvm/trunk/unittests/ExecutionEngine/MCJIT/MCJITCAPITest.cpp Thu Jan 15 09:36:04 2015
@@ -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) {
More information about the llvm-commits
mailing list