This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [PATCH] Correct pascal parser problem.
- From: Pierre Muller <muller at ics dot u-strasbg dot fr>
- To: gdb-patches at sources dot redhat dot com
- Cc: Andrew Cagney <ac131313 at redhat dot com>
- Date: Wed, 13 Nov 2002 10:16:15 +0100
- Subject: Re: [PATCH] Correct pascal parser problem.
At 10:12 13/11/2002, you wrote:
> The following patch fixes a problem when parsing
>expressions that started with fields of this.
>
> If you where in a method that have a filed named owner
>that is a pointer,
>(gdb) p owner
>$1 = (PSYMTABLE) $507a48
>(gdb) p owner^
>Type TNAMEDINDEXOBJECT has no component named OWNER^.
>
>The problem was that lookup_struct_elt_type
>was call with 'OWNER^' instead of only 'OWNER'.
>
>After that patch, I get this:
>(gdb) p owner
>$3 = (PSYMTABLE) $507a48
>(gdb) p owner^
>$4 = {NAME = $0, DATASIZE = 0, DATAALIGNMENT = 2, SYMINDEX = $507a78,
> DEFINDEX = $507a98, SYMSEARCH = $507ab8, NEXT = $5075f8, DEFOWNER = $507ad8,
> ADDRESS_FIXUP = 0, UNITID = 0, SYMTABLELEVEL = 0,
> SYMTABLETYPE = RECORDSYMTABLE, _vptr$ = {$4eb2c8, $1}}
>which is much better.
Can I also commit this to 5.3 branch or is it too late?
>ChangeLog entry:
>
>2002-11-13 Pierre Muller <muller@ics.u-strasbg.fr>
>
> * p-exp.y (name_not_typename): Use copy_name to
> set current_type variable for fields of THIS.
>
>
>
>diff -u -p -r1.17 p-exp.y
>--- p-exp.y 6 Nov 2002 22:48:25 -0000 1.17
>+++ p-exp.y 13 Nov 2002 09:04:25 -0000
>@@ -649,7 +649,7 @@ variable: name_not_typename
> if (this_type)
> current_type = lookup_struct_elt_type (
> this_type,
>- $1.stoken.ptr, false);
>+ copy_name($1.stoken), false);
> else
> current_type = NULL;
> }
>
>
>
>
>Pierre Muller
>Institut Charles Sadron
>6,rue Boussingault
>F 67083 STRASBOURG CEDEX (France)
>mailto:muller@ics.u-strasbg.fr
>Phone : (33)-3-88-41-40-07 Fax : (33)-3-88-41-40-99
Pierre Muller
Institut Charles Sadron
6,rue Boussingault
F 67083 STRASBOURG CEDEX (France)
mailto:muller@ics.u-strasbg.fr
Phone : (33)-3-88-41-40-07 Fax : (33)-3-88-41-40-99