This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Mon, Jul 27, 2015 at 4:45 AM, Jonathan Wakely <jwakely@redhat.com> wrote: > On 26/07/15 05:20 -0700, Tim Shen wrote: >> >> @@ -389,7 +391,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION >> #endif >> } >> >> - void >> + _StringT >> _M_add_collating_element(const _StringT& __s) >> { >> auto __st = _M_traits.lookup_collatename(__s.data(), > > > Changing this return type is an ABI change. When compiled with older > versions of GCC this function will not return anything, so code > compiled with newer versions that links to that older code will read > garbage off the stack if linked to the old version. > > (This isn't a problem for _M_expression_term because the return type > is part of the mangled name for function templates). > > One solution would be to rename the function, so that code compiled > with the new GCC will use the new function, not link to the old > version that doesn't return anything. Done by s/_M_add_collating_element/_M_add_collate_element/. -- Regards, Tim Shen
Attachment:
b.diff
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |