diff options
Diffstat (limited to 'contrib/llvm-project/clang/lib/Driver/ToolChains/AIX.h')
-rw-r--r-- | contrib/llvm-project/clang/lib/Driver/ToolChains/AIX.h | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/contrib/llvm-project/clang/lib/Driver/ToolChains/AIX.h b/contrib/llvm-project/clang/lib/Driver/ToolChains/AIX.h index d4e593255736..755d87e07ec5 100644 --- a/contrib/llvm-project/clang/lib/Driver/ToolChains/AIX.h +++ b/contrib/llvm-project/clang/lib/Driver/ToolChains/AIX.h @@ -16,10 +16,10 @@ namespace clang { namespace driver { namespace tools { -/// aix -- Directly call system default assembler and linker. +/// Directly call system default assembler and linker. namespace aix { -class LLVM_LIBRARY_VISIBILITY Assembler : public Tool { +class LLVM_LIBRARY_VISIBILITY Assembler final : public Tool { public: Assembler(const ToolChain &TC) : Tool("aix::Assembler", "assembler", TC) {} @@ -31,7 +31,7 @@ public: const char *LinkingOutput) const override; }; -class LLVM_LIBRARY_VISIBILITY Linker : public Tool { +class LLVM_LIBRARY_VISIBILITY Linker final : public Tool { public: Linker(const ToolChain &TC) : Tool("aix::Linker", "linker", TC) {} @@ -59,27 +59,52 @@ public: AIX(const Driver &D, const llvm::Triple &Triple, const llvm::opt::ArgList &Args); + bool parseInlineAsmUsingAsmParser() const override { + return ParseInlineAsmUsingAsmParser; + } bool isPICDefault() const override { return true; } - bool isPIEDefault() const override { return false; } + bool isPIEDefault(const llvm::opt::ArgList &Args) const override { + return false; + } bool isPICDefaultForced() const override { return true; } + bool HasNativeLLVMSupport() const override { return true; } void AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const override; + void AddClangCXXStdlibIncludeArgs( + const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args) const override; + void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs) const override; + void addClangTargetOptions( + const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CC1Args, + Action::OffloadKind DeviceOffloadingKind) const override; + + void addProfileRTLibs(const llvm::opt::ArgList &Args, + llvm::opt::ArgStringList &CmdArgs) const override; + CXXStdlibType GetDefaultCXXStdlibType() const override; RuntimeLibType GetDefaultRuntimeLibType() const override; + // Set default DWARF version to 3 for now as latest AIX OS supports version 3. + unsigned GetDefaultDwarfVersion() const override { return 3; } + + llvm::DebuggerKind getDefaultDebuggerTuning() const override { + return llvm::DebuggerKind::DBX; + } + protected: Tool *buildAssembler() const override; Tool *buildLinker() const override; private: llvm::StringRef GetHeaderSysroot(const llvm::opt::ArgList &DriverArgs) const; + bool ParseInlineAsmUsingAsmParser; }; } // end namespace toolchains |