[llvm-commits] [llvm] r127943 - in /llvm/trunk: include/llvm/MC/MCSectionMachO.h lib/CodeGen/TargetLoweringObjectFileImpl.cpp lib/MC/MCParser/DarwinAsmParser.cpp lib/MC/MCSectionMachO.cpp

Stuart Hastings stuart at apple.com
Fri Mar 18 19:33:56 PDT 2011


Author: stuart
Date: Fri Mar 18 21:33:56 2011
New Revision: 127943

URL: http://llvm.org/viewvc/llvm-project?rev=127943&view=rev
Log:
Revert 127939.  <rdar://problem/9012638>

Modified:
    llvm/trunk/include/llvm/MC/MCSectionMachO.h
    llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
    llvm/trunk/lib/MC/MCParser/DarwinAsmParser.cpp
    llvm/trunk/lib/MC/MCSectionMachO.cpp

Modified: llvm/trunk/include/llvm/MC/MCSectionMachO.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCSectionMachO.h?rev=127943&r1=127942&r2=127943&view=diff
==============================================================================
--- llvm/trunk/include/llvm/MC/MCSectionMachO.h (original)
+++ llvm/trunk/include/llvm/MC/MCSectionMachO.h Fri Mar 18 21:33:56 2011
@@ -157,12 +157,10 @@
   /// flavored .s file.  If successful, this fills in the specified Out
   /// parameters and returns an empty string.  When an invalid section
   /// specifier is present, this returns a string indicating the problem.
-  /// If no TAA was parsed, TAA is not altered, and TAAWasSet becomes false.
   static std::string ParseSectionSpecifier(StringRef Spec,       // In.
                                            StringRef &Segment,   // Out.
                                            StringRef &Section,   // Out.
                                            unsigned  &TAA,       // Out.
-                                           bool      &TAAParsed, // Out.
                                            unsigned  &StubSize); // Out.
 
   virtual void PrintSwitchToSection(const MCAsmInfo &MAI,

Modified: llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp?rev=127943&r1=127942&r2=127943&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp (original)
+++ llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp Fri Mar 18 21:33:56 2011
@@ -641,11 +641,10 @@
                          Mangler *Mang, const TargetMachine &TM) const {
   // Parse the section specifier and create it if valid.
   StringRef Segment, Section;
-  unsigned TAA = 0, StubSize = 0;
-  bool TAAParsed;
+  unsigned TAA = (unsigned)MCSectionMachO::SECTION_ATTRIBUTES, StubSize = 0;
   std::string ErrorCode =
     MCSectionMachO::ParseSectionSpecifier(GV->getSection(), Segment, Section,
-                                          TAA, TAAParsed, StubSize);
+                                          TAA, StubSize);
   if (!ErrorCode.empty()) {
     // If invalid, report the error with report_fatal_error.
     report_fatal_error("Global variable '" + GV->getNameStr() +
@@ -655,13 +654,17 @@
     return DataSection;
   }
 
+  bool TAAWasSet = (TAA != MCSectionMachO::SECTION_ATTRIBUTES);
+  if (!TAAWasSet)
+    TAA = 0;      // Sensible default if this is a new section.
+    
   // Get the section.
   const MCSectionMachO *S =
     getContext().getMachOSection(Segment, Section, TAA, StubSize, Kind);
 
   // If TAA wasn't set by ParseSectionSpecifier() above,
   // use the value returned by getMachOSection() as a default.
-  if (!TAAParsed)
+  if (!TAAWasSet)
     TAA = S->getTypeAndAttributes();
 
   // Okay, now that we got the section, verify that the TAA & StubSize agree.

Modified: llvm/trunk/lib/MC/MCParser/DarwinAsmParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCParser/DarwinAsmParser.cpp?rev=127943&r1=127942&r2=127943&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCParser/DarwinAsmParser.cpp (original)
+++ llvm/trunk/lib/MC/MCParser/DarwinAsmParser.cpp Fri Mar 18 21:33:56 2011
@@ -435,11 +435,10 @@
 
   StringRef Segment, Section;
   unsigned StubSize;
-  unsigned TAA;
-  bool TAAParsed;
+  unsigned TAA = 0;
   std::string ErrorStr =
     MCSectionMachO::ParseSectionSpecifier(SectionSpec, Segment, Section,
-                                          TAA, TAAParsed, StubSize);
+                                          TAA, StubSize);
 
   if (!ErrorStr.empty())
     return Error(Loc, ErrorStr.c_str());

Modified: llvm/trunk/lib/MC/MCSectionMachO.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCSectionMachO.cpp?rev=127943&r1=127942&r2=127943&view=diff
==============================================================================
--- llvm/trunk/lib/MC/MCSectionMachO.cpp (original)
+++ llvm/trunk/lib/MC/MCSectionMachO.cpp Fri Mar 18 21:33:56 2011
@@ -180,9 +180,7 @@
                                                   StringRef &Segment,    // Out.
                                                   StringRef &Section,    // Out.
                                                   unsigned  &TAA,        // Out.
-                                                  bool      &TAAParsed,  // Out.
                                                   unsigned  &StubSize) { // Out.
-  TAAParsed = false;
   // Find the first comma.
   std::pair<StringRef, StringRef> Comma = Spec.split(',');
 
@@ -213,7 +211,6 @@
            "between 1 and 16 characters";
 
   // If there is no comma after the section, we're done.
-  TAA = 0;
   StubSize = 0;
   if (Comma.second.empty())
     return "";
@@ -238,7 +235,6 @@
 
   // Remember the TypeID.
   TAA = TypeID;
-  TAAParsed = true;
 
   // If we have no comma after the section type, there are no attributes.
   if (Comma.second.empty()) {





More information about the llvm-commits mailing list