[PATCH] D38703: [lit] Only enable LSan on darwin when clang supports it

Francis Ricci via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 9 13:20:20 PDT 2017


fjricci updated this revision to Diff 118264.
fjricci added a comment.

Fix a couple python issues


https://reviews.llvm.org/D38703

Files:
  utils/lit/lit/llvm/config.py


Index: utils/lit/lit/llvm/config.py
===================================================================
--- utils/lit/lit/llvm/config.py
+++ utils/lit/lit/llvm/config.py
@@ -80,7 +80,7 @@
 
         if target_triple:
             if re.match(r'^x86_64.*-apple', target_triple):
-                if 'address' in sanitizers:
+                if 'address' in sanitizers and self.get_clang_has_lsan(config.host_cxx, target_triple):
                     self.with_environment(
                         'ASAN_OPTIONS', 'detect_leaks=1', append_path=True)
             if re.match(r'^x86_64.*-linux', target_triple):
@@ -200,6 +200,21 @@
         # Ensure the result is an ascii string, across Python2.5+ - Python3.
         return clang_dir
 
+    # On macOS, LSan is only supported on clang versions 5 and higher
+    def get_clang_has_lsan(self, clang, triple):
+        if re.match(r'.*-linux', triple):
+            return True
+
+        if re.match(r'^x86_64.*-apple', triple):
+            version_string, _ = self.get_process_output([clang.strip(), '--version'])
+            version_number = int(re.search(r'version ([0-9]+)\.', version_string).group(1))
+            if re.match(r'^Apple LLVM', version_string):
+                return version_number >= 9
+            else:
+                return version_number >= 5
+
+        return False
+
     def make_itanium_abi_triple(self, triple):
         m = re.match(r'(\w+)-(\w+)-(\w+)', triple)
         if not m:


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D38703.118264.patch
Type: text/x-patch
Size: 1468 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20171009/959cad8f/attachment.bin>


More information about the llvm-commits mailing list