diff options
author | Richard Guenther <rguenther@suse.de> | 2009-12-12 01:12:55 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2009-12-12 01:12:55 +0000 |
commit | 2bcbee3aae8e27021a1f41b77efa965483901825 (patch) | |
tree | ece91ba25fcd77e78e57f19a637336eb95e2eb1b | |
parent | 19f49d971e5f55477ae3137bc41eb4a528a37f91 (diff) | |
download | gcc-2bcbee3aae8e27021a1f41b77efa965483901825.zip gcc-2bcbee3aae8e27021a1f41b77efa965483901825.tar.gz gcc-2bcbee3aae8e27021a1f41b77efa965483901825.tar.bz2 |
tree.c (need_assembler_name_p): Abstract decls do not need an assembler name.
2009-12-12 Richard Guenther <rguenther@suse.de>
* tree.c (need_assembler_name_p): Abstract decls do not need
an assembler name.
* dwarf2out.c (dwarf2out_abstract_function): Preserve
DECL_ABSTRACT properly.
From-SVN: r155189
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 3 | ||||
-rw-r--r-- | gcc/tree.c | 4 |
3 files changed, 13 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a555f3f..daad249 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2009-12-12 Richard Guenther <rguenther@suse.de> + + * tree.c (need_assembler_name_p): Abstract decls do not need + an assembler name. + * dwarf2out.c (dwarf2out_abstract_function): Preserve + DECL_ABSTRACT properly. + 2009-12-11 Richard Guenther <rguenther@suse.de> * lto-streamer-in.c (lto_input_tree_ref): Do not register diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 3e3cf31..ec5298c 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -17434,7 +17434,7 @@ dwarf2out_abstract_function (tree decl) dw_die_ref old_die; tree save_fn; tree context; - int was_abstract = DECL_ABSTRACT (decl); + int was_abstract; htab_t old_decl_loc_table; /* Make sure we have the actual abstract inline, not a clone. */ @@ -17466,6 +17466,7 @@ dwarf2out_abstract_function (tree decl) current_function_decl = decl; push_cfun (DECL_STRUCT_FUNCTION (decl)); + was_abstract = DECL_ABSTRACT (decl); set_decl_abstract_flags (decl, 1); dwarf2out_decl (decl); if (! was_abstract) @@ -4273,6 +4273,10 @@ need_assembler_name_p (tree decl) || DECL_ASSEMBLER_NAME_SET_P (decl)) return false; + /* Abstract decls do not need an assembler name. */ + if (DECL_ABSTRACT (decl)) + return false; + /* For VAR_DECLs, only static, public and external symbols need an assembler name. */ if (TREE_CODE (decl) == VAR_DECL |