aboutsummaryrefslogtreecommitdiff
path: root/test/asan/TestCases/Windows/dll_large_function.cc
diff options
context:
space:
mode:
Diffstat (limited to 'test/asan/TestCases/Windows/dll_large_function.cc')
-rw-r--r--test/asan/TestCases/Windows/dll_large_function.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/test/asan/TestCases/Windows/dll_large_function.cc b/test/asan/TestCases/Windows/dll_large_function.cc
new file mode 100644
index 000000000000..039d01f84ba5
--- /dev/null
+++ b/test/asan/TestCases/Windows/dll_large_function.cc
@@ -0,0 +1,12 @@
+// Make sure we can link a DLL with large functions which would mean
+// functions such as __asan_loadN and __asan_storeN will be called
+// from the DLL. We simulate the large function with
+// -mllvm -asan-instrumentation-with-call-threshold=0.
+// RUN: %clang_cl_asan %s -c -Fo%t.obj -mllvm -asan-instrumentation-with-call-threshold=0
+// RUN: link /nologo /DLL /OUT:%t.dll %t.obj %asan_dll_thunk
+// REQUIRES: asan-static-runtime
+
+void f(long* foo, long* bar) {
+ // One load and one store
+ *foo = *bar;
+}