From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 03C233858D37; Tue, 3 Jan 2023 22:17:38 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 03C233858D37 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1672784259; bh=yvPEPkY0WgomeP3KNK1YmBzldTmBMxlcW86uo1aeXWk=; h=From:To:Subject:Date:In-Reply-To:References:From; b=EsgKGxt9jpIwUeHxjcbY32rxDRuEg24Wj1BTeIUb2kdbEK13kWckBWgpclv14yyyX c0+MHr01+JB83k/W0z80cGz+wlQvmJ8riKkP7H6S0vMkzjpyMNTPPAb8WaCll5+fQU LMzDoAG0F58XyDKTTpfipx58z+nxmSaLJVTg1uNk= From: "dcb314 at hotmail dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/108278] runtime error with -O1 -Wall Date: Tue, 03 Jan 2023 22:17:38 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Version: 13.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: dcb314 at hotmail dot com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 List-Id: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D108278 --- Comment #1 from David Binderman --- Reduced C++ code is typedef int mbstate_t; namespace std { struct Trans_NS___cxx11_basic_string { char *c_str(); }; template _Facet use_facet(int); template struct __codecvt_abstract_base { typedef _ExternT extern_type; int length(int, extern_type *, const extern_type *, long); }; template struct codecvt : __codecvt_abstract_base<_ExternT> {}; } // namespace std template struct intrusive_ptr { intrusive_ptr(T *); T *operator->(); }; long attach___trans_tmp_3; struct basic_ostringstreambuf { struct { std::Trans_NS___cxx11_basic_string storage; long max_size; } m_storage_state; void attach() { attach___trans_tmp_3 =3D 9223372036854775807 / 2; long size =3D attach___trans_tmp_3; m_storage_state.max_size =3D size; length_until_boundary(m_storage_state.storage.c_str(), m_storage_state.max_size); } void length_until_boundary(char *s, long max_size) { int loc; std::codecvt fac =3D std::use_facet>(loc); mbstate_t mbs(fac.length(mbs, s, s + max_size, 0)); } }; struct Trans_NS_v2_mt_posix_basic_formatting_ostream { basic_ostringstreambuf m_streambuf; void attach(std::Trans_NS___cxx11_basic_string) { m_streambuf.attach(); } }; template struct Trans_NS_v2_mt_posix_basic_record_ostream : Trans_NS_v2_mt_posix_basic_formatting_ostream { typedef std::Trans_NS___cxx11_basic_string string_type; void init_stream(); }; struct attribute_value_impl { attribute_value_impl(std::Trans_NS___cxx11_basic_string); std::Trans_NS___cxx11_basic_string get(); }; template void Trans_NS_v2_mt_posix_basic_record_ostream::init_stream() { typedef attribute_value_impl message_impl_type; intrusive_ptr p =3D new message_impl_type(string_type()); attach(p->get()); } template class Trans_NS_v2_mt_posix_basic_record_ostream; I will have a go at a git bisect in the morning.=