jcranmer-intel added inline comments.
================
Comment at: clang/lib/Sema/SemaExpr.cpp:17317-17319
+ if (TInfo->getType()->isSpecificBuiltinType(BuiltinType::Float) ||
+ TInfo->getType()->isSpecificBuiltinType(BuiltinType::Half))
PromoteType = Context.DoubleTy;
----------------
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.
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