This is the mail archive of the gdb@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]

Re: gcc HEAD changes stab function names for static functions


On Fri, Jul 25, 2003 at 02:29:02PM -0400, Michael Elizabeth Chastain wrote:
> I've got another regression in gcc HEAD and I just want to check whether
> it's a gcc bug or whether we should handle it in gdb.
> 
> Here is the source code:
> 
>   static void f1 (int i);
>   static void f1 (int i)
>   {
>     return;
>   }
> 
> Here is the output from gcc HEAD 20030716:
> 
> 	  .stabs  "f1:f(0,21)=(0,21)",36,0,3,f1                                           .stabs  "i:p(0,1)",160,0,2,8
> 	  .type   f1, @function                                                   f1:
> 	  .stabn 68,0,3,.LM1-f1
> 
> And here is the output from gcc HEAD 20030722:
> 
> 	  .stabs  "f1.0:f(0,21)=(0,21)",36,0,3,f1.0
> 	  .stabs  "i:p(0,1)",160,0,2,8                                                    .type   f1.0, @function
>   f1.0:                                                                                   .stabn 68,0,3,.LM1-f1.0
> 
> The function name change from "f1" to "f1.0", even though "f1"
> is declared and defined at file scope.  This happens with -gstabs+.
> It does not happen with -gdwarf-2 (or if it does, gdb is handling
> it okay).
> 
> This looks like a bug in gcc.  Or should gdb handle this, even at
> file scope?
> 
> gcc has new code here and it will be easy to isolate the regression.
> gcc tries to test whether "f1" is at file scope or a local scope.  I
> think it's getting mislead by the "static void f1 (int i);" declaration.
> But my real question is: should I whinge at gcc to change the compiler
> back, or whinge at gdb to accommodate the new compiler behavior.

This is fallback from Geoff's program-at-a-time patch.  I thought he'd
been persuaded to change it back for file-at-a-time, but maybe he
didn't do it right - see the message from Bob Wilson yesterday.  Don't
remember which gcc list.

It will probably be reverted.  In any case, it should have been
"f1:f(0,21)" and f1.0:, the f1.0 bit should not appear in a stabs
string.

-- 
Daniel Jacobowitz
MontaVista Software                         Debian GNU/Linux Developer


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