[ASan] create separate configs for running ASan lit tests in both 32- and 64-bit mode. Clean up RUN-lines in tests.

llvm-svn: 183498
diff --git a/compiler-rt/lib/asan/lit_tests/lit.site.cfg.in b/compiler-rt/lib/asan/lit_tests/32bitConfig/lit.site.cfg.in
similarity index 94%
copy from compiler-rt/lib/asan/lit_tests/lit.site.cfg.in
copy to compiler-rt/lib/asan/lit_tests/32bitConfig/lit.site.cfg.in
index db52002..99496c2 100644
--- a/compiler-rt/lib/asan/lit_tests/lit.site.cfg.in
+++ b/compiler-rt/lib/asan/lit_tests/32bitConfig/lit.site.cfg.in
@@ -6,6 +6,8 @@
 
 # Tool-specific config options.
 config.asan_source_dir = "@ASAN_SOURCE_DIR@"
+config.bits = "32"
 
 # Load tool-specific config that would do the real work.
 lit.load_config(config, "@ASAN_SOURCE_DIR@/lit_tests/lit.cfg")
+
diff --git a/compiler-rt/lib/asan/lit_tests/lit.site.cfg.in b/compiler-rt/lib/asan/lit_tests/64bitConfig/lit.site.cfg.in
similarity index 95%
rename from compiler-rt/lib/asan/lit_tests/lit.site.cfg.in
rename to compiler-rt/lib/asan/lit_tests/64bitConfig/lit.site.cfg.in
index db52002..94b0228 100644
--- a/compiler-rt/lib/asan/lit_tests/lit.site.cfg.in
+++ b/compiler-rt/lib/asan/lit_tests/64bitConfig/lit.site.cfg.in
@@ -6,6 +6,7 @@
 
 # Tool-specific config options.
 config.asan_source_dir = "@ASAN_SOURCE_DIR@"
+config.bits = "64"
 
 # Load tool-specific config that would do the real work.
 lit.load_config(config, "@ASAN_SOURCE_DIR@/lit_tests/lit.cfg")
diff --git a/compiler-rt/lib/asan/lit_tests/CMakeLists.txt b/compiler-rt/lib/asan/lit_tests/CMakeLists.txt
index d2420b5..b65d347 100644
--- a/compiler-rt/lib/asan/lit_tests/CMakeLists.txt
+++ b/compiler-rt/lib/asan/lit_tests/CMakeLists.txt
@@ -2,8 +2,13 @@
 set(ASAN_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/..)
 
 configure_lit_site_cfg(
-  ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in
-  ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
+  ${CMAKE_CURRENT_SOURCE_DIR}/64bitConfig/lit.site.cfg.in
+  ${CMAKE_CURRENT_BINARY_DIR}/64bitConfig/lit.site.cfg
+  )
+
+configure_lit_site_cfg(
+  ${CMAKE_CURRENT_SOURCE_DIR}/32bitConfig/lit.site.cfg.in
+  ${CMAKE_CURRENT_BINARY_DIR}/32bitConfig/lit.site.cfg
   )
 
 configure_lit_site_cfg(
@@ -12,21 +17,27 @@
   )
 
 if(COMPILER_RT_CAN_EXECUTE_TESTS)
+  set(ASAN_TESTSUITES)
+  if(CAN_TARGET_i386)
+    list(APPEND ASAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/32bitConfig)
+  endif()
+  if(CAN_TARGET_x86_64 OR CAN_TARGET_powerpc64)
+    list(APPEND ASAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/64bitConfig)
+  endif()
   # Run ASan tests only if we're sure we may produce working binaries.
   set(ASAN_TEST_DEPS
     ${SANITIZER_COMMON_LIT_TEST_DEPS}
     ${ASAN_RUNTIME_LIBRARIES}
     asan_blacklist)
   set(ASAN_TEST_PARAMS
-    asan_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg
-    )
+    asan_site_config=${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg)
   if(LLVM_INCLUDE_TESTS)
     list(APPEND ASAN_TEST_DEPS AsanUnitTests)
+    list(APPEND ASAN_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Unit)
   endif()
   add_lit_testsuite(check-asan "Running the AddressSanitizer tests"
-    ${CMAKE_CURRENT_BINARY_DIR}
+    ${ASAN_TESTSUITES}
     PARAMS ${ASAN_TEST_PARAMS}
-    DEPENDS ${ASAN_TEST_DEPS}
-    )
+    DEPENDS ${ASAN_TEST_DEPS})
   set_target_properties(check-asan PROPERTIES FOLDER "ASan tests")
 endif()
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/Darwin/interface_symbols_darwin.c b/compiler-rt/lib/asan/lit_tests/TestCases/Darwin/interface_symbols_darwin.c
index 85bf7a5..319175a 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/Darwin/interface_symbols_darwin.c
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/Darwin/interface_symbols_darwin.c
@@ -2,7 +2,7 @@
 // If you're changing this file, please also change
 // ../Linux/interface_symbols.c
 
-// RUN: %clang -fsanitize=address -dead_strip -O2 %s -o %t.exe
+// RUN: %clang_asan -dead_strip -O2 %s -o %t.exe
 // RUN: rm -f %t.symbols %t.interface
 
 // RUN: nm -g `otool -L %t.exe | grep "asan_osx_dynamic.dylib" | \
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/Darwin/reexec-insert-libraries-env.cc b/compiler-rt/lib/asan/lit_tests/TestCases/Darwin/reexec-insert-libraries-env.cc
index 40a459f..208fe43 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/Darwin/reexec-insert-libraries-env.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/Darwin/reexec-insert-libraries-env.cc
@@ -2,8 +2,8 @@
 // This is a regression test for
 // https://code.google.com/p/address-sanitizer/issues/detail?id=159
 
-// RUN: %clangxx_asan -m64 %s -o %t
-// RUN: %clangxx -m64 %p/../SharedLibs/darwin-dummy-shared-lib-so.cc \
+// RUN: %clangxx_asan %s -o %t
+// RUN: %clangxx %p/../SharedLibs/darwin-dummy-shared-lib-so.cc \
 // RUN:     -dynamiclib -o darwin-dummy-shared-lib-so.dylib
 
 // FIXME: the following command line may hang in the case of a regression.
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/Darwin/unset-insert-libraries-on-exec.cc b/compiler-rt/lib/asan/lit_tests/TestCases/Darwin/unset-insert-libraries-on-exec.cc
index cf89949..3c34e37 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/Darwin/unset-insert-libraries-on-exec.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/Darwin/unset-insert-libraries-on-exec.cc
@@ -1,8 +1,8 @@
 // Make sure ASan removes the runtime library from DYLD_INSERT_LIBRARIES before
 // executing other programs.
 
-// RUN: %clangxx_asan -m64 %s -o %t
-// RUN: %clangxx -m64 %p/../SharedLibs/darwin-dummy-shared-lib-so.cc \
+// RUN: %clangxx_asan %s -o %t
+// RUN: %clangxx %p/../SharedLibs/darwin-dummy-shared-lib-so.cc \
 // RUN:     -dynamiclib -o darwin-dummy-shared-lib-so.dylib
 
 // Make sure DYLD_INSERT_LIBRARIES doesn't contain the runtime library before
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/asan_prelink_test.cc b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/asan_prelink_test.cc
index c209c39..0f158c1 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/asan_prelink_test.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/asan_prelink_test.cc
@@ -3,13 +3,13 @@
 // or gold's flag -Ttext (we try the first flag first, if that fails we
 // try the second flag).
 //
-// RUN: %clangxx_asan -m64 -c %s -o %t.o
-// RUN: %clangxx_asan -m64 -DBUILD_SO=1 -fPIC -shared %s -o %t.so -Wl,-Ttext-segment=0x3600000000 ||\
-// RUN: %clangxx_asan -m64 -DBUILD_SO=1 -fPIC -shared %s -o %t.so -Wl,-Ttext=0x3600000000
-// RUN: %clangxx_asan -m64 %t.o %t.so -Wl,-R. -o %t
+// RUN: %clangxx_asan -c %s -o %t.o
+// RUN: %clangxx_asan -DBUILD_SO=1 -fPIC -shared %s -o %t.so -Wl,-Ttext-segment=0x3600000000 ||\
+// RUN: %clangxx_asan -DBUILD_SO=1 -fPIC -shared %s -o %t.so -Wl,-Ttext=0x3600000000
+// RUN: %clangxx_asan %t.o %t.so -Wl,-R. -o %t
 // RUN: ASAN_OPTIONS=verbosity=1 %t 2>&1 | FileCheck %s
 
