This is the mail archive of the gcc-bugs@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]

[Bug tree-optimization/39041] ICE on valid during vrp2



------- Comment #2 from rguenth at gcc dot gnu dot org  2009-01-30 13:39 -------
Confirmed.  There's a type mismatch in the substituted statement:

pretmp.27_29 = *&cpumask.bits[0]

    arg 1 <indirect_ref 0x7ffff75267c0 type <integer_type 0x7ffff7e89540 int>

        arg 0 <addr_expr 0x7ffff752a180 type <pointer_type 0x7ffff7f71f00>
            constant invariant
            arg 0 <array_ref 0x7ffff7514730 type <integer_type 0x7ffff7e89600
unsigned int>

                arg 0 <component_ref 0x7ffff75147d0 type <array_type
0x7ffff7f71e40>
                    arg 0 <var_decl 0x7ffff7f3c8c0 cpumask> arg 1 <field_decl
0x7ffff7f3c820 bits>>
                arg 1 <integer_cst 0x7ffff7e79c00 constant invariant 0>>>>>

we have int and unsigned int.  The INDIRECT_REF has the wrong type.

forwprop causes this and creates

  int * a;
...
  a_15 = &cpumask.bits[D.1587_13];


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |rguenth at gcc dot gnu dot
                   |                            |org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2009-01-30 13:39:10
               date|                            |


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


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