[clang] [Clang] enhance diagnostic by attaching source location to deduced type in trailing return without auto (PR #115786)
Oleksandr T. via cfe-commits
cfe-commits at lists.llvm.org
Tue Nov 12 10:29:27 PST 2024
================
@@ -4887,9 +4887,20 @@ static TypeSourceInfo *GetFullTypeForDeclarator(TypeProcessingState &state,
cast<AutoType>(T)->getKeyword() !=
AutoTypeKeyword::Auto ||
cast<AutoType>(T)->isConstrained())) {
- S.Diag(D.getDeclSpec().getTypeSpecTypeLoc(),
- diag::err_trailing_return_without_auto)
- << T << D.getDeclSpec().getSourceRange();
+ // Attach a valid source location for diagnostics on functions with
+ // trailing return types missing 'auto'. Attempt to get the location
+ // from the declared type; if invalid, fall back to the trailing
+ // return type's location.
+ SourceLocation Loc = D.getDeclSpec().getTypeSpecTypeLoc();
+ SourceRange SR = D.getDeclSpec().getSourceRange();
+ if (Loc.isInvalid()) {
+ TypeSourceInfo *TSI = nullptr;
+ S.GetTypeFromParser(FTI.getTrailingReturnType(), &TSI);
+ TypeLoc TSILoc = TSI->getTypeLoc();
+ Loc = TSILoc.getBeginLoc();
----------------
a-tarasyuk wrote:
I've changed., thanks
https://github.com/llvm/llvm-project/pull/115786
More information about the cfe-commits
mailing list