aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2009-09-26 21:16:00 +0000
committerChris Lattner <sabre@nondot.org>2009-09-26 21:16:00 +0000
commit50dd255e5ad05f0d44bb92f358ff3f541a3d7a4b (patch)
tree5feff8f191680b64596e0961e80c8fed3cb4cf35
parentfc9cd61f2372cd8f43f0d92be14fa75778de6be6 (diff)
builtin_trap should be noreturn, this fixes PR5062, patch by
Roman Divacky! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82876 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/clang/Basic/Builtins.def2
-rw-r--r--test/Sema/builtins.c5
2 files changed, 6 insertions, 1 deletions
diff --git a/include/clang/Basic/Builtins.def b/include/clang/Basic/Builtins.def
index 502bbd24d9..5dcd23f6a2 100644
--- a/include/clang/Basic/Builtins.def
+++ b/include/clang/Basic/Builtins.def
@@ -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")
diff --git a/test/Sema/builtins.c b/test/Sema/builtins.c
index 04a56bd5ed..912a6b385c 100644
--- a/test/Sema/builtins.c
+++ b/test/Sema/builtins.c
@@ -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.
+}