This is strange to me. Since we require C++11, and std::to_string is part of C++11, this shouldn't be required. I'm wondering if the standard library on this bot needs to be updated -- Galina, is this something you could look into?
Thanks! ~Aaron On Mon, Jul 21, 2014 at 3:25 PM, Mark Heffernan <[email protected]> wrote: > On Jul 21, 2014 12:19 PM, "Aaron Ballman" <[email protected]> wrote: >> >> On Mon, Jul 21, 2014 at 3:06 PM, Mark Heffernan <[email protected]> wrote: >> > 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. >> >> Out of curiosity, which bot(s) can't handle std::to_string? > > http://lab.llvm.org:8011/builders/clang-mergefunc-x86_64-freeBSD9.2/builds/7633 > > Mark > >> >> ~Aaron >> >> > >> > 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(); >> > } >> > }]; >> > >> > >> > >> > _______________________________________________ >> > cfe-commits mailing list >> > [email protected] >> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits _______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
