diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-10-21 15:46:01 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-10-21 15:46:01 +0000 |
commit | 9dc9c376a9f3e0c72f33e27075caa0647dadb350 (patch) | |
tree | 41839cae56d5673640c28d6c98fa04374f8b5ac5 | |
parent | 6a6de8b4fc944ca1bfa4e47c516d049a0d627b0e (diff) |
Downgrade "function declared 'noreturn' should not return" from an
error (by default) to a warning, per C++0x [dcl.attr.noreturn]. Patch
from Sean Hunt!
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84762 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/clang/Basic/DiagnosticSemaKinds.td | 2 | ||||
-rw-r--r-- | test/Sema/attr-noreturn.c | 6 |
2 files changed, 4 insertions, 4 deletions
diff --git a/include/clang/Basic/DiagnosticSemaKinds.td b/include/clang/Basic/DiagnosticSemaKinds.td index d92bb9cdc9..7a87e244f7 100644 --- a/include/clang/Basic/DiagnosticSemaKinds.td +++ b/include/clang/Basic/DiagnosticSemaKinds.td @@ -2203,7 +2203,7 @@ def ext_return_has_expr : ExtWarn< def ext_return_has_void_expr : Extension< "void %select{function|method}1 %0 should not return void expression">; def warn_noreturn_function_has_return_expr : Warning< - "function %0 declared 'noreturn' should not return">, DefaultError, + "function %0 declared 'noreturn' should not return">, InGroup<DiagGroup<"invalid-noreturn">>; def warn_falloff_noreturn_function : Warning< "function declared 'noreturn' should not return">, diff --git a/test/Sema/attr-noreturn.c b/test/Sema/attr-noreturn.c index b83eb94e05..14011bedca 100644 --- a/test/Sema/attr-noreturn.c +++ b/test/Sema/attr-noreturn.c @@ -15,14 +15,14 @@ int f2() __attribute__((noreturn(1, 2))); // expected-error {{attribute requires void f3() __attribute__((noreturn)); void f3() { - return; // expected-error {{function 'f3' declared 'noreturn' should not return}} + return; // expected-warning {{function 'f3' declared 'noreturn' should not return}} } -#pragma clang diagnostic warning "-Winvalid-noreturn" +#pragma clang diagnostic error "-Winvalid-noreturn" void f4() __attribute__((noreturn)); void f4() { - return; // expected-warning {{function 'f4' declared 'noreturn' should not return}} + return; // expected-error {{function 'f4' declared 'noreturn' should not return}} } // PR4685 |