// 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; }