https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120358
--- Comment #12 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Sam James from comment #11) > Created attachment 61749 [details] > small.cxx I think there might be some aliasing issue with char16_t and Qchar. ``` QChar *begin() const { return reinterpret_cast<QChar *>(d.bp()); } bn<char16_t> d; bn<ag>::d : ag *bp() const { return bv; } ag *bv; struct QChar { QChar(char16_t) {} char16_t bg; }; ``` I suspect this is true of the original code too.