From 6282315f8ae52fda7d2eaa1e2ecd6d3dbb614f51 Mon Sep 17 00:00:00 2001 From: Alvin Wong Date: Sun, 2 Apr 2023 19:45:57 +0800 Subject: [PATCH] [asan][test][win] Port more tests to not use clang-cl on MinGW (3) This ports tests which requires additional link flags. Differential Revision: https://reviews.llvm.org/D150268 --- .../test/asan/TestCases/Windows/dll_heap_allocation.cpp | 8 ++++---- .../Windows/dll_report_globals_symbolization_at_startup.cpp | 7 +++---- .../test/asan/TestCases/Windows/null_deref_multiple_dlls.cpp | 10 +++++----- compiler-rt/test/asan/TestCases/Windows/shadow_conflict_32.cpp | 10 ++++++---- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/compiler-rt/test/asan/TestCases/Windows/dll_heap_allocation.cpp b/compiler-rt/test/asan/TestCases/Windows/dll_heap_allocation.cpp index 40e4833..b8c2c1a 100644 --- a/compiler-rt/test/asan/TestCases/Windows/dll_heap_allocation.cpp +++ b/compiler-rt/test/asan/TestCases/Windows/dll_heap_allocation.cpp @@ -1,7 +1,6 @@ -// UNSUPPORTED: target={{.*-windows-gnu}} - -// RUN: %clang_cl -LD %s -Fe%t.dll -DHEAP_LIBRARY -MD -// RUN: %clang_cl %s %t.lib -Fe%t -fsanitize=address -MT +// RUN: %clang_cl %LD %s %Fe%t.dll -DHEAP_LIBRARY %MD \ +// RUN: %if target={{.*-windows-gnu}} %{ -Wl,--out-implib,%t.lib %} +// RUN: %clang_cl %s %t.lib %Fe%t -fsanitize=address %MT // RUN: %run %t 2>&1 | FileCheck %s // Check that ASan does not fail when releasing allocations that occurred within @@ -18,6 +17,7 @@ BOOL WINAPI DllMain(PVOID h, DWORD reason, PVOID reserved) { #else +#include #include extern std::unique_ptr __declspec(dllimport) myglobal; int main(int argc, char **argv) { diff --git a/compiler-rt/test/asan/TestCases/Windows/dll_report_globals_symbolization_at_startup.cpp b/compiler-rt/test/asan/TestCases/Windows/dll_report_globals_symbolization_at_startup.cpp index c9fc166..e3efa0a 100644 --- a/compiler-rt/test/asan/TestCases/Windows/dll_report_globals_symbolization_at_startup.cpp +++ b/compiler-rt/test/asan/TestCases/Windows/dll_report_globals_symbolization_at_startup.cpp @@ -1,7 +1,6 @@ -// UNSUPPORTED: target={{.*-windows-gnu}} - -// RUN: %clang_cl_asan -LD -Od -DDLL %s -Fe%t.dll -// RUN: %clang_cl_asan -Od -DEXE %s %t.lib -Fe%te.exe +// RUN: %clang_cl_asan %LD %Od -DDLL %s %Fe%t.dll \ +// RUN: %if target={{.*-windows-gnu}} %{ -Wl,--out-implib,%t.lib %} +// RUN: %clang_cl_asan %Od -DEXE %s %t.lib %Fe%te.exe // RUN: %env_asan_opts=report_globals=2 %run %te.exe 2>&1 | FileCheck %s // FIXME: Currently, the MT runtime build crashes on startup due to dbghelp.dll diff --git a/compiler-rt/test/asan/TestCases/Windows/null_deref_multiple_dlls.cpp b/compiler-rt/test/asan/TestCases/Windows/null_deref_multiple_dlls.cpp index 04f8b92..e31e597 100644 --- a/compiler-rt/test/asan/TestCases/Windows/null_deref_multiple_dlls.cpp +++ b/compiler-rt/test/asan/TestCases/Windows/null_deref_multiple_dlls.cpp @@ -1,12 +1,12 @@ -// UNSUPPORTED: target={{.*-windows-gnu}} - // Make sure everything works even if the main module doesn't have any stack // variables, thus doesn't explicitly reference any symbol exported by the // runtime thunk. // -// RUN: %clang_cl_asan -LD -Od -DDLL1 %s -Fe%t1.dll -// RUN: %clang_cl_asan -LD -Od -DDLL2 %s -Fe%t2.dll -// RUN: %clang_cl_asan -Od -DEXE %s %t1.lib %t2.lib -Fe%t +// RUN: %clang_cl_asan %LD %Od -DDLL1 %s %Fe%t1.dll \ +// RUN: %if target={{.*-windows-gnu}} %{ -Wl,--out-implib,%t1.lib %} +// RUN: %clang_cl_asan %LD %Od -DDLL2 %s %Fe%t2.dll \ +// RUN: %if target={{.*-windows-gnu}} %{ -Wl,--out-implib,%t2.lib %} +// RUN: %clang_cl_asan %Od -DEXE %s %t1.lib %t2.lib %Fe%t // RUN: not %run %t 2>&1 | FileCheck %s #include diff --git a/compiler-rt/test/asan/TestCases/Windows/shadow_conflict_32.cpp b/compiler-rt/test/asan/TestCases/Windows/shadow_conflict_32.cpp index c08fcc3..d032418 100644 --- a/compiler-rt/test/asan/TestCases/Windows/shadow_conflict_32.cpp +++ b/compiler-rt/test/asan/TestCases/Windows/shadow_conflict_32.cpp @@ -1,11 +1,13 @@ -// UNSUPPORTED: target={{.*-windows-gnu}} - // Load this DLL at the default 32-bit ASan shadow base, and test how we dump // the process memory layout. // REQUIRES: asan-32-bits // -// RUN: %clang_cl_asan -DBUILD_DLL -LD %s -Fe%t_dll.dll -link -base:0x30000000 -fixed -dynamicbase:no -// RUN: %clang_cl_asan %s -Fe%t.exe -link %t_dll.lib +// RUN: %clang_cl_asan -DBUILD_DLL %LD %s %Fe%t_dll.dll \ +// RUN: %if target={{.*-windows-gnu}} %{ \ +// RUN: -Wl,--image-base,0x30000000,--disable-reloc-section \ +// RUN: -Wl,--disable-dynamicbase,--out-implib,%t_dll.lib \ +// RUN: %} %else %{ -link -base:0x30000000 -fixed -dynamicbase:no %} +// RUN: %clang_cl_asan %s %Fe%t.exe %t_dll.lib // RUN: not %run %t.exe 2>&1 | FileCheck %s #ifndef BUILD_DLL -- 2.7.4