aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Evans <dje@google.com>2015-11-16 21:32:26 +0000
committerDoug Evans <devans@gcc.gnu.org>2015-11-16 21:32:26 +0000
commit46d825c59cd6d5df4784b99dc0fcb878c2b7c24f (patch)
treea3a5e016e24c49759099058b9dedf0638b1a67c4
parent83b4db6df5f0717e6537bc6ab63406a2acc340e3 (diff)
downloadgcc-46d825c59cd6d5df4784b99dc0fcb878c2b7c24f.zip
gcc-46d825c59cd6d5df4784b99dc0fcb878c2b7c24f.tar.gz
gcc-46d825c59cd6d5df4784b99dc0fcb878c2b7c24f.tar.bz2
re PR libstdc++/67440 (pretty-printing of a const set<foo> fails)
PR libstdc++/67440 * python/libstdcxx/v6/printers.py (find_type): Handle "const" in type name. * testsuite/libstdc++-prettyprinters/debug.cc: Add test for const set<int>. * testsuite/libstdc++-prettyprinters/simple.cc: Ditto. * testsuite/libstdc++-prettyprinters/simple11.cc: Ditto. From-SVN: r230437
-rw-r--r--libstdc++-v3/ChangeLog10
-rw-r--r--libstdc++-v3/python/libstdcxx/v6/printers.py4
-rw-r--r--libstdc++-v3/testsuite/libstdc++-prettyprinters/debug.cc4
-rw-r--r--libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc4
-rw-r--r--libstdc++-v3/testsuite/libstdc++-prettyprinters/simple11.cc4
5 files changed, 25 insertions, 1 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index fcef035..9ef0890 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,13 @@
+2015-11-16 Doug Evans <dje@google.com>
+
+ PR libstdc++/67440
+ * python/libstdcxx/v6/printers.py (find_type): Handle "const" in
+ type name.
+ * testsuite/libstdc++-prettyprinters/debug.cc: Add test for
+ const set<int>.
+ * testsuite/libstdc++-prettyprinters/simple.cc: Ditto.
+ * testsuite/libstdc++-prettyprinters/simple11.cc: Ditto.
+
2015-11-15 Jonathan Wakely <jwakely@redhat.com>
PR libstdc++/68353
diff --git a/libstdc++-v3/python/libstdcxx/v6/printers.py b/libstdc++-v3/python/libstdcxx/v6/printers.py
index 12e732e..14f786a 100644
--- a/libstdc++-v3/python/libstdcxx/v6/printers.py
+++ b/libstdc++-v3/python/libstdcxx/v6/printers.py
@@ -85,7 +85,9 @@ except ImportError:
def find_type(orig, name):
typ = orig.strip_typedefs()
while True:
- search = str(typ) + '::' + name
+ # Use typ.name here instead of str(typ) to discard any const,etc.
+ # qualifiers. PR 67440.
+ search = typ.name + '::' + name
try:
return gdb.lookup_type(search)
except RuntimeError:
diff --git a/libstdc++-v3/testsuite/libstdc++-prettyprinters/debug.cc b/libstdc++-v3/testsuite/libstdc++-prettyprinters/debug.cc
index c62ef61..8d40f17 100644
--- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/debug.cc
+++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/debug.cc
@@ -70,6 +70,10 @@ main()
std::map<std::string, int>::iterator mpiter = mp.begin();
// { dg-final { note-test mpiter {{first = "zardoz", second = 23}} } }
+ // PR 67440
+ const std::set<int> const_intset = {2, 3};
+// { dg-final { note-test const_intset {std::__debug::set with 2 elements = {[0] = 2, [1] = 3}} } }
+
std::set<std::string> sp;
sp.insert("clownfish");
sp.insert("barrel");
diff --git a/libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc b/libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc
index ad3c256..68c4d83 100644
--- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc
+++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/simple.cc
@@ -73,6 +73,10 @@ main()
std::map<std::string, int>::iterator mpiter = mp.begin();
// { dg-final { note-test mpiter {{first = "zardoz", second = 23}} } }
+ // PR 67440
+ const std::set<int> const_intset = {2, 3};
+// { dg-final { note-test const_intset {std::set with 2 elements = {[0] = 2, [1] = 3}} } }
+
std::set<std::string> sp;
sp.insert("clownfish");
sp.insert("barrel");
diff --git a/libstdc++-v3/testsuite/libstdc++-prettyprinters/simple11.cc b/libstdc++-v3/testsuite/libstdc++-prettyprinters/simple11.cc
index ba36a6a..5f7e9a6 100644
--- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/simple11.cc
+++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/simple11.cc
@@ -73,6 +73,10 @@ main()
std::map<std::string, int>::iterator mpiter = mp.begin();
// { dg-final { note-test mpiter {{first = "zardoz", second = 23}} } }
+ // PR 67440
+ const std::set<int> const_intset = {2, 3};
+// { dg-final { note-test const_intset {std::set with 2 elements = {[0] = 2, [1] = 3}} } }
+
std::set<std::string> sp;
sp.insert("clownfish");
sp.insert("barrel");