forked from OSchip/llvm-project
Specialize the diagnostic complaining about conflicting types of
return statements within a lambda; this diagnostic previously referred to blocks. llvm-svn: 150584
This commit is contained in:
parent
d8c61785ed
commit
b9e38f19f7
|
@ -4142,8 +4142,8 @@ def err_typecheck_convert_incompatible : Error<
|
|||
"%select{none|const|restrict|const and restrict|volatile|const and volatile|"
|
||||
"volatile and restrict|const, volatile, and restrict}6)}4">;
|
||||
def err_typecheck_missing_return_type_incompatible : Error<
|
||||
"return type %0 must match previous return type %1 when block"
|
||||
" literal has unspecified explicit return type">;
|
||||
"return type %0 must match previous return type %1 when %select{block "
|
||||
"literal|lambda expression}2 has unspecified explicit return type">;
|
||||
|
||||
def warn_incompatible_qualified_id : Warning<
|
||||
"%select{assigning to|passing|returning|converting|initializing|sending|casting}2"
|
||||
|
|
|
@ -1847,9 +1847,9 @@ Sema::ActOnCapScopeReturnStmt(SourceLocation ReturnLoc, Expr *RetValExp) {
|
|||
!CurCap->ReturnType->isDependentType() &&
|
||||
!ReturnT->isDependentType() &&
|
||||
!Context.hasSameType(ReturnT, CurCap->ReturnType)) {
|
||||
// FIXME: Adapt diagnostic for lambdas.
|
||||
Diag(ReturnLoc, diag::err_typecheck_missing_return_type_incompatible)
|
||||
<< ReturnT << CurCap->ReturnType;
|
||||
<< ReturnT << CurCap->ReturnType
|
||||
<< getCurLambda() != 0;
|
||||
return StmtError();
|
||||
}
|
||||
CurCap->ReturnType = ReturnT;
|
||||
|
|
|
@ -37,8 +37,8 @@ X infer_X_return_type_fail(X x) {
|
|||
return [x](int y) { // expected-warning{{omitted result type}}
|
||||
if (y > 0)
|
||||
return X();
|
||||
else // FIXME: shouldn't mention blocks
|
||||
return x; // expected-error{{return type 'const X' must match previous return type 'X' when block literal has unspecified explicit return type}}
|
||||
else
|
||||
return x; // expected-error{{return type 'const X' must match previous return type 'X' when lambda expression has unspecified explicit return type}}
|
||||
}(5);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue