From a53ed9ea03e33a3cac78782ce4ab960e087dbc85 Mon Sep 17 00:00:00 2001 From: David Herberth Date: Thu, 9 Jan 2025 13:23:40 +0100 Subject: [PATCH] fix(demangle): Suppresses c++ warnings on older GCCs --- symbolic-demangle/build.rs | 2 +- .../include/swift/Demangling/Demangler.h | 26 +++++++++---------- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/symbolic-demangle/build.rs b/symbolic-demangle/build.rs index 75344b2c..79af4691 100644 --- a/symbolic-demangle/build.rs +++ b/symbolic-demangle/build.rs @@ -18,7 +18,7 @@ fn main() { "vendor/swift/lib/Demangling/Remangler.cpp", ]) .flag_if_supported("-std=c++17") - .flag_if_supported("-mmacosx-version-min=11.0.0") + .flag_if_supported("-fpermissive") .flag_if_supported("-Wno-changes-meaning") .flag("-DLLVM_DISABLE_ABI_BREAKING_CHECKS_ENFORCING=1") .flag("-DSWIFT_STDLIB_HAS_TYPE_PRINTING=1") diff --git a/symbolic-demangle/vendor/swift/include/swift/Demangling/Demangler.h b/symbolic-demangle/vendor/swift/include/swift/Demangling/Demangler.h index a3b62f2c..d9d9192b 100644 --- a/symbolic-demangle/vendor/swift/include/swift/Demangling/Demangler.h +++ b/symbolic-demangle/vendor/swift/include/swift/Demangling/Demangler.h @@ -32,7 +32,7 @@ namespace Demangle { SWIFT_BEGIN_INLINE_NAMESPACE class CharVector; - + /// The allocator for demangling nodes and other demangling-internal stuff. /// /// It implements a simple bump-pointer allocator. @@ -49,7 +49,7 @@ class NodeFactory { Slab *Previous; // Tail allocated memory starts here. }; - + /// The head of the single-linked slab list. Slab *CurrentSlab = nullptr; @@ -131,9 +131,9 @@ class NodeFactory { BorrowedFrom->isBorrowed = false; } } - + virtual void clear(); - + /// Allocates an object of type T or an array of objects of type T. template T *Allocate(size_t NumObjects = 1) { assert(!isBorrowed); @@ -266,7 +266,7 @@ class NodeFactory { /// The \p Text string is already allocated with the Factory and therefore /// it is _not_ copied. NodePointer createNode(Node::Kind K, const CharVector &Text); - + /// Creates a node of kind \p K with a \p Text payload, which must be a C /// string literal. /// @@ -301,7 +301,7 @@ template class Vector { NumElems = 0; Capacity = InitialCapacity; } - + void free() { Capacity = 0; Elems = 0; @@ -313,7 +313,7 @@ template class Vector { iterator begin() { return Elems; } iterator end() { return Elems + NumElems; } - + T &operator[](size_t Idx) { assert(Idx < NumElems); return Elems[Idx]; @@ -323,7 +323,7 @@ template class Vector { assert(Idx < NumElems); return Elems[Idx]; } - + size_t size() const { return NumElems; } bool empty() const { return NumElems == 0; } @@ -411,7 +411,7 @@ class Demangler : public NodeFactory { static const int MaxNumWords = 26; StringRef Words[MaxNumWords]; int NumWords = 0; - + std::function SymbolicReferenceResolver; bool nextIf(StringRef str) { @@ -476,7 +476,7 @@ class Demangler : public NodeFactory { Node::Kind NdKind = NodeStack.back()->getKind(); if (!pred(NdKind)) return nullptr; - + return popNode(); } @@ -490,14 +490,14 @@ class Demangler : public NodeFactory { StringRef Text; size_t Pos; std::function SymbolicReferenceResolver; - + public: DemangleInitRAII(Demangler &Dem, StringRef MangledName, std::function SymbolicReferenceResolver); ~DemangleInitRAII(); }; friend DemangleInitRAII; - + void addSubstitution(NodePointer Nd) { if (Nd) { Substitutions.push_back(Nd, *this); @@ -641,7 +641,7 @@ class Demangler : public NodeFactory { public: Demangler() {} - + void clear() override; /// Demangle the given symbol and return the parse tree.