<pre style='margin:0'>
Jeremy Huddleston Sequoia (jeremyhu) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/e21b377b0187a598122a60fd556f719afdcd9753">https://github.com/macports/macports-ports/commit/e21b377b0187a598122a60fd556f719afdcd9753</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit e21b377b0187a598122a60fd556f719afdcd9753
</span>Author: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
AuthorDate: Thu Mar 28 21:58:51 2019 -0700

<span style='display:block; white-space:pre;color:#404040;'>    llvm-devel: Add updates that went into the llvm-7.0 port recently
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@macports.org>
</span>---
 lang/llvm-devel/Portfile                           | 43 +++++++++++++++++++---
 ...-O_CLOEXEC-for-older-SDKs-that-don-t-have.patch | 26 ++++++-------
 .../9000-patch-clang-7.0-support-emulated-tls.diff | 26 +++++++++++++
 .../9000-patch-llvm-7.0-support-emulated-tls.diff  | 13 +++++++
 ...clang-7.0-default-to-libcxx-on-all-systems.diff | 15 ++++++++
 5 files changed, 104 insertions(+), 19 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/Portfile b/lang/llvm-devel/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index b411fe7..cb75373 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-devel/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -12,7 +12,8 @@ set llvm_version_no_dot devel
</span> set clang_executable_version 8
 set lldb_executable_version 8.0.0
 name                    llvm-${llvm_version}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-subport                 clang-${llvm_version} { revision 1 }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision                2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport                 clang-${llvm_version} {}
