[Bug middle-end/38428] [4.4 Regression] ice for Linux kernel code with -O2

2008-12-06 Thread jakub at gcc dot gnu dot org


--- Comment #6 from jakub at gcc dot gnu dot org  2008-12-06 21:17 ---
Fixed.


-- 

jakub at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38428



[Bug middle-end/38428] [4.4 Regression] ice for Linux kernel code with -O2

2008-12-06 Thread jakub at gcc dot gnu dot org


--- Comment #5 from jakub at gcc dot gnu dot org  2008-12-06 21:08 ---
Subject: Bug 38428

Author: jakub
Date: Sat Dec  6 21:06:43 2008
New Revision: 142527

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=142527
Log:
PR middle-end/38428
* tree-ssa-operands.c (get_expr_operands) : Set
gimple_set_has_volatile_ops if the BIT_FIELD_REF is volatile.

* gcc.c-torture/compile/pr38428.c: New test.

Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr38428.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-ssa-operands.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38428



[Bug middle-end/38428] [4.4 Regression] ice for Linux kernel code with -O2

2008-12-06 Thread jakub at gcc dot gnu dot org


--- Comment #4 from jakub at gcc dot gnu dot org  2008-12-06 13:06 ---
Apparently caused by my PR37248 patch.  We have a volatile bitfield, and the
patch (similarly to 4.3) creates a TREE_THIS_VOLATILE TREE_SIDE_EFFECTS
BIT_FIELD_REF, but apparently the trunk is upset about it.

Either we just don't try to optimize volatile bitfields at all (don't create
BIT_FIELD_REFs for them), or some changes are needed to handle volatile
BIT_FIELD_REFs.


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38428



[Bug middle-end/38428] [4.4 Regression] ice for Linux kernel code with -O2

2008-12-06 Thread rguenth at gcc dot gnu dot org


--- Comment #3 from rguenth at gcc dot gnu dot org  2008-12-06 13:05 ---
typedef unsigned int __u32;
typedef __u32 uint32_t;
typedef struct {
volatile struct {
uint32_t online : 1;
} flags;
} scsi_qla_host_t;
int qla2x00_wait_for_hba_online(scsi_qla_host_t *ha) {
int return_status;
scsi_qla_host_t *pha = to_qla_parent(ha);
if (pha->flags.online)   
  return_status = (0x4000 & 0x3fff);
else   
  return_status = 0x102;
return (return_status);
}


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
 Ever Confirmed|0   |1
   Last reconfirmed|-00-00 00:00:00 |2008-12-06 13:05:03
   date||


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38428



[Bug middle-end/38428] [4.4 Regression] ice for Linux kernel code with -O2

2008-12-06 Thread rguenth at gcc dot gnu dot org


-- 

rguenth at gcc dot gnu dot org changed:

   What|Removed |Added

  Component|c   |middle-end
   Keywords||ice-on-valid-code
  Known to work||4.3.2
Summary|ice for Linux kernel code   |[4.4 Regression] ice for
   |with -O2|Linux kernel code with -O2
   Target Milestone|--- |4.4.0


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38428