diff options
author | Cary Coutant <ccoutant@google.com> | 2012-12-15 00:57:30 +0000 |
---|---|---|
committer | Cary Coutant <ccoutant@google.com> | 2012-12-15 00:57:30 +0000 |
commit | 2a77e2ab1828db0bfd0c28d5e2a38715a19dc9ad (patch) | |
tree | 317a45dafd9f76cc3c1333236f8269d0bc3be6bf | |
parent | fcb94e69be6cf3a538f62bfae7c6072dd30c13e7 (diff) | |
download | fsf-binutils-gdb-2a77e2ab1828db0bfd0c28d5e2a38715a19dc9ad.zip fsf-binutils-gdb-2a77e2ab1828db0bfd0c28d5e2a38715a19dc9ad.tar.gz fsf-binutils-gdb-2a77e2ab1828db0bfd0c28d5e2a38715a19dc9ad.tar.bz2 |
gold/
* dwp.cc (Dwp_output_file::add_cu_set): Check for duplicate CUs.
(Dwp_output_file::Dwp_index::enter_set): Add assert.
-rw-r--r-- | gold/ChangeLog | 5 | ||||
-rw-r--r-- | gold/dwp.cc | 8 |
2 files changed, 11 insertions, 2 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog index 00a7ac7..692ebc2 100644 --- a/gold/ChangeLog +++ b/gold/ChangeLog @@ -1,3 +1,8 @@ +2012-12-14 Cary Coutant <ccoutant@google.com> + + * dwp.cc (Dwp_output_file::add_cu_set): Check for duplicate CUs. + (Dwp_output_file::Dwp_index::enter_set): Add assert. + 2012-12-12 Alan Modra <amodra@gmail.com> * powerpc.cc (class Track_tls): New. diff --git a/gold/dwp.cc b/gold/dwp.cc index 3f7d7bb..a81839c 100644 --- a/gold/dwp.cc +++ b/gold/dwp.cc @@ -1532,8 +1532,11 @@ Dwp_output_file::add_cu_set(uint64_t dwo_id, debug_loc, debug_str_offsets, debug_macinfo, debug_macro }; unsigned int slot; - this->cu_index_.find_or_add(dwo_id, &slot); - this->cu_index_.enter_set(slot, cu_set); + if (!this->cu_index_.find_or_add(dwo_id, &slot)) + this->cu_index_.enter_set(slot, cu_set); + else + gold_warning(_("%s: duplicate entry for CU (dwo_id 0x%llx)"), + this->name_, (unsigned long long)dwo_id); } // Lookup a type signature and return TRUE if we have already seen it. @@ -1617,6 +1620,7 @@ Dwp_output_file::Dwp_index::enter_set(unsigned int slot, this->shndx_pool_.push_back(0); // Enter the signature and pool index into the hash table. + gold_assert(this->hash_table_[slot] == 0); this->hash_table_[slot] = set.signature; this->index_table_[slot] = pool_index; ++this->used_; |