This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] ifcombine: Fix problem when optimizing 64 bit checks
On Wed, Jul 25, 2007 at 01:19:44PM +0200, Andreas Krebbel wrote:
>
> 2007-07-25 Andreas Krebbel <krebbel1@de.ibm.com>
>
> * gcc.dg/20070725-1.c: Testcase for revision 126876 added.
>
>
> Index: gcc/testsuite/gcc.dg/20070725-1.c
> ===================================================================
> *** /dev/null 1970-01-01 00:00:00.000000000 +0000
> --- gcc/testsuite/gcc.dg/20070725-1.c 2007-07-25 13:06:32.000000000 +0200
> ***************
> *** 0 ****
> --- 1,63 ----
> + /* This used to fail due to a ifcombine problem wrecking 64bit
> + checks. Fixed with rev. 126876. */
> + /* { dg-do run } */
> + /* { dg-options "-O1" } */
> +
> + struct tree_base
> + {
> + unsigned code:16;
> +
[snip]
> +
> + unsigned spare:24;
> + unsigned long a;
> + };
The testcase doesn't compile on m32c-unknown-elf:
FAIL: gcc.dg/20070725-1.c (test for excess errors)
Excess errors:
/n/12/rask/src/all/gcc/testsuite/gcc.dg/20070725-1.c:37: error: width of 'spare' exceeds its type
UNRESOLVED: gcc.dg/20070725-1.c compilation failed to produce executable
Do you think your testcase would still work (i.e. trigger the ifcombine
problem) if the spare field was split into two smaller fields? E.g.
unsigned spare1:16;
unsigned spare2:8;
--
Rask Ingemann Lambertsen