Change to individual pretty printer classes, remove generic `make_printer`.
Summary: Follow-up from D72589.
Reviewers: dblaikie
Reviewed By: dblaikie
Subscribers: merge_guards_bot, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D73609
GitOrigin-RevId: f3ad6eb5d3d07f8e1ddb380b2b6806edd3dc84f6
diff --git a/llvm-prettyprinters/gdb/llvm-support.cpp b/llvm-prettyprinters/gdb/llvm-support.cpp
index 7e0f193..04c84cd 100644
--- a/llvm-prettyprinters/gdb/llvm-support.cpp
+++ b/llvm-prettyprinters/gdb/llvm-support.cpp
@@ -24,7 +24,13 @@
llvm::StringRef StringRef = "bar";
llvm::Twine Twine = llvm::Twine(SmallString) + StringRef;
llvm::PointerIntPair<int *, 1> PointerIntPair(IntPtr, 1);
-llvm::PointerUnion<float *, int *> PointerUnion(IntPtr);
+
+struct alignas(8) Z {};
+llvm::PointerUnion<Z *, int *> PointerUnion(IntPtr);
+
+// No members which instantiate PointerUnionUIntTraits<Z *> (e.g. get<T *>())
+// are called, and this instance will therefore be raw-printed.
+llvm::PointerUnion<Z *, float *> RawPrintingPointerUnion(nullptr);
using IlistTag = llvm::ilist_tag<struct A>;
using SimpleIlistTag = llvm::ilist_tag<struct B>;
diff --git a/llvm-prettyprinters/gdb/llvm-support.gdb b/llvm-prettyprinters/gdb/llvm-support.gdb
index c02c03c..fa1e2aa 100644
--- a/llvm-prettyprinters/gdb/llvm-support.gdb
+++ b/llvm-prettyprinters/gdb/llvm-support.gdb
@@ -1,4 +1,4 @@
-# RUN: gdb -q -batch -n -iex 'source %llvm_src_root/utils/gdb-scripts/prettyprinters.py' -x %s %llvm_tools_dir/check-gdb-llvm-support | FileCheck %s
+# RUN: gdb -q -batch -n -iex 'source %llvm_src_root/utils/gdb-scripts/prettyprinters.py' -x %s %llvm_tools_dir/check-gdb-llvm-support | FileCheck %s --dump-input-on-failure
break main
run
@@ -39,12 +39,15 @@
# CHECK: "\"foo\"\"bar\""
p Twine
-# CHECK: llvm::PointerIntPair<int *> = {pointer = 0xabc, value = 1}
+# CHECK: {pointer = 0xabc, value = 1}
p PointerIntPair
-# CHECK: llvm::PointerUnion containing int * = {pointer = 0xabc}
+# CHECK: Containing int * = {pointer = 0xabc}
p PointerUnion
+# CHECK: PointerUnionMembers<llvm::PointerUnion<Z*, float*>,
+p RawPrintingPointerUnion
+
# Switch to print pretty adds newlines to the following statements.
set print pretty