[Bug lto/45586] [4.6 Regression] ICE non-trivial conversion at assignment

rguenth at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Wed Sep 8 09:36:00 GMT 2010



------- Comment #3 from rguenth at gcc dot gnu dot org  2010-09-08 09:36 -------
Confirmed.  We have two different array3_real(kind=8) record types that are
not considered compatible.  One data pointer member is restrict qualified
while the other one is not.

Why do we have an aggregate assignment of an array descriptor anyway?

  struct array3_real(kind=8) y;
  struct realspace_grid_type * D.2157;

<bb 2>:
  y.data = 0B;
  D.2157_5 = *x_4(D);
  y = D.2157_5->r;
  D.2172_6 = y.data;

The issue here is of course that LTO re-computes TYPE_CANONICAL and the FE
sets it in a way that the above situation is not detected as non-trivial
conversion.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |lto
   Last reconfirmed|0000-00-00 00:00:00         |2010-09-08 09:36:18
               date|                            |


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



More information about the Gcc-bugs mailing list