aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorDoug Evans <dje@google.com>2012-03-13 17:16:18 +0000
committerDoug Evans <dje@google.com>2012-03-13 17:16:18 +0000
commitc5b7e1cbc5f385a8a45b8b4891c05c310ffe6552 (patch)
tree4aa73d3217d663a983a994c5512a7e65abda5252 /gdb
parent8d3eaee676d2d1e2339fc08583261f33649b5267 (diff)
downloadgdb-c5b7e1cbc5f385a8a45b8b4891c05c310ffe6552.zip
gdb-c5b7e1cbc5f385a8a45b8b4891c05c310ffe6552.tar.gz
gdb-c5b7e1cbc5f385a8a45b8b4891c05c310ffe6552.tar.bz2
* dwarf2read.c (load_partial_comp_unit): Defer adding cu to
read_in_chain until we have successfully read it in. (load_full_comp_unit): Ditto. (read_signatured_type): Add comment.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog7
-rw-r--r--gdb/dwarf2read.c17
2 files changed, 16 insertions, 8 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index ccb66a1..0db4a16 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,10 @@
+2012-03-13 Doug Evans <dje@google.com>
+
+ * dwarf2read.c (load_partial_comp_unit): Defer adding cu to
+ read_in_chain until we have successfully read it in.
+ (load_full_comp_unit): Ditto.
+ (read_signatured_type): Add comment.
+
2012-03-13 Chris January <chris.january@allinea.com>
* stabsread.c (fix_common_block): Change type of valu argument
diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c
index ebe855b..807d36d 100644
--- a/gdb/dwarf2read.c
+++ b/gdb/dwarf2read.c
@@ -3686,10 +3686,6 @@ load_partial_comp_unit (struct dwarf2_per_cu_data *this_cu)
do_cleanups (free_cu_cleanup);
return;
}
-
- /* Link this CU into read_in_chain. */
- this_cu->cu->read_in_chain = dwarf2_per_objfile->read_in_chain;
- dwarf2_per_objfile->read_in_chain = this_cu;
}
else
{
@@ -3722,6 +3718,10 @@ load_partial_comp_unit (struct dwarf2_per_cu_data *this_cu)
/* We've successfully allocated this compilation unit. Let our
caller clean it up when finished with it. */
discard_cleanups (free_cu_cleanup);
+
+ /* Link this CU into read_in_chain. */
+ this_cu->cu->read_in_chain = dwarf2_per_objfile->read_in_chain;
+ dwarf2_per_objfile->read_in_chain = this_cu;
}
}
@@ -4700,10 +4700,6 @@ load_full_comp_unit (struct dwarf2_per_cu_data *per_cu)
/* Complete the cu_header. */
cu->header.offset = offset;
cu->header.first_die_offset = info_ptr - beg_of_comp_unit;
-
- /* Link this CU into read_in_chain. */
- per_cu->cu->read_in_chain = dwarf2_per_objfile->read_in_chain;
- dwarf2_per_objfile->read_in_chain = per_cu;
}
else
{
@@ -4730,6 +4726,10 @@ load_full_comp_unit (struct dwarf2_per_cu_data *per_cu)
/* We've successfully allocated this compilation unit. Let our
caller clean it up when finished with it. */
discard_cleanups (free_cu_cleanup);
+
+ /* Link this CU into read_in_chain. */
+ per_cu->cu->read_in_chain = dwarf2_per_objfile->read_in_chain;
+ dwarf2_per_objfile->read_in_chain = per_cu;
}
}
@@ -14445,6 +14445,7 @@ read_signatured_type (struct signatured_type *type_sig)
clean it up when finished with it. */
discard_cleanups (free_cu_cleanup);
+ /* Link this TU into read_in_chain. */
type_sig->per_cu.cu->read_in_chain = dwarf2_per_objfile->read_in_chain;
dwarf2_per_objfile->read_in_chain = &type_sig->per_cu;
}