Skip to content

Commit

Permalink
Fix deprecation warning in LLVM for C++23
Browse files Browse the repository at this point in the history
  • Loading branch information
calcmogul committed Sep 16, 2023
1 parent b384d4d commit 25d256e
Show file tree
Hide file tree
Showing 33 changed files with 64 additions and 32 deletions.
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Sat, 7 May 2022 22:09:18 -0400
Subject: [PATCH 01/30] Remove StringRef, ArrayRef, and Optional
Subject: [PATCH 01/31] Remove StringRef, ArrayRef, and Optional

---
llvm/include/llvm/ADT/PointerUnion.h | 1 -
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Sat, 7 May 2022 22:12:41 -0400
Subject: [PATCH 02/30] Wrap std::min/max calls in parens, for Windows warnings
Subject: [PATCH 02/31] Wrap std::min/max calls in parens, for Windows warnings

---
llvm/include/llvm/ADT/DenseMap.h | 4 ++--
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
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/30] Change unique_function storage size
Subject: [PATCH 03/31] Change unique_function storage size

---
llvm/include/llvm/ADT/FunctionExtras.h | 4 ++--
Expand Down
2 changes: 1 addition & 1 deletion upstream_utils/llvm_patches/0004-Threading-updates.patch
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Sat, 7 May 2022 22:17:19 -0400
Subject: [PATCH 04/30] Threading updates
Subject: [PATCH 04/31] Threading updates

- Remove guards for threads and exception
- Prefer scope gaurd over lock gaurd
Expand Down
2 changes: 1 addition & 1 deletion upstream_utils/llvm_patches/0005-ifdef-guard-safety.patch
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Sat, 7 May 2022 22:28:13 -0400
Subject: [PATCH 05/30] \#ifdef guard safety
Subject: [PATCH 05/31] \#ifdef guard safety

Prevents redefinition if someone is pulling in real LLVM, since the macros are in global namespace
---
Expand Down
2 changes: 1 addition & 1 deletion upstream_utils/llvm_patches/0006-Explicitly-use-std.patch
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Sat, 7 May 2022 22:37:34 -0400
Subject: [PATCH 06/30] Explicitly use std::
Subject: [PATCH 06/31] Explicitly use std::

---
llvm/include/llvm/ADT/SmallSet.h | 2 +-
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Sat, 7 May 2022 22:53:50 -0400
Subject: [PATCH 07/30] Remove format_provider
Subject: [PATCH 07/31] Remove format_provider

---
llvm/include/llvm/Support/Chrono.h | 109 ------------------------
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Sun, 8 May 2022 13:34:07 -0400
Subject: [PATCH 08/30] Add compiler warning pragmas
Subject: [PATCH 08/31] Add compiler warning pragmas

---
llvm/include/llvm/ADT/FunctionExtras.h | 11 +++++++++++
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Sun, 8 May 2022 13:43:50 -0400
Subject: [PATCH 09/30] Remove unused functions
Subject: [PATCH 09/31] Remove unused functions

---
llvm/include/llvm/ADT/SmallString.h | 85 +-----
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Thu, 5 May 2022 23:18:34 -0400
Subject: [PATCH 10/30] Detemplatize SmallVectorBase
Subject: [PATCH 10/31] Detemplatize SmallVectorBase

---
llvm/include/llvm/ADT/SmallVector.h | 27 +++++++--------------
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Sun, 8 May 2022 13:48:59 -0400
Subject: [PATCH 11/30] Add vectors to raw_ostream
Subject: [PATCH 11/31] Add vectors to raw_ostream

---
llvm/include/llvm/Support/raw_ostream.h | 115 ++++++++++++++++++++++++
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Tue, 3 May 2022 22:16:10 -0400
Subject: [PATCH 12/30] Extra collections features
Subject: [PATCH 12/31] Extra collections features

---
llvm/include/llvm/ADT/StringMap.h | 103 +++++++++++++++++++++++++++++-
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Wed, 4 May 2022 00:01:00 -0400
Subject: [PATCH 13/30] EpochTracker ABI macro
Subject: [PATCH 13/31] EpochTracker ABI macro

