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