[llvm-branch-commits] [compiler-rt-branch] r366690 - Revert r366413 on LLVM 9 branch

Hans Wennborg via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon Jul 22 09:10:39 PDT 2019


Thank you!

On Mon, Jul 22, 2019 at 7:07 AM Ulrich Weigand via llvm-branch-commits
<llvm-branch-commits at 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 at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


More information about the llvm-branch-commits mailing list