aboutsummaryrefslogtreecommitdiff
path: root/clang/lib
diff options
context:
space:
mode:
authorAshwin Banwari <ashwinkbanwari@gmail.com>2025-07-01 18:52:10 -0700
committerGitHub <noreply@github.com>2025-07-02 09:52:10 +0800
commit2599a9aeb543f01cb20e3fdc2713aa8c8cb20fbf (patch)
tree30524bb486a93595f7011513d852bc0edbe26ca1 /clang/lib
parent3deed4211a46632a25b1b558b357273a5ce4ee96 (diff)
downloadllvm-2599a9aeb543f01cb20e3fdc2713aa8c8cb20fbf.zip
llvm-2599a9aeb543f01cb20e3fdc2713aa8c8cb20fbf.tar.gz
llvm-2599a9aeb543f01cb20e3fdc2713aa8c8cb20fbf.tar.bz2
[clang] [modules] Implement P3618R0: Allow attaching main to the global module (#146461)
Remove the prior warning for attaching extern "C++" to main.
Diffstat (limited to 'clang/lib')
-rw-r--r--clang/lib/Sema/SemaDecl.cpp9
1 files changed, 3 insertions, 6 deletions
diff --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index a34e2c9..61b82b8 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -12400,12 +12400,9 @@ bool Sema::CheckFunctionDeclaration(Scope *S, FunctionDecl *NewFD,
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();
+ // The main function shall not be declared with C linkage-specification.
+ if (FD->isExternCContext())
+ Diag(FD->getLocation(), diag::ext_main_invalid_linkage_specification);
// C++11 [basic.start.main]p3:
// A program that [...] declares main to be inline, static or