[committed] libstdc++: Disable over-zealous warnings about std::string copies [PR103332]

Martin Sebor msebor@gmail.com
Fri Dec 10 17:11:04 GMT 2021


On 12/10/21 9:41 AM, Jakub Jelinek wrote:
> On Fri, Dec 10, 2021 at 09:35:50AM -0700, Martin Sebor via Gcc-patches wrote:
>> The above was just a quick proof of concept experiment.  You're
>> of course right that the final solution can't be so crude(*).
>> But if the required functions are always_inline (I think member
>> functions defined in the body of the class implicitly are
> 
> They are not, and can't be, nothing says that such member functions
> can't use constructs that make it uninlinable (with always_inline
> that would be an error), or are way too large that inlining is not
> desirable, etc.  They are just implicitly inline.

The functions we're talking about are the trivial max_size()
members of std::string and allocator traits.  They just return
a constant.

But I see I was wrong, even member functions have to be explicitly
declared always_inline to be guaranteed to be inlined even at -O0.
I don't think that should be an issue for the trivial max_size()
(at least not for the std::string specialization).

Martin


More information about the Libstdc++ mailing list