Author: rsmith Date: Tue May 15 14:27:30 2018 New Revision: 332401 URL: http://llvm.org/viewvc/llvm-project?rev=332401&view=rev Log: Don't produce a redundant "auto type is incompatible with C++98" on every lambda with no explicit return type.
We already warned about the lambda, and we don't have a source location for the imagined "auto" anyway. Modified: cfe/trunk/lib/Sema/SemaType.cpp cfe/trunk/test/SemaCXX/cxx98-compat.cpp Modified: cfe/trunk/lib/Sema/SemaType.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Sema/SemaType.cpp?rev=332401&r1=332400&r2=332401&view=diff ============================================================================== --- cfe/trunk/lib/Sema/SemaType.cpp (original) +++ cfe/trunk/lib/Sema/SemaType.cpp Tue May 15 14:27:30 2018 @@ -2962,9 +2962,11 @@ static QualType GetDeclSpecTypeForDeclar T = SemaRef.Context.IntTy; D.setInvalidType(true); - } else if (!HaveTrailing) { + } else if (!HaveTrailing && + D.getContext() != DeclaratorContext::LambdaExprContext) { // If there was a trailing return type, we already got // warn_cxx98_compat_trailing_return_type in the parser. + // If this was a lambda, we already warned on that too. SemaRef.Diag(AutoRange.getBegin(), diag::warn_cxx98_compat_auto_type_specifier) << AutoRange; Modified: cfe/trunk/test/SemaCXX/cxx98-compat.cpp URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/SemaCXX/cxx98-compat.cpp?rev=332401&r1=332400&r2=332401&view=diff ============================================================================== --- cfe/trunk/test/SemaCXX/cxx98-compat.cpp (original) +++ cfe/trunk/test/SemaCXX/cxx98-compat.cpp Tue May 15 14:27:30 2018 @@ -47,6 +47,8 @@ namespace TemplateParsing { void Lambda() { []{}(); // expected-warning {{lambda expressions are incompatible with C++98}} + // Don't warn about implicit "-> auto" here. + [](){}(); // expected-warning {{lambda expressions are incompatible with C++98}} } struct Ctor { _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits