aboutsummaryrefslogtreecommitdiff
path: root/gold
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@google.com>2007-11-07 18:29:34 +0000
committerIan Lance Taylor <iant@google.com>2007-11-07 18:29:34 +0000
commit91ea499d4ae67d29f4ef3aefc3335224a2837254 (patch)
treeb07d9444c7ef4ef8747202a7e9b8e62f73ee7f2f /gold
parent71fe8fb398bbfd79c5beadd1cce5656165f8ed37 (diff)
downloadfsf-binutils-gdb-91ea499d4ae67d29f4ef3aefc3335224a2837254.zip
fsf-binutils-gdb-91ea499d4ae67d29f4ef3aefc3335224a2837254.tar.gz
fsf-binutils-gdb-91ea499d4ae67d29f4ef3aefc3335224a2837254.tar.bz2
Check that we don't set the output section index twice.
Diffstat (limited to 'gold')
-rw-r--r--gold/output.cc2
-rw-r--r--gold/output.h10
2 files changed, 9 insertions, 3 deletions
diff --git a/gold/output.cc b/gold/output.cc
index acba77c..64aa4dc 100644
--- a/gold/output.cc
+++ b/gold/output.cc
@@ -992,7 +992,7 @@ Output_section::Output_section(const char* name, elfcpp::Elf_Word type,
info_(0),
type_(type),
flags_(flags),
- out_shndx_(0),
+ out_shndx_(-1U),
symtab_index_(0),
dynsym_index_(0),
input_sections_(),
diff --git a/gold/output.h b/gold/output.h
index a615a71..b6c1245 100644
--- a/gold/output.h
+++ b/gold/output.h
@@ -1183,12 +1183,18 @@ class Output_section : public Output_data
// Return the section index in the output file.
unsigned int
do_out_shndx() const
- { return this->out_shndx_; }
+ {
+ gold_assert(this->out_shndx_ != -1U);
+ return this->out_shndx_;
+ }
// Set the output section index.
void
do_set_out_shndx(unsigned int shndx)
- { this->out_shndx_ = shndx; }
+ {
+ gold_assert(this->out_shndx_ == -1U);
+ this->out_shndx_ = shndx;
+ }
// Return the entsize field.
uint64_t