diff options
| author | Jordan Rupprecht <rupprecht@google.com> | 2019-06-12 20:16:22 +0000 |
|---|---|---|
| committer | Jordan Rupprecht <rupprecht@google.com> | 2019-06-12 20:16:22 +0000 |
| commit | 565f1e2298ce92882c12fbeff5c53a411ead1a03 (patch) | |
| tree | 47e0754addc2011266396b502edfd105741531a1 /llvm/tools/llvm-readobj/ELFDumper.cpp | |
| parent | 782fff1bf879e37c6d87c40763e33321238420ea (diff) | |
| download | bcm5719-llvm-565f1e2298ce92882c12fbeff5c53a411ead1a03.tar.gz bcm5719-llvm-565f1e2298ce92882c12fbeff5c53a411ead1a03.zip | |
[llvm-readobj] Fix output interleaving issue caused by using multiple streams at the same time.
Summary:
Use llvm::fouts() as the default stream for outputing. No new stream
should be constructed to output at the same time.
https://bugs.llvm.org/show_bug.cgi?id=42140
Reviewers: jhenderson, grimar, MaskRay, phosek, rupprecht
Reviewed By: rupprecht
Subscribers: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D63115
Patch by Yuanfang Chen!
llvm-svn: 363198
Diffstat (limited to 'llvm/tools/llvm-readobj/ELFDumper.cpp')
| -rw-r--r-- | llvm/tools/llvm-readobj/ELFDumper.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/llvm/tools/llvm-readobj/ELFDumper.cpp b/llvm/tools/llvm-readobj/ELFDumper.cpp index 295763f8791..018cf614963 100644 --- a/llvm/tools/llvm-readobj/ELFDumper.cpp +++ b/llvm/tools/llvm-readobj/ELFDumper.cpp @@ -382,13 +382,16 @@ private: }; template <typename ELFT> class GNUStyle : public DumpStyle<ELFT> { - formatted_raw_ostream OS; + formatted_raw_ostream &OS; public: TYPEDEF_ELF_TYPES(ELFT) GNUStyle(ScopedPrinter &W, ELFDumper<ELFT> *Dumper) - : DumpStyle<ELFT>(Dumper), OS(W.getOStream()) {} + : DumpStyle<ELFT>(Dumper), + OS(static_cast<formatted_raw_ostream&>(W.getOStream())) { + assert (&W.getOStream() == &llvm::fouts()); + } void printFileHeaders(const ELFO *Obj) override; void printGroupSections(const ELFFile<ELFT> *Obj) override; |

