[compiler-rt] r341622 - [libfuzzer] Use cl driver mode for tests and enable another test on Windows

Jonathan Metzman via llvm-commits llvm-commits at lists.llvm.org
Thu Sep 6 18:11:31 PDT 2018


Author: metzman
Date: Thu Sep  6 18:11:31 2018
New Revision: 341622

URL: http://llvm.org/viewvc/llvm-project?rev=341622&view=rev
Log:
[libfuzzer] Use cl driver mode for tests and enable another test on Windows

Summary:
When targeting MSVC: compile using clang's cl driver mode (this is needed for
libfuzzer's exit_on_src_pos feature). Don't use -lstdc++ when linking,
it isn't needed and causes a warning.
On Windows: Fix exit_on_src_pos.test by making sure debug info isn't
overwritten during compilation of second binary by using .exe extension.

Reviewers: morehouse

Reviewed By: morehouse

Subscribers: aprantl, JDevlieghere

Differential Revision: https://reviews.llvm.org/D51757

Modified:
    compiler-rt/trunk/test/fuzzer/exit_on_src_pos.test
    compiler-rt/trunk/test/fuzzer/lit.cfg

Modified: compiler-rt/trunk/test/fuzzer/exit_on_src_pos.test
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/fuzzer/exit_on_src_pos.test?rev=341622&r1=341621&r2=341622&view=diff
==============================================================================
--- compiler-rt/trunk/test/fuzzer/exit_on_src_pos.test (original)
+++ compiler-rt/trunk/test/fuzzer/exit_on_src_pos.test Thu Sep  6 18:11:31 2018
@@ -1,11 +1,11 @@
-# FIXME: Disabled on Windows until symbolization works properly.
-UNSUPPORTED: windows
 # Temporary use -mllvm -use-unknown-locations=Disable so that
 # all instructions have debug info (file line numbers) attached.
 # TODO: Find out why test fails on Darwin with -O2.
-RUN: %cpp_compiler -O0 %S/SimpleTest.cpp -o %t-SimpleTest -mllvm -use-unknown-locations=Disable
-RUN: %cpp_compiler -O0 %S/ShrinkControlFlowTest.cpp -o %t-ShrinkControlFlowTest
+# Binaries must end in .exe or else symbolization will break on Windows because of how periods
+# in expansion of %t cause the compiler to overwrite .lib and .exp files.
+RUN: %cpp_compiler -O0 %S/SimpleTest.cpp -o %t-SimpleTest.exe -mllvm -use-unknown-locations=Disable
+RUN: %cpp_compiler -O0 %S/ShrinkControlFlowTest.cpp -o %t-ShrinkControlFlowTest.exe
 
-RUN: %run %t-SimpleTest  -exit_on_src_pos=SimpleTest.cpp:18                 2>&1 | FileCheck %s --check-prefix=EXIT_ON_SRC_POS
-RUN: %run %t-ShrinkControlFlowTest  -exit_on_src_pos=Foo 2>&1 | FileCheck %s --check-prefix=EXIT_ON_SRC_POS
+RUN: %run %t-SimpleTest.exe  -exit_on_src_pos=SimpleTest.cpp:18 2>&1 | FileCheck %s --check-prefix=EXIT_ON_SRC_POS
+RUN: %run %t-ShrinkControlFlowTest.exe  -exit_on_src_pos=Foo 2>&1 | FileCheck %s --check-prefix=EXIT_ON_SRC_POS
 EXIT_ON_SRC_POS: INFO: found line matching '{{.*}}', exiting.

Modified: compiler-rt/trunk/test/fuzzer/lit.cfg
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/test/fuzzer/lit.cfg?rev=341622&r1=341621&r2=341622&view=diff
==============================================================================
--- compiler-rt/trunk/test/fuzzer/lit.cfg (original)
+++ compiler-rt/trunk/test/fuzzer/lit.cfg Thu Sep  6 18:11:31 2018
@@ -69,10 +69,14 @@ def generate_compiler_cmd(is_cpp=True, f
         config.runtime_library_dir)
   elif any(x in config.target_triple for x in ('darwin', 'freebsd')):
     link_cmd = '-lc++'
+  elif 'windows-msvc' in config.target_triple:
+    link_cmd = ''
   else:
     link_cmd = '-lstdc++'
 
-  if is_cpp and not sys.platform.startswith('win'):
+  if is_cpp and 'windows-msvc' in config.target_triple:
+    std_cmd = '--driver-mode=cl'
+  elif is_cpp:
     std_cmd = '--driver-mode=g++ -std=c++11'
   else:
     std_cmd = ''




More information about the llvm-commits mailing list