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.
58 lines
3.7 KiB
Diff
58 lines
3.7 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: PJ Reiniger <pj.reiniger@gmail.com>
|
|
Date: Thu, 5 May 2022 18:09:45 -0400
|
|
Subject: [PATCH 12/35] Delete numbers from MathExtras
|
|
|
|
---
|
|
llvm/include/llvm/Support/MathExtras.h | 37 --------------------------
|
|
1 file changed, 37 deletions(-)
|
|
|
|
diff --git a/llvm/include/llvm/Support/MathExtras.h b/llvm/include/llvm/Support/MathExtras.h
|
|
index b2c62d833038f92d2621ca2e6838d0d6b3b48760..60f8c48031b1809e9de66220103b3a504f32c225 100644
|
|
--- a/llvm/include/llvm/Support/MathExtras.h
|
|
+++ b/llvm/include/llvm/Support/MathExtras.h
|
|
@@ -40,43 +40,6 @@ template <typename T, typename U, typename = enableif_int<T, U>>
|
|
using common_sint =
|
|
std::common_type_t<std::make_signed_t<T>, std::make_signed_t<U>>;
|
|
|
|
-/// Mathematical constants.
|
|
-namespace numbers {
|
|
-// TODO: Track C++20 std::numbers.
|
|
-// clang-format off
|
|
-constexpr double e = 0x1.5bf0a8b145769P+1, // (2.7182818284590452354) https://oeis.org/A001113
|
|
- egamma = 0x1.2788cfc6fb619P-1, // (.57721566490153286061) https://oeis.org/A001620
|
|
- ln2 = 0x1.62e42fefa39efP-1, // (.69314718055994530942) https://oeis.org/A002162
|
|
- ln10 = 0x1.26bb1bbb55516P+1, // (2.3025850929940456840) https://oeis.org/A002392
|
|
- log2e = 0x1.71547652b82feP+0, // (1.4426950408889634074)
|
|
- log10e = 0x1.bcb7b1526e50eP-2, // (.43429448190325182765)
|
|
- pi = 0x1.921fb54442d18P+1, // (3.1415926535897932385) https://oeis.org/A000796
|
|
- inv_pi = 0x1.45f306dc9c883P-2, // (.31830988618379067154) https://oeis.org/A049541
|
|
- sqrtpi = 0x1.c5bf891b4ef6bP+0, // (1.7724538509055160273) https://oeis.org/A002161
|
|
- inv_sqrtpi = 0x1.20dd750429b6dP-1, // (.56418958354775628695) https://oeis.org/A087197
|
|
- sqrt2 = 0x1.6a09e667f3bcdP+0, // (1.4142135623730950488) https://oeis.org/A00219
|
|
- inv_sqrt2 = 0x1.6a09e667f3bcdP-1, // (.70710678118654752440)
|
|
- sqrt3 = 0x1.bb67ae8584caaP+0, // (1.7320508075688772935) https://oeis.org/A002194
|
|
- inv_sqrt3 = 0x1.279a74590331cP-1, // (.57735026918962576451)
|
|
- phi = 0x1.9e3779b97f4a8P+0; // (1.6180339887498948482) https://oeis.org/A001622
|
|
-constexpr float ef = 0x1.5bf0a8P+1F, // (2.71828183) https://oeis.org/A001113
|
|
- egammaf = 0x1.2788d0P-1F, // (.577215665) https://oeis.org/A001620
|
|
- ln2f = 0x1.62e430P-1F, // (.693147181) https://oeis.org/A002162
|
|
- ln10f = 0x1.26bb1cP+1F, // (2.30258509) https://oeis.org/A002392
|
|
- log2ef = 0x1.715476P+0F, // (1.44269504)
|
|
- log10ef = 0x1.bcb7b2P-2F, // (.434294482)
|
|
- pif = 0x1.921fb6P+1F, // (3.14159265) https://oeis.org/A000796
|
|
- inv_pif = 0x1.45f306P-2F, // (.318309886) https://oeis.org/A049541
|
|
- sqrtpif = 0x1.c5bf8aP+0F, // (1.77245385) https://oeis.org/A002161
|
|
- inv_sqrtpif = 0x1.20dd76P-1F, // (.564189584) https://oeis.org/A087197
|
|
- sqrt2f = 0x1.6a09e6P+0F, // (1.41421356) https://oeis.org/A002193
|
|
- inv_sqrt2f = 0x1.6a09e6P-1F, // (.707106781)
|
|
- sqrt3f = 0x1.bb67aeP+0F, // (1.73205081) https://oeis.org/A002194
|
|
- inv_sqrt3f = 0x1.279a74P-1F, // (.577350269)
|
|
- phif = 0x1.9e377aP+0F; // (1.61803399) https://oeis.org/A001622
|
|
-// clang-format on
|
|
-} // namespace numbers
|
|
-
|
|
/// Create a bitmask with the N right-most bits set to 1, and all other
|
|
/// bits set to 0. Only unsigned types are allowed.
|
|
template <typename T> T maskTrailingOnes(unsigned N) {
|