cor3ntin added inline comments.

================
Comment at: clang/include/clang/Basic/DiagnosticSemaKinds.td:1491
+def err_constexpr_if_condition_expression_is_not_constant : Error<
+  "constexpr if condition is not a constant expression convertible to bool">;
 def err_static_assert_failed : Error<"static_assert failed%select{ %1|}0">;
----------------
mizvekov wrote:
> Looks a bit easier to parse the english there.
I would rather not change that, to remain consistent with existing diagnostics 
involving `constexpr if`
But I agree it might be good to change them all


================
Comment at: clang/test/CXX/stmt.stmt/stmt.select/stmt.if/p2.cpp:1-4
 // RUN: %clang_cc1 -std=c++1z -verify %s
 // RUN: %clang_cc1 -std=c++1z -verify %s -DUNDEFINED
+// RUN: %clang_cc1 -std=c++2b -verify %s
+// RUN: %clang_cc1 -std=c++2b -verify %s -DUNDEFINED
----------------
mizvekov wrote:
> I think attaching the expected diagnostics to the lines that generate them 
> looks clearer and is easier to maintain.
> 
> The problem is that it seems you are having to work around that some of these 
> errors are conditional on the std version, and it would indeed be quite a 
> bite noisier with the preprocessor there, but there is a simple solution: 
> with the suggested edit above, you can do things like:
> ````
> // cxx17-error {{value of type 'ccce::S' is not implicitly convertible to 
> 'bool'}}
> // cxx2b-error {{value of type 'ccce::S' is not contextually convertible to 
> 'bool'}}
> ````
> But you can still do `expected-note {{cannot be used in a constant 
> expression}}` in order to expect diagnostics for all versions.
Thanks, much better, I did not know it was an option


================
Comment at: clang/test/CXX/stmt.stmt/stmt.select/stmt.if/p2.cpp:43
 namespace ccce {
+struct S {
+} s;
----------------
mizvekov wrote:
> This is not consistently indented.
Unfortunately, it was put there by clang-format, should I move it manually?


================
Comment at: clang/test/CXX/stmt.stmt/stmt.select/stmt.if/p2.cpp:71-72
+
+    constexpr S constexprS;
+    if constexpr (s) {
+    }
----------------
mizvekov wrote:
> Hmm what is this testing exactly? That `constexprS` is not getting confused 
> with `s`?
Indeed, will fix


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D105127

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

Reply via email to