================ @@ -12210,7 +12220,18 @@ bool Sema::CheckFunctionDeclaration(Scope *S, FunctionDecl *NewFD, return Redeclaration; } -void Sema::CheckMain(FunctionDecl* FD, const DeclSpec& DS) { +void Sema::CheckMain(FunctionDecl *FD, const DeclSpec &DS) { + // [basic.start.main]p3 + // The main function shall not be declared with a linkage-specification. + if (FD->isExternCContext() || + (FD->isExternCXXContext() && + FD->getDeclContext()->getRedeclContext()->isTranslationUnit())) { + Diag(FD->getLocation(), diag::ext_main_invalid_linkage_specification) + << FD->getLanguageLinkage(); + FD->setInvalidDecl(); + return; ---------------- a-tarasyuk wrote:
@alexfh I’ll look into it today. Thanks for bringing this additional case to my attention. https://github.com/llvm/llvm-project/pull/101853 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits