base: Add a default output function for bitunion types.

This way printing bitunions with, for instance, DPRINTF actually prints
something useful. More specialized overloads will still allow printing
particular bitunion types in ways that might make more sense for that
particular type.

Change-Id: I92beb0ce07683ba8b318cf25aa73e0057e4a60ef
Reviewed-on: https://gem5-review.googlesource.com/9461
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Gabe Black <gabeblack@google.com>
diff --git a/src/base/bituniontest.cc b/src/base/bituniontest.cc
index 8781d2d..d7ed95b 100644
--- a/src/base/bituniontest.cc
+++ b/src/base/bituniontest.cc
@@ -270,3 +270,17 @@
     is64 = std::is_same<BitUnionBaseType<Dummy32>, uint64_t>::value;
     EXPECT_FALSE(is64);
 }
+
+TEST_F(BitUnionData, Output)
+{
+    sixtyFour = 1234567812345678;
+    std::stringstream ss;
+    ss << sixtyFour;
+    EXPECT_EQ(ss.str(), "1234567812345678");
+    ss.str("");
+
+    EmptyEight eight = 65;
+    ss << eight;
+    EXPECT_EQ(ss.str(), "65");
+    ss.str("");
+}