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

--- Comment #2 from Tobias Burnus <burnus at gcc dot gnu.org> ---
Created attachment 44831
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44831&action=edit
Partial draft patch

If I apply the attached patch (no idea whether it really makes sense, CLASS is
quite confusing!), it converts to gimple but then fails because of the
following.

For some odd reasons the gimplfier does not like that f951 assigns a value to
the digit 0 (last but one line of the "finally") ...
[Otherwise, the code looks fine to me.]

  struct __class__STAR_1_0p * point;
  struct __class__STAR_1_0p class.0;
     class.0._data = __tmp_class_object_array_pointer->_data->p._data;
     class.0._vptr = __tmp_class_object_array_pointer->_data->p._vptr;
...
     point = &class.0;
...
 finally
   {
     __tmp_class_object_array_pointer->_data->p._data = class.0._data;
     __tmp_class_object_array_pointer->_data->p._vptr = class.0._vptr;
     0 = (unsigned long) class.0._len;
     __tmp_class_object_array_pointer->_data->p._len = class.0._len;

Reply via email to