------- Comment #2 from pinskia at gcc dot gnu dot org 2009-01-16 18:22 ------- return reinterpret_cast<_Tp*>(reinterpret_cast<_UIntPtrType>(this) + _M_diff);
(const struct _Fwd_list_node_base *) this p+ (long unsigned int) ((const struct _Relative_pointer_impl *) this)->_M_diff That seems fine. In fact If we are failing because of aliasing issues, then we have a bigger issue really because the code could have been written as: return reinterpret_cast<_Tp*>(reinterpret_cast<char*>(this) + _M_diff); And still be defined so I don't think this is really PR 36227. -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- BugsThisDependsOn|36227 | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38835