This is an archive of the discontinued LLVM Phabricator instance.

[sanitizer] Fix sanitizer_common compile errors on gcc trunk
ClosedPublic

Authored by ro on Jun 6 2017, 4:31 AM.

Details

Summary

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.

Diff Detail

Repository
rL LLVM

Event Timeline

ro created this revision.Jun 6 2017, 4:31 AM
kcc accepted this revision.Nov 3 2017, 1:54 PM

LGTM

This revision is now accepted and ready to land.Nov 3 2017, 1:54 PM
ro added a comment.Nov 3 2017, 3:10 PM

Thanks. Could someone commit this for me? I don't have commit rights.

Vitaly, please commit (I won't have a chance today)

vitalybuka accepted this revision.Nov 7 2017, 12:09 PM
This revision was automatically updated to reflect the committed changes.