------- 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