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

            Bug ID: 83608
           Summary: [7/8 Regression] ICE in convert_move, at expr.c:229 in
                    GIMPLE store merging pass
           Product: gcc
           Version: unknown
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: tree-optimization
          Assignee: unassigned at gcc dot gnu.org
          Reporter: marxin at gcc dot gnu.org
                CC: jakub at gcc dot gnu.org, ktkachov at gcc dot gnu.org
  Target Milestone: ---

Starting from r241649 we ICE on:

$ cat ice.ii
template <typename> class b;
template <> struct b<float>
{
  float
  c ()
  {
    return __real__ d;
  }
  _Complex d;
};
void e (int, const char *);
template <class f>
void
g ()
{
  b<f> h;
  f *a = (f *) &h;
  a[0] = a[1] = 6;
  h.c () ? void() : e (7, __PRETTY_FUNCTION__);
}
int main () { g<float> (); return 0; }

$ g++ -O2 -c ice.ii
ice.ii: In function ‘int main()’:
ice.ii:18:3: internal compiler error: in convert_move, at expr.c:229
   a[0] = a[1] = 6;
   ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://bugs.opensuse.org/> for instructions.

Reply via email to