37 lines
962 B
C++
37 lines
962 B
C++
// Regression test for PR33206
|
|
//
|
|
// RUN: %clang -DDYN=1 -DMALLOC=1 -fPIC -shared %s -o %t-dso1.so
|
|
// RUN: %clang -DDYN=1 -DMALLOC=1 -fPIC -shared %s -o %t-dso2.so %t-dso1.so
|
|
// RUN: %clang %s -o %t-1 %t-dso2.so
|
|
// RUN: env LD_PRELOAD=%shared_libasan %run %t-1 2>&1 | FileCheck %s
|
|
// RUN: %clang -DDYN=1 -DREALLOC=1 -fPIC -shared %s -o %t-dso3.so
|
|
// RUN: %clang -DDYN=1 -DREALLOC=1 -fPIC -shared %s -o %t-dso4.so %t-dso3.so
|
|
// RUN: %clang %s -o %t-2 %t-dso4.so
|
|
// RUN: env LD_PRELOAD=%shared_libasan %run %t-2 2>&1 | FileCheck %s
|
|
// REQUIRES: asan-dynamic-runtime
|
|
|
|
// FIXME: Test regressed while android bot was disabled. Needs investigation.
|
|
// UNSUPPORTED: android
|
|
|
|
#include <stdlib.h>
|
|
#include <stdio.h>
|
|
|
|
#ifdef DYN
|
|
__attribute__((constructor)) void foo() {
|
|
void *p;
|
|
#ifdef MALLOC
|
|
p = malloc(1 << 20);
|
|
#endif
|
|
#ifdef REALLOC
|
|
p = realloc (0, 1 << 20);
|
|
#endif
|
|
free(p);
|
|
}
|
|
#else
|
|
int main() {
|
|
// CHECK: Success
|
|
printf("Success\n");
|
|
return 0;
|
|
}
|
|
#endif
|