------- Comment #8 from rguenth at gcc dot gnu dot org  2010-02-15 14:53 -------
The issue _seems_ to be that the indirect assignment

;; *this.24_34 = __bound_args#0;

is from

;; Function std::_Head_base<_Idx, _Head, true>::_Head_base(_UHead&&) [with
_UHead = Inc, long unsigned int _Idx = 0ul, _Head = Inc] (null)
;; enabled by -tree-original

{
  <<cleanup_point <<< Unknown tree: expr_stmt
  (void) (*(struct Inc *) this = *(const struct Inc &) (const struct Inc *)
std::forward<Inc> ((struct type &) (struct Inc *) __h)) >>>
>>;
}

where we do not see its zero-sizeness(?) and thus end up not removing the
zero-sized assignment during cp_genericize_r.

Bah, because it's an INIT_EXPR, not a MODIFY_EXPR.

I have a patch.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |rguenth at gcc dot gnu dot
                   |dot org                     |org
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2010-02-15 14:53:16
               date|                            |


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

Reply via email to