aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Kramer <benny.kra@googlemail.com>2010-07-26 22:04:15 +0000
committerBenjamin Kramer <benny.kra@googlemail.com>2010-07-26 22:04:15 +0000
commitdee832c8958ca100c671881b6541fbb857a33592 (patch)
tree0d1ec479331340faa390d5ae927cad8500a20f02
parent6be2a22979e6a4af575af32cccdf6a6190a8edca (diff)
Mark __builtin_eh_return as noreturn. Patch by Dimitry Andric.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109452 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/Basic/Builtins.def2
-rw-r--r--test/Sema/builtins.c4
2 files changed, 5 insertions, 1 deletions
diff --git a/include/clang/Basic/Builtins.def b/include/clang/Basic/Builtins.def
index 6457f9935a..658295657b 100644
--- a/include/clang/Basic/Builtins.def
+++ b/include/clang/Basic/Builtins.def
@@ -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")
diff --git a/test/Sema/builtins.c b/test/Sema/builtins.c
index 64a4b30492..f2cd3ea360 100644
--- a/test/Sema/builtins.c
+++ b/test/Sema/builtins.c
@@ -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.
+}