hazohelet added a comment.

Thanks for the feedback.



================
Comment at: clang/test/SemaCXX/warn-constant-evaluated-constexpr.cpp:38
 constexpr int fn5() {
-  if constexpr (__builtin_is_constant_evaluated()) // expected-warning 
{{'__builtin_is_constant_evaluated' will always evaluate to 'true' in a 
manifestly constant-evaluated expression}}
+  if constexpr (__builtin_is_constant_evaluated()) // expected-warning 
{{'__builtin_is_constant_evaluated' will always evaluate to true in this 
context}}
     return 0;
----------------
cjdb wrote:
> This should also generate a fix-it hint, since we can automate the fix.
I think it's reasonable to show fix-it hint to remove `constexpr` here.
For that we need to store the source range of `constexpr` in evaluation context 
record if it's constexpr-if condition.


================
Comment at: clang/test/SemaCXX/warn-tautological-meta-constant.cpp:18
+  } else {
+    if constexpr (std::is_constant_evaluated()) { // expected-warning {{always 
evaluate to true}}
+      return 0;
----------------
cjdb wrote:
> I'm not a fan of this diagnostic text: it doesn't offer insight into what's 
> gone wrong or provide actionable feedback on how to fix the code.
I agree that the current wording (`... will always evaluate to true in this 
context`) is not great, but I'm not sure how to improve it because the reason 
to see this diagnostic would mostly be a misunderstanding of the C++ const 
semantics.
At least, if the appearance of `is_constant_evaluated` is in the condition of 
constexpr-if, probably we can say they should remove `constexpr`.
CC @aaron.ballman 


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

https://reviews.llvm.org/D155064

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

Reply via email to