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

via cfe-commits cfe-commits at lists.llvm.org
Mon Apr 29 07:40:14 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));
----------------
cor3ntin wrote:

FYI, C23 has the behavior that I expected C++ to have https://compiler-explorer.com/z/YTzMq6Geh
C++ only complain about narrowing with braces init list.
It seems intended but it is a very odd behavior 
We still have a bug of duplicated warning https://compiler-explorer.com/z/958dfG3G5

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


More information about the cfe-commits mailing list