mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-06-19 00:41:43 +00:00
Semiwrap / meson / robotpy define `NDEBUG` when building their software in all modes, while `allwplib` only does it when building debug. This causes the size of `DenseMap` to differ between the shared libraries built here, and the extension modules built in `mostrobotpy`, causing segfaults when you try to execute code that uses `DenseMap`. This is not a problem with the robotpy code in `allwpilib`, because bazel uses the exact same compiler flags when building the shared libraries and pybind11 extensions.
32 lines
1.4 KiB
Diff
32 lines
1.4 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: PJ Reiniger <pj.reiniger@gmail.com>
|
|
Date: Sat, 7 May 2022 22:13:55 -0400
|
|
Subject: [PATCH 03/35] Change unique_function storage size
|
|
|
|
---
|
|
llvm/include/llvm/ADT/FunctionExtras.h | 4 ++--
|
|
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/llvm/include/llvm/ADT/FunctionExtras.h b/llvm/include/llvm/ADT/FunctionExtras.h
|
|
index d92868e3715f40e1c2c305a784afc55726e3a812..df7fe3e19462ebecd30f7a9d006027c75751de5b 100644
|
|
--- a/llvm/include/llvm/ADT/FunctionExtras.h
|
|
+++ b/llvm/include/llvm/ADT/FunctionExtras.h
|
|
@@ -79,7 +79,7 @@ using EnableIfCallable = std::enable_if_t<std::disjunction<
|
|
|
|
template <typename ReturnT, typename... ParamTs> class UniqueFunctionBase {
|
|
protected:
|
|
- static constexpr size_t InlineStorageSize = sizeof(void *) * 3;
|
|
+ static constexpr size_t InlineStorageSize = sizeof(void *) * 4;
|
|
static constexpr size_t InlineStorageAlign = alignof(void *);
|
|
|
|
template <typename T, class = void>
|
|
@@ -159,7 +159,7 @@ protected:
|
|
"Should always use all of the out-of-line storage for inline storage!");
|
|
|
|
// For in-line storage, we just provide an aligned character buffer. We
|
|
- // provide three pointers worth of storage here.
|
|
+ // provide four pointers worth of storage here.
|
|
// This is mutable as an inlined `const unique_function<void() const>` may
|
|
// still modify its own mutable members.
|
|
alignas(InlineStorageAlign) mutable std::byte
|