aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGen/constructor-attribute.c
diff options
context:
space:
mode:
Diffstat (limited to 'test/CodeGen/constructor-attribute.c')
-rw-r--r--test/CodeGen/constructor-attribute.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/test/CodeGen/constructor-attribute.c b/test/CodeGen/constructor-attribute.c
index 0ecc47babf..f75fa4f7fa 100644
--- a/test/CodeGen/constructor-attribute.c
+++ b/test/CodeGen/constructor-attribute.c
@@ -1,6 +1,8 @@
// RUN: clang -emit-llvm -o %t %s &&
// RUN: grep -e "global_ctors.*@A" %t &&
-// RUN: grep -e "global_dtors.*@B" %t
+// RUN: grep -e "global_dtors.*@B" %t &&
+// RUN: grep -e "global_ctors.*@C" %t &&
+// RUN: grep -e "global_dtors.*@D" %t
#include <stdio.h>
@@ -15,6 +17,22 @@ 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;
}