Fix coding style issues pointed by Bill.
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Thu, 16 Jul 2009 06:26:41 +0000 (06:26 +0000)
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>
Thu, 16 Jul 2009 06:26:41 +0000 (06:26 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75898 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/ELF.h
lib/CodeGen/ELFWriter.cpp
lib/CodeGen/ELFWriter.h

index 730ba479acdd4cb70793dfa1f55878e5d10fa409..8bbb29c7bc12fc7467b67b724a032f5f7950ee50 100644 (file)
@@ -72,17 +72,17 @@ namespace llvm {
     unsigned SymTabIdx;
 
     enum {
-      STB_LOCAL = 0,
-      STB_GLOBAL = 1,
-      STB_WEAK = 2
+      STB_LOCAL = 0,  // Local sym, not visible outside obj file containing def
+      STB_GLOBAL = 1, // Global sym, visible to all object files being combined
+      STB_WEAK = 2    // Weak symbol, like global but lower-precedence
     };
 
     enum {
-      STT_NOTYPE = 0,
-      STT_OBJECT = 1,
-      STT_FUNC = 2,
-      STT_SECTION = 3,
-      STT_FILE = 4
+      STT_NOTYPE = 0,  // Symbol's type is not specified
+      STT_OBJECT = 1,  // Symbol is a data object (variable, array, etc.)
+      STT_FUNC = 2,    // Symbol is executable code (function, etc.)
+      STT_SECTION = 3, // Symbol refers to a section
+      STT_FILE = 4     // Local, absolute symbol that refers to a file
     };
 
     enum {
index a89dae4637ef94a1c3b47f74724ea8bd38c34b75..7961db8040674ea2bf8c6284328281a07bc0c878 100644 (file)
@@ -456,8 +456,8 @@ bool ELFWriter::doFinalization(Module &M) {
 void ELFWriter::EmitRelocations() {
 
   // Create Relocation sections for each section which needs it.
-  for (unsigned i=0, e=SectionList.size(); i < e; ++i) {
-    ELFSection &S = *SectionList[i];
+  for (ELFSectionIter I=SectionList.begin(), E=SectionList.end(); I != E; ++I) {
+    ELFSection &S = *(*I);
 
     // This section does not have relocations
     if (!S.hasRelocations()) continue;
@@ -581,8 +581,8 @@ void ELFWriter::EmitStringTable() {
   // Walk on the symbol list and write symbol names into the
   // string table.
   unsigned Index = 1;
-  for (unsigned i = 0, e = SymbolList.size(); i < e; ++i) {
-    ELFSym &Sym = *SymbolList[i];
+  for (ELFSymIter I=SymbolList.begin(), E=SymbolList.end(); I != E; ++I) {
+    ELFSym &Sym = *(*I);
 
     // Use the name mangler to uniquify the LLVM symbol.
     std::string Name;
@@ -606,23 +606,23 @@ void ELFWriter::EmitStringTable() {
 // all other symbols with non-local bindings. The return value is
 // the position of the first non local symbol.
 unsigned ELFWriter::SortSymbols() {
-  unsigned FirstNonLocalSymbol, i, e;
+  unsigned FirstNonLocalSymbol;
   std::vector<ELFSym*> LocalSyms, OtherSyms;
 
-  for (i = 0, e = SymbolList.size(); i < e; ++i) {
-    if (SymbolList[i]->isLocalBind())
-      LocalSyms.push_back(SymbolList[i]);
+  for (ELFSymIter I=SymbolList.begin(), E=SymbolList.end(); I != E; ++I) {
+    if ((*I)->isLocalBind())
+      LocalSyms.push_back(*I);
     else
-      OtherSyms.push_back(SymbolList[i]);
+      OtherSyms.push_back(*I);
   }
   SymbolList.clear();
   FirstNonLocalSymbol = LocalSyms.size();
 
-  for (i = 0; i < FirstNonLocalSymbol; ++i)
+  for (unsigned i = 0; i < FirstNonLocalSymbol; ++i)
     SymbolList.push_back(LocalSyms[i]);
 
-  for (i = 0, e = OtherSyms.size(); i < e; ++i)
-    SymbolList.push_back(OtherSyms[i]);
+  for (ELFSymIter I=OtherSyms.begin(), E=OtherSyms.end(); I != E; ++I)
+    SymbolList.push_back(*I);
 
   LocalSyms.clear();
   OtherSyms.clear();
@@ -685,14 +685,15 @@ void ELFWriter::EmitSectionTableStringTable() {
   // the string table.
   unsigned Index = 0;
 
-  for (unsigned i=0, e=SectionList.size(); i < e; ++i) {
+  for (ELFSectionIter I=SectionList.begin(), E=SectionList.end(); I != E; ++I) {
+    ELFSection &S = *(*I);
     // Set the index into the table.  Note if we have lots of entries with
     // common suffixes, we could memoize them here if we cared.
-    SectionList[i]->NameIdx = Index;
-    SHStrTab.emitString(SectionList[i]->getName());
+    S.NameIdx = Index;
+    SHStrTab.emitString(S.getName());
 
     // Keep track of the number of bytes emitted to this section.
-    Index += SectionList[i]->getName().size()+1;
+    Index += S.getName().size()+1;
   }
 
   // Set the size of .shstrtab now that we know what it is.
@@ -748,8 +749,8 @@ void ELFWriter::OutputSectionsAndSectionTable() {
   BinaryObject SHdrTable(isLittleEndian, is64Bit);
 
   // Emit all of sections to the file and build the section header table.
-  for (unsigned i=0, e=SectionList.size(); i < e; ++i) {
-    ELFSection &S = *SectionList[i];
+  for (ELFSectionIter I=SectionList.begin(), E=SectionList.end(); I != E; ++I) {
+    ELFSection &S = *(*I);
     DOUT << "SectionIdx: " << S.SectionIdx << ", Name: " << S.getName()
          << ", Size: " << S.Size << ", Offset: " << S.Offset
          << ", SectionData Size: " << S.size() << "\n";
index 3cc50fe83697c1d6174f78ba28f0c02e5daf444d..ee5a856ac223998925bba83a0c8449ff218a4f0f 100644 (file)
@@ -34,6 +34,9 @@ namespace llvm {
   class TargetELFWriterInfo;
   class raw_ostream;
 
+  typedef std::vector<ELFSym*>::iterator ELFSymIter;
+  typedef std::vector<ELFSection*>::iterator ELFSectionIter;
+
   /// ELFWriter - This class implements the common target-independent code for
   /// writing ELF files.  Targets should derive a class from this to
   /// parameterize the output format.