================
@@ -8052,15 +8061,13 @@ NamedDecl *Sema::ActOnVariableDeclarator(
}
// Special handling of variable named 'main'.
- if (Name.getAsIdentifierInfo() && Name.getAsIdentifierInfo()->isStr("main")
&&
- NewVD->getDeclContext()->getRedeclContext()->isTranslationUnit() &&
- !getLangOpts().Freestanding && !NewVD->getDescribedVarTemplate()) {
-
+ if (isMainVar(Name, NewVD) && !getLangOpts().Freestanding) {
// C++ [basic.start.main]p3
// A program that declares a variable main at global scope is ill-formed.
- if (getLangOpts().CPlusPlus)
- Diag(D.getBeginLoc(), diag::err_main_global_variable);
-
+ if (getLangOpts().CPlusPlus) {
+ if (!CheckLinkageSpecification(DC, NewVD))
----------------
Sirraide wrote:
[[basic.start.main]p1](https://eel.is/c++draft/basic.start.main#3.1):
> a variable `main` that belongs to the global scope, or
https://github.com/llvm/llvm-project/pull/101853
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits