This is the mail archive of the gdb-prs@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

gdb/512: ptype on Linux does not print c++ typedef pointers correct



>Number:         512
>Category:       gdb
>Synopsis:       ptype on Linux does not print c++ typedef pointers correct
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Mon Apr 29 09:08:01 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Stewart Brown
>Release:        gdb 5.0
>Organization:
>Environment:
Linux 2.2.17-14.1s12
gcc version 2.95.2 19991024 (release)
>Description:
ptype command outputs wrong type when type is a typedef *.  For example with the code:

typedef char* CHAR;
typedef CHAR* CHAR2;

the gdb command 'ptype CHAR' correctly reports char*, but 'ptype CHAR2' reports
char *.  This is incorrect, as CHAR2 is actually a char**.

Another example:

typedef void (*fptr) (void);
typedef fptr* ptr;
fptr f;
ptr p;

the commands 'ptype f' and 'ptype fptr' both correctly return 'void (*)(void)',
but the commands 'ptype ptr' and 'ptype p' both return 'void *', where they
should return 'void (**)(void)'

NOTE:  I have a patch that fixes this problem which is in the attached
tar file.  I will also submit the fix to the patch mailinglist.

>How-To-Repeat:
I have a test program in the attached tar file.  See README for
instructions on compiling/testing the test program.
>Fix:
The fix for this bug is in two functions, c_type_print_varspec_prefix and
c_type_print_varspec_suffix both in c-typeprint.c.  I inlcuded in this email is
the original copy of c-typeprint.c (c-typeprint.c.orig), my copy of the file
with the fix in it (c-typeprint.c.fix) and a patch (ptype.patch).

When these functions are called recurssivly, the show parameter is set to 0.
This prevents them from recursing far enough when the type is a pointer to a 
pointer.  I changed the code to pass whatever value of show was passed in on thep
revious call.  

The recurssion ends in the switch statement when a primative
type is reached.
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="ptype.tar.bz2"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="ptype.tar.bz2"

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
RWjCP1vE4MFf9mHU7ziN0kf/gu5IpwoSAbVWTCA=


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]