aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2009-10-21 15:46:01 +0000
committerDouglas Gregor <dgregor@apple.com>2009-10-21 15:46:01 +0000
commit9dc9c376a9f3e0c72f33e27075caa0647dadb350 (patch)
tree41839cae56d5673640c28d6c98fa04374f8b5ac5
parent6a6de8b4fc944ca1bfa4e47c516d049a0d627b0e (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.td2
-rw-r--r--test/Sema/attr-noreturn.c6
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