Exclude several ASan tests from test suite if we're using GCC

llvm-svn: 209013
diff --git a/compiler-rt/test/asan/TestCases/Linux/asan_prelink_test.cc b/compiler-rt/test/asan/TestCases/Linux/asan_prelink_test.cc
index 798a542..6145c01 100644
--- a/compiler-rt/test/asan/TestCases/Linux/asan_prelink_test.cc
+++ b/compiler-rt/test/asan/TestCases/Linux/asan_prelink_test.cc
@@ -9,7 +9,8 @@
 // RUN: %clangxx_asan %t.o %t.so -Wl,-R. -o %t
 // RUN: ASAN_OPTIONS=verbosity=1 %run %t 2>&1 | FileCheck %s
 
-// REQUIRES: x86_64-supported-target, asan-64-bits
+// GNU driver doesn't handle .so files properly.
+// REQUIRES: x86_64-supported-target, asan-64-bits, Clang
 #if BUILD_SO
 int G;
 int *getG() {
diff --git a/compiler-rt/test/asan/TestCases/Linux/heavy_uar_test.cc b/compiler-rt/test/asan/TestCases/Linux/heavy_uar_test.cc
index 594aa05..cedd69d 100644
--- a/compiler-rt/test/asan/TestCases/Linux/heavy_uar_test.cc
+++ b/compiler-rt/test/asan/TestCases/Linux/heavy_uar_test.cc
@@ -4,6 +4,9 @@
 // RUN: %clangxx_asan -O2 %s -o %t && \
 // RUN:   not %run %t 2>&1 | FileCheck %s
 
+// FIXME: Fix this test under GCC.
+// REQUIRES: Clang
+
 #include <stdio.h>
 #include <string.h>
 #include <stdlib.h>
diff --git a/compiler-rt/test/asan/TestCases/Linux/odr-violation.cc b/compiler-rt/test/asan/TestCases/Linux/odr-violation.cc
index cd07c72..91fa6d5 100644
--- a/compiler-rt/test/asan/TestCases/Linux/odr-violation.cc
+++ b/compiler-rt/test/asan/TestCases/Linux/odr-violation.cc
@@ -11,6 +11,9 @@
 // RUN: ASAN_OPTIONS=detect_odr_violation=1     %run %t 2>&1 | FileCheck %s --check-prefix=DISABLED
 // RUN: ASAN_OPTIONS=detect_odr_violation=2 not %run %t 2>&1 | FileCheck %s
 
+// GNU driver doesn't handle .so files properly.
+// REQUIRES: Clang
+
 #ifndef SZ
 # define SZ 4
 #endif
diff --git a/compiler-rt/test/asan/TestCases/Linux/preinit_test.cc b/compiler-rt/test/asan/TestCases/Linux/preinit_test.cc
index 4444c1c..ab62d63 100644
--- a/compiler-rt/test/asan/TestCases/Linux/preinit_test.cc
+++ b/compiler-rt/test/asan/TestCases/Linux/preinit_test.cc
@@ -2,6 +2,9 @@
 // RUN: %clangxx_asan -DFUNC=main %s         -o %t    -Wl,-R. %t.so
 // RUN: %run %t
 
+// GNU driver doesn't handle .so files properly.
+// REQUIRES: Clang
+
 // This test ensures that we call __asan_init early enough.
 // We build a shared library w/o asan instrumentation
 // and the binary with asan instrumentation.
diff --git a/compiler-rt/test/asan/TestCases/heap-overflow.cc b/compiler-rt/test/asan/TestCases/heap-overflow.cc
index 1a5098a..d5797dc9 100644
--- a/compiler-rt/test/asan/TestCases/heap-overflow.cc
+++ b/compiler-rt/test/asan/TestCases/heap-overflow.cc
@@ -3,6 +3,10 @@
 // RUN: %clangxx_asan -O2 %s -o %t && not %run %t 2>&1 | FileCheck %s
 // RUN: %clangxx_asan -O3 %s -o %t && not %run %t 2>&1 | FileCheck %s
 // RUN: ASAN_OPTIONS=print_stats=1 not %run %t 2>&1 | FileCheck %s
+
+// FIXME: Fix this test under GCC.
+// REQUIRES: Clang
+
 #include <stdlib.h>
 #include <string.h>
 int main(int argc, char **argv) {
diff --git a/compiler-rt/test/lit.common.cfg b/compiler-rt/test/lit.common.cfg
index 4bfca2e..5366073 100644
--- a/compiler-rt/test/lit.common.cfg
+++ b/compiler-rt/test/lit.common.cfg
@@ -28,6 +28,8 @@
   config.cxx_mode_flags = ["-x c++"]
 else:
   lit_config.fatal("Unsupported compiler id: %r" % compiler_id)
+# Add compiler ID to the list of available features.
+config.available_features.add(compiler_id)
 
 # Clear some environment variables that might affect Clang.
 possibly_dangerous_env_vars = ['COMPILER_PATH', 'RC_DEBUG_OPTIONS',