]> granicus.if.org Git - clang/commitdiff
Mark __builtin_eh_return as noreturn. Patch by Dimitry Andric.
authorBenjamin Kramer <benny.kra@googlemail.com>
Mon, 26 Jul 2010 22:04:15 +0000 (22:04 +0000)
committerBenjamin Kramer <benny.kra@googlemail.com>
Mon, 26 Jul 2010 22:04:15 +0000 (22:04 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109452 91177308-0d34-0410-b5e6-96231b3b80d8

include/clang/Basic/Builtins.def
test/Sema/builtins.c

index 6457f9935ad67584127a6feab83041dd53edb7dc..658295657b7936be1d2566a76157fd179d6eac33 100644 (file)
@@ -324,7 +324,7 @@ BUILTIN(__builtin_vsprintf, "ic*cC*a", "nFP:1:")
 BUILTIN(__builtin_vsnprintf, "ic*zcC*a", "nFP:2:")
 
 // GCC exception builtins
-BUILTIN(__builtin_eh_return, "vzv*", "") // FIXME: Takes intptr_t, not size_t!
+BUILTIN(__builtin_eh_return, "vzv*", "r") // FIXME: Takes intptr_t, not size_t!
 BUILTIN(__builtin_frob_return_addr, "v*v*", "n")
 BUILTIN(__builtin_dwarf_cfa, "v*", "n")
 BUILTIN(__builtin_init_dwarf_reg_size_table, "vv*", "n")
index 64a4b30492c63157a983519456aaab837c328d72..f2cd3ea360e68bb669c69833779bbe42ac085724 100644 (file)
@@ -80,3 +80,7 @@ void test12(void) {
 void test_unknown_builtin(int a, int b) {
   __builtin_foo(a, b); // expected-error{{use of unknown builtin}}
 }
+
+int test13() {
+  __builtin_eh_return(0, 0); // no warning, eh_return never returns.
+}