[PATCH] D68364: Implement C++20's P0784 (More constexpr containers)
Leonard Chan via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Sep 24 16:35:21 PDT 2020
leonardchan added a comment.
Hi. Our GCC builders are failing with
[182/12433] CXX kernel-x64-gcc/obj/kernel/lib/ktl/ktl.dummy-new.cc.o
FAILED: kernel-x64-gcc/obj/kernel/lib/ktl/ktl.dummy-new.cc.o
/b/s/w/ir/k/fuchsia/prebuilt/third_party/goma/linux-x64/gomacc ../../prebuilt/third_party/gcc/linux-x64/bin/x86_64-elf-g++ -MD -MF kernel-x64-gcc/obj/kernel/lib/ktl/ktl.dummy-new.cc.o.d -o kernel-x64...
In file included from ../../zircon/kernel/lib/ktl/dummy-new.cc:7:
../../prebuilt/third_party/clang/linux-x64/include/c++/v1/new: In function 'constexpr void* std::__2::__libcpp_allocate(size_t, size_t)':
../../prebuilt/third_party/clang/linux-x64/include/c++/v1/new:252:24: error: call to non-'constexpr' function 'void* operator new(size_t)'
252 | return ::operator new(__size);
| ~~~~~~~~~~~~~~^~~~~~~~
In file included from ../../zircon/kernel/lib/ktl/dummy-new.cc:7:
../../prebuilt/third_party/clang/linux-x64/include/c++/v1/new:186:66: note: 'void* operator new(size_t)' declared here
186 | _LIBCPP_NODISCARD_AFTER_CXX17 _LIBCPP_OVERRIDABLE_FUNC_VIS void* operator new(std::size_t __sz) _THROW_BAD_ALLOC;
| ^~~~~~~~
I presume it's because `_LIBCPP_HAS_NO_BUILTIN_OPERATOR_NEW_DELETE` is defined from
#if !__has_builtin(__builtin_operator_new) || !__has_builtin(__builtin_operator_delete)
#define _LIBCPP_HAS_NO_BUILTIN_OPERATOR_NEW_DELETE
#endif
Is there a recommended way for working around this? We're using GCC 10.2.1. Thanks.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D68364/new/
https://reviews.llvm.org/D68364
More information about the cfe-commits
mailing list