Home | History | Annotate | Download | only in Darwin
      1 // Make sure ASan removes the runtime library from DYLD_INSERT_LIBRARIES before
      2 // executing other programs.
      3 
      4 // RUN: %clangxx_asan %s -o %t
      5 // RUN: %clangxx %p/../Helpers/echo-env.cc -o %T/echo-env
      6 // RUN: %clangxx -DSHARED_LIB %s \
      7 // RUN:     -dynamiclib -o %t-darwin-dummy-shared-lib-so.dylib
      8 
      9 // Make sure DYLD_INSERT_LIBRARIES doesn't contain the runtime library before
     10 // execl().
     11 
     12 // RUN: %run %t %T/echo-env >/dev/null 2>&1
     13 // RUN: env DYLD_INSERT_LIBRARIES=%t-darwin-dummy-shared-lib-so.dylib \
     14 // RUN:     %run %t %T/echo-env 2>&1 | FileCheck %s || exit 1
     15 
     16 #if !defined(SHARED_LIB)
     17 #include <unistd.h>
     18 int main(int argc, char *argv[]) {
     19   execl(argv[1], argv[1], "DYLD_INSERT_LIBRARIES", NULL);
     20   // CHECK:  {{DYLD_INSERT_LIBRARIES = .*darwin-dummy-shared-lib-so.dylib.*}}
     21   return 0;
     22 }
     23 #else  // SHARED_LIB
     24 void foo() {}
     25 #endif  // SHARED_LIB
     26