[llvm-branch-commits] [llvm] release/20.x: [Support] Ensure complete type DelimitedScope (#127459) (PR #128686)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Tue Feb 25 02:01:42 PST 2025
https://github.com/llvmbot created https://github.com/llvm/llvm-project/pull/128686
Backport e65d3882af6fcc15342451ad4f9494b1ba6b9b9d
Requested by: @hahnjo
>From 84aebf371d0e6adc6fb9b5ed5c57655377572cca Mon Sep 17 00:00:00 2001
From: Jonas Hahnfeld <jonas.hahnfeld at cern.ch>
Date: Fri, 21 Feb 2025 21:19:56 +0100
Subject: [PATCH] [Support] Ensure complete type DelimitedScope (#127459)
`JSONScopedPrinter` has a `std::unique_ptr<DelimitedScope>` member and
defaulted constructor argument, so it needs a complete type. This
resolves one of the many build errors with C++23 using Clang.
(cherry picked from commit e65d3882af6fcc15342451ad4f9494b1ba6b9b9d)
---
llvm/include/llvm/Support/ScopedPrinter.h | 16 +++++++---------
1 file changed, 7 insertions(+), 9 deletions(-)
diff --git a/llvm/include/llvm/Support/ScopedPrinter.h b/llvm/include/llvm/Support/ScopedPrinter.h
index 419ab97366796..506b40a09ed78 100644
--- a/llvm/include/llvm/Support/ScopedPrinter.h
+++ b/llvm/include/llvm/Support/ScopedPrinter.h
@@ -539,7 +539,13 @@ ScopedPrinter::printHex<support::ulittle16_t>(StringRef Label,
startLine() << Label << ": " << hex(Value) << "\n";
}
-struct DelimitedScope;
+struct DelimitedScope {
+ DelimitedScope(ScopedPrinter &W) : W(&W) {}
+ DelimitedScope() : W(nullptr) {}
+ virtual ~DelimitedScope() = default;
+ virtual void setPrinter(ScopedPrinter &W) = 0;
+ ScopedPrinter *W;
+};
class JSONScopedPrinter : public ScopedPrinter {
private:
@@ -838,14 +844,6 @@ class JSONScopedPrinter : public ScopedPrinter {
}
};
-struct DelimitedScope {
- DelimitedScope(ScopedPrinter &W) : W(&W) {}
- DelimitedScope() : W(nullptr) {}
- virtual ~DelimitedScope() = default;
- virtual void setPrinter(ScopedPrinter &W) = 0;
- ScopedPrinter *W;
-};
-
struct DictScope : DelimitedScope {
explicit DictScope() = default;
explicit DictScope(ScopedPrinter &W) : DelimitedScope(W) { W.objectBegin(); }
More information about the llvm-branch-commits
mailing list