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 middle-end/86122] [8/9 Regression] ICE in useless_type_conversion_p, at gimple-expr.c:87


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86122

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2018-06-13
                 CC|                            |glisse at gcc dot gnu.org,
                   |                            |rguenth at gcc dot gnu.org
          Component|c                           |middle-end
   Target Milestone|---                         |8.2
     Ever confirmed|0                           |1

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.

  /* (A +- CST1) +- CST2 -> A + CST3
     Use view_convert because it is safe for vectors and equivalent for
     scalars.  */
  (for outer_op (plus minus)
...
           /* Last resort, use some unsigned type.  */
           (with { tree utype = unsigned_type_for (type); }
            (view_convert (inner_op
                           (view_convert:utype @0)
                           (view_convert:utype
                            { drop_tree_overflow (cst); })))))))))))))

but utype is NULL_TREE here.  type is <complex_type 0x7ffff68b4e70 complex int>

signed_or_unsigned_type_for doesn't handle COMPLEX_TYPE.

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