39 lines
606 B
C
39 lines
606 B
C
|
// 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;
|
||
|
}
|