From: Chris Lattner Date: Sat, 26 Sep 2009 21:16:00 +0000 (+0000) Subject: builtin_trap should be noreturn, this fixes PR5062, patch by X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=50dd255e5ad05f0d44bb92f358ff3f541a3d7a4b;p=clang 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 --- 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. +}