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