diff options
author | Jason Merrill <jason@casey.cygnus.com> | 2000-05-10 11:02:37 +0000 |
---|---|---|
committer | Jason Merrill <jason@gcc.gnu.org> | 2000-05-10 07:02:37 -0400 |
commit | 8d8238b6267048f1238ea5e6212fdb922b284954 (patch) | |
tree | 9bde39acaf3c33712f5455337f3bfa1d7e8a4d1f /gcc | |
parent | fe517fb2c9ddd0300d5ecad7658ac8e4554069bb (diff) | |
download | gcc-8d8238b6267048f1238ea5e6212fdb922b284954.zip gcc-8d8238b6267048f1238ea5e6212fdb922b284954.tar.gz gcc-8d8238b6267048f1238ea5e6212fdb922b284954.tar.bz2 |
dwarf2out.c (gen_subprogram_die): Fixup die_parent for the abstract instance of a nested inline function.
* dwarf2out.c (gen_subprogram_die): Fixup die_parent for the
abstract instance of a nested inline function.
* stor-layout.c (finish_record_layout): finalize_type_size
before laying out the pending_statics.
From-SVN: r33820
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/dwarf2out.c | 5 | ||||
-rw-r--r-- | gcc/stor-layout.c | 6 |
3 files changed, 16 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 67b2bfc..2c46eac 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,11 @@ +2000-05-10 Jason Merrill <jason@casey.cygnus.com> + + * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the + abstract instance of a nested inline function. + + * stor-layout.c (finish_record_layout): finalize_type_size + before laying out the pending_statics. + Wed 10 May 09:36:47 2000 Neil Booth <NeilB@earthling.net> * cpplex.c (spell_token): New function. diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 2e1b689..c0da422 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -8160,6 +8160,11 @@ gen_subprogram_die (decl, context_die) if (declaration && ! local_scope_p (context_die)) abort (); + /* Fixup die_parent for the abstract instance of a nested + inline function. */ + if (old_die && old_die->die_parent == NULL) + add_child_die (context_die, old_die); + subr_die = new_die (DW_TAG_subprogram, context_die); add_abstract_origin_attribute (subr_die, origin); } diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c index eadb973..ad7768f 100644 --- a/gcc/stor-layout.c +++ b/gcc/stor-layout.c @@ -1162,6 +1162,9 @@ finish_record_layout (rli) /* Compute the TYPE_MODE for the record. */ compute_record_mode (rli->t); + /* Perform any last tweaks to the TYPE_SIZE, etc. */ + finalize_type_size (rli->t); + /* Lay out any static members. This is done now because their type may use the record's type. */ while (rli->pending_statics) @@ -1170,9 +1173,6 @@ finish_record_layout (rli) rli->pending_statics = TREE_CHAIN (rli->pending_statics); } - /* Perform any last tweaks to the TYPE_SIZE, etc. */ - finalize_type_size (rli->t); - /* Clean up. */ free (rli); } |