From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19899 invoked by alias); 23 Jun 2010 16:58:07 -0000 Received: (qmail 19887 invoked by uid 22791); 23 Jun 2010 16:58:05 -0000 X-SWARE-Spam-Status: No, hits=-1.3 required=5.0 tests=AWL,BAYES_00,KAM_STOCKGEN,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from smtp-outbound-1.vmware.com (HELO smtp-outbound-1.vmware.com) (65.115.85.69) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 23 Jun 2010 16:58:01 +0000 Received: from mailhost2.vmware.com (mailhost2.vmware.com [10.16.67.167]) by smtp-outbound-1.vmware.com (Postfix) with ESMTP id 83C541310C; Wed, 23 Jun 2010 09:57:57 -0700 (PDT) Received: from msnyder-server.eng.vmware.com (promd-2s-dhcp138.eng.vmware.com [10.20.124.138]) by mailhost2.vmware.com (Postfix) with ESMTP id 79B6A8E858; Wed, 23 Jun 2010 09:57:57 -0700 (PDT) Message-ID: <4C223D15.4030609@vmware.com> Date: Wed, 23 Jun 2010 16:58:00 -0000 From: Michael Snyder User-Agent: Thunderbird 2.0.0.22 (X11/20090609) MIME-Version: 1.0 To: Pierre Muller CC: "gdb-patches@sourceware.org" Subject: Re: [RFC] display names of explicit typedefs for 'info types' References: <000f01cb12ec$194f4b80$4bede280$@muller@ics-cnrs.unistra.fr> In-Reply-To: <000f01cb12ec$194f4b80$4bede280$@muller@ics-cnrs.unistra.fr> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2010-06/txt/msg00503.txt.bz2 Pierre Muller wrote: > I was always puzzled by the fact that info types > did sometime not list types that I knew existed. > The problem is that for types defined in C using `typedef ' > only the definition part was displayed, but not the name of > the type itself. > > This small patch fixes that 'mis-feature'... > I was expecting lots of failures in the testsuite, > but was surprised to find no change that I could relate to the patch... > > The following tiny example: >>>>>> Start > typedef volatile int volint; > typedef int myint; > > volint vol; > myint my; > > int > main () > { > vol = 5; > my = 8; > return 0; > } >>>>>> End > > gives currently (compiled with stabs debug info) > typedef int; (Repeated twice) > typedef volatile int; > > With the patch, I get: > typedef int; > typedef int myint; > typedef volatile int volint; > > Note that the output of 'info var' is not really consistent: > (gdb) info var > myint my; > volatile int vol; > but this is not changed by my patch, and is the same as before.. > (gdb) ptype my > type = int > Here again, the original typedef name is completely lost ... > > Comments welcome, > > Pierre Muller > Pascal language support maintainer for GDB I think it's an incremental improvement. > > 2010-06-22 Pierre Muller > > * c-typeprint.c (c_print_typedef): Append new type name for > typedefs. > > Index: src/gdb/c-typeprint.c > =================================================================== > RCS file: /cvs/src/src/gdb/c-typeprint.c,v > retrieving revision 1.58 > diff -u -p -r1.58 c-typeprint.c > --- src/gdb/c-typeprint.c 21 Jun 2010 18:01:50 -0000 1.58 > +++ src/gdb/c-typeprint.c 22 Jun 2010 22:36:06 -0000 > @@ -107,7 +107,8 @@ c_print_typedef (struct type *type, stru > type_print (type, "", stream, 0); > if (TYPE_NAME ((SYMBOL_TYPE (new_symbol))) == 0 > || strcmp (TYPE_NAME ((SYMBOL_TYPE (new_symbol))), > - SYMBOL_LINKAGE_NAME (new_symbol)) != 0) > + SYMBOL_LINKAGE_NAME (new_symbol)) != 0 > + || TYPE_CODE (SYMBOL_TYPE (new_symbol)) == TYPE_CODE_TYPEDEF) > fprintf_filtered (stream, " %s", SYMBOL_PRINT_NAME (new_symbol)); > fprintf_filtered (stream, ";\n"); > } >