PR libstdc++/48362
* python/libstdcxx/v6/printers.py (StdTuplePrinter): Handle empty
tuples.
There might be a neater way to fix this, but this does the job.
Committed to trunk.
Index: python/libstdcxx/v6/printers.py
===================================================================
--- python/libstdcxx/v6/printers.py (revision 182619)
+++ python/libstdcxx/v6/printers.py (revision 182620)
@@ -251,11 +251,11 @@ class StdTuplePrinter:
# Set the base class as the initial head of the
# tuple.
nodes = self.head.type.fields ()
- if len (nodes) != 1:
+ if len (nodes) == 1:
+ # Set the actual head to the first pair.
+ self.head = self.head.cast (nodes[0].type)
+ elif len (nodes) != 0:
raise ValueError, "Top of tuple tree does not consist of a
single node."
-
- # Set the actual head to the first pair.
- self.head = self.head.cast (nodes[0].type)
self.count = 0
def __iter__ (self):
@@ -297,6 +297,8 @@ class StdTuplePrinter:
return self._iterator (self.val)
def to_string (self):
+ if len (self.val.type.fields ()) == 0:
+ return 'empty %s' % (self.typename)
return '%s containing' % (self.typename)
class StdStackOrQueuePrinter: