r213578 - Fix build breakage caused by use of std::to_string(int). Replace with raw_string_ostream.
Aaron Ballman
aaron at aaronballman.com
Mon Jul 21 12:31:00 PDT 2014
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 <meheff at google.com> wrote:
> On Jul 21, 2014 12:19 PM, "Aaron Ballman" <aaron at aaronballman.com> wrote:
>>
>> On Mon, Jul 21, 2014 at 3:06 PM, Mark Heffernan <meheff at google.com> 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
>> > cfe-commits at cs.uiuc.edu
>> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list