---
llvm/include/llvm/ADT/EpochTracker.h | 2 +-
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
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 14/30] Delete numbers from MathExtras
Subject: [PATCH 14/31] Delete numbers from MathExtras

---
llvm/include/llvm/Support/MathExtras.h | 36 --------------------------
Expand Down
2 changes: 1 addition & 1 deletion upstream_utils/llvm_patches/0015-Add-lerp-and-sgn.patch
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Tue, 3 May 2022 22:50:24 -0400
Subject: [PATCH 15/30] Add lerp and sgn
Subject: [PATCH 15/31] Add lerp and sgn

---
llvm/include/llvm/Support/MathExtras.h | 20 ++++++++++++++++++++
Expand Down
2 changes: 1 addition & 1 deletion upstream_utils/llvm_patches/0016-Fixup-includes.patch
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Sun, 8 May 2022 16:38:11 -0400
Subject: [PATCH 16/30] Fixup includes
Subject: [PATCH 16/31] Fixup includes

---
llvm/include/llvm/ADT/StringMap.h | 4 ++++
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Sun, 8 May 2022 16:42:09 -0400
Subject: [PATCH 17/30] Use std::is_trivially_copy_constructible
Subject: [PATCH 17/31] Use std::is_trivially_copy_constructible

---
llvm/include/llvm/Support/type_traits.h | 16 ----------------
Expand Down
2 changes: 1 addition & 1 deletion upstream_utils/llvm_patches/0018-Windows-support.patch
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Tue, 3 May 2022 20:22:38 -0400
Subject: [PATCH 18/30] Windows support
Subject: [PATCH 18/31] Windows support

---
.../llvm/Support/Windows/WindowsSupport.h | 45 +++++----
Expand Down
2 changes: 1 addition & 1 deletion upstream_utils/llvm_patches/0019-Prefer-fmtlib.patch
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Sun, 8 May 2022 16:46:20 -0400
Subject: [PATCH 19/30] Prefer fmtlib
Subject: [PATCH 19/31] Prefer fmtlib

---
llvm/lib/Support/ErrorHandling.cpp | 20 ++++++--------------
Expand Down
2 changes: 1 addition & 1 deletion upstream_utils/llvm_patches/0020-Prefer-wpi-s-fs.h.patch
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Sun, 8 May 2022 16:49:36 -0400
Subject: [PATCH 20/30] Prefer wpi's fs.h
Subject: [PATCH 20/31] Prefer wpi's fs.h

---
llvm/include/llvm/Support/raw_ostream.h | 7 ++-----
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Sun, 8 May 2022 19:16:51 -0400
Subject: [PATCH 21/30] Remove unused functions
Subject: [PATCH 21/31] Remove unused functions

---
llvm/include/llvm/Support/raw_ostream.h | 5 +-
Expand Down
2 changes: 1 addition & 1 deletion upstream_utils/llvm_patches/0022-OS-specific-changes.patch
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Sun, 8 May 2022 19:30:43 -0400
Subject: [PATCH 22/30] OS-specific changes
Subject: [PATCH 22/31] OS-specific changes

---
llvm/lib/Support/ErrorHandling.cpp | 16 +++++++---------
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Mon, 9 May 2022 00:04:30 -0400
Subject: [PATCH 23/30] Use SmallVector for UTF conversion
Subject: [PATCH 23/31] Use SmallVector for UTF conversion

---
llvm/include/llvm/Support/ConvertUTF.h | 6 +++---
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Thu, 19 May 2022 00:58:36 -0400
Subject: [PATCH 24/30] Prefer to use static pointers in raw_ostream
Subject: [PATCH 24/31] Prefer to use static pointers in raw_ostream

See #1401
---
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: PJ Reiniger <pj.reiniger@gmail.com>
Date: Thu, 19 May 2022 01:12:41 -0400
Subject: [PATCH 25/30] constexpr endian byte swap
Subject: [PATCH 25/31] constexpr endian byte swap

