------- Comment #13 from rguenth at gcc dot gnu dot org 2009-08-28 10:16 ------- This pattern happens more often in pb_ds.
If I replace the casts by static_cast<>s and const_cast<>s the problem persists though. I do not see that the frontend produces a FIELD_DECL for the Eq_Fn base of hash_eq_fn (nor a field for hash_eq_fn base of gp_ht_map_data_). Thus the static_cast fails to do the proper pointer adjustment to a padding field (but stays pointing to the vtable pointer). Obviously hash_eq_fn and Eq_Fn as they are empty classes end up in tail-padding somewhere. Let's get some C++ folks in here. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jason at gcc dot gnu dot org Component|lto |libstdc++ http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41058