</span> subport                 lldb-${llvm_version} {}
 set suffix              mp-${llvm_version}
 set sub_prefix          ${prefix}/libexec/llvm-${llvm_version}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -137,6 +138,7 @@ if {${subport} eq "clang-${llvm_version}"} {
</span>         1006-Fixup-libstdc-header-search-paths-for-older-versions.patch \
         1007-Fix-build-issues-pre-Lion-due-to-missing-a-strnlen-d.patch \
         2001-xray-Define-O_CLOEXEC-for-older-SDKs-that-don-t-have.patch \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        2002-Work-around-no-libdispatch-on-10.6.patch \
</span>         3001-Fix-local-and-iterator-when-building-with-Lion-and-n.patch \
         3002-Fix-missing-long-long-math-prototypes-when-using-the.patch \
         3003-implement-atomic-using-mutex-lock_guard-for-64b-ops-.patch \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -278,10 +280,12 @@ if {${subport} eq "llvm-${llvm_version}"} {
</span> # Xcode 6.2's clang (600.0.57) fails due to https://llvm.org/bugs/show_bug.cgi?id=25753
 compiler.blacklist *gcc* {clang < 602}
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${subport} eq "clang-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # clang older than 3.5 fail due to https://llvm.org/bugs/show_bug.cgi?id=25753
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    compiler.blacklist-append macports-clang-3.3 macports-clang-3.4
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# clang older than 3.5 fail due to https://llvm.org/bugs/show_bug.cgi?id=25753
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# llvm-7.0 builds with clang-3.4 but has codegen issues (resulting compiler crashes) (kencu)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.blacklist-append macports-clang-3.3 macports-clang-3.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.fallback-append macports-clang-3.7 macports-clang-3.9
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> 
 if {${subport} eq "lldb-${llvm_version}"} {
     # Xcode 6.4's clang (602.0.53) fails to build lldb with 'thread-local storage is not supported for the current target'
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -516,6 +520,24 @@ post-destroot {
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${os.major} < 11} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant emulated_tls description { enable c11/c++11 thread support on older systems using emulated-tls } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # use emulated-tls to support thread_local on systems prior to 10.7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # requires linking against macports-libstdc++ or libc++ / libc++abi with cxa_thread_atexit
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # the test for default emulated-tls has been moved into the backend
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # this patch is needed for llvm and clang builds
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            9000-patch-llvm-7.0-support-emulated-tls.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${subport} eq "clang-${llvm_version}"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                9000-patch-clang-7.0-support-emulated-tls.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    default_variants-append +emulated_tls
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> if {${subport} eq "llvm-${llvm_version}"} {
     variant polly description {Provide the polly polyhedral optimizer} {}
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -557,6 +579,15 @@ if {${subport} eq "llvm-${llvm_version}"} {
</span>         }
     }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    if { ${cxx_stdlib} eq "libc++" && ${os.major} < 13 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        variant defaultlibcxx description {default to -stdlib=libc++ if not otherwise specified}  {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # on systems older than darwin 13, if macports.conf is configured to stdlib=libc++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # then make that the default if not otherwise specified. This matches the behaviour of newer systems.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            patchfiles-append 9003-patch-clang-7.0-default-to-libcxx-on-all-systems.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        default_variants-append +defaultlibcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     variant libstdcxx description {-stdlib=macports-libstdc++ searches for MacPorts libstdc++} {
 
         patchfiles-append 9001-macports-libstdcxx.diff
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -611,7 +642,7 @@ if {${subport} eq "llvm-${llvm_version}"} {
</span>                 ${worksrcpath}/tools/clang/lib/Frontend/InitHeaderSearch.cpp
         }
     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    default_variants +libstdcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    default_variants-append +libstdcxx
</span> 
     post-patch {
         reinplace "s|@@PREFIX@@|${prefix}|" \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/2001-xray-Define-O_CLOEXEC-for-older-SDKs-that-don-t-have.patch b/lang/llvm-devel/files/2001-xray-Define-O_CLOEXEC-for-older-SDKs-that-don-t-have.patch
</span><span style='display:block; white-space:pre;color:#808080;'>index 9330bbb..9c00481 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/llvm-devel/files/2001-xray-Define-O_CLOEXEC-for-older-SDKs-that-don-t-have.patch
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-devel/files/2001-xray-Define-O_CLOEXEC-for-older-SDKs-that-don-t-have.patch
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,7 +1,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-From 585a864b88b65cfbe57765d769b92b771bfaf762 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 7c0ed4903bda85727781bf383ec3b31e86a1b562 Mon Sep 17 00:00:00 2001
</span> From: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
 Date: Wed, 27 Dec 2017 23:21:37 -0800
<span style='display:block; white-space:pre;background:#ffe0e0;'>-Subject: [PATCH 2001/2001] xray: Define O_CLOEXEC for older SDKs that don't
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 2001/2002] xray: Define O_CLOEXEC for older SDKs that don't
</span>  have it
 
 Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -10,10 +10,10 @@ Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
</span>  lib/xray/xray_x86_64.cc | 6 ++++++
  2 files changed, 12 insertions(+)
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git llvm_master/projects/compiler-rt/lib/xray/xray_utils.cc macports_master/projects/compiler-rt/lib/xray/xray_utils.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index b9a38d1b9..b26a76893 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- llvm_master/projects/compiler-rt/lib/xray/xray_utils.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ macports_master/projects/compiler-rt/lib/xray/xray_utils.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_release_70/projects/compiler-rt/lib/xray/xray_utils.cc macports_release_70/projects/compiler-rt/lib/xray/xray_utils.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 68f4e8c10..cbf27dc96 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_release_70/projects/compiler-rt/lib/xray/xray_utils.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_release_70/projects/compiler-rt/lib/xray/xray_utils.cc
</span> @@ -25,6 +25,12 @@
  #include <unistd.h>
  #include <utility>
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -27,11 +27,11 @@ index b9a38d1b9..b26a76893 100644
</span>  namespace __xray {
  
  void printToStdErr(const char *Buffer) XRAY_NEVER_INSTRUMENT {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-diff --git llvm_master/projects/compiler-rt/lib/xray/xray_x86_64.cc macports_master/projects/compiler-rt/lib/xray/xray_x86_64.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-index e34806fa1..74ac35e47 100644
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- llvm_master/projects/compiler-rt/lib/xray/xray_x86_64.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ macports_master/projects/compiler-rt/lib/xray/xray_x86_64.cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -12,6 +12,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm_release_70/projects/compiler-rt/lib/xray/xray_x86_64.cc macports_release_70/projects/compiler-rt/lib/xray/xray_x86_64.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 51dc4ce43..ea5a70d9f 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm_release_70/projects/compiler-rt/lib/xray/xray_x86_64.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ macports_release_70/projects/compiler-rt/lib/xray/xray_x86_64.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -21,6 +21,12 @@
</span>  #include <tuple>
  #include <unistd.h>
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -43,7 +43,7 @@ index e34806fa1..74ac35e47 100644
</span> +
  namespace __xray {
  
<span style='display:block; white-space:pre;background:#ffe0e0;'>- static std::pair<ssize_t, bool>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if SANITIZER_LINUX
</span> -- 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-2.15.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+2.20.1 (Apple Git-116)
</span> 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/9000-patch-clang-7.0-support-emulated-tls.diff b/lang/llvm-devel/files/9000-patch-clang-7.0-support-emulated-tls.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..0459630
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-devel/files/9000-patch-clang-7.0-support-emulated-tls.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,26 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/tools/clang/lib/Basic/Targets/OSTargets.h b/tools/clang/lib/Basic/Targets/OSTargets.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d0354784..102605fe 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tools/clang/lib/Basic/Targets/OSTargets.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/clang/lib/Basic/Targets/OSTargets.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -93,7 +93,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     this->TLSSupported = false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (Triple.isMacOSX())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      this->TLSSupported = !Triple.isMacOSXVersionLT(10, 7);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      this->TLSSupported = !Triple.isMacOSXVersionLT(10, 4);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     else if (Triple.isiOS()) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       // 64-bit iOS supported it from 8 onwards, 32-bit device from 9 onwards,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       // 32-bit simulator from 10 onwards.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp b/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 00fff144..052924ab 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2255,7 +2255,7 @@ static void emitGlobalDtorWithCXAAtExit(CodeGenFunction &CGF,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const char *Name = "__cxa_atexit";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (TLS) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     const llvm::Triple &T = CGF.getTarget().getTriple();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    Name = T.isOSDarwin() ?  "_tlv_atexit" : "__cxa_thread_atexit";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    Name = (T.isOSDarwin() && !T.isMacOSXVersionLT(10, 7)) ?  "_tlv_atexit" : "__cxa_thread_atexit";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // We're assuming that the destructor function is something we can
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/9000-patch-llvm-7.0-support-emulated-tls.diff b/lang/llvm-devel/files/9000-patch-llvm-7.0-support-emulated-tls.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..b96a36e
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-devel/files/9000-patch-llvm-7.0-support-emulated-tls.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,13 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/include/llvm/ADT/Triple.h b/include/llvm/ADT/Triple.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c95b16dd..ecc0f148 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/include/llvm/ADT/Triple.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/include/llvm/ADT/Triple.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -682,7 +682,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /// Tests whether the target uses emulated TLS as default.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   bool hasDefaultEmulatedTLS() const {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return isAndroid() || isOSOpenBSD() || isWindowsCygwinEnvironment();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return isAndroid() || isOSOpenBSD() || isWindowsCygwinEnvironment() || isMacOSXVersionLT(10, 7);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /// @}
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/llvm-devel/files/9003-patch-clang-7.0-default-to-libcxx-on-all-systems.diff b/lang/llvm-devel/files/9003-patch-clang-7.0-default-to-libcxx-on-all-systems.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..0b08962
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/llvm-devel/files/9003-patch-clang-7.0-default-to-libcxx-on-all-systems.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,15 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git llvm-7.0.1.src/tools/clang/lib/Driver/ToolChains/Darwin.cpp llvm-7.0.1.src/tools/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index dc540688..64adab5c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- llvm-7.0.1.src/tools/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ llvm-7.0.1.src/tools/clang/lib/Driver/ToolChains/Darwin.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -700,8 +700,8 @@ types::ID MachO::LookupTypeForExtension(StringRef Ext) const {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool MachO::HasNativeLLVMSupport() const { return true; }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ToolChain::CXXStdlibType Darwin::GetDefaultCXXStdlibType() const {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  // Default to use libc++ on OS X 10.9+ and iOS 7+.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if ((isTargetMacOS() && !isMacosxVersionLT(10, 9)) ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  // Default to use libc++ on OS X 10.4+ and iOS 7+.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if ((isTargetMacOS() && !isMacosxVersionLT(10, 4)) ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        (isTargetIOSBased() && !isIPhoneOSVersionLT(7, 0)) ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        isTargetWatchOSBased())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return ToolChain::CST_Libcxx;
</span></pre><pre style='margin:0'>

</pre>