[libcxx-commits] [PATCH] D151160: [libcxxabi] link abort_message into unittest_demangle

Nick Desaulniers via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Mon May 22 14:57:45 PDT 2023


nickdesaulniers created this revision.
Herald added a project: All.
nickdesaulniers requested review of this revision.
Herald added a project: libc++abi.
Herald added a subscriber: libcxx-commits.
Herald added a reviewer: libc++abi.

unittest_demangle.pass.cpp uses the preprocessor to #include
cxa_demangle.cpp. D148566 <https://reviews.llvm.org/D148566> will make more use of std::string_view in
libcxxabi rather than the home-grown StringView, but as a result of
D149092 <https://reviews.llvm.org/D149092>, a definition of abort_message needs to be provided.

Otherwise builds of check-cxxabi with -DLLVM_ENABLE_ASSERTIONS=ON will
fail to link with the errors:
/usr/bin/ld: /tmp/lit-tmp-0akcq37p/cc6DLdvw.o: in function `(anonymous namespace)::itanium_demangle::starts_with(std::__1::basic_string_view<char, std::__1::char_traits<char> >, char)':
unittest_demangle.pass.cpp:(.text+0x81): undefined reference to `abort_message'
/usr/bin/ld: /tmp/lit-tmp-0akcq37p/cc6DLdvw.o: in function `(anonymous namespace)::itanium_demangle::starts_with(std::__1::basic_string_view<char, std::__1::char_traits<char> >, std::__1::basic_string_view<char, std::__1::char_traits<char> >)':
unittest_demangle.pass.cpp:(.text+0x2aa): undefined reference to `abort_message'
/usr/bin/ld: unittest_demangle.pass.cpp:(.text+0x312): undefined reference to `abort_message'
/usr/bin/ld: /tmp/lit-tmp-0akcq37p/cc6DLdvw.o: in function `(anonymous namespace)::itanium_demangle::OutputBuffer::writeUnsigned(unsigned long, bool)':
unittest_demangle.pass.cpp:(.text+0x54f): undefined reference to `abort_message'
/usr/bin/ld: unittest_demangle.pass.cpp:(.text+0x5b7): undefined reference to `abort_message'
/usr/bin/ld: /tmp/lit-tmp-0akcq37p/cc6DLdvw.o:unittest_demangle.pass.cpp:(.text+0xe6e): more undefined references to `abort_message' follow
/usr/bin/ld: /home/libcxx-builder/.buildkite-agent/builds/google-libcxx-builder-f0560ea595b1-1/llvm-project/libcxx-ci/build/generic-gcc/test/Output/unittest_demangle.pass.cpp.dir/t.tmp.exe: hidden symbol `abort_message' isn't defined

Use the preprocessor further to provide the definition of abort_message
for this unittest.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D151160

Files:
  libcxxabi/test/unittest_demangle.pass.cpp


Index: libcxxabi/test/unittest_demangle.pass.cpp
===================================================================
--- libcxxabi/test/unittest_demangle.pass.cpp
+++ libcxxabi/test/unittest_demangle.pass.cpp
@@ -9,6 +9,7 @@
 // UNSUPPORTED: c++03
 
 #include "../src/cxa_demangle.cpp"
+#include "../src/abort_message.cpp"
 
 using namespace __cxxabiv1;
 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D151160.524499.patch
Type: text/x-patch
Size: 356 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20230522/514e563a/attachment.bin>


More information about the libcxx-commits mailing list