https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67714
Nick Clifton <nickc at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |nickc at gcc dot gnu.org
--- Comment #9 from Nick Clifton <nickc at gcc dot gnu.org> ---
Created attachment 37543
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=37543&action=edit
Use SUBREG_PROMOTED_SIGNED_P in place of SUBREG_PROMOTES_SIGN
Hi Guys,
I am currently testing this patch locally. It appears to fix the bug, and I
hope that it will not introduce any regressions. We shall see. (I am testing
arm-eabi and x86_64-linux-gnu).
The problem, it appears to me is that the code in store_expr_with_bounds() is
using the SUBREG_PROMPTED_SIGN macro, which returns a tri-state value, as a
parameter to signed_or_unsigned_type_for(). This function, I think, but I am
not 100% sure, uses the parameter as a boolean, so really it should just be
told if the promotion is signed or unsigned, nothing else.
Cheers
Nick