r213578 - Fix build breakage caused by use of std::to_string(int). Replace with raw_string_ostream.

Mark Heffernan meheff at google.com
Mon Jul 21 12:06:29 PDT 2014


Author: meheff
Date: Mon Jul 21 14:06:29 2014
New Revision: 213578

URL: http://llvm.org/viewvc/llvm-project?rev=213578&view=rev
Log:
Fix build breakage caused by use of std::to_string(int).  Replace with raw_string_ostream.

Modified:
    cfe/trunk/include/clang/Basic/Attr.td

Modified: cfe/trunk/include/clang/Basic/Attr.td
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Attr.td?rev=213578&r1=213577&r2=213578&view=diff
==============================================================================
--- cfe/trunk/include/clang/Basic/Attr.td (original)
+++ cfe/trunk/include/clang/Basic/Attr.td Mon Jul 21 14:06:29 2014
@@ -1814,40 +1814,45 @@ def LoopHint : Attr {
       // String "unroll" of "#pragma unroll" is already emitted as the
       // pragma name.
       if (option == UnrollCount)
-        OS << getValueString();
+        printArgument(OS);
       OS << "\n";
       return;
     }
     assert(SpellingIndex == Pragma_clang_loop && "Unexpected spelling");
-    OS << getOptionName(option) << getValueString() << "\n";
+    OS << getOptionName(option);
+    printArgument(OS);
+    OS << "\n";
   }
 
-  // Return a string containing the loop hint argument including the
-  // enclosing parentheses.
-  std::string getValueString() const {
-    std::string ValueName;
+  // Prints the loop hint argument including the enclosing parentheses to OS.
+  void printArgument(raw_ostream &OS) const {
+    OS << "(";
     if (option == VectorizeWidth || option == InterleaveCount ||
         option == UnrollCount)
-      ValueName = std::to_string(value);
+      OS << value;
     else if (value)
-      ValueName = "enable";
+      OS << "enable";
     else
-      ValueName = "disable";
-
-    return "(" + ValueName + ")";
+      OS << "disable";
+    OS << ")";
   }
 
   // Return a string suitable for identifying this attribute in diagnostics.
   std::string getDiagnosticName() const {
+    std::string DiagnosticName;
+    llvm::raw_string_ostream OS(DiagnosticName);
     unsigned SpellingIndex = getSpellingListIndex();
     if (SpellingIndex == Pragma_unroll && option == Unroll)
-      return "#pragma unroll";
+      OS << "#pragma unroll";
     else if (SpellingIndex == Pragma_unroll && option == UnrollCount) {
-      return "#pragma unroll" + getValueString();
+      OS << "#pragma unroll";
+      printArgument(OS);
     } else {
       assert(SpellingIndex == Pragma_clang_loop && "Unexpected spelling");
-      return std::string(getOptionName(option)) + getValueString();
+      OS << getOptionName(option);
+      printArgument(OS);
     }
+    return OS.str();
   }
   }];
 





More information about the cfe-commits mailing list