diff options
author | Daniel Dunbar <daniel@zuster.org> | 2008-08-01 00:01:51 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2008-08-01 00:01:51 +0000 |
commit | 74aa7e1eaeb8a38ee5d97ae85a498d6d46b5635d (patch) | |
tree | 11cada16e9cb95aea14f72484130193cae11972f /clang/test/CodeGen/constructor-attribute.c | |
parent | 032db47f0f6184847851ab122704150052da6f0c (diff) | |
download | bcm5719-llvm-74aa7e1eaeb8a38ee5d97ae85a498d6d46b5635d.tar.gz bcm5719-llvm-74aa7e1eaeb8a38ee5d97ae85a498d6d46b5635d.zip |
Support constructor and destructor attributes in CodeGen
- There is an miscompilation issue remaining due to a poor
interaction between the delayed emission of static functions and
the emission of constructors, but that already existed prior to
this change.
llvm-svn: 54258
Diffstat (limited to 'clang/test/CodeGen/constructor-attribute.c')
-rw-r--r-- | clang/test/CodeGen/constructor-attribute.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/clang/test/CodeGen/constructor-attribute.c b/clang/test/CodeGen/constructor-attribute.c new file mode 100644 index 00000000000..0ecc47babfe --- /dev/null +++ b/clang/test/CodeGen/constructor-attribute.c @@ -0,0 +1,20 @@ +// RUN: clang -emit-llvm -o %t %s && +// RUN: grep -e "global_ctors.*@A" %t && +// RUN: grep -e "global_dtors.*@B" %t + +#include <stdio.h> + +void A() __attribute__((constructor)); +void B() __attribute__((destructor)); + +void A() { + printf("A\n"); +} + +void B() { + printf("B\n"); +} + +int main() { + return 0; +} |