// RUN: %clang_cc1 -emit-llvm -o %t %s | |
// RUN: grep -e "global_ctors.*@A" %t | |
// RUN: grep -e "global_dtors.*@B" %t | |
// RUN: grep -e "global_ctors.*@C" %t | |
// RUN: grep -e "global_dtors.*@D" %t | |
int printf(const char *, ...); | |
void A() __attribute__((constructor)); | |
void B() __attribute__((destructor)); | |
void A() { | |
printf("A\n"); | |
} | |
void B() { | |
printf("B\n"); | |
} | |
static void C() __attribute__((constructor)); | |
static void D() __attribute__((destructor)); | |
static int foo() { | |
return 10; | |
} | |
static void C() { | |
printf("A: %d\n", foo()); | |
} | |
static void D() { | |
printf("B\n"); | |
} | |
int main() { | |
return 0; | |
} |