[llvm-commits] [llvm] r111643 - /llvm/trunk/lib/Support/raw_ostream.cpp

Dan Gohman gohman at apple.com
Fri Aug 20 20:07:20 PDT 2010


On Aug 20, 2010, at 5:45 PM, Chris Lattner wrote:

> 
> On Aug 20, 2010, at 9:44 AM, Dan Gohman wrote:
> 
>> Author: djg
>> Date: Fri Aug 20 11:44:56 2010
>> New Revision: 111643
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=111643&view=rev
>> Log:
>> Make outs() close its file when its stream is destructed, so that
>> pending output errors are detected.
> 
> I don't get this.  This means that any evaluation (e.g. in a library) of outs() will dramatically change the behavior of the program it is embedded into.  This is non-obvious and seems really really dangerous.

Library code meant to be embedded as a subsystem within diverse applications shouldn't
ever be even thinking about outs().  There are a few legitimate outs() uses left in
the tools right now, but due to the potential for confusion, it may make sense to
remove outs() altogether.

Dan





More information about the llvm-commits mailing list