aaron.ballman added a comment.

Precommit CI still has a related failure, it seems.



================
Comment at: clang/lib/Sema/SemaExpr.cpp:17317-17319
+    if (TInfo->getType()->isSpecificBuiltinType(BuiltinType::Float) ||
+        TInfo->getType()->isSpecificBuiltinType(BuiltinType::Half))
       PromoteType = Context.DoubleTy;
----------------
jcranmer-intel wrote:
> aaron.ballman wrote:
> > Hmmm... the existing code seems wrong to me because it's not paying any 
> > attention to `FLT_EVAL_METHOD`, but I think it probably should? CC 
> > @jcranmer-intel @zahiraam for opinions.
> > 
> > Actually, I wonder if the correct approach here is to split 
> > `Sema::DefaultArgumentPromotion()` up so that we can calculate what the 
> > default argument promoted type is of the expression independent of 
> > performing the actual promotion, and call the promotion type calculation 
> > logic here?
> C23 6.5.2.2p6 [draft N3096] says "trailing arguments that have type `float` 
> are promoted to `double`". `FLT_EVAL_METHOD` shouldn't need to apply here, 
> since it's largely about reflecting that things like x87 using 80-bit 
> precision internally, and not actual argument passing.
Ah that's good to know, thank you!


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D156054

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

Reply via email to