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
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">,
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