<div dir="ltr"><div>This is a FreeBSD 9.2 box which in this case is running the following gcc47:</div>
<div> </div>
<div><font face="tahoma">$ /usr/local/bin/gcc47 -v<br>
Using built-in specs.<br>
COLLECT_GCC=gcc47<br>
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc47/gcc/x86_64-portbld-freebsd9.1/4.7.4/lto-wrapper<br>
Target: x86_64-portbld-freebsd9.1<br>
Configured with: ./../gcc-4.7-20131214/configure --disable-nls --libdir=/usr/local/lib/gcc47 --libexecdir=/usr/local/libexec/gcc47 --program-suffix=47 --with-as=/usr/local/bin/as --with-gmp=/usr/local --with-gxx-include-dir=/usr/local/lib/gcc47/include/c++/
 --with-ld=/usr/local/bin/ld --with-libiconv-prefix=/usr/local --with-pkgversion='FreeBSD Ports Collection' --with-system-zlib --with-ecj-jar=/usr/local/share/java/ecj-4.5.jar --enable-languages=c,c++,objc,fortran,java --prefix=/usr/local --mandir=/usr/local/man
 --infodir=/usr/local/info/gcc47 --build=x86_64-portbld-freebsd9.1<br>
Thread model: posix<br>
gcc version 4.7.4 20131214 (prerelease) (FreeBSD Ports Collection)<br>
</font></div>
<div><font face="tahoma">$ ls -la /usr/local/lib/gcc47/libstdc++*<br>
-rw-r--r--  1 root  wheel  16306322 Dec 18  2013 /usr/local/lib/gcc47/libstdc++.a<br>
lrwxr-xr-x  1 root  wheel        14 Dec 18  2013 /usr/local/lib/gcc47/libstdc++.so -> libstdc++.so.6<br>
-rwxr-xr-x  1 root  wheel   6457984 Dec 18  2013 /usr/local/lib/gcc47/libstdc++.so.6<br>
-r--r--r--  1 root  wheel      2311 Dec 18  2013 /usr/local/lib/gcc47/libstdc++.<a href="http://so.6-gdb.py" target="_blank">so.6-gdb.py</a><br>
</font></div>
<div><font face="tahoma">Though a quick check shows the same issue exists there for gcc49:</font></div>
<div> </div>
<div><font face="tahoma">$ /usr/local/bin/gcc49 -v<br>
Using built-in specs.<br>
COLLECT_GCC=/usr/local/bin/gcc49<br>
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc49/gcc/x86_64-portbld-freebsd9.1/4.9.0/lto-wrapper<br>
Target: x86_64-portbld-freebsd9.1<br>
Configured with: ./../gcc-4.9-20131215/configure --disable-nls --libdir=/usr/local/lib/gcc49 --libexecdir=/usr/local/libexec/gcc49 --program-suffix=49 --with-as=/usr/local/bin/as --with-gmp=/usr/local --with-gxx-include-dir=/usr/local/lib/gcc49/include/c++/
 --with-ld=/usr/local/bin/ld --with-libiconv-prefix=/usr/local --with-pkgversion='FreeBSD Ports Collection' --with-system-zlib --with-ecj-jar=/usr/local/share/java/ecj-4.5.jar --enable-languages=c,c++,objc,fortran,java --prefix=/usr/local --mandir=/usr/local/man
 --infodir=/usr/local/info/gcc49 --build=x86_64-portbld-freebsd9.1<br>
Thread model: posix<br>
gcc version 4.9.0 20131215 (experimental) (FreeBSD Ports Collection)<br>
</font></div>
<div><font face="tahoma"><font face="tahoma">$ ls -la /usr/local/lib/gcc49/libstdc++*<br>
-rw-r--r--  1 root  wheel  17673116 Dec 19  2013 /usr/local/lib/gcc49/libstdc++.a<br>
lrwxr-xr-x  1 root  wheel        14 Dec 19  2013 /usr/local/lib/gcc49/libstdc++.so -> libstdc++.so.6<br>
-rwxr-xr-x  1 root  wheel   6929124 Dec 19  2013 /usr/local/lib/gcc49/libstdc++.so.6<br>
-r--r--r--  1 root  wheel      2310 Dec 19  2013 /usr/local/lib/gcc49/libstdc++.<a href="http://so.6-gdb.py" target="_blank">so.6-gdb.py</a><br>
</font></font></div>
<div><font face="tahoma">I will look into this further.<br><br></font></div><div><font face="tahoma">Thanks<br></font></div>
<div> </div>
<div><font face="tahoma">Galina<br><br><br></font></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Jul 21, 2014 at 12:31 PM, Aaron Ballman <span dir="ltr"><<a href="mailto:aaron@aaronballman.com" target="_blank">aaron@aaronballman.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">This is strange to me. Since we require C++11, and std::to_string is<br>
part of C++11, this shouldn't be required. I'm wondering if the<br>
standard library on this bot needs to be updated -- Galina, is this<br>
something you could look into?<br>
<br>
Thanks!<br>
<br>
~Aaron<br>
<div class=""><br>
On Mon, Jul 21, 2014 at 3:25 PM, Mark Heffernan <<a href="mailto:meheff@google.com">meheff@google.com</a>> wrote:<br>
> On Jul 21, 2014 12:19 PM, "Aaron Ballman" <<a href="mailto:aaron@aaronballman.com">aaron@aaronballman.com</a>> wrote:<br>
>><br>
>> On Mon, Jul 21, 2014 at 3:06 PM, Mark Heffernan <<a href="mailto:meheff@google.com">meheff@google.com</a>> wrote:<br>
>> > Author: meheff<br>
>> > Date: Mon Jul 21 14:06:29 2014<br>
>> > New Revision: 213578<br>
>> ><br>
>> > URL: <a href="http://llvm.org/viewvc/llvm-project?rev=213578&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=213578&view=rev</a><br>
>> > Log:<br>
>> > Fix build breakage caused by use of std::to_string(int).  Replace with<br>
>> > raw_string_ostream.<br>
>><br>
>> Out of curiosity, which bot(s) can't handle std::to_string?<br>
><br>
</div>> <a href="http://lab.llvm.org:8011/builders/clang-mergefunc-x86_64-freeBSD9.2/builds/7633" target="_blank">http://lab.llvm.org:8011/builders/clang-mergefunc-x86_64-freeBSD9.2/builds/7633</a><br>
><br>
> Mark<br>
<div class="HOEnZb"><div class="h5">><br>
>><br>
>> ~Aaron<br>
>><br>
>> ><br>
>> > Modified:<br>
>> >     cfe/trunk/include/clang/Basic/Attr.td<br>
>> ><br>
>> > Modified: cfe/trunk/include/clang/Basic/Attr.td<br>
>> > URL:<br>
>> > <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Attr.td?rev=213578&r1=213577&r2=213578&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/Basic/Attr.td?rev=213578&r1=213577&r2=213578&view=diff</a><br>

