[clang] [Clang] strengthen checks for 'main' function to meet [basic.start.main] p2 requirements (PR #101853)

via cfe-commits cfe-commits at lists.llvm.org
Mon Aug 5 02:56:21 PDT 2024


================
@@ -7353,6 +7353,15 @@ void emitReadOnlyPlacementAttrWarning(Sema &S, const VarDecl *VD) {
   }
 }
 
+static bool isMainVar(DeclarationName Name, VarDecl *VD) {
+  if (Name.getAsIdentifierInfo() && Name.getAsIdentifierInfo()->isStr("main") &&
+      !VD->getDescribedVarTemplate()) {
+    const DeclContext *DC = VD->getDeclContext();
+    return DC->getRedeclContext()->isTranslationUnit() || DC->isLinkageSpec();
----------------
Sirraide wrote:

Just `VD->isExternC()` instead of `VD->getLanguageLinkage() == CLanguageLinkage` should be enough.

https://github.com/llvm/llvm-project/pull/101853


More information about the cfe-commits mailing list