[clang] [Clang] strengthen checks for 'main' function to meet [basic.start.main] p3 requirements (PR #101853)
via cfe-commits
cfe-commits at lists.llvm.org
Tue Aug 6 05:47:22 PDT 2024
================
@@ -990,6 +990,12 @@ def warn_main_redefined : Warning<"variable named 'main' with external linkage "
"has undefined behavior">, InGroup<Main>;
def ext_main_used : Extension<
"referring to 'main' within an expression is a Clang extension">, InGroup<Main>;
+def ext_main_invalid_linkage_specification : ExtWarn<
+ "'main' should not be "
+ "'extern \"%select{C|C++}0\"'">, InGroup<Main>;
+def err_main_invalid_linkage_specification : Error<
+ "'main' should not be "
+ "'extern \"%select{C|C++}0\"'">;
----------------
Sirraide wrote:
Thinking about this again, I think making these an error by default is a bit too strong; no-one else does that by default; the most you’ll get is a warning from EDG and a pedantic warning from GCC. I think making this a single `ExtWarn` is fine.
https://github.com/llvm/llvm-project/pull/101853
More information about the cfe-commits
mailing list