brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · b4957f8 Raw
42 lines · c
1//===- COFFReader.h ---------------------------------------------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLVM_LIB_OBJCOPY_COFF_COFFREADER_H10#define LLVM_LIB_OBJCOPY_COFF_COFFREADER_H11 12#include "llvm/BinaryFormat/COFF.h"13#include "llvm/Object/COFF.h"14#include "llvm/Support/Error.h"15 16namespace llvm {17namespace objcopy {18namespace coff {19 20struct Object;21 22using object::COFFObjectFile;23 24class COFFReader {25  const COFFObjectFile &COFFObj;26 27  Error readExecutableHeaders(Object &Obj) const;28  Error readSections(Object &Obj) const;29  Error readSymbols(Object &Obj, bool IsBigObj) const;30  Error setSymbolTargets(Object &Obj) const;31 32public:33  explicit COFFReader(const COFFObjectFile &O) : COFFObj(O) {}34  Expected<std::unique_ptr<Object>> create() const;35};36 37} // end namespace coff38} // end namespace objcopy39} // end namespace llvm40 41#endif // LLVM_LIB_OBJCOPY_COFF_COFFREADER_H42