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]

gcc HEAD changes stab function names for static functions


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.

Michael C


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