[compiler-rt] r287785 - [asan/win] Check assumptions about the incremental linker more

Reid Kleckner via llvm-commits llvm-commits at lists.llvm.org
Wed Nov 23 10:02:17 PST 2016


Author: rnk
Date: Wed Nov 23 12:02:16 2016
New Revision: 287785

URL: http://llvm.org/viewvc/llvm-project?rev=287785&view=rev
Log:
[asan/win] Check assumptions about the incremental linker more

Remove a needless cast as well.

Modified:
    compiler-rt/trunk/lib/asan/asan_globals_win.cc

Modified: compiler-rt/trunk/lib/asan/asan_globals_win.cc
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/asan/asan_globals_win.cc?rev=287785&r1=287784&r2=287785&view=diff
==============================================================================
--- compiler-rt/trunk/lib/asan/asan_globals_win.cc (original)
+++ compiler-rt/trunk/lib/asan/asan_globals_win.cc Wed Nov 23 12:02:16 2016
@@ -26,7 +26,15 @@ __asan_global __asan_globals_end = {};
 
 static void call_on_globals(void (*hook)(__asan_global *, uptr)) {
   __asan_global *start = &__asan_globals_start + 1;
-  __asan_global *end = (__asan_global *)&__asan_globals_end;
+  __asan_global *end = &__asan_globals_end;
+  uptr bytediff = (uptr)end - (uptr)start;
+  if (bytediff % sizeof(__asan_global) != 0) {
+#ifdef ASAN_DLL_THUNK
+    __debugbreak();
+#else
+    CHECK("corrupt asan global array");
+#endif
+  }
   // We know end >= start because the linker sorts the portion after the dollar
   // sign alphabetically.
   uptr n = end - start;




More information about the llvm-commits mailing list