forked from OSchip/llvm-project
Add -Wc++98-compat warning for deduced 'auto' type specifier.
llvm-svn: 142057
This commit is contained in:
parent
5d164bc5e0
commit
e41fac231c
|
@ -1083,6 +1083,9 @@ def err_cannot_determine_declared_type_of_overloaded_function : Error<
|
|||
"cannot determine the type of an overloaded function">;
|
||||
|
||||
// C++11 auto
|
||||
def warn_cxx98_compat_auto_type_specifier : Warning<
|
||||
"'auto' type specifier is incompatible with C++98">,
|
||||
InGroup<CXX98Compat>, DefaultIgnore;
|
||||
def err_auto_variable_cannot_appear_in_own_initializer : Error<
|
||||
"variable %0 declared with 'auto' type cannot appear in its own initializer">;
|
||||
def err_illegal_decl_array_of_auto : Error<
|
||||
|
|
|
@ -1851,7 +1851,9 @@ static QualType GetDeclSpecTypeForDeclarator(TypeProcessingState &state,
|
|||
<< Error;
|
||||
T = SemaRef.Context.IntTy;
|
||||
D.setInvalidType(true);
|
||||
}
|
||||
} else
|
||||
SemaRef.Diag(D.getDeclSpec().getTypeSpecTypeLoc(),
|
||||
diag::warn_cxx98_compat_auto_type_specifier);
|
||||
}
|
||||
|
||||
if (SemaRef.getLangOptions().CPlusPlus &&
|
||||
|
|
|
@ -87,3 +87,6 @@ template<typename T> using AliasTemplate = T; // expected-warning {{alias declar
|
|||
|
||||
inline namespace N { // expected-warning {{inline namespaces are incompatible with C++98}}
|
||||
}
|
||||
|
||||
auto auto_deduction = 0; // expected-warning {{'auto' type specifier is incompatible with C++98}}
|
||||
int *p = new auto(0); // expected-warning {{'auto' type specifier is incompatible with C++98}}
|
||||
|
|
Loading…
Reference in New Issue