[PATCH] D81156: [Support] Create a tied stream class and use it for errs()

James Henderson via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 8 03:13:40 PDT 2020


jhenderson added a comment.

In D81156#2074078 <https://reviews.llvm.org/D81156#2074078>, @MaskRay wrote:

> Sorry, undo LGTM. Is it worth making tied_to an opt-in feature? i.e. for command line utilities, they can run `errs().tie(outs())`.


The issue with that is that all tools that want it (most of them?) will have to explicitly do the work for that. One of the motivations to change `errs()` is to prevent the need to require code in llvm-dwarfdump (and other tools) to be used to prevent stream interleaving. @dblaikie/@JDevlieghere etc what are your opinions? Is it acceptable to require tools to specify the one-line change here?

> We can probably even fold the TiedTo field into `raw_fd_ostream`. Just a thought.

Folding it into raw_fd_ostream would be reasonable. We could have an Optional stream as the tied-to stream for this, and it would probably simplify the required code (no need to provide a template parameter etc to identify the base stream). `tie` and `untie` could be provided to set/unset the tied-to stream.

If we went with that approach, we could always have `errs()` and `outs()` tied as proposed in the current patch, but with the ability for tools to opt-out if they don't want the behaviour. What do you think?


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D81156/new/

https://reviews.llvm.org/D81156





More information about the llvm-commits mailing list