diff options
author | Rafael Espindola <rafael.espindola@gmail.com> | 2011-10-12 19:51:18 +0000 |
---|---|---|
committer | Rafael Espindola <rafael.espindola@gmail.com> | 2011-10-12 19:51:18 +0000 |
commit | 6700415542121e2cb7d867728046ffa21e402019 (patch) | |
tree | c45b4afdda68460a0ca4054cd8180fe78c605ab2 /test/CodeGen/function-attributes.c | |
parent | d768150ef57f617c8d9fef48f3c92e8f21698024 (diff) |
Add returns_twice to functions that are known to return twice. This implements
the same behavior of gcc by keeping the attribute out of the function type.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141803 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/function-attributes.c')
-rw-r--r-- | test/CodeGen/function-attributes.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/test/CodeGen/function-attributes.c b/test/CodeGen/function-attributes.c index fd98458c84..6cbf40ba22 100644 --- a/test/CodeGen/function-attributes.c +++ b/test/CodeGen/function-attributes.c @@ -100,3 +100,14 @@ __attribute__ ((returns_twice)) void f17(void); __attribute__ ((returns_twice)) void f18(void) { f17(); } + +// CHECK: define void @f19() +// CHECK: { +// CHECK: call i32 @setjmp(i32* null) +// CHECK: returns_twice +// CHECK: ret void +typedef int jmp_buf[((9 * 2) + 3 + 16)]; +int setjmp(jmp_buf); +void f19(void) { + setjmp(0); +} |