[PATCH] D33933: [sanitizer] Fix sanitizer_common compile errors on gcc trunk

Rainer Orth via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 6 04:31:25 PDT 2017


ro created this revision.
Herald added subscribers: fedor.sergeev, kubamracek.

When testing a merge of compiler-rt r304709 into gcc trunk on x86-64-pc-linux-gnu,
I ran into two compile errors:

/vol/gcc/src/hg/trunk/solaris-asan/libsanitizer/sanitizer_common/sanitizer_symbolizer_libbacktrace.cc: In member function '__sanitizer::AddressInfo* __sanitizer::{anonymous}::SymbolizeCodeCallbackArg::get_new_frame(uintptr_t)':
/vol/gcc/src/hg/trunk/solaris-asan/libsanitizer/sanitizer_common/sanitizer_symbolizer_libbacktrace.cc:96:73: error: no matching function for call to '__sanitizer::AddressInfo::FillModuleInfo(char*&, __sanitizer::uptr&)'

  info->FillModuleInfo(first->info.module, first->info.module_offset);
                                                                    ^

In file included from /vol/gcc/src/hg/trunk/solaris-asan/libsanitizer/sanitizer_common/sanitizer_symbolizer_libbacktrace.cc:16:0:
/vol/gcc/src/hg/trunk/solaris-asan/libsanitizer/sanitizer_common/sanitizer_symbolizer.h:45:8: note: candidate: 'void __sanitizer::AddressInfo::FillModuleInfo(const char*, __sanitizer::uptr, __sanitizer::ModuleArch)'

  void FillModuleInfo(const char *mod_name, uptr mod_offset, ModuleArch arch);
       ^~~~~~~~~~~~~~

/vol/gcc/src/hg/trunk/solaris-asan/libsanitizer/sanitizer_common/sanitizer_symbolizer.h:45:8: note:   candidate expects 3 arguments, 2 provided

The call to FileModuleInfo hasn't been updated to the new 3-arg form since
sanitizer_symbolizer_libbacktrace.cc is only used inside gcc since 
SANITIZER_LIBBACKTRACE is 0 otherwise.

/vol/gcc/src/hg/trunk/solaris-asan/libsanitizer/sanitizer_common/sanitizer_win_weak_interception.cc:13:10: fatal error: sanitizer_common/sanitizer_platform.h: No such file or directory
 #include "sanitizer_common/sanitizer_platform.h"

  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

All other files in sanitizer_common (with the exception of sanitizer_malloc_mac.inc
which is special) include sanitizer_platform.h without directory name.


Repository:
  rL LLVM

https://reviews.llvm.org/D33933

Files:
  lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.cc
  lib/sanitizer_common/sanitizer_win_weak_interception.cc


Index: lib/sanitizer_common/sanitizer_win_weak_interception.cc
===================================================================
--- lib/sanitizer_common/sanitizer_win_weak_interception.cc
+++ lib/sanitizer_common/sanitizer_win_weak_interception.cc
@@ -12,7 +12,7 @@
 // definition is provided.
 //===----------------------------------------------------------------------===//
 
-#include "sanitizer_common/sanitizer_platform.h"
+#include "sanitizer_platform.h"
 #if SANITIZER_WINDOWS && SANITIZER_DYNAMIC
 #include "sanitizer_win_weak_interception.h"
 #include "sanitizer_allocator_interface.h"
Index: lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.cc
===================================================================
--- lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.cc
+++ lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.cc
@@ -95,7 +95,8 @@
     if (frames_symbolized > 0) {
       SymbolizedStack *cur = SymbolizedStack::New(addr);
       AddressInfo *info = &cur->info;
-      info->FillModuleInfo(first->info.module, first->info.module_offset);
+      info->FillModuleInfo(first->info.module, first->info.module_offset,
+                           first->info.module_arch);
       last->next = cur;
       last = cur;
     }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D33933.101541.patch
Type: text/x-patch
Size: 1260 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170606/9705cbd4/attachment.bin>


More information about the llvm-commits mailing list