diff options
Diffstat (limited to 'contrib/llvm-project/clang/lib/Driver/ToolChains/Gnu.h')
-rw-r--r-- | contrib/llvm-project/clang/lib/Driver/ToolChains/Gnu.h | 39 |
1 files changed, 17 insertions, 22 deletions
diff --git a/contrib/llvm-project/clang/lib/Driver/ToolChains/Gnu.h b/contrib/llvm-project/clang/lib/Driver/ToolChains/Gnu.h index 90d3bafc1f00..0b664a182d75 100644 --- a/contrib/llvm-project/clang/lib/Driver/ToolChains/Gnu.h +++ b/contrib/llvm-project/clang/lib/Driver/ToolChains/Gnu.h @@ -10,6 +10,7 @@ #define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_GNU_H #include "Cuda.h" +#include "LazyDetector.h" #include "ROCm.h" #include "clang/Driver/Tool.h" #include "clang/Driver/ToolChain.h" @@ -22,12 +23,12 @@ struct DetectedMultilibs { /// The set of multilibs that the detected installation supports. MultilibSet Multilibs; - /// The primary multilib appropriate for the given flags. - Multilib SelectedMultilib; + /// The multilibs appropriate for the given flags. + llvm::SmallVector<Multilib> SelectedMultilibs; /// On Biarch systems, this corresponds to the default multilib when /// targeting the non-default multilib. Otherwise, it is empty. - llvm::Optional<Multilib> BiarchSibling; + std::optional<Multilib> BiarchSibling; }; bool findMIPSMultilibs(const Driver &D, const llvm::Triple &TargetTriple, @@ -201,7 +202,7 @@ public: Multilib SelectedMultilib; /// On Biarch systems, this corresponds to the default multilib when /// targeting the non-default multilib. Otherwise, it is empty. - llvm::Optional<Multilib> BiarchSibling; + std::optional<Multilib> BiarchSibling; GCCVersion Version; @@ -217,8 +218,7 @@ public: public: explicit GCCInstallationDetector(const Driver &D) : IsValid(false), D(D) {} - void init(const llvm::Triple &TargetTriple, const llvm::opt::ArgList &Args, - ArrayRef<std::string> ExtraTripleAliases = None); + void init(const llvm::Triple &TargetTriple, const llvm::opt::ArgList &Args); /// Check whether we detected a valid GCC install. bool isValid() const { return IsValid; } @@ -286,8 +286,8 @@ public: protected: GCCInstallationDetector GCCInstallation; - CudaInstallationDetector CudaInstallation; - RocmInstallationDetector RocmInstallation; + LazyDetector<CudaInstallationDetector> CudaInstallation; + LazyDetector<RocmInstallationDetector> RocmInstallation; public: Generic_GCC(const Driver &D, const llvm::Triple &Triple, @@ -296,9 +296,10 @@ public: void printVerboseInfo(raw_ostream &OS) const override; - bool IsUnwindTablesDefault(const llvm::opt::ArgList &Args) const override; + UnwindTableLevel + getDefaultUnwindTableLevel(const llvm::opt::ArgList &Args) const override; bool isPICDefault() const override; - bool isPIEDefault() const override; + bool isPIEDefault(const llvm::opt::ArgList &Args) const override; bool isPICDefaultForced() const override; bool IsIntegratedAssemblerDefault() const override; llvm::opt::DerivedArgList * @@ -310,11 +311,6 @@ protected: Tool *buildAssembler() const override; Tool *buildLinker() const override; - virtual std::string getMultiarchTriple(const Driver &D, - const llvm::Triple &TargetTriple, - StringRef SysRoot) const - { return TargetTriple.str(); } - /// \name ToolChain Implementation Helper Functions /// @{ @@ -347,16 +343,15 @@ protected: addLibStdCxxIncludePaths(const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args) const; - bool - addGCCLibStdCxxIncludePaths(const llvm::opt::ArgList &DriverArgs, - llvm::opt::ArgStringList &CC1Args) const; + bool addGCCLibStdCxxIncludePaths(const llvm::opt::ArgList &DriverArgs, + llvm::opt::ArgStringList &CC1Args, + StringRef DebianMultiarch) const; - bool addLibStdCXXIncludePaths(Twine Base, Twine Suffix, StringRef GCCTriple, - StringRef GCCMultiarchTriple, - StringRef TargetMultiarchTriple, + bool addLibStdCXXIncludePaths(Twine IncludeDir, StringRef Triple, Twine IncludeSuffix, const llvm::opt::ArgList &DriverArgs, - llvm::opt::ArgStringList &CC1Args) const; + llvm::opt::ArgStringList &CC1Args, + bool DetectDebian = false) const; /// @} |