From: Benjamin Kramer Date: Mon, 26 Jul 2010 22:04:15 +0000 (+0000) Subject: Mark __builtin_eh_return as noreturn. Patch by Dimitry Andric. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=dee832c8958ca100c671881b6541fbb857a33592;p=clang 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 --- 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. +}