[PATCH] D60934: [clang] adding explicit(bool) from c++2a

Arthur O'Dwyer via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sat Apr 20 07:54:34 PDT 2019


Quuxplusone added inline comments.


================
Comment at: clang/include/clang/AST/DeclCXX.h:2620
+
+  bool hasExplicitSpecifer() const {
+    return ExplicitSpecifier.getInt() != ESF_resolved_false ||
----------------
s/Specifer/Specifier/ (and please `git grep` for other instances of the same typo)


================
Comment at: clang/include/clang/Basic/DiagnosticParseKinds.td:40
+def note_explicit_bool_breaking_change_cxx2a : Note<
+  "this expression is parsed as explicit(bool) since c++2a">;
+
----------------
"C++2a" should be uppercased.


================
Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:2125
+def err_deduction_guide_explicit_bool : Error<
+  "explicit specfier of a deduction guide cannot depend on a constant expression">;
 def err_deduction_guide_specialized : Error<"deduction guide cannot be "
----------------
s/specfier/specifier/ (and please git grep for other instances)


================
Comment at: clang/lib/Sema/DeclSpec.cpp:959
+  // Each decl-specifier shall appear at most once in a complete
+  // decl-specifier-seq, except that long may appear twice.
+  if (hasExplicitSpecifier()) {
----------------
Spelling/grammar/capitalization-of-C++2a.
Also, it seems to me that you've got a CWG wording issue here: what does N4810 mean by "Each //decl-specifier// shall appear at most once in a complete //decl-specifier-seq//, except that `long` may appear twice"? What is "each" decl-specifier? Is `explicit(true)` a different decl-specifier from `explicit(1+1==2)`? Is `explicit(true)` different from `explicit(false)`?


================
Comment at: clang/test/SemaCXX/explicit.cpp:189
+
+#if __cplusplus < 201707L
   void testNew()
----------------
Why?


Repository:
  rC Clang

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

https://reviews.llvm.org/D60934





More information about the cfe-commits mailing list