From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5871 invoked by alias); 13 Nov 2002 09:13:57 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 5834 invoked from network); 13 Nov 2002 09:13:54 -0000 Received: from unknown (HELO cerbere.u-strasbg.fr) (130.79.112.250) by sources.redhat.com with SMTP; 13 Nov 2002 09:13:54 -0000 Received: from laocoon.ics.u-strasbg.fr (laocoon.u-strasbg.fr [130.79.112.72]) by cerbere.u-strasbg.fr (Postfix) with ESMTP id 88FD46A4 for ; Wed, 13 Nov 2002 10:27:08 +0100 (CET) Message-Id: <5.0.2.1.2.20021113100327.0317ffe8@ics.u-strasbg.fr> X-Sender: muller@ics.u-strasbg.fr Date: Wed, 13 Nov 2002 01:13:00 -0000 To: gdb-patches@sources.redhat.com From: Pierre Muller Subject: [PATCH] Correct pascal parser problem. Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" X-SW-Source: 2002-11/txt/msg00359.txt.bz2 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. ChangeLog entry: 2002-11-13 Pierre Muller * 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