This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[ob] Reindent a bit of elfread.c


I added an if (1) in an earlier patch to elf_symtab_read.  This patch just
removes it and reindents the contents.

-- 
Daniel Jacobowitz
CodeSourcery, LLC

2005-11-13  Daniel Jacobowitz  <dan@codesourcery.com>

	* elfread.c (elf_symtab_read): Remove if (1) and reindent.

Index: elfread.c
===================================================================
RCS file: /cvs/src/src/gdb/elfread.c,v
retrieving revision 1.50.8.1
diff -u -p -r1.50.8.1 elfread.c
--- elfread.c	4 Nov 2005 02:54:34 -0000	1.50.8.1
+++ elfread.c	13 Nov 2005 18:55:00 -0000
@@ -164,264 +164,261 @@ elf_symtab_read (struct objfile *objfile
   struct dbx_symfile_info *dbx = objfile->deprecated_sym_stab_info;
   int stripped = (bfd_get_symcount (objfile->obfd) == 0);
 
-  if (1)
+  for (i = 0; i < number_of_symbols; i++)
     {
-      for (i = 0; i < number_of_symbols; i++)
+      sym = symbol_table[i];
+      if (sym->name == NULL || *sym->name == '\0')
 	{
-	  sym = symbol_table[i];
-	  if (sym->name == NULL || *sym->name == '\0')
-	    {
-	      /* Skip names that don't exist (shouldn't happen), or names
-	         that are null strings (may happen). */
-	      continue;
-	    }
+	  /* Skip names that don't exist (shouldn't happen), or names
+	     that are null strings (may happen). */
+	  continue;
+	}
 
-          offset = ANOFFSET (objfile->section_offsets, sym->section->index);
-	  if (dynamic
-	      && sym->section == &bfd_und_section
-	      && (sym->flags & BSF_FUNCTION))
-	    {
-	      struct minimal_symbol *msym;
+      offset = ANOFFSET (objfile->section_offsets, sym->section->index);
+      if (dynamic
+	  && sym->section == &bfd_und_section
+	  && (sym->flags & BSF_FUNCTION))
+	{
+	  struct minimal_symbol *msym;
 
-	      /* Symbol is a reference to a function defined in
-	         a shared library.
-	         If its value is non zero then it is usually the address
-	         of the corresponding entry in the procedure linkage table,
-	         plus the desired section offset.
-	         If its value is zero then the dynamic linker has to resolve
-	         the symbol. We are unable to find any meaningful address
-	         for this symbol in the executable file, so we skip it.  */
-	      symaddr = sym->value;
-	      if (symaddr == 0)
-		continue;
-	      symaddr += offset;
-	      msym = record_minimal_symbol
-		((char *) sym->name, symaddr,
-		 mst_solib_trampoline, sym->section, objfile);
+	  /* Symbol is a reference to a function defined in
+	     a shared library.
+	     If its value is non zero then it is usually the address
+	     of the corresponding entry in the procedure linkage table,
+	     plus the desired section offset.
+	     If its value is zero then the dynamic linker has to resolve
+	     the symbol. We are unable to find any meaningful address
+	     for this symbol in the executable file, so we skip it.  */
+	  symaddr = sym->value;
+	  if (symaddr == 0)
+	    continue;
+	  symaddr += offset;
+	  msym = record_minimal_symbol
+	    ((char *) sym->name, symaddr,
+	     mst_solib_trampoline, sym->section, objfile);
 #ifdef SOFUN_ADDRESS_MAYBE_MISSING
-	      if (msym != NULL)
-		msym->filename = filesymname;
+	  if (msym != NULL)
+	    msym->filename = filesymname;
 #endif
-	      continue;
-	    }
+	  continue;
+	}
 
-	  /* If it is a nonstripped executable, do not enter dynamic
-	     symbols, as the dynamic symbol table is usually a subset
-	     of the main symbol table.  */
-	  if (dynamic && !stripped)
-	    continue;
-	  if (sym->flags & BSF_FILE)
+      /* If it is a nonstripped executable, do not enter dynamic
+	 symbols, as the dynamic symbol table is usually a subset
+	 of the main symbol table.  */
+      if (dynamic && !stripped)
+	continue;
+      if (sym->flags & BSF_FILE)
+	{
+	  /* STT_FILE debugging symbol that helps stabs-in-elf debugging.
+	     Chain any old one onto the objfile; remember new sym.  */
+	  if (sectinfo != NULL)
 	    {
-	      /* STT_FILE debugging symbol that helps stabs-in-elf debugging.
-	         Chain any old one onto the objfile; remember new sym.  */
-	      if (sectinfo != NULL)
-		{
-		  sectinfo->next = dbx->stab_section_info;
-		  dbx->stab_section_info = sectinfo;
-		  sectinfo = NULL;
-		}
-	      filesym = sym;
+	      sectinfo->next = dbx->stab_section_info;
+	      dbx->stab_section_info = sectinfo;
+	      sectinfo = NULL;
+	    }
+	  filesym = sym;
 #ifdef SOFUN_ADDRESS_MAYBE_MISSING
-	      filesymname =
-		obsavestring ((char *) filesym->name, strlen (filesym->name),
-			      &objfile->objfile_obstack);
+	  filesymname =
+	    obsavestring ((char *) filesym->name, strlen (filesym->name),
+			  &objfile->objfile_obstack);
 #endif
+	}
+      else if (sym->flags & BSF_SECTION_SYM)
+	continue;
+      else if (sym->flags & (BSF_GLOBAL | BSF_LOCAL | BSF_WEAK))
+	{
+	  struct minimal_symbol *msym;
+
+	  /* Select global/local/weak symbols.  Note that bfd puts abs
+	     symbols in their own section, so all symbols we are
+	     interested in will have a section. */
+	  /* Bfd symbols are section relative. */
+	  symaddr = sym->value + sym->section->vma;
+	  /* Relocate all non-absolute symbols by the section offset.  */
+	  if (sym->section != &bfd_abs_section)
+	    {
+	      symaddr += offset;
 	    }
-	  else if (sym->flags & BSF_SECTION_SYM)
-	    continue;
-	  else if (sym->flags & (BSF_GLOBAL | BSF_LOCAL | BSF_WEAK))
+	  /* For non-absolute symbols, use the type of the section
+	     they are relative to, to intuit text/data.  Bfd provides
+	     no way of figuring this out for absolute symbols. */
+	  if (sym->section == &bfd_abs_section)
 	    {
-	      struct minimal_symbol *msym;
+	      /* This is a hack to get the minimal symbol type
+		 right for Irix 5, which has absolute addresses
+		 with special section indices for dynamic symbols. */
+	      unsigned short shndx =
+		((elf_symbol_type *) sym)->internal_elf_sym.st_shndx;
 
-	      /* Select global/local/weak symbols.  Note that bfd puts abs
-	         symbols in their own section, so all symbols we are
-	         interested in will have a section. */
-	      /* Bfd symbols are section relative. */
-	      symaddr = sym->value + sym->section->vma;
-	      /* Relocate all non-absolute symbols by the section offset.  */
-	      if (sym->section != &bfd_abs_section)
+	      switch (shndx)
 		{
+		case SHN_MIPS_TEXT:
+		  ms_type = mst_text;
+		  break;
+		case SHN_MIPS_DATA:
+		  ms_type = mst_data;
+		  break;
+		case SHN_MIPS_ACOMMON:
+		  ms_type = mst_bss;
+		  break;
+		default:
+		  ms_type = mst_abs;
+		}
+
+	      /* If it is an Irix dynamic symbol, skip section name
+		 symbols, relocate all others by section offset. */
+	      if (ms_type != mst_abs)
+		{
+		  if (sym->name[0] == '.')
+		    continue;
 		  symaddr += offset;
 		}
-	      /* For non-absolute symbols, use the type of the section
-	         they are relative to, to intuit text/data.  Bfd provides
-	         no way of figuring this out for absolute symbols. */
-	      if (sym->section == &bfd_abs_section)
+	    }
+	  else if (sym->section->flags & SEC_CODE)
+	    {
+	      if (sym->flags & BSF_GLOBAL)
 		{
-		  /* This is a hack to get the minimal symbol type
-		     right for Irix 5, which has absolute addresses
-		     with special section indices for dynamic symbols. */
-		  unsigned short shndx =
-		  ((elf_symbol_type *) sym)->internal_elf_sym.st_shndx;
-
-		  switch (shndx)
-		    {
-		    case SHN_MIPS_TEXT:
-		      ms_type = mst_text;
-		      break;
-		    case SHN_MIPS_DATA:
-		      ms_type = mst_data;
-		      break;
-		    case SHN_MIPS_ACOMMON:
-		      ms_type = mst_bss;
-		      break;
-		    default:
-		      ms_type = mst_abs;
-		    }
-
-		  /* If it is an Irix dynamic symbol, skip section name
-		     symbols, relocate all others by section offset. */
-		  if (ms_type != mst_abs)
-		    {
-		      if (sym->name[0] == '.')
-			continue;
-		      symaddr += offset;
-		    }
+		  ms_type = mst_text;
 		}
-	      else if (sym->section->flags & SEC_CODE)
+	      else if ((sym->name[0] == '.' && sym->name[1] == 'L')
+		       || ((sym->flags & BSF_LOCAL)
+			   && sym->name[0] == '$'
+			   && sym->name[1] == 'L'))
+		/* Looks like a compiler-generated label.  Skip
+		   it.  The assembler should be skipping these (to
+		   keep executables small), but apparently with
+		   gcc on the (deleted) delta m88k SVR4, it loses.
+		   So to have us check too should be harmless (but
+		   I encourage people to fix this in the assembler
+		   instead of adding checks here).  */
+		continue;
+	      else
 		{
-		  if (sym->flags & BSF_GLOBAL)
+		  ms_type = mst_file_text;
+		}
+	    }
+	  else if (sym->section->flags & SEC_ALLOC)
+	    {
+	      if (sym->flags & (BSF_GLOBAL | BSF_WEAK))
+		{
+		  if (sym->section->flags & SEC_LOAD)
 		    {
-		      ms_type = mst_text;
+		      ms_type = mst_data;
 		    }
-		  else if ((sym->name[0] == '.' && sym->name[1] == 'L')
-			   || ((sym->flags & BSF_LOCAL)
-			       && sym->name[0] == '$'
-			       && sym->name[1] == 'L'))
-		    /* Looks like a compiler-generated label.  Skip
-		       it.  The assembler should be skipping these (to
-		       keep executables small), but apparently with
-		       gcc on the (deleted) delta m88k SVR4, it loses.
-		       So to have us check too should be harmless (but
-		       I encourage people to fix this in the assembler
-		       instead of adding checks here).  */
-		    continue;
 		  else
 		    {
-		      ms_type = mst_file_text;
+		      ms_type = mst_bss;
 		    }
 		}
-	      else if (sym->section->flags & SEC_ALLOC)
+	      else if (sym->flags & BSF_LOCAL)
 		{
-		  if (sym->flags & (BSF_GLOBAL | BSF_WEAK))
-		    {
-		      if (sym->section->flags & SEC_LOAD)
-			{
-			  ms_type = mst_data;
-			}
-		      else
-			{
-			  ms_type = mst_bss;
-			}
-		    }
-		  else if (sym->flags & BSF_LOCAL)
+		  /* Named Local variable in a Data section.
+		     Check its name for stabs-in-elf.  */
+		  int special_local_sect;
+		  if (strcmp ("Bbss.bss", sym->name) == 0)
+		    special_local_sect = SECT_OFF_BSS (objfile);
+		  else if (strcmp ("Ddata.data", sym->name) == 0)
+		    special_local_sect = SECT_OFF_DATA (objfile);
+		  else if (strcmp ("Drodata.rodata", sym->name) == 0)
+		    special_local_sect = SECT_OFF_RODATA (objfile);
+		  else
+		    special_local_sect = -1;
+		  if (special_local_sect >= 0)
 		    {
-		      /* Named Local variable in a Data section.
-		         Check its name for stabs-in-elf.  */
-		      int special_local_sect;
-		      if (strcmp ("Bbss.bss", sym->name) == 0)
-			special_local_sect = SECT_OFF_BSS (objfile);
-		      else if (strcmp ("Ddata.data", sym->name) == 0)
-			special_local_sect = SECT_OFF_DATA (objfile);
-		      else if (strcmp ("Drodata.rodata", sym->name) == 0)
-			special_local_sect = SECT_OFF_RODATA (objfile);
-		      else
-			special_local_sect = -1;
-		      if (special_local_sect >= 0)
+		      /* Found a special local symbol.  Allocate a
+			 sectinfo, if needed, and fill it in.  */
+		      if (sectinfo == NULL)
 			{
-			  /* Found a special local symbol.  Allocate a
-			     sectinfo, if needed, and fill it in.  */
-			  if (sectinfo == NULL)
-			    {
-			      int max_index;
-			      size_t size;
+			  int max_index;
+			  size_t size;
 
-			      max_index 
-				= max (SECT_OFF_BSS (objfile),
-				       max (SECT_OFF_DATA (objfile),
-					    SECT_OFF_RODATA (objfile)));
-
-                              /* max_index is the largest index we'll
-                                 use into this array, so we must
-                                 allocate max_index+1 elements for it.
-                                 However, 'struct stab_section_info'
-                                 already includes one element, so we
-                                 need to allocate max_index aadditional
-                                 elements.  */
-			      size = (sizeof (struct stab_section_info) 
-				      + (sizeof (CORE_ADDR)
-					 * max_index));
-			      sectinfo = (struct stab_section_info *)
-				xmalloc (size);
-			      memset (sectinfo, 0, size);
-			      sectinfo->num_sections = max_index;
-			      if (filesym == NULL)
-				{
-				  complaint (&symfile_complaints,
-					     _("elf/stab section information %s without a preceding file symbol"),
-					     sym->name);
-				}
-			      else
-				{
-				  sectinfo->filename =
-				    (char *) filesym->name;
-				}
+			  max_index 
+			    = max (SECT_OFF_BSS (objfile),
+				   max (SECT_OFF_DATA (objfile),
+					SECT_OFF_RODATA (objfile)));
+
+			  /* max_index is the largest index we'll
+			     use into this array, so we must
+			     allocate max_index+1 elements for it.
+			     However, 'struct stab_section_info'
+			     already includes one element, so we
+			     need to allocate max_index aadditional
+			     elements.  */
+			  size = (sizeof (struct stab_section_info) 
+				  + (sizeof (CORE_ADDR)
+				     * max_index));
+			  sectinfo = (struct stab_section_info *)
+			    xmalloc (size);
+			  memset (sectinfo, 0, size);
+			  sectinfo->num_sections = max_index;
+			  if (filesym == NULL)
+			    {
+			      complaint (&symfile_complaints,
+					 _("elf/stab section information %s without a preceding file symbol"),
+					 sym->name);
+			    }
+			  else
+			    {
+			      sectinfo->filename =
+				(char *) filesym->name;
 			    }
-			  if (sectinfo->sections[special_local_sect] != 0)
-			    complaint (&symfile_complaints,
-				       _("duplicated elf/stab section information for %s"),
-				       sectinfo->filename);
-			  /* BFD symbols are section relative.  */
-			  symaddr = sym->value + sym->section->vma;
-			  /* Relocate non-absolute symbols by the
-                             section offset.  */
-			  if (sym->section != &bfd_abs_section)
-			    symaddr += offset;
-			  sectinfo->sections[special_local_sect] = symaddr;
-			  /* The special local symbols don't go in the
-			     minimal symbol table, so ignore this one.  */
-			  continue;
-			}
-		      /* Not a special stabs-in-elf symbol, do regular
-		         symbol processing.  */
-		      if (sym->section->flags & SEC_LOAD)
-			{
-			  ms_type = mst_file_data;
-			}
-		      else
-			{
-			  ms_type = mst_file_bss;
 			}
+		      if (sectinfo->sections[special_local_sect] != 0)
+			complaint (&symfile_complaints,
+				   _("duplicated elf/stab section information for %s"),
+				   sectinfo->filename);
+		      /* BFD symbols are section relative.  */
+		      symaddr = sym->value + sym->section->vma;
+		      /* Relocate non-absolute symbols by the
+			 section offset.  */
+		      if (sym->section != &bfd_abs_section)
+			symaddr += offset;
+		      sectinfo->sections[special_local_sect] = symaddr;
+		      /* The special local symbols don't go in the
+			 minimal symbol table, so ignore this one.  */
+		      continue;
+		    }
+		  /* Not a special stabs-in-elf symbol, do regular
+		     symbol processing.  */
+		  if (sym->section->flags & SEC_LOAD)
+		    {
+		      ms_type = mst_file_data;
 		    }
 		  else
 		    {
-		      ms_type = mst_unknown;
+		      ms_type = mst_file_bss;
 		    }
 		}
 	      else
 		{
-		  /* FIXME:  Solaris2 shared libraries include lots of
-		     odd "absolute" and "undefined" symbols, that play 
-		     hob with actions like finding what function the PC
-		     is in.  Ignore them if they aren't text, data, or bss.  */
-		  /* ms_type = mst_unknown; */
-		  continue;	/* Skip this symbol. */
+		  ms_type = mst_unknown;
 		}
-	      msym = record_minimal_symbol
-		((char *) sym->name, symaddr,
-		 ms_type, sym->section, objfile);
-	      if (msym)
-	      {
-		/* Pass symbol size field in via BFD.  FIXME!!!  */
-		unsigned long size = ((elf_symbol_type *) sym)->internal_elf_sym.st_size;
-		MSYMBOL_SIZE(msym) = size;
-	      }
+	    }
+	  else
+	    {
+	      /* FIXME:  Solaris2 shared libraries include lots of
+		 odd "absolute" and "undefined" symbols, that play 
+		 hob with actions like finding what function the PC
+		 is in.  Ignore them if they aren't text, data, or bss.  */
+	      /* ms_type = mst_unknown; */
+	      continue;	/* Skip this symbol. */
+	    }
+	  msym = record_minimal_symbol
+	    ((char *) sym->name, symaddr,
+	     ms_type, sym->section, objfile);
+	  if (msym)
+	    {
+	      /* Pass symbol size field in via BFD.  FIXME!!!  */
+	      unsigned long size = ((elf_symbol_type *) sym)->internal_elf_sym.st_size;
+	      MSYMBOL_SIZE(msym) = size;
+	    }
 #ifdef SOFUN_ADDRESS_MAYBE_MISSING
-	      if (msym != NULL)
-		msym->filename = filesymname;
+	  if (msym != NULL)
+	    msym->filename = filesymname;
 #endif
-	      ELF_MAKE_MSYMBOL_SPECIAL (sym, msym);
-	    }
+	  ELF_MAKE_MSYMBOL_SPECIAL (sym, msym);
 	}
     }
 }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]