[all-commits] [llvm/llvm-project] 29cc80: Fix issue with never-constexpr __construct_at in C...
Eric via All-commits
all-commits at lists.llvm.org
Fri Apr 5 09:16:38 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 29cc80f4ecafe45586401ce4a79b324b6240b6e9
https://github.com/llvm/llvm-project/commit/29cc80f4ecafe45586401ce4a79b324b6240b6e9
Author: Eric <eric at efcs.ca>
Date: 2024-04-05 (Fri, 05 Apr 2024)
Changed paths:
M libcxx/include/__memory/construct_at.h
Log Message:
-----------
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
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list