[Bug libstdc++/41058] FAIL: ext/pb_ds/regression/hash_data_map_rand.cc

rguenth at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Fri Aug 28 10:42:00 GMT 2009



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



More information about the Gcc-bugs mailing list