diff options
Diffstat (limited to 'contrib/llvm-project/llvm/tools/llvm-mc/llvm-mc.cpp')
| -rw-r--r-- | contrib/llvm-project/llvm/tools/llvm-mc/llvm-mc.cpp | 30 | 
1 files changed, 17 insertions, 13 deletions
diff --git a/contrib/llvm-project/llvm/tools/llvm-mc/llvm-mc.cpp b/contrib/llvm-project/llvm/tools/llvm-mc/llvm-mc.cpp index ec189c297860..6aa347d98be2 100644 --- a/contrib/llvm-project/llvm/tools/llvm-mc/llvm-mc.cpp +++ b/contrib/llvm-project/llvm/tools/llvm-mc/llvm-mc.cpp @@ -209,9 +209,10 @@ static const Target *GetTarget(const char *ProgName) {    return TheTarget;  } -static std::unique_ptr<ToolOutputFile> GetOutputStream(StringRef Path) { +static std::unique_ptr<ToolOutputFile> GetOutputStream(StringRef Path, +    sys::fs::OpenFlags Flags) {    std::error_code EC; -  auto Out = llvm::make_unique<ToolOutputFile>(Path, EC, sys::fs::F_None); +  auto Out = std::make_unique<ToolOutputFile>(Path, EC, Flags);    if (EC) {      WithColor::error() << EC.message() << '\n';      return nullptr; @@ -279,7 +280,7 @@ static int fillCommandLineSymbols(MCAsmParser &Parser) {  static int AssembleInput(const char *ProgName, const Target *TheTarget,                           SourceMgr &SrcMgr, MCContext &Ctx, MCStreamer &Str,                           MCAsmInfo &MAI, MCSubtargetInfo &STI, -                         MCInstrInfo &MCII, MCTargetOptions &MCOptions) { +                         MCInstrInfo &MCII, MCTargetOptions const &MCOptions) {    std::unique_ptr<MCAsmParser> Parser(        createMCAsmParser(SrcMgr, Ctx, Str, MAI));    std::unique_ptr<MCTargetAsmParser> TAP( @@ -316,7 +317,7 @@ int main(int argc, char **argv) {    cl::AddExtraVersionPrinter(TargetRegistry::printRegisteredTargetsForVersion);    cl::ParseCommandLineOptions(argc, argv, "llvm machine code playground\n"); -  MCTargetOptions MCOptions = InitMCTargetOptionsFromFlags(); +  const MCTargetOptions MCOptions = InitMCTargetOptionsFromFlags();    setDwarfDebugFlags(argc, argv);    setDwarfDebugProducer(); @@ -350,7 +351,8 @@ int main(int argc, char **argv) {    std::unique_ptr<MCRegisterInfo> MRI(TheTarget->createMCRegInfo(TripleName));    assert(MRI && "Unable to create target register info!"); -  std::unique_ptr<MCAsmInfo> MAI(TheTarget->createMCAsmInfo(*MRI, TripleName)); +  std::unique_ptr<MCAsmInfo> MAI( +      TheTarget->createMCAsmInfo(*MRI, TripleName, MCOptions));    assert(MAI && "Unable to create target asm info!");    MAI->setRelaxELFRelocations(RelaxELFRel); @@ -368,7 +370,7 @@ int main(int argc, char **argv) {    // FIXME: This is not pretty. MCContext has a ptr to MCObjectFileInfo and    // MCObjectFileInfo needs a MCContext reference in order to initialize itself.    MCObjectFileInfo MOFI; -  MCContext Ctx(MAI.get(), MRI.get(), &MOFI, &SrcMgr); +  MCContext Ctx(MAI.get(), MRI.get(), &MOFI, &SrcMgr, &MCOptions);    MOFI.InitMCObjectFileInfo(TheTriple, PIC, Ctx, LargeCodeModel);    if (SaveTempLabels) @@ -413,7 +415,9 @@ int main(int argc, char **argv) {      FeaturesStr = Features.getString();    } -  std::unique_ptr<ToolOutputFile> Out = GetOutputStream(OutputFilename); +  sys::fs::OpenFlags Flags = (FileType == OFT_AssemblyFile) ? sys::fs::OF_Text +                                                            : sys::fs::OF_None; +  std::unique_ptr<ToolOutputFile> Out = GetOutputStream(OutputFilename, Flags);    if (!Out)      return 1; @@ -423,7 +427,7 @@ int main(int argc, char **argv) {        WithColor::error() << "dwo output only supported with object files\n";        return 1;      } -    DwoOut = GetOutputStream(SplitDwarfFile); +    DwoOut = GetOutputStream(SplitDwarfFile, sys::fs::OF_None);      if (!DwoOut)        return 1;    } @@ -459,7 +463,7 @@ int main(int argc, char **argv) {      std::unique_ptr<MCAsmBackend> MAB(          TheTarget->createMCAsmBackend(*STI, *MRI, MCOptions)); -    auto FOut = llvm::make_unique<formatted_raw_ostream>(*OS); +    auto FOut = std::make_unique<formatted_raw_ostream>(*OS);      Str.reset(          TheTarget->createAsmStreamer(Ctx, std::move(FOut), /*asmverbose*/ true,                                       /*useDwarfDirectory*/ true, IP, @@ -474,7 +478,7 @@ int main(int argc, char **argv) {      Ctx.setUseNamesOnTempLabels(false);      if (!Out->os().supportsSeeking()) { -      BOS = make_unique<buffer_ostream>(Out->os()); +      BOS = std::make_unique<buffer_ostream>(Out->os());        OS = BOS.get();      } @@ -506,7 +510,7 @@ int main(int argc, char **argv) {      break;    case AC_MDisassemble:      assert(IP && "Expected assembly output"); -    IP->setUseMarkup(1); +    IP->setUseMarkup(true);      disassemble = true;      break;    case AC_Disassemble: @@ -514,8 +518,8 @@ int main(int argc, char **argv) {      break;    }    if (disassemble) -    Res = Disassembler::disassemble(*TheTarget, TripleName, *STI, *Str, -                                    *Buffer, SrcMgr, Out->os()); +    Res = Disassembler::disassemble(*TheTarget, TripleName, *STI, *Str, *Buffer, +                                    SrcMgr, Ctx, Out->os(), MCOptions);    // Keep output if no errors.    if (Res == 0) {  | 
