This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Patch for correct scoping of stabs information
- To: gcc-patches at gcc dot gnu dot org
- Subject: Re: Patch for correct scoping of stabs information
- From: Will Cohen <wcohen at redhat dot com>
- Date: Tue, 09 Jan 2001 17:14:00 -0500
- Organization: Red Hat, Inc.
- References: <3A3920F9.7A991A26@redhat.com>
Is it okay to check in this patch? I haven't heard any response.
-Will
Will Cohen wrote:
>
>
>
> ------------------------------------------------------------------------
> The stabs debugging information generated by GCC lacked the required
> scoping informatinon. By default gdb assumes that stabs information
> applies to the entire function, and gdb.base/scope.exp has several
> failures that result from the omission of this scoping information.
> The patch included with this email corrects this problem.
>
> The problem is caused by the difference mean betwen the value returned
> by dbxout_syms() and the variable the results is stored in. The
> function dbxout_syms () returns a value to indicate whether any
> symbolic debugging information was output, a zero value indicates that
> no additional debugging information was generated by this call and a
> non-zero value indicates that some debugging information was
> generated. The function dbxout_block directly stores the result of
> dbxout_syms() into the variable ignored. Unfortunately, a non-zero
> value in ignore implies no scoping information is required. Thus, the
> only case that scoping information would be generated is when
> dbxout_sysm () did not generate any output at all. Thus there should
> be a logical not in the assignment to store the correct value in
> ignored.
>
> Change Log Entry
>
> 2000-12-14 Will Cohen <wcohen@redhat.com>
>
> * dbxout.c (dbxout_block): Set variable ignore correctly.
>
> I was able to bootstrap the patched gcc compiler with
> "--host=i686-pc-linux-gnu". The bootstrap passed "make compare".
>
> The patch:
>
> Index: dbxout.c
> ===================================================================
> RCS file: /cvs/gcc/egcs/gcc/dbxout.c,v
> retrieving revision 1.69
> diff -c -2 -p -r1.69 dbxout.c
> *** dbxout.c 2000/12/02 00:18:46 1.69
> --- dbxout.c 2000/12/14 18:59:07
> *************** dbxout_block (block, depth, args)
> *** 2662,2666 ****
> ignored = 1;
> if (debug_info_level != DINFO_LEVEL_TERSE || depth == 0)
> ! ignored = dbxout_syms (BLOCK_VARS (block));
> if (args)
> dbxout_reg_parms (args);
> --- 2662,2666 ----
> ignored = 1;
> if (debug_info_level != DINFO_LEVEL_TERSE || depth == 0)
> ! ignored = !dbxout_syms (BLOCK_VARS (block));
> if (args)
> dbxout_reg_parms (args);
>
> -Will Cohen