[PATCH] D53738: [Fixed Point Arithmetic] Fixed Point Addition
Bevin Hansson via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Fri Nov 30 00:37:47 PST 2018
ebevhan added inline comments.
================
Comment at: clang/lib/Sema/SemaExpr.cpp:1304
+ RHSTy = ResultTy;
+ }
+
----------------
rjmccall wrote:
> Hmm. So adding a signed integer to an unsigned fixed-point type always converts the integer to unsigned? That's a little weird, but only because the fixed-point rule seems to be the other way. Anyway, I assume it's not a bug in the spec.
`handleFixedPointConversion` only calculates the result type of the expression, not the calculation type. The final result type of the operation will be the unsigned fixed-point type, but the calculation itself will be done in a signed type with enough precision to represent both the signed integer and the unsigned fixed-point type.
Though, if the result ends up being negative, the final result is undefined unless the type is saturating. I don't think there is a test for the saturating case (signed integer + unsigned saturating fixed-point) in the SaturatedAddition tests.
Repository:
rC Clang
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D53738/new/
https://reviews.llvm.org/D53738
More information about the cfe-commits
mailing list