diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 310b3b92939dbe7ef7bc97e40afef31361335c28..0bc0f1ed72e62f5ca04b1efe3e606680768d97b4 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -1154,7 +1154,7 @@ static std::string getMangledNameImpl(const CodeGenModule &CGM, GlobalDecl GD, IdentifierInfo *II = ND->getIdentifier(); assert(II && "Attempt to mangle unnamed decl."); const auto *FD = dyn_cast(ND); - const auto *MD = dyn_cast(FD); + const auto *MD = dyn_cast(ND); if (FD && FD->getType()->castAs()->getCallConv() == CC_X86RegCall) { diff --git a/clang/lib/Parse/ParseDecl.cpp b/clang/lib/Parse/ParseDecl.cpp index 7f4931f5731b5ab975e2a1d1c4d2a0675b632a4b..20b40259a8c8a59a1a947ebc41d0b5602c7d5bbc 100644 --- a/clang/lib/Parse/ParseDecl.cpp +++ b/clang/lib/Parse/ParseDecl.cpp @@ -2043,14 +2043,15 @@ Parser::DeclGroupPtrTy Parser::ParseDeclGroup(ParsingDeclSpec &DS, SmallVector DeclsInGroup; Decl *FirstDecl = ParseDeclarationAfterDeclaratorAndAttributes( D, ParsedTemplateInfo(), FRI); - if (auto FD = dyn_cast(FirstDecl)) { - FD->setHasThisParam(D.hasThisParam); - } + if (LateParsedAttrs.size() > 0) ParseLexedAttributeList(LateParsedAttrs, FirstDecl, true, false); D.complete(FirstDecl); - if (FirstDecl) + if (FirstDecl) { + if (auto FD = dyn_cast(FirstDecl)) + FD->setHasThisParam(D.hasThisParam); DeclsInGroup.push_back(FirstDecl); + } bool ExpectSemi = Context != DeclaratorContext::ForInit;