Fix illegal cross-type aliasing. Found by baldrick on a newer gcc.
authorJeffrey Yasskin <jyasskin@google.com>
Tue, 6 Oct 2009 19:06:16 +0000 (19:06 +0000)
committerJeffrey Yasskin <jyasskin@google.com>
Tue, 6 Oct 2009 19:06:16 +0000 (19:06 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83401 91177308-0d34-0410-b5e6-96231b3b80d8

unittests/ExecutionEngine/JIT/JITTest.cpp

index ee27dee39bee5e9290c10dccc09ed9e0f6080fe6..a4812bc1762a231e53958bdf141afa9a82b7cf3d 100644 (file)
@@ -99,9 +99,8 @@ TEST(JIT, GlobalInFunction) {
 
   // Get the pointer to the native code to force it to JIT the function and
   // allocate space for the global.
-  void (*F1Ptr)();
-  // Hack to avoid ISO C++ warning about casting function pointers.
-  *(void**)(void*)&F1Ptr = JIT->getPointerToFunction(F1);
+  void (*F1Ptr)() =
+      reinterpret_cast<void(*)()>((intptr_t)JIT->getPointerToFunction(F1));
 
   // Since F1 was codegen'd, a pointer to G should be available.
   int32_t *GPtr = (int32_t*)JIT->getPointerToGlobalIfAvailable(G);
@@ -115,9 +114,8 @@ TEST(JIT, GlobalInFunction) {
   // Make a second function identical to the first, referring to the same
   // global.
   Function *F2 = makeReturnGlobal("F2", G, M);
-  // Hack to avoid ISO C++ warning about casting function pointers.
-  void (*F2Ptr)();
-  *(void**)(void*)&F2Ptr = JIT->getPointerToFunction(F2);
+  void (*F2Ptr)() =
+      reinterpret_cast<void(*)()>((intptr_t)JIT->getPointerToFunction(F2));
 
   // F2() should increment G.
   F2Ptr();