https://sourceware.org/bugzilla/show_bug.cgi?id=21934

--- Comment #14 from Brett Neumeier <bneumeier at gmail dot com> ---
(In reply to H.J. Lu from comment #13)
> There is cast to (unsigned char).  Why does GCC see that?  Why does
> it only happen on arm? Also does 'hh" work with all compilers on all
> supported hosts?

Per Martin Sebor's comment, the possible-truncation warning "tends to be
sensitive to char (and short) conversions because of limitations in its
integration with the Value Range Propagation pass." I am not sure precisely
what that means, but I presume that's why the cast is not sufficient to
suppress the false positive warning.

I don't know what circumstances trigger this false positive. I stumbled upon it
in an arm-to-x86_64 cross-binutils build, but I expect that there are other
scenarios where it can occur -- possibly some native builds do, and possibly
other cross-builds do. I don't have the time or energy to do exhaustive tests
to see which combinations trigger the issue.

I don't know everything that is included in the "all compilers and all
supported hosts" set. I do see that the "hh" flag is mandated by C99, but not
by C89.

Are there C89 compilers that binutils needs to support? If so, would a
preprocessor test that adds the "hh" flag only in C99 and later make this patch
acceptable?

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to