PR libstdc++/67440 make pretty printers work with GDB 7.6 again

Submitted by Jonathan Wakely on March 16, 2017, 2:14 p.m.

Details

Message ID 20170316141431.GA6430@redhat.com
State New
Headers show

Commit Message

Jonathan Wakely March 16, 2017, 2:14 p.m.
The gdb.Type.name attribute was only added in GDB 7.7, so several
printer tests fail on older GDB versions. Since all we need is to
strip cv-qualifiers we can use gdb.Type.unqualified() for that.

	PR libstdc++/67440
	* python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
	for GDB 7.6 compatibility, use gdb.Type.unqualified instead.

Tested powerpc64le-linux (CentOS 7.3) and committed to trunk.
commit 99b545642724a7a584fb1155a1cd2d9339468c8c
Author: Jonathan Wakely <jwakely@redhat.com>
Date:   Thu Mar 16 13:50:29 2017 +0000

    PR libstdc++/67440 make pretty printers work with GDB 7.6 again
    
    	PR libstdc++/67440
    	* python/libstdcxx/v6/printers.py (find_type): Avoid gdb.Type.name
    	for GDB 7.6 compatibility, use gdb.Type.unqualified instead.

Patch hide | download patch | download mbox

diff --git a/libstdc++-v3/python/libstdcxx/v6/printers.py b/libstdc++-v3/python/libstdcxx/v6/printers.py
index 36dd81d..14025dd 100644
--- a/libstdc++-v3/python/libstdcxx/v6/printers.py
+++ b/libstdc++-v3/python/libstdcxx/v6/printers.py
@@ -85,9 +85,8 @@  except ImportError:
 def find_type(orig, name):
     typ = orig.strip_typedefs()
     while True:
-        # Use typ.name here instead of str(typ) to discard any const,etc.
-        # qualifiers.  PR 67440.
-        search = typ.name + '::' + name
+        # Strip cv-qualifiers.  PR 67440.
+        search = '%s::%s' % (typ.unqualified(), name)
         try:
             return gdb.lookup_type(search)
         except RuntimeError: