libstdc++: Mark non-exported function always_inline [PR105671]
authorJonathan Wakely <jwakely@redhat.com>
Fri, 27 May 2022 11:43:18 +0000 (12:43 +0100)
committerJonathan Wakely <jwakely@redhat.com>
Fri, 27 May 2022 14:21:07 +0000 (15:21 +0100)
commitde57440858591a88e8fd7ba2505ca54546c86021
treef01419f1821355ef914ac3e92a35a6c21d598026
parent8af266501795dd76d05faef498dbd3472a01b305
libstdc++: Mark non-exported function always_inline [PR105671]

This new function was added for gcc 11.1 but is not exported from the
shared library. Depending on inlining decisions, its callers might get
inlined but an external definition be needed for this function. That
then fails to link.

Since we can't add the export to the gcc-11 release branch now, mark it
always_inline. We can consider exporting it for gcc-13 if/when we bump
the shared library version (and maybe also for gcc-12 which is currently
at the same version as trunk). For now, the attribute will solve the
problem on all affected branches. The function is small enough that
force-inlining it shouldn't cause problems.

libstdc++-v3/ChangeLog:

PR libstdc++/105671
* include/std/sstream (basic_stringbuf::_M_high_mark): Add
always_inline attribute.
libstdc++-v3/include/std/sstream