* dwarf_reader.cc (Sized_dwarf_line_info::Sized_dwarf_line_info):

Change read_shndx type to unsigned int.
	(Sized_dwarf_line_info::read_lines): Change shndx type to unsigned
	int.
	(Sized_dwarf_line_info::read_line_mappings): Likewise.
	* dwarf_reader.h (Sized_dwarf_line_info::Sized_dwarf_line_info):
	Change read_shndx type to unsigned int.
	(Sized_dwarf_line_info::read_lines): Change shndx type to unsigned
	int.
	(Sized_dwarf_line_info::read_line_mappings): Likewise.
	* layout.cc (Layout::create_symtab_sections): Cast the result of
	local_symcount * symsize to off_t in the gold_assert.
This commit is contained in:
Ian Lance Taylor
2009-10-09 23:05:21 +00:00
parent 20e5b5c0ad
commit 75aea3d03d
4 changed files with 24 additions and 9 deletions

View File

@ -1,3 +1,18 @@
2009-10-09 Andrew Pinski <andrew_pinski@playstation.sony.com>
* dwarf_reader.cc (Sized_dwarf_line_info::Sized_dwarf_line_info):
Change read_shndx type to unsigned int.
(Sized_dwarf_line_info::read_lines): Change shndx type to unsigned
int.
(Sized_dwarf_line_info::read_line_mappings): Likewise.
* dwarf_reader.h (Sized_dwarf_line_info::Sized_dwarf_line_info):
Change read_shndx type to unsigned int.
(Sized_dwarf_line_info::read_lines): Change shndx type to unsigned
int.
(Sized_dwarf_line_info::read_line_mappings): Likewise.
* layout.cc (Layout::create_symtab_sections): Cast the result of
local_symcount * symsize to off_t in the gold_assert.
2009-10-09 Viktor Kutuzov <vkutuzov@accesssoftek.com> 2009-10-09 Viktor Kutuzov <vkutuzov@accesssoftek.com>
* arm.cc (Target_arm::relocate::reloc_is_non_pic): Return true for * arm.cc (Target_arm::relocate::reloc_is_non_pic): Return true for

View File

@ -1,6 +1,6 @@
// dwarf_reader.cc -- parse dwarf2/3 debug information // dwarf_reader.cc -- parse dwarf2/3 debug information
// Copyright 2007, 2008 Free Software Foundation, Inc. // Copyright 2007, 2008, 2009 Free Software Foundation, Inc.
// Written by Ian Lance Taylor <iant@google.com>. // Written by Ian Lance Taylor <iant@google.com>.
// This file is part of gold. // This file is part of gold.
@ -129,7 +129,7 @@ ResetLineStateMachine(struct LineStateMachine* lsm, bool default_is_stmt)
template<int size, bool big_endian> template<int size, bool big_endian>
Sized_dwarf_line_info<size, big_endian>::Sized_dwarf_line_info(Object* object, Sized_dwarf_line_info<size, big_endian>::Sized_dwarf_line_info(Object* object,
off_t read_shndx) unsigned int read_shndx)
: data_valid_(false), buffer_(NULL), symtab_buffer_(NULL), : data_valid_(false), buffer_(NULL), symtab_buffer_(NULL),
directories_(), files_(), current_header_index_(-1) directories_(), files_(), current_header_index_(-1)
{ {
@ -508,7 +508,7 @@ Sized_dwarf_line_info<size, big_endian>::process_one_opcode(
template<int size, bool big_endian> template<int size, bool big_endian>
unsigned const char* unsigned const char*
Sized_dwarf_line_info<size, big_endian>::read_lines(unsigned const char* lineptr, Sized_dwarf_line_info<size, big_endian>::read_lines(unsigned const char* lineptr,
off_t shndx) unsigned int shndx)
{ {
struct LineStateMachine lsm; struct LineStateMachine lsm;
@ -595,7 +595,7 @@ Sized_dwarf_line_info<size, big_endian>::read_relocs(Object* object)
template<int size, bool big_endian> template<int size, bool big_endian>
void void
Sized_dwarf_line_info<size, big_endian>::read_line_mappings(Object* object, Sized_dwarf_line_info<size, big_endian>::read_line_mappings(Object* object,
off_t shndx) unsigned int shndx)
{ {
gold_assert(this->data_valid_ == true); gold_assert(this->data_valid_ == true);

View File

@ -1,6 +1,6 @@
// dwarf_reader.h -- parse dwarf2/3 debug information for gold -*- C++ -*- // dwarf_reader.h -- parse dwarf2/3 debug information for gold -*- C++ -*-
// Copyright 2007, 2008 Free Software Foundation, Inc. // Copyright 2007, 2008, 2009 Free Software Foundation, Inc.
// Written by Ian Lance Taylor <iant@google.com>. // Written by Ian Lance Taylor <iant@google.com>.
// This file is part of gold. // This file is part of gold.
@ -105,7 +105,7 @@ class Sized_dwarf_line_info : public Dwarf_line_info
// Initializes a .debug_line reader for a given object file. // Initializes a .debug_line reader for a given object file.
// If SHNDX is specified and non-negative, only read the debug // If SHNDX is specified and non-negative, only read the debug
// information that pertains to the specified section. // information that pertains to the specified section.
Sized_dwarf_line_info(Object* object, off_t read_shndx = -1U); Sized_dwarf_line_info(Object* object, unsigned int read_shndx = -1U);
private: private:
std::string std::string
@ -115,7 +115,7 @@ class Sized_dwarf_line_info : public Dwarf_line_info
// If SHNDX is non-negative, only store debug information that // If SHNDX is non-negative, only store debug information that
// pertains to the specified section. // pertains to the specified section.
void void
read_line_mappings(Object*, off_t shndx); read_line_mappings(Object*, unsigned int shndx);
// Reads the relocation section associated with .debug_line and // Reads the relocation section associated with .debug_line and
// stores relocation information in reloc_map_. // stores relocation information in reloc_map_.
@ -140,7 +140,7 @@ class Sized_dwarf_line_info : public Dwarf_line_info
// discard all line information that doesn't pertain to the given // discard all line information that doesn't pertain to the given
// section. // section.
const unsigned char* const unsigned char*
read_lines(const unsigned char* lineptr, off_t shndx); read_lines(const unsigned char* lineptr, unsigned int shndx);
// Process a single line info opcode at START using the state // Process a single line info opcode at START using the state
// machine at LSM. Return true if we should define a line using the // machine at LSM. Return true if we should define a line using the

View File

@ -2542,7 +2542,7 @@ Layout::create_symtab_sections(const Input_objects* input_objects,
} }
unsigned int local_symcount = local_symbol_index; unsigned int local_symcount = local_symbol_index;
gold_assert(local_symcount * symsize == off - startoff); gold_assert(static_cast<off_t>(local_symcount * symsize) == off - startoff);
off_t dynoff; off_t dynoff;
size_t dyn_global_index; size_t dyn_global_index;