1
1
mirror of https://github.com/rui314/mold.git synced 2024-12-28 02:44:48 +03:00
mold/output_file.cc

22 lines
594 B
C++

#include "mold.h"
using namespace llvm;
using namespace llvm::ELF;
using llvm::object::ELF64LE;
OutputFile::OutputFile(u64 size) {
Expected<std::unique_ptr<FileOutputBuffer>> bufOrErr =
FileOutputBuffer::create(config.output, size, 0);
if (!bufOrErr)
error("failed to open " + config.output + ": " +
llvm::toString(bufOrErr.takeError()));
output_buffer = std::move(*bufOrErr);
buf = output_buffer->getBufferStart();
}
void OutputFile::commit() {
if (auto e = output_buffer->commit())
error("failed to write to the output file: " + toString(std::move(e)));
}