---
llvm/include/llvm/Support/Endian.h | 4 +++-
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tyler Veness <calcmogul@gmail.com>
Date: Wed, 10 Aug 2022 17:07:52 -0700
Subject: [PATCH 26/30] Copy type traits from STLExtras.h into PointerUnion.h
Subject: [PATCH 26/31] Copy type traits from STLExtras.h into PointerUnion.h

---
llvm/include/llvm/ADT/PointerUnion.h | 46 ++++++++++++++++++++++++++++
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tyler Veness <calcmogul@gmail.com>
Date: Wed, 10 Aug 2022 22:35:00 -0700
Subject: [PATCH 27/30] Remove StringMap test for llvm::sort()
Subject: [PATCH 27/31] Remove StringMap test for llvm::sort()

---
llvm/unittests/ADT/StringMapTest.cpp | 14 --------------
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Leander Schulten <Leander.Schulten@rwth-aachen.de>
Date: Mon, 10 Jul 2023 00:53:43 +0200
Subject: [PATCH 28/30] Unused variable in release mode
Subject: [PATCH 28/31] Unused variable in release mode

---
llvm/include/llvm/ADT/DenseMap.h | 2 +-
Expand Down
2 changes: 1 addition & 1 deletion upstream_utils/llvm_patches/0029-Use-C-20-bit-header.patch
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tyler Veness <calcmogul@gmail.com>
Date: Tue, 11 Jul 2023 22:56:09 -0700
Subject: [PATCH 29/30] Use C++20 <bit> header
Subject: [PATCH 29/31] Use C++20 <bit> header

---
llvm/include/llvm/ADT/DenseMap.h | 3 +-
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tyler Veness <calcmogul@gmail.com>
Date: Sun, 30 Jul 2023 14:17:37 -0700
Subject: [PATCH 30/30] Remove DenseMap GTest printer test
Subject: [PATCH 30/31] Remove DenseMap GTest printer test

LLVM modifies internal GTest headers to support it, which we can't do.
---
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tyler Veness <calcmogul@gmail.com>
Date: Fri, 15 Sep 2023 18:26:50 -0700
Subject: [PATCH 31/31] Replace deprecated std::aligned_storage_t

---
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 1daeae915eb506b32a2d1296d2f0fe4e6dab606e..2e60e34d69914bd9b2197fc0a0e75a8e025674b2 100644
--- a/llvm/include/llvm/ADT/FunctionExtras.h
+++ b/llvm/include/llvm/ADT/FunctionExtras.h
@@ -37,6 +37,7 @@
#include "llvm/ADT/STLForwardCompat.h"
#include "llvm/Support/MemAlloc.h"
#include "llvm/Support/type_traits.h"
+#include <cstddef>
#include <cstring>
#include <memory>
#include <type_traits>
@@ -167,8 +168,7 @@ protected:
// 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.
- mutable std::aligned_storage_t<InlineStorageSize, alignof(void *)>
- InlineStorage;
+ alignas(void*) mutable std::byte InlineStorage[InlineStorageSize];
} StorageUnion;

// A compressed pointer to either our dispatching callback or our table of
1 change: 1 addition & 0 deletions upstream_utils/update_llvm.py
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,7 @@ def main():
"0028-Unused-variable-in-release-mode.patch",
"0029-Use-C-20-bit-header.patch",
"0030-Remove-DenseMap-GTest-printer-test.patch",
"0031-Replace-deprecated-std-aligned_storage_t.patch",
]:
git_am(
os.path.join(wpilib_root, "upstream_utils/llvm_patches", f),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
#include "wpi/STLForwardCompat.h"
#include "wpi/MemAlloc.h"
#include "wpi/type_traits.h"
#include <cstddef>
#include <cstring>
#include <memory>
#include <type_traits>
Expand Down Expand Up @@ -167,8 +168,7 @@ template <typename ReturnT, typename... ParamTs> class UniqueFunctionBase {
// 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.
mutable std::aligned_storage_t<InlineStorageSize, alignof(void *)>
InlineStorage;
alignas(void*) mutable std::byte InlineStorage[InlineStorageSize];
} StorageUnion;

// A compressed pointer to either our dispatching callback or our table of
Expand Down

0 comments on commit 25d256e

Please sign in to comment.