mirror of
https://github.com/RPCS3/llvm.git
synced 2025-02-19 18:26:28 +00:00
[llvm-dwp] Use buffer_stream if output file is not seekable (e.g. "-")
Reviewers: dblaikie, pcc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D51707 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@341509 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
d2d8db6d7a
commit
92c8fe0a62
@ -1,7 +1,5 @@
|
||||
RUN: llvm-dwp %p/../Inputs/merge/notypes/c.dwo %p/../Inputs/merge/notypes/ab.dwp -o %t
|
||||
RUN: llvm-dwarfdump -v %t | FileCheck --check-prefix=CHECK --check-prefix=NOTYP %s
|
||||
|
||||
FIXME: For some reason, piping straight from llvm-dwp to llvm-dwarfdump -v doesn't behave well - looks like dwarfdump is reading/closes before dwp has finished.
|
||||
RUN: llvm-dwp %p/../Inputs/merge/notypes/c.dwo %p/../Inputs/merge/notypes/ab.dwp -o - | \
|
||||
RUN: llvm-dwarfdump -v - | FileCheck --check-prefix=CHECK --check-prefix=NOTYP %s
|
||||
|
||||
DWP from a DWO (c.dwo) and a DWP (ab.dwp, created from a.dwo and b.dwo)
|
||||
Make sure the entries for A and B are updated correctly when read/processed from ab.dwp
|
||||
|
@ -697,13 +697,21 @@ int main(int argc, char **argv) {
|
||||
// Create the output file.
|
||||
std::error_code EC;
|
||||
raw_fd_ostream OutFile(OutputFilename, EC, sys::fs::F_None);
|
||||
Optional<buffer_ostream> BOS;
|
||||
raw_pwrite_stream *OS;
|
||||
if (EC)
|
||||
return error(Twine(OutputFilename) + ": " + EC.message(), Context);
|
||||
if (OutFile.supportsSeeking()) {
|
||||
OS = &OutFile;
|
||||
} else {
|
||||
BOS.emplace(OutFile);
|
||||
OS = BOS.getPointer();
|
||||
}
|
||||
|
||||
MCTargetOptions MCOptions = InitMCTargetOptionsFromFlags();
|
||||
std::unique_ptr<MCStreamer> MS(TheTarget->createMCObjectStreamer(
|
||||
TheTriple, MC, std::unique_ptr<MCAsmBackend>(MAB),
|
||||
MAB->createObjectWriter(OutFile), std::unique_ptr<MCCodeEmitter>(MCE),
|
||||
MAB->createObjectWriter(*OS), std::unique_ptr<MCCodeEmitter>(MCE),
|
||||
*MSTI, MCOptions.MCRelaxAll, MCOptions.MCIncrementalLinkerCompatible,
|
||||
/*DWARFMustBeAtTheEnd*/ false));
|
||||
if (!MS)
|
||||
|
Loading…
x
Reference in New Issue
Block a user