summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/constructor-attribute.c
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-02-13 21:18:01 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-02-13 21:18:01 +0000
commit6b8720e7237576f6c3671013e31ff81ec09f4864 (patch)
tree27780b64a3514e0b8c6258577836105e1fc9e203 /clang/test/CodeGen/constructor-attribute.c
parent08b26a05870748014f2759e9d89488df672a337a (diff)
downloadbcm5719-llvm-6b8720e7237576f6c3671013e31ff81ec09f4864.tar.gz
bcm5719-llvm-6b8720e7237576f6c3671013e31ff81ec09f4864.zip
Pull MayDeferGeneration out of EmitGlobal.
- Fix emission of static functions with constructor attribute while I was here. <rdar://problem/6140899> [codegen] "static" and attribute-constructor interact poorly llvm-svn: 64488
Diffstat (limited to 'clang/test/CodeGen/constructor-attribute.c')
-rw-r--r--clang/test/CodeGen/constructor-attribute.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/clang/test/CodeGen/constructor-attribute.c b/clang/test/CodeGen/constructor-attribute.c
index 0ecc47babfe..f75fa4f7fac 100644
--- a/clang/test/CodeGen/constructor-attribute.c
+++ b/clang/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;
}
OpenPOWER on IntegriCloud