Add a test that uses coverage and printf from a DLL
authorReid Kleckner <rnk@google.com>
Fri, 11 Nov 2016 19:27:52 +0000 (19:27 +0000)
committerReid Kleckner <rnk@google.com>
Fri, 11 Nov 2016 19:27:52 +0000 (19:27 +0000)
This test fails without LLVM r286615

llvm-svn: 286618

compiler-rt/test/asan/TestCases/Windows/coverage-dll-stdio.cc [new file with mode: 0644]

diff --git a/compiler-rt/test/asan/TestCases/Windows/coverage-dll-stdio.cc b/compiler-rt/test/asan/TestCases/Windows/coverage-dll-stdio.cc
new file mode 100644 (file)
index 0000000..979e80c
--- /dev/null
@@ -0,0 +1,17 @@
+// Test that coverage and MSVC CRT stdio work from a DLL. This ensures that the
+// __local_stdio_printf_options function isn't instrumented for coverage.
+
+// RUN: rm -rf %t && mkdir %t && cd %t
+// RUN: %clang_cl_asan -fsanitize-coverage=func -O0 %p/dll_host.cc -Fet.exe
+// RUN: %clang_cl_asan -fsanitize-coverage=func -LD -O0 %s -Fet.dll
+// RUN: pwd
+// RUN: %run ./t.exe t.dll 2>&1 | FileCheck %s
+
+#include <stdio.h>
+
+extern "C" __declspec(dllexport)
+int test_function() {
+  printf("hello world\n");
+  // CHECK: hello world
+  return 0;
+}