replace LeakSanitizerIsTurnedOffForTheCurrentProcess with __lsan_is_turned_off, but this time hide it under __has_feature(address_sanitizer); also include <sanitizer/lsan_interface.h>

llvm-svn: 199303
diff --git a/llvm/utils/TableGen/TableGen.cpp b/llvm/utils/TableGen/TableGen.cpp
index 669127c..00c3a6f 100644
--- a/llvm/utils/TableGen/TableGen.cpp
+++ b/llvm/utils/TableGen/TableGen.cpp
@@ -181,9 +181,11 @@
   return TableGenMain(argv[0], &LLVMTableGenMain);
 }
 
-extern "C" {
+#ifdef __has_feature
+#if __has_feature(address_sanitizer)
+#include <sanitizer/lsan_interface.h>
 // Disable LeakSanitizer for this binary as it has too many leaks that are not
-// very interesting to fix. LeakSanitizerIsTurnedOffForTheCurrentProcess is
-// explained in compiler-rt/include/sanitizer/lsan_interface.h
-int LeakSanitizerIsTurnedOffForTheCurrentProcess() { return 1; }
-} // extern "C"
+// very interesting to fix. See compiler-rt/include/sanitizer/lsan_interface.h .
+int __lsan_is_turned_off() { return 1; }
+#endif  // __has_feature(address_sanitizer)
+#endif  // defined(__has_feature)