[clang] [C23] Implement N3018: The constexpr specifier for object definitions (PR #73099)

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Tue Nov 28 09:00:02 PST 2023


================
@@ -2932,6 +2932,22 @@ def warn_private_extern : Warning<
 def note_private_extern : Note<
   "use __attribute__((visibility(\"hidden\"))) attribute instead">;
 
+// C23 constexpr
+def err_c23_thread_local_constexpr : Error<
+  "thread-local storage is not allowed with constexpr">;
+def err_c23_extern_constexpr : Error<
+  "extern specifier is not allowed with constexpr">;
----------------
AaronBallman wrote:

I think we want to reuse `err_invalid_decl_spec_combination` for these diagnostics; and probably issue the diagnostic from `DeclSpec::Finish()` as well (which is where we diagnose other invalid combinations of declaration specifiers).

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


More information about the cfe-commits mailing list