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