aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Support/CommandLine.cpp
diff options
context:
space:
mode:
authorEric <eric@efcs.ca>2024-04-05 12:16:17 -0400
committerGitHub <noreply@github.com>2024-04-05 12:16:17 -0400
commit29cc80f4ecafe45586401ce4a79b324b6240b6e9 (patch)
tree7d2ab6fdf4ee42d511b8892aa0d5c4f6fb584b04 /llvm/lib/Support/CommandLine.cpp
parenta671ceec3343063a4e6f45c231791ff925abedb5 (diff)
downloadllvm-29cc80f4ecafe45586401ce4a79b324b6240b6e9.zip
llvm-29cc80f4ecafe45586401ce4a79b324b6240b6e9.tar.gz
llvm-29cc80f4ecafe45586401ce4a79b324b6240b6e9.tar.bz2
Fix issue with never-constexpr __construct_at in C++ < 20. (#87403)
The application of constexpr to __construct_at triggers weird linker errors when building LLVM with modules enabled and C++ < 20. > ld.lld: error: undefined hidden symbol: void* std::__1::__voidify[abi:nn190000]<llvm::sys::ProcessStatistics>(llvm::sys::ProcessStatistics&) >>>> referenced by construct_at.h:52 (/usr/local/bin/../include/c++/v1/__memory/construct_at.h:52) >>>> Program.cpp.o:(llvm::sys::Wait(llvm::sys::ProcessInfo const&, std::__1::optional<unsigned int>, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>*, std::__1::optional<llvm::sys::ProcessStatistics>*, bool)) in archive lib/libLLVMSupport.a I suspect this is related to undefined behavior caused by the fact that construct_at is never really constexpr (which is UB NDR). I'm unsure how to meaningfully write a test for this, as I haven't been able to trigger it in smaller unit tests
Diffstat (limited to 'llvm/lib/Support/CommandLine.cpp')
0 files changed, 0 insertions, 0 deletions