diff options
Diffstat (limited to 'clang/lib/Sema')
| -rw-r--r-- | clang/lib/Sema/SemaStmt.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/clang/lib/Sema/SemaStmt.cpp b/clang/lib/Sema/SemaStmt.cpp index 464206eafe3..c03ac86de05 100644 --- a/clang/lib/Sema/SemaStmt.cpp +++ b/clang/lib/Sema/SemaStmt.cpp @@ -2755,8 +2755,11 @@ bool Sema::DeduceFunctionTypeFromReturnExpr(FunctionDecl *FD, SourceLocation ReturnLoc, Expr *&RetExpr, AutoType *AT) { - TypeLoc OrigResultType = FD->getTypeSourceInfo()->getTypeLoc(). - IgnoreParens().castAs<FunctionProtoTypeLoc>().getReturnLoc(); + TypeLoc TL = FD->getTypeSourceInfo()->getTypeLoc(); + if (auto ATL = TL.getAs<AttributedTypeLoc>()) + TL = ATL.getModifiedLoc(); + TypeLoc OrigResultType = + TL.IgnoreParens().castAs<FunctionProtoTypeLoc>().getReturnLoc(); QualType Deduced; if (RetExpr && isa<InitListExpr>(RetExpr)) { |