>> ><br>
>> > ==============================================================================<br>
>> > --- cfe/trunk/include/clang/Basic/Attr.td (original)<br>
>> > +++ cfe/trunk/include/clang/Basic/Attr.td Mon Jul 21 14:06:29 2014<br>
>> > @@ -1814,40 +1814,45 @@ def LoopHint : Attr {<br>
>> >        // String "unroll" of "#pragma unroll" is already emitted as the<br>
>> >        // pragma name.<br>
>> >        if (option == UnrollCount)<br>
>> > -        OS << getValueString();<br>
>> > +        printArgument(OS);<br>
>> >        OS << "\n";<br>
>> >        return;<br>
>> >      }<br>
>> >      assert(SpellingIndex == Pragma_clang_loop && "Unexpected<br>
>> > spelling");<br>
>> > -    OS << getOptionName(option) << getValueString() << "\n";<br>
>> > +    OS << getOptionName(option);<br>
>> > +    printArgument(OS);<br>
>> > +    OS << "\n";<br>
>> >    }<br>
>> ><br>
>> > -  // Return a string containing the loop hint argument including the<br>
>> > -  // enclosing parentheses.<br>
>> > -  std::string getValueString() const {<br>
>> > -    std::string ValueName;<br>
>> > +  // Prints the loop hint argument including the enclosing parentheses<br>
>> > to OS.<br>
>> > +  void printArgument(raw_ostream &OS) const {<br>
>> > +    OS << "(";<br>
>> >      if (option == VectorizeWidth || option == InterleaveCount ||<br>
>> >          option == UnrollCount)<br>
>> > -      ValueName = std::to_string(value);<br>
>> > +      OS << value;<br>
>> >      else if (value)<br>
>> > -      ValueName = "enable";<br>
>> > +      OS << "enable";<br>
>> >      else<br>
>> > -      ValueName = "disable";<br>
>> > -<br>
>> > -    return "(" + ValueName + ")";<br>
>> > +      OS << "disable";<br>
>> > +    OS << ")";<br>
>> >    }<br>
>> ><br>
>> >    // Return a string suitable for identifying this attribute in<br>
>> > diagnostics.<br>
>> >    std::string getDiagnosticName() const {<br>
>> > +    std::string DiagnosticName;<br>
>> > +    llvm::raw_string_ostream OS(DiagnosticName);<br>
>> >      unsigned SpellingIndex = getSpellingListIndex();<br>
>> >      if (SpellingIndex == Pragma_unroll && option == Unroll)<br>
>> > -      return "#pragma unroll";<br>
>> > +      OS << "#pragma unroll";<br>
>> >      else if (SpellingIndex == Pragma_unroll && option == UnrollCount) {<br>
>> > -      return "#pragma unroll" + getValueString();<br>
>> > +      OS << "#pragma unroll";<br>
>> > +      printArgument(OS);<br>
>> >      } else {<br>
>> >        assert(SpellingIndex == Pragma_clang_loop && "Unexpected<br>
>> > spelling");<br>
>> > -      return std::string(getOptionName(option)) + getValueString();<br>
>> > +      OS << getOptionName(option);<br>
>> > +      printArgument(OS);<br>
>> >      }<br>
>> > +    return OS.str();<br>
>> >    }<br>
>> >    }];<br>
>> ><br>
>> ><br>
>> ><br>
>> > _______________________________________________<br>
>> > cfe-commits mailing list<br>
>> > <a href="mailto:cfe-commits@cs.uiuc.edu">cfe-commits@cs.uiuc.edu</a><br>
>> > <a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits</a><br>
</div></div></blockquote></div><br></div></div>