f4a2713ac8
Change-Id: Ia40e9ffdf29b5dab2f122f673ff6802a58bc690f
38 lines
606 B
C
38 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;
|
|
}
|