[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