[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