[llvm-commits] [compiler-rt] r149994 - /compiler-rt/trunk/lib/asan/asan_internal.h

Kostya Serebryany kcc at google.com
Tue Feb 7 10:23:54 PST 2012


Author: kcc
Date: Tue Feb  7 12:23:54 2012
New Revision: 149994

URL: http://llvm.org/viewvc/llvm-project?rev=149994&view=rev
Log:
[asan] GET_CALLER_PC macro for Win. Patch by timurrrr at google.com

Modified:
    compiler-rt/trunk/lib/asan/asan_internal.h

Modified: compiler-rt/trunk/lib/asan/asan_internal.h
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_internal.h?rev=149994&r1=149993&r2=149994&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/asan_internal.h (original)
+++ compiler-rt/trunk/lib/asan/asan_internal.h Tue Feb  7 12:23:54 2012
@@ -212,12 +212,16 @@
 const size_t kPageSize = 1UL << kPageSizeBits;
 
 #ifndef _WIN32
-#define GET_CALLER_PC() (uintptr_t)__builtin_return_address(0)
-#define GET_CURRENT_FRAME() (uintptr_t)__builtin_frame_address(0)
+# define GET_CALLER_PC() (uintptr_t)__builtin_return_address(0)
+# define GET_CURRENT_FRAME() (uintptr_t)__builtin_frame_address(0)
 #else
-// TODO(timurrrr): implement.
-#define GET_CALLER_PC() (uintptr_t)0
-#define GET_CURRENT_FRAME() (uintptr_t)0
+extern "C" void* _ReturnAddress(void);
+# pragma intrinsic(_ReturnAddress)
+# define GET_CALLER_PC() (uintptr_t)_ReturnAddress()
+// CaptureStackBackTrace doesn't need to know BP on Windows.
+// FIXME: This macro is still used when printing error reports though it's not
+// clear if the BP value is needed in the ASan reports on Windows.
+# define GET_CURRENT_FRAME() (uintptr_t)0xDEADBEEF
 #endif
 
 #define GET_BP_PC_SP \





More information about the llvm-commits mailing list