aaron.ballman added inline comments.

================
Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:2725
+def warn_cxx20_compat_constexpr_var : Warning<
+  "definition of a %select{static variable|thread_local variable|variable of 
non-literal type}1 "
   "in a constexpr %select{function|constructor}0 "
----------------
You should re-flow the whole diagnostic to the usual 80-col limit.


================
Comment at: clang/lib/Sema/SemaDeclCXX.cpp:1904-1912
+        if(SemaRef.LangOpts.CPlusPlus2b) {
+            if(!VD->getType()->isLiteralType(SemaRef.Context))
+                
SemaRef.Diag(VD->getLocation(),diag::warn_cxx20_compat_constexpr_var)
+                        << isa<CXXConstructorDecl>(Dcl)
+                        << 2;
+        }
+        else if (CheckLiteralType(SemaRef, Kind, VD->getLocation(), 
VD->getType(),
----------------
Formatting looks off here (I was expecting the `else if` on the same line as 
the curly brace, but maybe clang-format is being weird?)


================
Comment at: clang/lib/Sema/SemaDeclCXX.cpp:1908
+                        << isa<CXXConstructorDecl>(Dcl)
+                        << 2;
+        }
----------------



================
Comment at: clang/test/SemaCXX/constant-expression-cxx2b.cpp:99
     return 0;
-  NonLiteral n;
+  NonLiteral n; // expected-warning {{definition of a variable of non-literal 
type in a constexpr function is incompatible with C++ standards before C++2b}}
 }
----------------
Shouldn't this be a `cxx2b-warning` instead?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D122249/new/

https://reviews.llvm.org/D122249

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to