[PATCH v4] libstdc++: Use allocate_at_least in vector, string (P0401) [PR118030]

Nathan Myers ncm@cantrip.org
Tue May 26 05:44:05 GMT 2026


On 5/26/26 1:35 AM, Stephan Bergmann wrote:
> At least with clang-22.1.5-1.fc44.x86_64 and with recent Clang 23 trunk, 
> this started to fail
> 
>> $ cat test.cc
>> #include <string>
>> int main(int argc, char **) {
>>   char buf[32] = {};
>>   return std::string(buf, buf + argc + 20).size();
>> }
> 
>> $ clang++ --gcc-install-dir=/home/sberg/gcc/inst/lib/gcc/x86_64-pc- 
>> linux-gnu/17.0.0 -O1 test.cc
>> /usr/bin/ld.bfd: /tmp/test-caae58.o: in function `main':
>> test.cc:(.text+0x32): undefined reference to 
>> `std::__cxx11::basic_string<char, std::char_traits<char>, 
>> std::allocator<char> >::_M_create_plus(unsigned long, unsigned long)'
>> clang++: error: linker command failed with exit code 1 (use -v to see 
>> invocation)

Thank you.

Is your version of Clang picking up symbols declared in section
GLIBCXX_3.4.36 of config/abi/pre/gnu.ver ? Using libstdc++.so
built with the object linked in?

That section is targetted at unreleased GCC 17.


More information about the Libstdc++ mailing list