]> granicus.if.org Git - clang/commitdiff
builtin_trap should be noreturn, this fixes PR5062, patch by
authorChris Lattner <sabre@nondot.org>
Sat, 26 Sep 2009 21:16:00 +0000 (21:16 +0000)
committerChris Lattner <sabre@nondot.org>
Sat, 26 Sep 2009 21:16:00 +0000 (21:16 +0000)
Roman Divacky!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82876 91177308-0d34-0410-b5e6-96231b3b80d8

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

index 502bbd24d9cbacb076f488931fe6b97ee1b83673..5dcd23f6a297ada1b41b3fe6514eb4317372193d 100644 (file)
@@ -271,7 +271,7 @@ BUILTIN(__builtin___vprintf_chk, "iicC*a", "FP:1:")
 
 BUILTIN(__builtin_expect, "iii"   , "nc")
 BUILTIN(__builtin_prefetch, "vvC*.", "nc")
-BUILTIN(__builtin_trap, "v", "n")
+BUILTIN(__builtin_trap, "v", "nr")
 BUILTIN(__builtin_unreachable, "v", "nr")
 
 BUILTIN(__builtin_shufflevector, "v."   , "nc")
index 04a56bd5ed1012b2192593842698cda73f5eed64..912a6b385c47d19089ac2595d297c37c6a9cc227 100644 (file)
@@ -62,3 +62,8 @@ void test11(int X) {
   __builtin_eh_return_data_regno(X);  // expected-error {{not an integer constant expression}}
 }
 
+// PR5062
+void test12(void) __attribute__((__noreturn__));
+void test12(void) {
+  __builtin_trap();  // no warning because trap is noreturn.
+}