bug fix for c-torture test execute/bf-sign-2.c

Joern Rennecke amylaar@cygnus.co.uk
Wed Oct 22 09:01:00 GMT 1997


>   In message < 199710221354.OAA31493@phal.cygnus.co.uk >you write:
>   > execute/bf-sign-2.c currently fails for targets with 16 bit ints.
>   > Here is a fix:
>   > 
>   > Wed Oct 22 14:08:50 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
>   > 
>   > 	* execute/bf-sign-2.c (struct X): New member u15.
>   > 	(main): Check u15.  Check for u31 depends on size of int.
> I don't remember this failing for the mn10200, which is a 16bit int
> target.  Maybe you should describe why it's failing on yours so that
> we can understand your patch.

The 31 bit unsigned bitfield is promoted to unsigned long int, not
signed long int.  Hence the check fails.  I found this for the d10v
port (which also supports 64 bit long long), and then checked the h8300:
it does the promotion the same way (but it doesn't show for a torture
test because the h8300 has only 32 bit long long, hence the test is skipped).



More information about the Gcc mailing list