This should be addressed. Look better?<div><br></div><div>- Daniel<br><br><div class="gmail_quote">On Thu, Mar 12, 2009 at 3:50 PM, Chris Lattner <span dir="ltr"><<a href="mailto:clattner@apple.com">clattner@apple.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div class="im">On Mar 12, 2009, at 3:02 PM, Daniel Dunbar wrote:<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=66827&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=66827&view=rev</a><br>
> Log:<br>
> raw_ostream: unbuffered streams weren't being immediately flushed on<br>
> single character writes.<br>
<br>
</div>Ack, no!  Please don't do this.  The entire point of these is that<br>
they are supposed to be small and inline.  If you want to do this,<br>
please use a body like:<br>
<br>
<br>
     if (OutBufCur >= OutBufEnd)<br>
       return output_char_slow(C);<br>
     *OutBufCur++ = C;<br>
     return *this;<br>
   }<br>
<br>
And arrange for the "OutBufCur >= OutBufEnd" condition to always be<br>
true for the stderr case (by not having a buffer).<br>
<font color="#888888"><br>
-Chris<br>
</font><div><div></div><div class="h5"><br>
><br>
><br>
> Modified:<br>
>    llvm/trunk/include/llvm/Support/raw_ostream.h<br>
><br>
> Modified: llvm/trunk/include/llvm/Support/raw_ostream.h<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/raw_ostream.h?rev=66827&r1=66826&r2=66827&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/raw_ostream.h?rev=66827&r1=66826&r2=66827&view=diff</a><br>

><br>
> =<br>
> =<br>
> =<br>
> =<br>
> =<br>
> =<br>
> =<br>
> =<br>
> ======================================================================<br>
> --- llvm/trunk/include/llvm/Support/raw_ostream.h (original)<br>
> +++ llvm/trunk/include/llvm/Support/raw_ostream.h Thu Mar 12<br>
> 17:02:44 2009<br>
> @@ -84,6 +84,8 @@<br>
>     if (OutBufCur >= OutBufEnd)<br>
>       flush_impl();<br>
>     *OutBufCur++ = C;<br>
> +    if (Unbuffered)<br>
> +      flush_impl();<br>
>     return *this;<br>
>   }<br>
><br>
> @@ -91,6 +93,8 @@<br>
>     if (OutBufCur >= OutBufEnd)<br>
>       flush_impl();<br>
>     *OutBufCur++ = C;<br>
> +    if (Unbuffered)<br>
> +      flush_impl();<br>
>     return *this;<br>
>   }<br>
><br>
> @@ -98,6 +102,8 @@<br>
>     if (OutBufCur >= OutBufEnd)<br>
>       flush_impl();<br>
>     *OutBufCur++ = C;<br>
> +    if (Unbuffered)<br>
> +      flush_impl();<br>
>     return *this;<br>
>   }<br>
><br>
><br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
> <a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</div></div></blockquote></div><br></div>