[llvm-commits] [llvm] r66827 - /llvm/trunk/include/llvm/Support/raw_ostream.h

Daniel Dunbar daniel_dunbar at apple.com
Thu Mar 12 16:32:22 PDT 2009


I knew screams were on the way. :)

I'll look into a better solution by Monday...

  - Daniel

On Mar 12, 2009, at 3:50 PM, Chris Lattner wrote:

> On Mar 12, 2009, at 3:02 PM, Daniel Dunbar wrote:
>> URL: http://llvm.org/viewvc/llvm-project?rev=66827&view=rev
>> Log:
>> raw_ostream: unbuffered streams weren't being immediately flushed on
>> single character writes.
>
> Ack, no!  Please don't do this.  The entire point of these is that  
> they are supposed to be small and inline.  If you want to do this,  
> please use a body like:
>
>
>    if (OutBufCur >= OutBufEnd)
>      return output_char_slow(C);
>    *OutBufCur++ = C;
>    return *this;
>  }
>
> And arrange for the "OutBufCur >= OutBufEnd" condition to always be  
> true for the stderr case (by not having a buffer).
>
> -Chris
>
>>
>>
>> Modified:
>>   llvm/trunk/include/llvm/Support/raw_ostream.h
>>
>> Modified: llvm/trunk/include/llvm/Support/raw_ostream.h
>> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/raw_ostream.h?rev=66827&r1=66826&r2=66827&view=diff
>>
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> = 
>> =====================================================================
>> --- llvm/trunk/include/llvm/Support/raw_ostream.h (original)
>> +++ llvm/trunk/include/llvm/Support/raw_ostream.h Thu Mar 12  
>> 17:02:44 2009
>> @@ -84,6 +84,8 @@
>>    if (OutBufCur >= OutBufEnd)
>>      flush_impl();
>>    *OutBufCur++ = C;
>> +    if (Unbuffered)
>> +      flush_impl();
>>    return *this;
>>  }
>>
>> @@ -91,6 +93,8 @@
>>    if (OutBufCur >= OutBufEnd)
>>      flush_impl();
>>    *OutBufCur++ = C;
>> +    if (Unbuffered)
>> +      flush_impl();
>>    return *this;
>>  }
>>
>> @@ -98,6 +102,8 @@
>>    if (OutBufCur >= OutBufEnd)
>>      flush_impl();
>>    *OutBufCur++ = C;
>> +    if (Unbuffered)
>> +      flush_impl();
>>    return *this;
>>  }
>>
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>




More information about the llvm-commits mailing list