[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