xref: /openbsd-src/gnu/llvm/clang/lib/Driver/ToolChains/ZOS.h (revision 12c855180aad702bbcca06e0398d774beeafb155)
1a9ac8606Spatrick //===--- ZOS.h - z/OS ToolChain Implementations -----------------*- C++ -*-===//
2a9ac8606Spatrick //
3a9ac8606Spatrick // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4a9ac8606Spatrick // See https://llvm.org/LICENSE.txt for license information.
5a9ac8606Spatrick // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6a9ac8606Spatrick //
7a9ac8606Spatrick //===----------------------------------------------------------------------===//
8a9ac8606Spatrick 
9a9ac8606Spatrick #ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ZOS_H
10a9ac8606Spatrick #define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ZOS_H
11a9ac8606Spatrick 
12a9ac8606Spatrick #include "clang/Driver/Tool.h"
13a9ac8606Spatrick #include "clang/Driver/ToolChain.h"
14a9ac8606Spatrick 
15a9ac8606Spatrick namespace clang {
16a9ac8606Spatrick namespace driver {
17a9ac8606Spatrick namespace toolchains {
18a9ac8606Spatrick 
19a9ac8606Spatrick class LLVM_LIBRARY_VISIBILITY ZOS : public ToolChain {
20a9ac8606Spatrick public:
21a9ac8606Spatrick   ZOS(const Driver &D, const llvm::Triple &Triple,
22a9ac8606Spatrick       const llvm::opt::ArgList &Args);
23a9ac8606Spatrick   ~ZOS() override;
24a9ac8606Spatrick 
isPICDefault()25a9ac8606Spatrick   bool isPICDefault() const override { return false; }
isPIEDefault(const llvm::opt::ArgList & Args)26*12c85518Srobert   bool isPIEDefault(const llvm::opt::ArgList &Args) const override {
27*12c85518Srobert     return false;
28*12c85518Srobert   }
isPICDefaultForced()29a9ac8606Spatrick   bool isPICDefaultForced() const override { return false; }
30a9ac8606Spatrick 
IsIntegratedAssemblerDefault()31a9ac8606Spatrick   bool IsIntegratedAssemblerDefault() const override { return true; }
32a9ac8606Spatrick 
GetDefaultDwarfVersion()33*12c85518Srobert   unsigned GetDefaultDwarfVersion() const override { return 4; }
34*12c85518Srobert 
35a9ac8606Spatrick   void addClangTargetOptions(
36a9ac8606Spatrick       const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args,
37a9ac8606Spatrick       Action::OffloadKind DeviceOffloadingKind) const override;
38a9ac8606Spatrick };
39a9ac8606Spatrick 
40a9ac8606Spatrick } // end namespace toolchains
41a9ac8606Spatrick } // end namespace driver
42a9ac8606Spatrick } // end namespace clang
43a9ac8606Spatrick 
44a9ac8606Spatrick #endif // LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_ZOS_H
45