On 21/03/13 14:20, Tom Tromey wrote:
>>>>>> "Phil" == Phil Muldoon <pmuld...@redhat.com> writes:
> 
> Phil> 2013-03-21  Phil Muldoon  <pmuld...@redhat.com>
> Phil>         PR gdb/15195
> 
> I think this should use a full URL.

> Phil>      def to_string (self):
> 
> Why doesn't the 'children' method also need a fix?
> 
> Also, Phil and I discussed this on irc, and he is going to write a
> regression test.

Hi,

Attached is an updated patch correcting the issues that you pointed
out.

Cheers,

Phil


2013-06-11  Phil Muldoon  <pmuld...@redhat.com>

        http://sourceware.org/bugzilla/show_bug.cgi?id=15195

        * python/libstdcxx/v6/printers.py (StdTuplePrinter.__init__):
        Acquire referenced value if tuple is a reference.
        * testsuite/libstdc++-prettyprinters/cxx11.cc (main): Add -O0
        flag. Add tuple and referenced tuple tests.

--

Index: python/libstdcxx/v6/printers.py
===================================================================
--- python/libstdcxx/v6/printers.py     (revision 199642)
+++ python/libstdcxx/v6/printers.py     (working copy)
@@ -313,6 +313,9 @@
     def __init__ (self, typename, val):
         self.typename = typename
         self.val = val;
+        type = self.val.type
+        if type.code == gdb.TYPE_CODE_REF:
+           self.val = self.val.referenced_value()
 
     def children (self):
         return self._iterator (self.val)
Index: testsuite/libstdc++-prettyprinters/cxx11.cc
===================================================================
--- testsuite/libstdc++-prettyprinters/cxx11.cc (revision 199706)
+++ testsuite/libstdc++-prettyprinters/cxx11.cc (working copy)
@@ -1,5 +1,5 @@
 // { dg-do run }
-// { dg-options "-std=gnu++11 -g" }
+// { dg-options "-std=gnu++11 -g -O0" }
 
 // Copyright (C) 2011-2013 Free Software Foundation, Inc.
 //
@@ -25,6 +25,8 @@
 #include <memory>
 #include <iostream>
 
+typedef std::tuple<int, int> ExTuple;
+
 template<class T>
 void
 placeholder(const T &s)
@@ -100,6 +102,10 @@
   uptr->i = 23;
 // { dg-final { regexp-test uptr {std::unique_ptr.datum. containing 0x.*} } }
 
+  ExTuple tpl(6,7);
+// { dg-final { note-test tpl {std::tuple containing = {[1] = 6, [2] = 7}} } } 
 
+  ExTuple &rtpl = tpl;
+// { dg-final { note-test rtpl {std::tuple containing = {[1] = 6, [2] = 7}} } 
}   
   placeholder(""); // Mark SPOT
   use(efl);
   use(fl);
        

Reply via email to