[clang] [clang-cl] Add support for [[msvc::constexpr]] C++11 attribute (PR #71300)

Erich Keane via cfe-commits cfe-commits at lists.llvm.org
Thu Dec 7 06:53:26 PST 2023


================
@@ -2884,6 +2884,12 @@ def warn_cxx11_compat_constexpr_body_multiple_return : Warning<
   InGroup<CXXPre14Compat>, DefaultIgnore;
 def note_constexpr_body_previous_return : Note<
   "previous return statement is here">;
+def err_ms_constexpr_not_distinct : Error<
+  "[[msvc::constexpr]] cannot be applied to a %select{constexpr|consteval}0 function %1">;
+def err_ms_constexpr_virtual : Error<"virtual function cannot be [[msvc::constexpr]]">;
+def warn_ms_constexpr_no_effect : Warning<
+  "[[msvc::constexpr]] has effect only on function definitions and return statements">,
----------------
erichkeane wrote:

I am also wondering why this is not an error?  The 'subjects' definition of the attribute uses it as an error, why not here too?  If so, you can simplify this diagnostic phrasing better.

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


More information about the cfe-commits mailing list