-// REQUIRES: x86_64-supported-target
+// REQUIRES: x86_64-supported-target, asan-64-bits
 #if BUILD_SO
 int G;
 int *getG() {
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/clone_test.cc b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/clone_test.cc
index ca13b22..0e12f35 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/clone_test.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/clone_test.cc
@@ -1,14 +1,10 @@
 // Regression test for:
 // http://code.google.com/p/address-sanitizer/issues/detail?id=37
 
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t | FileCheck %s
-// RUN: %clangxx_asan -m64 -O1 %s -o %t && %t | FileCheck %s
-// RUN: %clangxx_asan -m64 -O2 %s -o %t && %t | FileCheck %s
-// RUN: %clangxx_asan -m64 -O3 %s -o %t && %t | FileCheck %s
-// RUN: %clangxx_asan -m32 -O0 %s -o %t && %t | FileCheck %s
-// RUN: %clangxx_asan -m32 -O1 %s -o %t && %t | FileCheck %s
-// RUN: %clangxx_asan -m32 -O2 %s -o %t && %t | FileCheck %s
-// RUN: %clangxx_asan -m32 -O3 %s -o %t && %t | FileCheck %s
+// RUN: %clangxx_asan -O0 %s -o %t && %t | FileCheck %s
+// RUN: %clangxx_asan -O1 %s -o %t && %t | FileCheck %s
+// RUN: %clangxx_asan -O2 %s -o %t && %t | FileCheck %s
+// RUN: %clangxx_asan -O3 %s -o %t && %t | FileCheck %s
 
 #include <stdio.h>
 #include <sched.h>
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/glob.cc b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/glob.cc
index e05228f..a375f1b 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/glob.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/glob.cc
@@ -1,7 +1,5 @@
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t %p 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m64 -O3 %s -o %t && %t %p 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O0 %s -o %t && %t %p 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O3 %s -o %t && %t %p 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O0 %s -o %t && %t %p 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O3 %s -o %t && %t %p 2>&1 | FileCheck %s
 
 #include <assert.h>
 #include <glob.h>
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/heavy_uar_test.cc b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/heavy_uar_test.cc
index c0f4560..2c1b707 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/heavy_uar_test.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/heavy_uar_test.cc
@@ -1,8 +1,6 @@
-// RUN: %clangxx_asan -fsanitize=use-after-return -m64 -O0 %s -o %t && \
+// RUN: %clangxx_asan -fsanitize=use-after-return -O0 %s -o %t && \
 // RUN:   %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -fsanitize=use-after-return -m64 -O2 %s -o %t && \
-// RUN:   %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -fsanitize=use-after-return -m32 -O2 %s -o %t && \
+// RUN: %clangxx_asan -fsanitize=use-after-return -O2 %s -o %t && \
 // RUN:   %t 2>&1 | %symbolize | FileCheck %s
 
 #include <stdio.h>
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/initialization-bug-any-order.cc b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/initialization-bug-any-order.cc
index 4f41dda..c33f5cc7 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/initialization-bug-any-order.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/initialization-bug-any-order.cc
@@ -3,10 +3,10 @@
 // independently on order in which we list source files (if we specify
 // strict init-order checking).
 
-// RUN: %clangxx_asan -m64 -O0 %s %p/../Helpers/initialization-bug-extra.cc -o %t
+// RUN: %clangxx_asan -O0 %s %p/../Helpers/initialization-bug-extra.cc -o %t
 // RUN: ASAN_OPTIONS=check_initialization_order=true:strict_init_order=true %t 2>&1 \
 // RUN:    | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O0 %p/../Helpers/initialization-bug-extra.cc %s -o %t
+// RUN: %clangxx_asan -O0 %p/../Helpers/initialization-bug-extra.cc %s -o %t
 // RUN: ASAN_OPTIONS=check_initialization_order=true:strict_init_order=true %t 2>&1 \
 // RUN:    | %symbolize | FileCheck %s
 
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/interception_failure_test.cc b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/interception_failure_test.cc
index dfad909..9d161aa 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/interception_failure_test.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/interception_failure_test.cc
@@ -1,14 +1,10 @@
 // If user provides his own libc functions, ASan doesn't
 // intercept these functions.
 
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m64 -O1 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m64 -O2 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m64 -O3 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O0 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O1 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O2 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O3 %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O1 %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O2 %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O3 %s -o %t && %t 2>&1 | FileCheck %s
 #include <stdlib.h>
 #include <stdio.h>
 
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/interception_malloc_test.cc b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/interception_malloc_test.cc
index 8f66788..ca90832 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/interception_malloc_test.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/interception_malloc_test.cc
@@ -1,13 +1,9 @@
 // ASan interceptor can be accessed with __interceptor_ prefix.
 
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m64 -O1 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m64 -O2 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m64 -O3 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O0 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O1 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O2 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O3 %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O1 %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O2 %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O3 %s -o %t && %t 2>&1 | FileCheck %s
 #include <stdlib.h>
 #include <stdio.h>
 #include <unistd.h>
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/interception_test.cc b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/interception_test.cc
index 94fb499..0778b20 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/interception_test.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/interception_test.cc
@@ -1,13 +1,9 @@
 // ASan interceptor can be accessed with __interceptor_ prefix.
 
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m64 -O1 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m64 -O2 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m64 -O3 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O0 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O1 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O2 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O3 %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O1 %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O2 %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O3 %s -o %t && %t 2>&1 | FileCheck %s
 #include <stdlib.h>
 #include <stdio.h>
 
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/interface_symbols_linux.c b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/interface_symbols_linux.c
index b5cfa09..baabc05 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/interface_symbols_linux.c
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/interface_symbols_linux.c
@@ -1,6 +1,6 @@
 // Check the presense of interface symbols in compiled file.
 
-// RUN: %clang -fsanitize=address -O2 %s -o %t.exe
+// RUN: %clang_asan -O2 %s -o %t.exe
 // RUN: nm -D %t.exe | grep " T " | sed "s/.* T //" \
 // RUN:    | grep "__asan_" | sed "s/___asan_/__asan_/" \
 // RUN:    | grep -v "__asan_malloc_hook" \
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/malloc-in-qsort.cc b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/malloc-in-qsort.cc
index ee2e81f..32c2ca7 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/malloc-in-qsort.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/malloc-in-qsort.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -m64 -O2 %s -o %t
+// RUN: %clangxx_asan -O2 %s -o %t
 // RUN: ASAN_OPTIONS=fast_unwind_on_malloc=1 %t 2>&1 | %symbolize | FileCheck %s --check-prefix=CHECK-FAST
 // RUN: ASAN_OPTIONS=fast_unwind_on_malloc=0 %t 2>&1 | %symbolize | FileCheck %s --check-prefix=CHECK-SLOW
 
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/overflow-in-qsort.cc b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/overflow-in-qsort.cc
index 8bc43ca..19e73f6 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/overflow-in-qsort.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/overflow-in-qsort.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -m64 -O2 %s -o %t
+// RUN: %clangxx_asan -O2 %s -o %t
 // RUN: ASAN_OPTIONS=fast_unwind_on_fatal=1 %t 2>&1 | %symbolize | FileCheck %s --check-prefix=CHECK-FAST
 // RUN: ASAN_OPTIONS=fast_unwind_on_fatal=0 %t 2>&1 | %symbolize | FileCheck %s --check-prefix=CHECK-SLOW
 
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/swapcontext_test.cc b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/swapcontext_test.cc
index 47a8d98..6cbb69a 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/swapcontext_test.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/swapcontext_test.cc
@@ -1,13 +1,9 @@
 // Check that ASan plays well with easy cases of makecontext/swapcontext.
 
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m64 -O1 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m64 -O2 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m64 -O3 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O0 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O1 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O2 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O3 %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O1 %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O2 %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O3 %s -o %t && %t 2>&1 | FileCheck %s
 //
 // This test is too sublte to try on non-x86 arch for now.
 // REQUIRES: x86_64-supported-target,i386-supported-target
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/syscalls.cc b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/syscalls.cc
index b2edcfb..e7acdba 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/syscalls.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/syscalls.cc
@@ -1,5 +1,5 @@
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
 
 #include <assert.h>
 #include <errno.h>
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/time_null_regtest.cc b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/time_null_regtest.cc
index 975bca3..7579a44 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/time_null_regtest.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/time_null_regtest.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -m64 -O0 %s -fsanitize-address-zero-base-shadow -pie -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O0 %s -fsanitize-address-zero-base-shadow -pie -o %t && %t 2>&1 | %symbolize | FileCheck %s
 
 // Zero-base shadow only works on x86_64 and i386.
 // REQUIRES: x86_64-supported-target
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/unpoison_tls.cc b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/unpoison_tls.cc
index 08e7d86f6..d67c4f9 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/unpoison_tls.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/unpoison_tls.cc
@@ -1,8 +1,7 @@
 // Test that TLS is unpoisoned on thread death.
 // REQUIRES: x86_64-supported-target,i386-supported-target
 
-// RUN: %clangxx_asan -m64 -O1 %s -o %t && %t 2>&1
-// RUN: %clangxx_asan -m32 -O1 %s -o %t && %t 2>&1
+// RUN: %clangxx_asan -O1 %s -o %t && %t 2>&1
 
 #include <assert.h>
 #include <pthread.h>
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/zero-base-shadow.cc b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/zero-base-shadow.cc
deleted file mode 100644
index 682e7e8..0000000
--- a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/zero-base-shadow.cc
+++ /dev/null
@@ -1,31 +0,0 @@
-// RUN: %clangxx_asan -m64 -O0 -fsanitize-address-zero-base-shadow -fPIE -pie %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-64 < %t.out
-// RUN: %clangxx_asan -m64 -O1 -fsanitize-address-zero-base-shadow -fPIE -pie %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-64 < %t.out
-// RUN: %clangxx_asan -m64 -O2 -fsanitize-address-zero-base-shadow -fPIE -pie %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-64 < %t.out
-// RUN: %clangxx_asan -m32 -O0 -fsanitize-address-zero-base-shadow -fPIE -pie %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-32 < %t.out
-// RUN: %clangxx_asan -m32 -O1 -fsanitize-address-zero-base-shadow -fPIE -pie %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-32 < %t.out
-// RUN: %clangxx_asan -m32 -O2 -fsanitize-address-zero-base-shadow -fPIE -pie %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-32 < %t.out
-
-// Zero-base shadow only works on x86_64 and i386.
-// REQUIRES: x86_64-supported-target,i386-supported-target
-
-#include <string.h>
-int main(int argc, char **argv) {
-  char x[10];
-  memset(x, 0, 10);
-  int res = x[argc * 10];  // BOOOM
-  // CHECK: {{READ of size 1 at 0x.* thread T0}}
-  // CHECK: {{    #0 0x.* in _?main .*zero-base-shadow.cc:}}[[@LINE-2]]
-  // CHECK: {{Address 0x.* is .* frame}}
-  // CHECK: main
-
-  // Check that shadow for stack memory occupies lower part of address space.
-  // CHECK-64: =>0x0f
-  // CHECK-32: =>0x1
-  return res;
-}
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/zero-base-shadow32.cc b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/zero-base-shadow32.cc
new file mode 100644
index 0000000..5406b8a
--- /dev/null
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/zero-base-shadow32.cc
@@ -0,0 +1,24 @@
+// RUN: %clangxx_asan -O0 -fsanitize-address-zero-base-shadow -fPIE -pie %s -o %t
+// RUN: %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O1 -fsanitize-address-zero-base-shadow -fPIE -pie %s -o %t
+// RUN: %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O2 -fsanitize-address-zero-base-shadow -fPIE -pie %s -o %t
+// RUN: %t 2>&1 | %symbolize | FileCheck %s
+
+// Zero-base shadow only works on x86_64 and i386.
+// REQUIRES: i386-supported-target, asan-32-bits
+
+#include <string.h>
+int main(int argc, char **argv) {
+  char x[10];
+  memset(x, 0, 10);
+  int res = x[argc * 10];  // BOOOM
+  // CHECK: {{READ of size 1 at 0x.* thread T0}}
+  // CHECK: {{    #0 0x.* in _?main .*zero-base-shadow32.cc:}}[[@LINE-2]]
+  // CHECK: {{Address 0x.* is .* frame}}
+  // CHECK: main
+
+  // Check that shadow for stack memory occupies lower part of address space.
+  // CHECK: =>0x1
+  return res;
+}
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/Linux/zero-base-shadow64.cc b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/zero-base-shadow64.cc
new file mode 100644
index 0000000..c02c923
--- /dev/null
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/Linux/zero-base-shadow64.cc
@@ -0,0 +1,24 @@
+// RUN: %clangxx_asan -O0 -fsanitize-address-zero-base-shadow -fPIE -pie %s -o %t
+// RUN: %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O1 -fsanitize-address-zero-base-shadow -fPIE -pie %s -o %t
+// RUN: %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O2 -fsanitize-address-zero-base-shadow -fPIE -pie %s -o %t
+// RUN: %t 2>&1 | %symbolize | FileCheck %s
+
+// Zero-base shadow only works on x86_64 and i386.
+// REQUIRES: x86_64-supported-target, asan-64-bits
+
+#include <string.h>
+int main(int argc, char **argv) {
+  char x[10];
+  memset(x, 0, 10);
+  int res = x[argc * 10];  // BOOOM
+  // CHECK: {{READ of size 1 at 0x.* thread T0}}
+  // CHECK: {{    #0 0x.* in _?main .*zero-base-shadow64.cc:}}[[@LINE-2]]
+  // CHECK: {{Address 0x.* is .* frame}}
+  // CHECK: main
+
+  // Check that shadow for stack memory occupies lower part of address space.
+  // CHECK: =>0x0f
+  return res;
+}
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/allow_user_segv.cc b/compiler-rt/lib/asan/lit_tests/TestCases/allow_user_segv.cc
index f8aed0d..a10af86 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/allow_user_segv.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/allow_user_segv.cc
@@ -1,10 +1,8 @@
 // Regression test for
 // https://code.google.com/p/address-sanitizer/issues/detail?id=180
 
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && ASAN_OPTIONS=allow_user_segv_handler=true %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m64 -O2 %s -o %t && ASAN_OPTIONS=allow_user_segv_handler=true %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O0 %s -o %t && ASAN_OPTIONS=allow_user_segv_handler=true %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O2 %s -o %t && ASAN_OPTIONS=allow_user_segv_handler=true %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O0 %s -o %t && ASAN_OPTIONS=allow_user_segv_handler=true %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O2 %s -o %t && ASAN_OPTIONS=allow_user_segv_handler=true %t 2>&1 | FileCheck %s
 
 #include <signal.h>
 #include <stdio.h>
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/blacklist.cc b/compiler-rt/lib/asan/lit_tests/TestCases/blacklist.cc
index 6cfc150..5e6d4c8 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/blacklist.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/blacklist.cc
@@ -3,21 +3,13 @@
 // RUN: echo "fun:*brokenFunction*" > %tmp
 // RUN: echo "global:*badGlobal*" >> %tmp
 // RUN: echo "src:*blacklist-extra.cc" >> %tmp
-// RUN: %clangxx_asan -fsanitize-blacklist=%tmp -m64 -O0 %s -o %t \
+// RUN: %clangxx_asan -fsanitize-blacklist=%tmp -O0 %s -o %t \
 // RUN: %p/Helpers/blacklist-extra.cc && %t 2>&1
-// RUN: %clangxx_asan -fsanitize-blacklist=%tmp -m64 -O1 %s -o %t \
+// RUN: %clangxx_asan -fsanitize-blacklist=%tmp -O1 %s -o %t \
 // RUN: %p/Helpers/blacklist-extra.cc && %t 2>&1
-// RUN: %clangxx_asan -fsanitize-blacklist=%tmp -m64 -O2 %s -o %t \
+// RUN: %clangxx_asan -fsanitize-blacklist=%tmp -O2 %s -o %t \
 // RUN: %p/Helpers/blacklist-extra.cc && %t 2>&1
-// RUN: %clangxx_asan -fsanitize-blacklist=%tmp -m64 -O3 %s -o %t \
-// RUN: %p/Helpers/blacklist-extra.cc && %t 2>&1
-// RUN: %clangxx_asan -fsanitize-blacklist=%tmp -m32 -O0 %s -o %t \
-// RUN: %p/Helpers/blacklist-extra.cc && %t 2>&1
-// RUN: %clangxx_asan -fsanitize-blacklist=%tmp -m32 -O1 %s -o %t \
-// RUN: %p/Helpers/blacklist-extra.cc && %t 2>&1
-// RUN: %clangxx_asan -fsanitize-blacklist=%tmp -m32 -O2 %s -o %t \
-// RUN: %p/Helpers/blacklist-extra.cc && %t 2>&1
-// RUN: %clangxx_asan -fsanitize-blacklist=%tmp -m32 -O3 %s -o %t \
+// RUN: %clangxx_asan -fsanitize-blacklist=%tmp -O3 %s -o %t \
 // RUN: %p/Helpers/blacklist-extra.cc && %t 2>&1
 
 // badGlobal is accessed improperly, but we blacklisted it.
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/deep_stack_uaf.cc b/compiler-rt/lib/asan/lit_tests/TestCases/deep_stack_uaf.cc
index 7b32798..536cddb 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/deep_stack_uaf.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/deep_stack_uaf.cc
@@ -1,12 +1,7 @@
 // Check that we can store lots of stack frames if asked to.
 
-// RUN: %clangxx_asan -m64 -O0 %s -o %t 2>&1
-// RUN: ASAN_OPTIONS=malloc_context_size=120:redzone=512 %t 2>&1 | \
-// RUN: %symbolize | FileCheck %s
-
-// RUN: %clangxx_asan -m32 -O0 %s -o %t 2>&1
-// RUN: ASAN_OPTIONS=malloc_context_size=120:redzone=512 %t 2>&1 | \
-// RUN: %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O0 %s -o %t 2>&1
+// RUN: ASAN_OPTIONS=malloc_context_size=120:redzone=512 %t 2>&1 | %symbolize | FileCheck %s
 #include <stdlib.h>
 #include <stdio.h>
 
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/deep_tail_call.cc b/compiler-rt/lib/asan/lit_tests/TestCases/deep_tail_call.cc
index 6aa15e8..87d8886 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/deep_tail_call.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/deep_tail_call.cc
@@ -1,11 +1,7 @@
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O1 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O2 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O1 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O2 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O1 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O2 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
 
 // CHECK: AddressSanitizer: global-buffer-overflow
 int global[10];
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/deep_thread_stack.cc b/compiler-rt/lib/asan/lit_tests/TestCases/deep_thread_stack.cc
index 781508d..ecc6fff 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/deep_thread_stack.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/deep_thread_stack.cc
@@ -1,11 +1,7 @@
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O1 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O2 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O1 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O2 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O1 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O2 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
 
 #include <pthread.h>
 
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/dlclose-test.cc b/compiler-rt/lib/asan/lit_tests/TestCases/dlclose-test.cc
index b15895b..03ed160 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/dlclose-test.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/dlclose-test.cc
@@ -14,30 +14,18 @@
 // It works on i368/x86_64 Linux, but not necessary anywhere else.
 // REQUIRES: x86_64-supported-target,i386-supported-target
 
-// RUN: %clangxx_asan -m64 -O0 %p/SharedLibs/dlclose-test-so.cc \
+// RUN: %clangxx_asan -O0 %p/SharedLibs/dlclose-test-so.cc \
 // RUN:     -fPIC -shared -o %t-so.so
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m64 -O1 %p/SharedLibs/dlclose-test-so.cc \
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O1 %p/SharedLibs/dlclose-test-so.cc \
 // RUN:     -fPIC -shared -o %t-so.so
-// RUN: %clangxx_asan -m64 -O1 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m64 -O2 %p/SharedLibs/dlclose-test-so.cc \
+// RUN: %clangxx_asan -O1 %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O2 %p/SharedLibs/dlclose-test-so.cc \
 // RUN:     -fPIC -shared -o %t-so.so
-// RUN: %clangxx_asan -m64 -O2 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m64 -O3 %p/SharedLibs/dlclose-test-so.cc \
+// RUN: %clangxx_asan -O2 %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O3 %p/SharedLibs/dlclose-test-so.cc \
 // RUN:     -fPIC -shared -o %t-so.so
-// RUN: %clangxx_asan -m64 -O3 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O0 %p/SharedLibs/dlclose-test-so.cc \
-// RUN:     -fPIC -shared -o %t-so.so
-// RUN: %clangxx_asan -m32 -O0 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O1 %p/SharedLibs/dlclose-test-so.cc \
-// RUN:     -fPIC -shared -o %t-so.so
-// RUN: %clangxx_asan -m32 -O1 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O2 %p/SharedLibs/dlclose-test-so.cc \
-// RUN:     -fPIC -shared -o %t-so.so
-// RUN: %clangxx_asan -m32 -O2 %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m32 -O3 %p/SharedLibs/dlclose-test-so.cc \
-// RUN:     -fPIC -shared -o %t-so.so
-// RUN: %clangxx_asan -m32 -O3 %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O3 %s -o %t && %t 2>&1 | FileCheck %s
 
 #include <assert.h>
 #include <dlfcn.h>
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/double-free.cc b/compiler-rt/lib/asan/lit_tests/TestCases/double-free.cc
index 9e20111..6e6f4bb 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/double-free.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/double-free.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
 
 #include <stdlib.h>
 #include <string.h>
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/force_inline_opt0.cc b/compiler-rt/lib/asan/lit_tests/TestCases/force_inline_opt0.cc
index 955ce38..775a66d 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/force_inline_opt0.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/force_inline_opt0.cc
@@ -1,7 +1,7 @@
 // This test checks that we are no instrumenting a memory access twice
 // (before and after inlining)
-// RUN: %clangxx_asan -m64 -O1 %s -o %t && %t
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t
+// RUN: %clangxx_asan -O1 %s -o %t && %t
+// RUN: %clangxx_asan -O0 %s -o %t && %t
 __attribute__((always_inline))
 void foo(int *x) {
   *x = 0;
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/global-demangle.cc b/compiler-rt/lib/asan/lit_tests/TestCases/global-demangle.cc
index 5696a38..75001ae 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/global-demangle.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/global-demangle.cc
@@ -1,5 +1,5 @@
 // Don't run through %symbolize to avoid c++filt demangling.
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | FileCheck %s
 
 namespace XXX {
 class YYY {
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/global-overflow.cc b/compiler-rt/lib/asan/lit_tests/TestCases/global-overflow.cc
index 6a2f12e..e572335 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/global-overflow.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/global-overflow.cc
@@ -1,11 +1,7 @@
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O1 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O2 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O1 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O2 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O1 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O2 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
 
 #include <string.h>
 int main(int argc, char **argv) {
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/heap-overflow.cc b/compiler-rt/lib/asan/lit_tests/TestCases/heap-overflow.cc
index f1d719c..664b264 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/heap-overflow.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/heap-overflow.cc
@@ -1,18 +1,10 @@
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m64 -O1 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O1 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m64 -O2 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O2 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m64 -O3 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O0 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O1 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O2 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O3 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O3 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
 
 #include <stdlib.h>
@@ -27,10 +19,10 @@
   // CHECK: {{allocated by thread T0 here:}}
 
   // CHECK-Linux: {{    #0 0x.* in .*malloc}}
-  // CHECK-Linux: {{    #1 0x.* in main .*heap-overflow.cc:21}}
+  // CHECK-Linux: {{    #1 0x.* in main .*heap-overflow.cc:13}}
 
   // CHECK-Darwin: {{    #0 0x.* in _?wrap_malloc.*}}
-  // CHECK-Darwin: {{    #1 0x.* in _?main .*heap-overflow.cc:21}}
+  // CHECK-Darwin: {{    #1 0x.* in _?main .*heap-overflow.cc:13}}
   free(x);
   return res;
 }
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/huge_negative_hea_oob.cc b/compiler-rt/lib/asan/lit_tests/TestCases/huge_negative_hea_oob.cc
index a09e3bf..52def29 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/huge_negative_hea_oob.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/huge_negative_hea_oob.cc
@@ -1,5 +1,5 @@
-// RUN: %clangxx_asan -m64  %s -o %t && %t 2>&1 | FileCheck %s
-// RUN: %clangxx_asan -m64 -O %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan %s -o %t && %t 2>&1 | FileCheck %s
+// RUN: %clangxx_asan -O %s -o %t && %t 2>&1 | FileCheck %s
 // Check that we can find huge buffer overflows to the left.
 #include <stdlib.h>
 #include <string.h>
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/init-order-atexit.cc b/compiler-rt/lib/asan/lit_tests/TestCases/init-order-atexit.cc
index 45f4f17..9ed79a7 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/init-order-atexit.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/init-order-atexit.cc
@@ -4,7 +4,7 @@
 // (3) destructor of A reads uninitialized global C from another module.
 // We do *not* want to report init-order bug in this case.
 
-// RUN: %clangxx_asan -m64 -O0 %s %p/Helpers/init-order-atexit-extra.cc -o %t
+// RUN: %clangxx_asan -O0 %s %p/Helpers/init-order-atexit-extra.cc -o %t
 // RUN: ASAN_OPTIONS=check_initialization_order=true:strict_init_order=true %t 2>&1 | FileCheck %s
 
 #include <stdio.h>
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/init-order-dlopen.cc b/compiler-rt/lib/asan/lit_tests/TestCases/init-order-dlopen.cc
index 228f442..001fa8a 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/init-order-dlopen.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/init-order-dlopen.cc
@@ -1,13 +1,13 @@
 // Regression test for
 // https://code.google.com/p/address-sanitizer/issues/detail?id=178
 
-// RUN: %clangxx_asan -m64 -O0 %p/SharedLibs/init-order-dlopen-so.cc \
+// RUN: %clangxx_asan -O0 %p/SharedLibs/init-order-dlopen-so.cc \
 // RUN:     -fPIC -shared -o %t-so.so
 // If the linker doesn't support --export-dynamic (which is ELF-specific),
 // try to link without that option.
 // FIXME: find a better solution.
-// RUN: %clangxx_asan -m64 -O0 %s -o %t -Wl,--export-dynamic || \
-// RUN:     %clangxx_asan -m64 -O0 %s -o %t
+// RUN: %clangxx_asan -O0 %s -o %t -Wl,--export-dynamic || \
+// RUN:     %clangxx_asan -O0 %s -o %t
 // RUN: ASAN_OPTIONS=check_initialization_order=true:strict_init_order=true %t 2>&1 | FileCheck %s
 #include <dlfcn.h>
 #include <pthread.h>
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/initialization-blacklist.cc b/compiler-rt/lib/asan/lit_tests/TestCases/initialization-blacklist.cc
index 12fbc49..f40fcc0 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/initialization-blacklist.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/initialization-blacklist.cc
@@ -1,31 +1,16 @@
 // Test for blacklist functionality of initialization-order checker.
 
-// RUN: %clangxx_asan -m64 -O0 %s %p/Helpers/initialization-blacklist-extra.cc\
+// RUN: %clangxx_asan -O0 %s %p/Helpers/initialization-blacklist-extra.cc\
 // RUN:   %p/Helpers/initialization-blacklist-extra2.cc \
 // RUN:   -fsanitize-blacklist=%p/Helpers/initialization-blacklist.txt \
 // RUN:   -fsanitize=init-order -o %t
 // RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1
-// RUN: %clangxx_asan -m64 -O1 %s %p/Helpers/initialization-blacklist-extra.cc\
+// RUN: %clangxx_asan -O1 %s %p/Helpers/initialization-blacklist-extra.cc\
 // RUN:   %p/Helpers/initialization-blacklist-extra2.cc \
 // RUN:   -fsanitize-blacklist=%p/Helpers/initialization-blacklist.txt \
 // RUN:   -fsanitize=init-order -o %t
 // RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1
-// RUN: %clangxx_asan -m64 -O2 %s %p/Helpers/initialization-blacklist-extra.cc\
-// RUN:   %p/Helpers/initialization-blacklist-extra2.cc \
-// RUN:   -fsanitize-blacklist=%p/Helpers/initialization-blacklist.txt \
-// RUN:   -fsanitize=init-order -o %t
-// RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1
-// RUN: %clangxx_asan -m32 -O0 %s %p/Helpers/initialization-blacklist-extra.cc\
-// RUN:   %p/Helpers/initialization-blacklist-extra2.cc \
-// RUN:   -fsanitize-blacklist=%p/Helpers/initialization-blacklist.txt \
-// RUN:   -fsanitize=init-order -o %t
-// RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1
-// RUN: %clangxx_asan -m32 -O1 %s %p/Helpers/initialization-blacklist-extra.cc\
-// RUN:   %p/Helpers/initialization-blacklist-extra2.cc \
-// RUN:   -fsanitize-blacklist=%p/Helpers/initialization-blacklist.txt \
-// RUN:   -fsanitize=init-order -o %t
-// RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1
-// RUN: %clangxx_asan -m32 -O2 %s %p/Helpers/initialization-blacklist-extra.cc\
+// RUN: %clangxx_asan -O2 %s %p/Helpers/initialization-blacklist-extra.cc\
 // RUN:   %p/Helpers/initialization-blacklist-extra2.cc \
 // RUN:   -fsanitize-blacklist=%p/Helpers/initialization-blacklist.txt \
 // RUN:   -fsanitize=init-order -o %t
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/initialization-bug.cc b/compiler-rt/lib/asan/lit_tests/TestCases/initialization-bug.cc
index ee2c725..91fe7db 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/initialization-bug.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/initialization-bug.cc
@@ -1,11 +1,7 @@
 // Test to make sure basic initialization order errors are caught.
 
-// RUN: %clangxx_asan -m64 -O0 %s %p/Helpers/initialization-bug-extra2.cc -o %t
-// RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1 \
-// RUN:    | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O0 %s %p/Helpers/initialization-bug-extra2.cc -o %t
-// RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1 \
-// RUN:     | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O0 %s %p/Helpers/initialization-bug-extra2.cc -o %t
+// RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1 | %symbolize | FileCheck %s
 
 // Do not test with optimization -- the error may be optimized away.
 
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/initialization-constexpr.cc b/compiler-rt/lib/asan/lit_tests/TestCases/initialization-constexpr.cc
index ba54106..65c95ed 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/initialization-constexpr.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/initialization-constexpr.cc
@@ -4,28 +4,16 @@
 // constructor implies that it was initialized during constant initialization,
 // not dynamic initialization).
 
-// RUN: %clangxx_asan -m64 -O0 %s %p/Helpers/initialization-constexpr-extra.cc\
+// RUN: %clangxx_asan -O0 %s %p/Helpers/initialization-constexpr-extra.cc\
 // RUN:   --std=c++11 -fsanitize=init-order -o %t
 // RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1
-// RUN: %clangxx_asan -m64 -O1 %s %p/Helpers/initialization-constexpr-extra.cc\
+// RUN: %clangxx_asan -O1 %s %p/Helpers/initialization-constexpr-extra.cc\
 // RUN:   --std=c++11 -fsanitize=init-order -o %t
 // RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1
-// RUN: %clangxx_asan -m64 -O2 %s %p/Helpers/initialization-constexpr-extra.cc\
+// RUN: %clangxx_asan -O2 %s %p/Helpers/initialization-constexpr-extra.cc\
 // RUN:   --std=c++11 -fsanitize=init-order -o %t
 // RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1
-// RUN: %clangxx_asan -m64 -O3 %s %p/Helpers/initialization-constexpr-extra.cc\
-// RUN:   --std=c++11 -fsanitize=init-order -o %t
-// RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1
-// RUN: %clangxx_asan -m32 -O0 %s %p/Helpers/initialization-constexpr-extra.cc\
-// RUN:   --std=c++11 -fsanitize=init-order -o %t
-// RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1
-// RUN: %clangxx_asan -m32 -O1 %s %p/Helpers/initialization-constexpr-extra.cc\
-// RUN:   --std=c++11 -fsanitize=init-order -o %t
-// RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1
-// RUN: %clangxx_asan -m32 -O2 %s %p/Helpers/initialization-constexpr-extra.cc\
-// RUN:   --std=c++11 -fsanitize=init-order -o %t
-// RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1
-// RUN: %clangxx_asan -m32 -O3 %s %p/Helpers/initialization-constexpr-extra.cc\
+// RUN: %clangxx_asan -O3 %s %p/Helpers/initialization-constexpr-extra.cc\
 // RUN:   --std=c++11 -fsanitize=init-order -o %t
 // RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1
 
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/initialization-nobug.cc b/compiler-rt/lib/asan/lit_tests/TestCases/initialization-nobug.cc
index 407226e..ed37d13 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/initialization-nobug.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/initialization-nobug.cc
@@ -1,21 +1,13 @@
 // A collection of various initializers which shouldn't trip up initialization
 // order checking.  If successful, this will just return 0.
 
-// RUN: %clangxx_asan -m64 -O0 %s %p/Helpers/initialization-nobug-extra.cc -fsanitize=init-order -o %t
+// RUN: %clangxx_asan -O0 %s %p/Helpers/initialization-nobug-extra.cc -fsanitize=init-order -o %t
 // RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1
-// RUN: %clangxx_asan -m64 -O1 %s %p/Helpers/initialization-nobug-extra.cc -fsanitize=init-order -o %t
+// RUN: %clangxx_asan -O1 %s %p/Helpers/initialization-nobug-extra.cc -fsanitize=init-order -o %t
 // RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1
-// RUN: %clangxx_asan -m64 -O2 %s %p/Helpers/initialization-nobug-extra.cc -fsanitize=init-order -o %t
+// RUN: %clangxx_asan -O2 %s %p/Helpers/initialization-nobug-extra.cc -fsanitize=init-order -o %t
 // RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1
-// RUN: %clangxx_asan -m64 -O3 %s %p/Helpers/initialization-nobug-extra.cc -fsanitize=init-order -o %t
-// RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1
-// RUN: %clangxx_asan -m32 -O0 %s %p/Helpers/initialization-nobug-extra.cc -fsanitize=init-order -o %t
-// RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1
-// RUN: %clangxx_asan -m32 -O1 %s %p/Helpers/initialization-nobug-extra.cc -fsanitize=init-order -o %t
-// RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1
-// RUN: %clangxx_asan -m32 -O2 %s %p/Helpers/initialization-nobug-extra.cc -fsanitize=init-order -o %t
-// RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1
-// RUN: %clangxx_asan -m32 -O3 %s %p/Helpers/initialization-nobug-extra.cc -fsanitize=init-order -o %t
+// RUN: %clangxx_asan -O3 %s %p/Helpers/initialization-nobug-extra.cc -fsanitize=init-order -o %t
 // RUN: ASAN_OPTIONS=check_initialization_order=true %t 2>&1
 
 // Simple access:
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/interface_test.cc b/compiler-rt/lib/asan/lit_tests/TestCases/interface_test.cc
index 428a109..b78f801 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/interface_test.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/interface_test.cc
@@ -1,5 +1,5 @@
 // Check that user may include ASan interface header.
-// RUN: %clang -fsanitize=address -I %p/../../../include %s -o %t && %t
+// RUN: %clang_asan -I %p/../../../include %s -o %t && %t
 // RUN: %clang -I %p/../../../include %s -o %t && %t
 #include <sanitizer/asan_interface.h>
 
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/invalid-free.cc b/compiler-rt/lib/asan/lit_tests/TestCases/invalid-free.cc
index 0ef0640..c174413 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/invalid-free.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/invalid-free.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
 
 #include <stdlib.h>
 #include <string.h>
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/large_func_test.cc b/compiler-rt/lib/asan/lit_tests/TestCases/large_func_test.cc
index ceecc29..d550a96 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/large_func_test.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/large_func_test.cc
@@ -1,18 +1,10 @@
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m64 -O1 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O1 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m64 -O2 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O2 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m64 -O3 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O0 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O1 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O2 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O3 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O3 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
 
 #include <stdlib.h>
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/malloc_fill.cc b/compiler-rt/lib/asan/lit_tests/TestCases/malloc_fill.cc
index c23516b..57f50d1 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/malloc_fill.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/malloc_fill.cc
@@ -1,5 +1,5 @@
 // Check that we fill malloc-ed memory correctly.
-// RUN: %clangxx_asan -m64 %s -o %t
+// RUN: %clangxx_asan %s -o %t
 // RUN: %t | FileCheck %s
 // RUN: ASAN_OPTIONS=max_malloc_fill_size=10:malloc_fill_byte=8 %t | FileCheck %s --check-prefix=CHECK-10-8
 // RUN: ASAN_OPTIONS=max_malloc_fill_size=20:malloc_fill_byte=171 %t | FileCheck %s --check-prefix=CHECK-20-ab
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/memcmp_strict_test.cc b/compiler-rt/lib/asan/lit_tests/TestCases/memcmp_strict_test.cc
index 00bf921..881410e 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/memcmp_strict_test.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/memcmp_strict_test.cc
@@ -1,7 +1,7 @@
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && ASAN_OPTIONS=strict_memcmp=0 %t 2>&1 | %symbolize | FileCheck %s --check-prefix=CHECK-nonstrict
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && ASAN_OPTIONS=strict_memcmp=1 %t 2>&1 | %symbolize | FileCheck %s --check-prefix=CHECK-strict
+// RUN: %clangxx_asan -O0 %s -o %t && ASAN_OPTIONS=strict_memcmp=0 %t 2>&1 | %symbolize | FileCheck %s --check-prefix=CHECK-nonstrict
+// RUN: %clangxx_asan -O0 %s -o %t && ASAN_OPTIONS=strict_memcmp=1 %t 2>&1 | %symbolize | FileCheck %s --check-prefix=CHECK-strict
 // Default to strict_memcmp=1.
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s --check-prefix=CHECK-strict
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s --check-prefix=CHECK-strict
 
 #include <stdio.h>
 #include <string.h>
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/memcmp_test.cc b/compiler-rt/lib/asan/lit_tests/TestCases/memcmp_test.cc
index ac3f7f3..78c151f 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/memcmp_test.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/memcmp_test.cc
@@ -1,11 +1,7 @@
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O1 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O2 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O1 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O2 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O1 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O2 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
 
 #include <string.h>
 int main(int argc, char **argv) {
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/null_deref.cc b/compiler-rt/lib/asan/lit_tests/TestCases/null_deref.cc
index 60a521d..a5374f5 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/null_deref.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/null_deref.cc
@@ -1,18 +1,10 @@
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m64 -O1 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O1 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m64 -O2 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O2 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m64 -O3 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O0 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O1 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O2 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O3 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O3 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
 
 __attribute__((noinline))
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/partial_right.cc b/compiler-rt/lib/asan/lit_tests/TestCases/partial_right.cc
index c579262..43c1453 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/partial_right.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/partial_right.cc
@@ -1,11 +1,7 @@
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O1 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O2 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O1 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O2 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O1 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O2 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
 
 #include <stdlib.h>
 int main(int argc, char **argv) {
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/sanity_check_pure_c.c b/compiler-rt/lib/asan/lit_tests/TestCases/sanity_check_pure_c.c
index 3d83065..ac4f034 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/sanity_check_pure_c.c
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/sanity_check_pure_c.c
@@ -1,9 +1,9 @@
 // Sanity checking a test in pure C.
-// RUN: %clang -g -fsanitize=address -O2 %s -o %t
+// RUN: %clang_asan -O2 %s -o %t
 // RUN: %t 2>&1 | %symbolize | FileCheck %s
 
 // Sanity checking a test in pure C with -pie.
-// RUN: %clang -g -fsanitize=address -O2 %s -pie -o %t
+// RUN: %clang_asan -O2 %s -pie -o %t
 // RUN: %t 2>&1 | %symbolize | FileCheck %s
 
 #include <stdlib.h>
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/shared-lib-test.cc b/compiler-rt/lib/asan/lit_tests/TestCases/shared-lib-test.cc
index 05bf3ecd..205143d 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/shared-lib-test.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/shared-lib-test.cc
@@ -1,27 +1,15 @@
-// RUN: %clangxx_asan -m64 -O0 %p/SharedLibs/shared-lib-test-so.cc \
+// RUN: %clangxx_asan -O0 %p/SharedLibs/shared-lib-test-so.cc \
 // RUN:     -fPIC -shared -o %t-so.so
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O1 %p/SharedLibs/shared-lib-test-so.cc \
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O1 %p/SharedLibs/shared-lib-test-so.cc \
 // RUN:     -fPIC -shared -o %t-so.so
-// RUN: %clangxx_asan -m64 -O1 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O2 %p/SharedLibs/shared-lib-test-so.cc \
+// RUN: %clangxx_asan -O1 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O2 %p/SharedLibs/shared-lib-test-so.cc \
 // RUN:     -fPIC -shared -o %t-so.so
-// RUN: %clangxx_asan -m64 -O2 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O3 %p/SharedLibs/shared-lib-test-so.cc \
+// RUN: %clangxx_asan -O2 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O3 %p/SharedLibs/shared-lib-test-so.cc \
 // RUN:     -fPIC -shared -o %t-so.so
-// RUN: %clangxx_asan -m64 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O0 %p/SharedLibs/shared-lib-test-so.cc \
-// RUN:     -fPIC -shared -o %t-so.so
-// RUN: %clangxx_asan -m32 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O1 %p/SharedLibs/shared-lib-test-so.cc \
-// RUN:     -fPIC -shared -o %t-so.so
-// RUN: %clangxx_asan -m32 -O1 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O2 %p/SharedLibs/shared-lib-test-so.cc \
-// RUN:     -fPIC -shared -o %t-so.so
-// RUN: %clangxx_asan -m32 -O2 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O3 %p/SharedLibs/shared-lib-test-so.cc \
-// RUN:     -fPIC -shared -o %t-so.so
-// RUN: %clangxx_asan -m32 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
 
 #include <dlfcn.h>
 #include <stdio.h>
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/sleep_before_dying.c b/compiler-rt/lib/asan/lit_tests/TestCases/sleep_before_dying.c
index df9eba2..31ee50b 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/sleep_before_dying.c
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/sleep_before_dying.c
@@ -1,4 +1,4 @@
-// RUN: %clang -g -fsanitize=address -O2 %s -o %t
+// RUN: %clang_asan -O2 %s -o %t
 // RUN: ASAN_OPTIONS="sleep_before_dying=1" %t 2>&1 | FileCheck %s
 
 #include <stdlib.h>
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/stack-frame-demangle.cc b/compiler-rt/lib/asan/lit_tests/TestCases/stack-frame-demangle.cc
index bb8de16..a4afe5d 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/stack-frame-demangle.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/stack-frame-demangle.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
 
 #include <string.h>
 
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/stack-oob-frames.cc b/compiler-rt/lib/asan/lit_tests/TestCases/stack-oob-frames.cc
index 0395522..a4acd59 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/stack-oob-frames.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/stack-oob-frames.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -m64 -O1 %s -o %t
+// RUN: %clangxx_asan -O1 %s -o %t
 // RUN: %t 0 2>&1 | %symbolize | FileCheck %s --check-prefix=CHECK0
 // RUN: %t 1 2>&1 | %symbolize | FileCheck %s --check-prefix=CHECK1
 // RUN: %t 2 2>&1 | %symbolize | FileCheck %s --check-prefix=CHECK2
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/stack-overflow.cc b/compiler-rt/lib/asan/lit_tests/TestCases/stack-overflow.cc
index 25ea43a..3719482 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/stack-overflow.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/stack-overflow.cc
@@ -1,11 +1,7 @@
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O1 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O2 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m64 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O1 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O2 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O1 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O2 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
 
 #include <string.h>
 int main(int argc, char **argv) {
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/stack-use-after-return.cc b/compiler-rt/lib/asan/lit_tests/TestCases/stack-use-after-return.cc
index f8d8a1a..11bdfdf 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/stack-use-after-return.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/stack-use-after-return.cc
@@ -1,19 +1,11 @@
 // XFAIL: *
-// RUN: %clangxx_asan -fsanitize=use-after-return -m64 -O0 %s -o %t && \
+// RUN: %clangxx_asan -fsanitize=use-after-return -O0 %s -o %t && \
 // RUN:   %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -fsanitize=use-after-return -m64 -O1 %s -o %t && \
+// RUN: %clangxx_asan -fsanitize=use-after-return -O1 %s -o %t && \
 // RUN:   %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -fsanitize=use-after-return -m64 -O2 %s -o %t && \
+// RUN: %clangxx_asan -fsanitize=use-after-return -O2 %s -o %t && \
 // RUN:   %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -fsanitize=use-after-return -m64 -O3 %s -o %t && \
-// RUN:   %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -fsanitize=use-after-return -m32 -O0 %s -o %t && \
-// RUN:   %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -fsanitize=use-after-return -m32 -O1 %s -o %t && \
-// RUN:   %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -fsanitize=use-after-return -m32 -O2 %s -o %t && \
-// RUN:   %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -fsanitize=use-after-return -m32 -O3 %s -o %t && \
+// RUN: %clangxx_asan -fsanitize=use-after-return -O3 %s -o %t && \
 // RUN:   %t 2>&1 | %symbolize | FileCheck %s
 
 #include <stdio.h>
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/strip_path_prefix.c b/compiler-rt/lib/asan/lit_tests/TestCases/strip_path_prefix.c
index ef7bf98..fbfa961 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/strip_path_prefix.c
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/strip_path_prefix.c
@@ -1,4 +1,4 @@
-// RUN: %clang -g -fsanitize=address -O2 %s -o %t
+// RUN: %clang_asan -O2 %s -o %t
 // RUN: ASAN_OPTIONS="strip_path_prefix='/'" %t 2>&1 | FileCheck %s
 
 #include <stdlib.h>
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/strncpy-overflow.cc b/compiler-rt/lib/asan/lit_tests/TestCases/strncpy-overflow.cc
index 5133b5c..91dbec4 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/strncpy-overflow.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/strncpy-overflow.cc
@@ -1,18 +1,10 @@
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m64 -O1 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O1 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m64 -O2 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O2 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m64 -O3 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O0 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O1 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O2 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O3 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O3 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
 
 #include <string.h>
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/time_interceptor.cc b/compiler-rt/lib/asan/lit_tests/TestCases/time_interceptor.cc
index f5f2ad6..a0de68b 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/time_interceptor.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/time_interceptor.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
 
 // Test the time() interceptor.
 
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/use-after-free-right.cc b/compiler-rt/lib/asan/lit_tests/TestCases/use-after-free-right.cc
index b0de07b..58c5e08 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/use-after-free-right.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/use-after-free-right.cc
@@ -1,18 +1,10 @@
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m64 -O1 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O1 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m64 -O2 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O2 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m64 -O3 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O0 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O1 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O2 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O3 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O3 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
 
 // Test use-after-free report in the case when access is at the right border of
@@ -26,21 +18,21 @@
   // CHECK: {{.*ERROR: AddressSanitizer: heap-use-after-free on address}}
   // CHECK:   {{0x.* at pc 0x.* bp 0x.* sp 0x.*}}
   // CHECK: {{WRITE of size 1 at 0x.* thread T0}}
-  // CHECK: {{    #0 0x.* in _?main .*use-after-free-right.cc:25}}
+  // CHECK: {{    #0 0x.* in _?main .*use-after-free-right.cc:17}}
   // CHECK: {{0x.* is located 0 bytes inside of 1-byte region .0x.*,0x.*}}
   // CHECK: {{freed by thread T0 here:}}
 
   // CHECK-Linux: {{    #0 0x.* in .*free}}
-  // CHECK-Linux: {{    #1 0x.* in main .*use-after-free-right.cc:24}}
+  // CHECK-Linux: {{    #1 0x.* in main .*use-after-free-right.cc:16}}
 
   // CHECK-Darwin: {{    #0 0x.* in _?wrap_free}}
-  // CHECK-Darwin: {{    #1 0x.* in _?main .*use-after-free-right.cc:24}}
+  // CHECK-Darwin: {{    #1 0x.* in _?main .*use-after-free-right.cc:16}}
 
   // CHECK: {{previously allocated by thread T0 here:}}
 
   // CHECK-Linux: {{    #0 0x.* in .*malloc}}
-  // CHECK-Linux: {{    #1 0x.* in main .*use-after-free-right.cc:23}}
+  // CHECK-Linux: {{    #1 0x.* in main .*use-after-free-right.cc:15}}
 
   // CHECK-Darwin: {{    #0 0x.* in _?wrap_malloc.*}}
-  // CHECK-Darwin: {{    #1 0x.* in _?main .*use-after-free-right.cc:23}}
+  // CHECK-Darwin: {{    #1 0x.* in _?main .*use-after-free-right.cc:15}}
 }
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/use-after-free.cc b/compiler-rt/lib/asan/lit_tests/TestCases/use-after-free.cc
index aee185d..54af66d 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/use-after-free.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/use-after-free.cc
@@ -1,18 +1,10 @@
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m64 -O1 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O1 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m64 -O2 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O2 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m64 -O3 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O0 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O1 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O2 %s -o %t && %t 2>&1 | %symbolize > %t.out
-// RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
-// RUN: %clangxx_asan -m32 -O3 %s -o %t && %t 2>&1 | %symbolize > %t.out
+// RUN: %clangxx_asan -O3 %s -o %t && %t 2>&1 | %symbolize > %t.out
 // RUN: FileCheck %s < %t.out && FileCheck %s --check-prefix=CHECK-%os < %t.out
 
 #include <stdlib.h>
@@ -23,21 +15,21 @@
   // CHECK: {{.*ERROR: AddressSanitizer: heap-use-after-free on address}}
   // CHECK:   {{0x.* at pc 0x.* bp 0x.* sp 0x.*}}
   // CHECK: {{READ of size 1 at 0x.* thread T0}}
-  // CHECK: {{    #0 0x.* in _?main .*use-after-free.cc:22}}
+  // CHECK: {{    #0 0x.* in _?main .*use-after-free.cc:14}}
   // CHECK: {{0x.* is located 5 bytes inside of 10-byte region .0x.*,0x.*}}
   // CHECK: {{freed by thread T0 here:}}
 
   // CHECK-Linux: {{    #0 0x.* in .*free}}
-  // CHECK-Linux: {{    #1 0x.* in main .*use-after-free.cc:21}}
+  // CHECK-Linux: {{    #1 0x.* in main .*use-after-free.cc:13}}
 
   // CHECK-Darwin: {{    #0 0x.* in _?wrap_free}}
-  // CHECK-Darwin: {{    #1 0x.* in _?main .*use-after-free.cc:21}}
+  // CHECK-Darwin: {{    #1 0x.* in _?main .*use-after-free.cc:13}}
 
   // CHECK: {{previously allocated by thread T0 here:}}
 
   // CHECK-Linux: {{    #0 0x.* in .*malloc}}
-  // CHECK-Linux: {{    #1 0x.* in main .*use-after-free.cc:20}}
+  // CHECK-Linux: {{    #1 0x.* in main .*use-after-free.cc:12}}
 
   // CHECK-Darwin: {{    #0 0x.* in _?wrap_malloc.*}}
-  // CHECK-Darwin: {{    #1 0x.* in _?main .*use-after-free.cc:20}}
+  // CHECK-Darwin: {{    #1 0x.* in _?main .*use-after-free.cc:12}}
 }
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/use-after-poison.cc b/compiler-rt/lib/asan/lit_tests/TestCases/use-after-poison.cc
index d873429..03a2417 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/use-after-poison.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/use-after-poison.cc
@@ -1,5 +1,5 @@
 // Check that __asan_poison_memory_region works.
-// RUN: %clangxx_asan -m64 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
 //
 // Check that we can disable it
 // RUN: ASAN_OPTIONS=allow_user_poisoning=0 %t
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/use-after-scope-dtor-order.cc b/compiler-rt/lib/asan/lit_tests/TestCases/use-after-scope-dtor-order.cc
index 15e1fce..8c5bd3a 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/use-after-scope-dtor-order.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/use-after-scope-dtor-order.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -m64 -O0 -fsanitize=use-after-scope %s -o %t && \
+// RUN: %clangxx_asan -O0 -fsanitize=use-after-scope %s -o %t && \
 // RUN:     %t 2>&1 | %symbolize | FileCheck %s
 #include <stdio.h>
 
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/use-after-scope-inlined.cc b/compiler-rt/lib/asan/lit_tests/TestCases/use-after-scope-inlined.cc
index 5c121ea..37f92e5 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/use-after-scope-inlined.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/use-after-scope-inlined.cc
@@ -2,10 +2,7 @@
 // happens. "always_inline" is not enough, as Clang doesn't emit
 // llvm.lifetime intrinsics at -O0.
 //
-// RUN: %clangxx_asan -m64 -O2 -fsanitize=use-after-scope %s -o %t && \
-// RUN:     %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -m32 -O2 -fsanitize=use-after-scope %s -o %t && \
-// RUN:     %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O2 -fsanitize=use-after-scope %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
 
 int *arr;
 
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/use-after-scope-nobug.cc b/compiler-rt/lib/asan/lit_tests/TestCases/use-after-scope-nobug.cc
index 56a2756..c23acf7 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/use-after-scope-nobug.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/use-after-scope-nobug.cc
@@ -1,5 +1,4 @@
-// RUN: %clangxx_asan -m64 -O0 -fsanitize=use-after-scope %s -o %t && \
-// RUN:     %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -O0 -fsanitize=use-after-scope %s -o %t && %t
 
 #include <stdio.h>
 
@@ -11,6 +10,5 @@
     p = &x;
   }
   printf("PASSED\n");
-  // CHECK: PASSED
   return 0;
 }
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/use-after-scope-temp.cc b/compiler-rt/lib/asan/lit_tests/TestCases/use-after-scope-temp.cc
index 3575188..4b1d6f0 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/use-after-scope-temp.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/use-after-scope-temp.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -m64 -O0 -fsanitize=use-after-scope %s -o %t && \
+// RUN: %clangxx_asan -O0 -fsanitize=use-after-scope %s -o %t && \
 // RUN:     %t 2>&1 | %symbolize | FileCheck %s
 //
 // Lifetime for temporaries is not emitted yet.
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/use-after-scope.cc b/compiler-rt/lib/asan/lit_tests/TestCases/use-after-scope.cc
index a19f20f..5a74fda 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/use-after-scope.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/use-after-scope.cc
@@ -1,4 +1,4 @@
-// RUN: %clangxx_asan -m64 -O0 -fsanitize=use-after-scope %s -o %t && \
+// RUN: %clangxx_asan -O0 -fsanitize=use-after-scope %s -o %t && \
 // RUN:     %t 2>&1 | %symbolize | FileCheck %s
 
 int main() {
diff --git a/compiler-rt/lib/asan/lit_tests/TestCases/wait.cc b/compiler-rt/lib/asan/lit_tests/TestCases/wait.cc
index 88fbb17..154df56 100644
--- a/compiler-rt/lib/asan/lit_tests/TestCases/wait.cc
+++ b/compiler-rt/lib/asan/lit_tests/TestCases/wait.cc
@@ -1,37 +1,23 @@
-// RUN: %clangxx_asan -DWAIT -m64 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -DWAIT -m64 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -DWAIT -m32 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -DWAIT -m32 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -DWAIT -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -DWAIT -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
 
-// RUN: %clangxx_asan -DWAITPID -m64 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -DWAITPID -m64 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -DWAITPID -m32 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -DWAITPID -m32 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -DWAITPID -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -DWAITPID -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
 
-// RUN: %clangxx_asan -DWAITID -m64 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -DWAITID -m64 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -DWAITID -m32 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -DWAITID -m32 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -DWAITID -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -DWAITID -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
 
-// RUN: %clangxx_asan -DWAIT3 -m64 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -DWAIT3 -m64 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -DWAIT3 -m32 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -DWAIT3 -m32 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -DWAIT3 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -DWAIT3 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
 
-// RUN: %clangxx_asan -DWAIT4 -m64 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -DWAIT4 -m64 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -DWAIT4 -m32 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -DWAIT4 -m32 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -DWAIT4 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -DWAIT4 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
 
-// RUN: %clangxx_asan -DWAIT3_RUSAGE -m64 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -DWAIT3_RUSAGE -m64 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -DWAIT3_RUSAGE -m32 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -DWAIT3_RUSAGE -m32 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -DWAIT3_RUSAGE -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -DWAIT3_RUSAGE -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
 
-// RUN: %clangxx_asan -DWAIT4_RUSAGE -m64 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -DWAIT4_RUSAGE -m64 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -DWAIT4_RUSAGE -m32 -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
-// RUN: %clangxx_asan -DWAIT4_RUSAGE -m32 -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -DWAIT4_RUSAGE -O0 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
+// RUN: %clangxx_asan -DWAIT4_RUSAGE -O3 %s -o %t && %t 2>&1 | %symbolize | FileCheck %s
 
 
 #include <assert.h>
diff --git a/compiler-rt/lib/asan/lit_tests/lit.cfg b/compiler-rt/lib/asan/lit_tests/lit.cfg
index 5100a28..6722e96 100644
--- a/compiler-rt/lib/asan/lit_tests/lit.cfg
+++ b/compiler-rt/lib/asan/lit_tests/lit.cfg
@@ -50,12 +50,19 @@
 
 # Setup default compiler flags used with -fsanitize=address option.
 # FIXME: Review the set of required flags and check if it can be reduced.
-clang_asan_cxxflags = ("-ccc-cxx "
-                      + "-fsanitize=address "
-                      + "-mno-omit-leaf-frame-pointer "
-                      + "-fno-omit-frame-pointer "
-                      + "-fno-optimize-sibling-calls "
-                      + "-g")
+bits_cflag = " -m" + config.bits
+clang_asan_cflags = (" -fsanitize=address"
+                   + " -mno-omit-leaf-frame-pointer"
+                   + " -fno-omit-frame-pointer"
+                   + " -fno-optimize-sibling-calls"
+                   + " -g"
+                   + bits_cflag)
+clang_asan_cxxflags = " -ccc-cxx" + clang_asan_cflags
+config.substitutions.append( ("%clang ", " " + config.clang + bits_cflag + " "))
+config.substitutions.append( ("%clangxx ", (" " + config.clang + " -ccc-cxx" +
+                                            bits_cflag + " ")) )
+config.substitutions.append( ("%clang_asan ", (" " + config.clang + " " +
+                                              clang_asan_cflags + " ")) )
 config.substitutions.append( ("%clangxx_asan ", (" " + config.clang + " " +
                                                 clang_asan_cxxflags + " ")) )
 
@@ -81,6 +88,8 @@
 # Define CHECK-%os to check for OS-dependent output.
 config.substitutions.append( ('CHECK-%os', ("CHECK-" + config.host_os)))
 
+config.available_features.add("asan-" + config.bits + "-bits")
+
 # Default test suffixes.
 config.suffixes = ['.c', '.cc', '.cpp']
 
diff --git a/compiler-rt/lib/lit.common.cfg b/compiler-rt/lib/lit.common.cfg
index 9c5ffd6..dd67295 100644
--- a/compiler-rt/lib/lit.common.cfg
+++ b/compiler-rt/lib/lit.common.cfg
@@ -40,11 +40,6 @@
 path = os.path.pathsep.join((llvm_tools_dir, config.environment['PATH']))
 config.environment['PATH'] = path
 
-# Define %clang and %clangxx substitutions to use in test RUN lines.
-config.substitutions.append( ("%clang ", (" " + config.clang + " ")) )
-config.substitutions.append( ("%clangxx ", (" " + config.clang +
-                              " -ccc-cxx ")) )
-
 # Use ugly construction to explicitly prohibit "clang", "clang++" etc.
 # in RUN lines.
 config.substitutions.append(
diff --git a/compiler-rt/lib/ubsan/lit_tests/lit.cfg b/compiler-rt/lib/ubsan/lit_tests/lit.cfg
index fbefdf2..ace46a7 100644
--- a/compiler-rt/lib/ubsan/lit_tests/lit.cfg
+++ b/compiler-rt/lib/ubsan/lit_tests/lit.cfg
@@ -48,6 +48,9 @@
   lit.load_config(config, ubsan_site_cfg)
   raise SystemExit
 
+# Define %clang substitution to use in test RUN lines.
+config.substitutions.append( ("%clang ", (" " + config.clang + " ")) )
+
 # Default test suffixes.
 config.suffixes = ['.c', '.cc', '.cpp']