Thank you!
On Mon, Jul 22, 2019 at 7:07 AM Ulrich Weigand via llvm-branch-commits <llvm-branch-commits@lists.llvm.org> wrote: > > Author: uweigand > Date: Mon Jul 22 07:07:55 2019 > New Revision: 366690 > > URL: http://llvm.org/viewvc/llvm-project?rev=366690&view=rev > Log: > Revert r366413 on LLVM 9 branch > > This commit caused test suite failures on multiple platforms and > has been reverted on mainline as r366472/r366482. > > > Removed: > > compiler-rt/branches/release_90/test/asan/TestCases/Linux/dlopen-mixed-c-cxx.c > Modified: > compiler-rt/branches/release_90/lib/interception/interception_linux.cc > > Modified: > compiler-rt/branches/release_90/lib/interception/interception_linux.cc > URL: > http://llvm.org/viewvc/llvm-project/compiler-rt/branches/release_90/lib/interception/interception_linux.cc?rev=366690&r1=366689&r2=366690&view=diff > ============================================================================== > --- compiler-rt/branches/release_90/lib/interception/interception_linux.cc > (original) > +++ compiler-rt/branches/release_90/lib/interception/interception_linux.cc > Mon Jul 22 07:07:55 2019 > @@ -33,7 +33,7 @@ static int StrCmp(const char *s1, const > } > #endif > > -static void *GetFuncAddr(const char *name, uptr wrapper_addr) { > +static void *GetFuncAddr(const char *name) { > #if SANITIZER_NETBSD > // FIXME: Find a better way to handle renames > if (StrCmp(name, "sigaction")) > @@ -47,18 +47,13 @@ static void *GetFuncAddr(const char *nam > // want the address of the real definition, though, so look it up using > // RTLD_DEFAULT. > addr = dlsym(RTLD_DEFAULT, name); > - > - // In case `name' is not loaded, dlsym ends up finding the actual > wrapper. > - // We don't want to intercept the wrapper and have it point to itself. > - if ((uptr)addr == wrapper_addr) > - addr = nullptr; > } > return addr; > } > > bool InterceptFunction(const char *name, uptr *ptr_to_real, uptr func, > uptr wrapper) { > - void *addr = GetFuncAddr(name, wrapper); > + void *addr = GetFuncAddr(name); > *ptr_to_real = (uptr)addr; > return addr && (func == wrapper); > } > > Removed: > compiler-rt/branches/release_90/test/asan/TestCases/Linux/dlopen-mixed-c-cxx.c > URL: > http://llvm.org/viewvc/llvm-project/compiler-rt/branches/release_90/test/asan/TestCases/Linux/dlopen-mixed-c-cxx.c?rev=366689&view=auto > ============================================================================== > --- > compiler-rt/branches/release_90/test/asan/TestCases/Linux/dlopen-mixed-c-cxx.c > (original) > +++ > compiler-rt/branches/release_90/test/asan/TestCases/Linux/dlopen-mixed-c-cxx.c > (removed) > @@ -1,42 +0,0 @@ > -// RUN: %clangxx_asan -xc++ -shared -fPIC -o %t.so - < %s > -// RUN: %clang_asan %s -o %t.out -ldl > -// RUN: ASAN_OPTIONS=verbosity=1 not %t.out %t.so 2>&1 | FileCheck %s > -// > -// CHECK: AddressSanitizer: failed to intercept '__cxa_throw' > -// > -// dlopen() can not be intercepted on Android > -// UNSUPPORTED: android > -#ifdef __cplusplus > - > -static void foo(void) { > - int i = 0; > - throw(i); > -} > - > -extern "C" { > -int bar(void); > -}; > -int bar(void) { > - try { > - foo(); > - } catch (int i) { > - return i; > - } > - return -1; > -} > - > -#else > - > -#include <assert.h> > -#include <dlfcn.h> > - > -int main(int argc, char **argv) { > - int (*bar)(void); > - void *handle = dlopen(argv[1], RTLD_LAZY); > - assert(handle); > - bar = dlsym(handle, "bar"); > - assert(bar); > - return bar(); > -} > - > -#endif > > > _______________________________________________ > llvm-branch-commits mailing list > llvm-branch-commits@lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits