Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. //===- MultiFormatConfig.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-exception
  6. //
  7. //===----------------------------------------------------------------------===//
  8.  
  9. #ifndef LLVM_OBJCOPY_MULTIFORMATCONFIG_H
  10. #define LLVM_OBJCOPY_MULTIFORMATCONFIG_H
  11.  
  12. #include "llvm/Support/Error.h"
  13.  
  14. namespace llvm {
  15. namespace objcopy {
  16.  
  17. struct CommonConfig;
  18. struct ELFConfig;
  19. struct COFFConfig;
  20. struct MachOConfig;
  21. struct WasmConfig;
  22. struct XCOFFConfig;
  23.  
  24. class MultiFormatConfig {
  25. public:
  26.   virtual ~MultiFormatConfig() {}
  27.  
  28.   virtual const CommonConfig &getCommonConfig() const = 0;
  29.   virtual Expected<const ELFConfig &> getELFConfig() const = 0;
  30.   virtual Expected<const COFFConfig &> getCOFFConfig() const = 0;
  31.   virtual Expected<const MachOConfig &> getMachOConfig() const = 0;
  32.   virtual Expected<const WasmConfig &> getWasmConfig() const = 0;
  33.   virtual Expected<const XCOFFConfig &> getXCOFFConfig() const = 0;
  34. };
  35.  
  36. } // namespace objcopy
  37. } // namespace llvm
  38.  
  39. #endif // LLVM_OBJCOPY_MULTIFORMATCONFIG_H
  40.