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] |
On Sun, Jul 04, 2004 at 07:19:19AM -0400, Michael Chastain wrote:This patch should restore the behavior before my patch.
Here's my next problem with gcc HEAD -gdwarf-2. I suspect this is a bug in gdb rather than gcc.
I've got a test program with a class, Alpha, that has a compiler-synthesized assignment operator. That is, Alpha does not declare or define an operator=, so the C++ compiler has to generate one itself.
With the old gcc HEAD, the dwarf-2 info looks like this:
<2><f6b>: Abbrev Number: 21 (DW_TAG_subprogram) DW_AT_sibling : <f98> DW_AT_external : 1 DW_AT_name : (indirect string, offset: 0x9a3): operator= DW_AT_MIPS_linkage_name: _ZN5AlphaaSERKS_ DW_AT_type : <fd1> DW_AT_artificial : 1 DW_AT_declaration : 1
With the new gcc HEAD, the dwarf-2 info looks like this:
<2><f6b>: Abbrev Number: 21 (DW_TAG_subprogram) DW_AT_sibling : <f86> DW_AT_name : (indirect string, offset: 0x999): operator= DW_AT_type : <fbd> DW_AT_artificial : 1 DW_AT_declaration : 1
The difference is that DW_AT_external and DW_AT_MIPS_linkage_name
have gone away.
Is the method code emitted beforehand? How about afterwards? I'm assuming that it is emitted in both cases. Is it marked .globl before and after?
-- Mark Mitchell CodeSourcery, LLC (916) 791-8304 mark@codesourcery.com
2004-07-04 Mark Mitchell <mark@codesourcery.com> * method.c (implicitly_declare_fn): Set linkage of generated functions. Index: method.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/cp/method.c,v retrieving revision 1.292 diff -c -5 -p -r1.292 method.c *** method.c 2 Jul 2004 01:15:42 -0000 1.292 --- method.c 4 Jul 2004 19:40:40 -0000 *************** implicitly_declare_fn (special_function_ *** 1016,1025 **** --- 1016,1026 ---- } grokclassfn (type, fn, kind == sfk_destructor ? DTOR_FLAG : NO_SPECIAL, TYPE_UNQUALIFIED); grok_special_member_properties (fn); + TREE_PUBLIC (fn) = !decl_function_context (TYPE_MAIN_DECL (type)); cp_finish_decl (fn, /*init=*/NULL_TREE, /*asmspec_tree=*/NULL_TREE, /*flags=*/LOOKUP_ONLYCONVERTING); DECL_IN_AGGR_P (fn) = 1; DECL_ARTIFICIAL (fn) = 1; DECL_NOT_REALLY_EXTERN (fn) = 1;
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |