1 // Make sure ASan doesn't hang in an exec loop if DYLD_INSERT_LIBRARIES is set. 2 // This is a regression test for 3 // https://code.google.com/p/address-sanitizer/issues/detail?id=159 4 5 // RUN: %clangxx_asan %s -o %t 6 // RUN: %clangxx -DSHARED_LIB %s \ 7 // RUN: -dynamiclib -o darwin-dummy-shared-lib-so.dylib 8 9 // FIXME: the following command line may hang in the case of a regression. 10 // RUN: env DYLD_INSERT_LIBRARIES=darwin-dummy-shared-lib-so.dylib \ 11 // RUN: %run %t 2>&1 | FileCheck %s || exit 1 12 13 #if !defined(SHARED_LIB) 14 #include <stdio.h> 15 #include <stdlib.h> 16 17 int main() { 18 const char kEnvName[] = "DYLD_INSERT_LIBRARIES"; 19 printf("%s=%s\n", kEnvName, getenv(kEnvName)); 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