Show 0-based offsets for std::tuple members, to match with std::get. libstdc++-v3/ChangeLog:
* python/libstdcxx/v6/printers.py (StdTuplePrinter): don't increment self.count until after generating the result string. --- libstdc++-v3/python/libstdcxx/v6/printers.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/libstdc++-v3/python/libstdcxx/v6/printers.py b/libstdc++-v3/python/libstdcxx/v6/printers.py index 550e0ecdd22..14a6d998690 100644 --- a/libstdc++-v3/python/libstdcxx/v6/printers.py +++ b/libstdc++-v3/python/libstdcxx/v6/printers.py @@ -560,16 +560,17 @@ class StdTuplePrinter: # Process left node and set it as head. self.head = self.head.cast (nodes[0].type) - self.count = self.count + 1 - # Finally, check the implementation. If it is # wrapped in _M_head_impl return that, otherwise return # the value "as is". fields = impl.type.fields () - if len (fields) < 1 or fields[0].name != "_M_head_impl": - return ('[%d]' % self.count, impl) - else: - return ('[%d]' % self.count, impl['_M_head_impl']) + if len (fields) > 0 and fields[0].name == "_M_head_impl": + impl = impl['_M_head_impl'] + + out = '[%d]' % self.count + self.count = self.count + 1 + + return (out, impl) def __init__ (self, typename, val): self.typename = strip_versioned_namespace(typename) -- 2.28.0