[clang] [Clang][Parser] Accept P2741R3 (static_assert with user-generated message) in C++11 as an extension (PR #102044)

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Tue Aug 6 09:05:41 PDT 2024


================
@@ -671,10 +671,8 @@ static void InitializeCPlusPlusFeatureTestMacros(const LangOptions &LangOpts,
                         LangOpts.CPlusPlus23   ? "202211L"
                         : LangOpts.CPlusPlus17 ? "201603L"
                                                : "200907");
-    Builder.defineMacro("__cpp_static_assert", LangOpts.CPlusPlus26 ? "202306L"
-                                               : LangOpts.CPlusPlus17
-                                                   ? "201411L"
-                                                   : "200410");
+    // C++17 / C++26 static_assert backported
+    Builder.defineMacro("__cpp_static_assert", "202306L");
----------------
AaronBallman wrote:

I agree with @cor3ntin -- pedantic errors and feature testing are a wider concern; in addition to #77262 we also have #84372 which is a similar problem but with `__has_extension` and pedantic errors.

In your example, the user is getting precisely what they asked for and I don't see the issue. They explicitly opt in to diagnostics about code that uses extensions in C++14 mode, so the diagnostic warning is expected. And they explicitly opt to make all warnings be errors, so upgrading the warning to an error is expected.

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


More information about the cfe-commits mailing list