]> granicus.if.org Git - clang/commitdiff
Begin lifting some of the one-off checking logic into generic helper
authorChandler Carruth <chandlerc@gmail.com>
Sun, 6 Nov 2011 23:39:37 +0000 (23:39 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Sun, 6 Nov 2011 23:39:37 +0000 (23:39 +0000)
routines on the base toolchain class.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143900 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Driver/ToolChains.cpp
lib/Driver/ToolChains.h

index 51f7b770be5ba44fc95771418285b4e2b8fdd418..fec2209ca8e5b3904babd7f4428d1ad0974a191d 100644 (file)
@@ -2011,9 +2011,6 @@ void Linux::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
     return;
 
   const llvm::Triple &TargetTriple = getTriple();
-  const llvm::Triple::ArchType TargetArch = TargetTriple.getArch();
-  bool IsTarget64Bit = (TargetArch == llvm::Triple::x86_64 ||
-                        TargetArch == llvm::Triple::ppc64);
 
   StringRef CxxIncludeRoot(CXX_INCLUDE_ROOT);
   if (!CxxIncludeRoot.empty()) {
@@ -2023,8 +2020,8 @@ void Linux::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
 
     addLibStdCXXIncludePaths(
       CxxIncludeRoot,
-      CxxIncludeArch + (IsTarget64Bit ? CXX_INCLUDE_64BIT_DIR
-                                      : CXX_INCLUDE_32BIT_DIR),
+      CxxIncludeArch + (isTarget64Bit() ? CXX_INCLUDE_64BIT_DIR
+                                        : CXX_INCLUDE_32BIT_DIR),
       DriverArgs, CC1Args);
     return;
   }
@@ -2034,6 +2031,7 @@ void Linux::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
   // mismatches of just bit width.
   llvm::Triple::ArchType HostArch =
     llvm::Triple(getDriver().DefaultHostTriple).getArch();
+  llvm::Triple::ArchType TargetArch = TargetTriple.getArch();
   StringRef Suffix;
   if ((HostArch == llvm::Triple::x86 && TargetArch == llvm::Triple::x86_64) ||
       (HostArch == llvm::Triple::ppc && TargetArch == llvm::Triple::ppc64))
index 5da1bc4eb3c9b68fb2cd8662f7849b7b9df95b4e..60453ebca4d0d6f972a0a24759b8d4971a815128 100644 (file)
@@ -118,6 +118,21 @@ public:
   virtual bool IsUnwindTablesDefault() const;
   virtual const char *GetDefaultRelocationModel() const;
   virtual const char *GetForcedPicModel() const;
+
+protected:
+  /// \name ToolChain Implementation Helper Functions
+  /// @{
+
+  /// \brief Check whether the target triple's architecture is 64-bits.
+  bool isTarget64Bit() const {
+    return (getTriple().getArch() == llvm::Triple::x86_64 ||
+            getTriple().getArch() == llvm::Triple::ppc64);
+  }
+  /// \brief Check whether the target triple's architecture is 32-bits.
+  /// FIXME: This should likely do more than just negate the 64-bit query.
+  bool isTarget32Bit() const { return !isTarget64Bit(); }
+
+  /// @}
 };
 
 /// Darwin - The base Darwin tool chain.