------- Comment #14 from rguenth at gcc dot gnu dot org 2009-08-28 10:41 ------- It seems that on trunk the swap
other.1157_15 = (const struct hash_eq_fn *) D.107435_2; this.1158_16 = (struct hash_eq_fn *) D.107436_4; other.1161_17 = (struct equal_to *) other.1157_15; this.1162_18 = (struct equal_to *) this.1158_16; __tmp = *this.1162_18; *this.1162_18 = *other.1161_17; *other.1161_17 = __tmp; is optimized away - likely by some langhooks.expr_size magic. It feels like some Deja-vu, but why is the frontend emitting these assignments at all? Didn't we think of killing them during gimplification at least? Either way we need to address this, also for merging fld (see cp_expr_size). -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dnovillo at gcc dot gnu dot | |org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41058