This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: partial fix for 18008


Richard Henderson <rth@redhat.com> writes:

>         * combine.c (make_field_assignment): Simplify store to zero_extract
>         from a source with an overlapping mask.

Breaks on ia64:

$ cat cpu.ii
typedef unsigned int Bit32u;
struct S_Descriptor {
 Bit32u :32;
 Bit32u base_16_23 :8;
 Bit32u type :5;
};
struct Descriptor
{
 union {
  struct S_Descriptor seg;
  Bit32u fill[2];
 } saved;
};
struct Descriptor desc;
void CPU_SwitchTask()
{
 desc.saved.seg.type&=~2;
}
$ /tmp/cvs/gcc-test-200501262200/Build/gcc/cc1plus -O cpu.ii 
 void CPU_SwitchTask()

Analyzing compilation unit
Performing intraprocedural optimizations
Assembling functions:
 void CPU_SwitchTask()

cpu.ii: In function âvoid CPU_SwitchTask()â:
cpu.ii:18: internal compiler error: in trunc_int_for_mode, at explow.c:53
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

Andreas.

-- 
Andreas Schwab, SuSE Labs, schwab@suse.de
SuSE Linux Products GmbH, MaxfeldstraÃe 5, 90409 NÃrnberg, Germany
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5
"And now for something completely different."


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]