[clang] Don't wrap immediate invocations in ConstantExprs within constexpr initializers (PR #89565)

Daniel M. Katz via cfe-commits cfe-commits at lists.llvm.org
Mon Apr 29 06:48:20 PDT 2024


================
@@ -16548,11 +16548,10 @@ static void CheckImplicitConversion(Sema &S, Expr *E, QualType T,
         std::string PrettySourceValue = toString(Value, 10);
         std::string PrettyTargetValue = PrettyPrintInRange(Value, TargetRange);
 
-        S.DiagRuntimeBehavior(
-            E->getExprLoc(), E,
-            S.PDiag(diag::warn_impcast_integer_precision_constant)
-                << PrettySourceValue << PrettyTargetValue << E->getType() << T
-                << E->getSourceRange() << SourceRange(CC));
----------------
katzdm wrote:

I'm fine either way, but the following three warning diagnostics are lost without this change:
- [CXX/expr/expr.const/p2-0x.cpp#L247](https://github.com/llvm/llvm-project/blob/main/clang/test/CXX/expr/expr.const/p2-0x.cpp#L247)
- [CXX/expr/expr.const/p2-0x.cpp$248](https://github.com/llvm/llvm-project/blob/main/clang/test/CXX/expr/expr.const/p2-0x.cpp#L248)
- [AST/Interp/intap.cpp#L12](https://github.com/llvm/llvm-project/blob/main/clang/test/AST/Interp/intap.cpp#L12)

I think @erichkeane previously objected to losing these diagnostics.

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


More information about the cfe-commits mailing list