This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


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

Re: Patch for correct scoping of stabs information


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

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