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