[llvm] r226170 - Fix the C-API MCJIT test for 32-bit big endian machines.

Hans Wennborg hans at chromium.org
Fri Jan 16 09:01:46 PST 2015


On Fri, Jan 16, 2015 at 1:27 AM, Daniel Sanders
<Daniel.Sanders at imgtec.com> wrote:
> Hi Hans,
>
> Are you happy for me to merge this to release_36? It fixes a faulty test.

Yes, go ahead.

Thanks,
Hans


> From: llvm-commits-bounces at cs.uiuc.edu [llvm-commits-bounces at cs.uiuc.edu] on behalf of Vasileios Kalintiris
> Sent: 15 January 2015 15:36
> To: llvm-commits at cs.uiuc.edu
> Subject: [llvm] r226170 - Fix the C-API MCJIT test for 32-bit big endian        machines.
>
> 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) {
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list