diff --git a/mesonbuild/compilers/c.py b/mesonbuild/compilers/c.py
index 1ec9146..86de70b 100644
--- a/mesonbuild/compilers/c.py
+++ b/mesonbuild/compilers/c.py
@@ -287,6 +287,11 @@
         VisualStudioLikeCompiler.__init__(self, target)
         self.id = 'clang-cl'
 
+    def sanitizer_compile_args(self, value: str) -> typing.List[str]:
+        if value == 'none':
+            return []
+        args = ['-fsanitize=' + value]
+        return args
 
 class IntelClCCompiler(IntelVisualStudioLikeCompiler, VisualStudioLikeCCompilerMixin, CCompiler):
 
diff --git a/mesonbuild/environment.py b/mesonbuild/environment.py
index 2675bca..a35efff 100644
--- a/mesonbuild/environment.py
+++ b/mesonbuild/environment.py
@@ -683,6 +683,8 @@
         v = search_version(o)
         if o.startswith('LLD'):
             linker = LLVMDynamicLinker(compiler, for_machine, 'lld', version=v)  # type: DynamicLinker
+        elif 'pc-windows-msvc' in o:
+            linker = LLVMDynamicLinker(compiler, for_machine, 'ld.lld', version=v)  # type: DynamicLinker
         # first is for apple clang, second is for real gcc
         elif e.endswith('(use -v to see invocation)\n') or 'macosx_version' in e:
             if isinstance(prefix, str):
@@ -825,15 +827,18 @@
                 linker = ClangClDynamicLinker(for_machine, version=version)
                 return cls(compiler, version, for_machine, is_cross, exe_wrap, target, linker=linker)
             if 'clang' in out:
+                linker = None
                 if 'Apple' in out or self.machines[for_machine].is_darwin():
                     compiler_type = CompilerType.CLANG_OSX
                 elif 'windows' in out or self.machines[for_machine].is_windows():
                     compiler_type = CompilerType.CLANG_MINGW
+                    linker = self._guess_nix_linker(compiler, for_machine, prefix='')
                 else:
                     compiler_type = CompilerType.CLANG_STANDARD
                 cls = ClangCCompiler if lang == 'c' else ClangCPPCompiler
 
-                linker = self._guess_nix_linker(compiler, for_machine)
+                if linker is None:
+                    linker = self._guess_nix_linker(compiler, for_machine)
                 return cls(ccache + compiler, version, compiler_type, for_machine, is_cross, exe_wrap, full_version=full_version, linker=linker)
             if 'Intel(R) C++ Intel(R)' in err:
                 version = search_version(err)
@@ -1057,6 +1062,7 @@
                     compiler_type = CompilerType.CLANG_MINGW
                 else:
                     compiler_type = CompilerType.CLANG_STANDARD
+
                 linker = self._guess_nix_linker(compiler, for_machine)
                 return comp(ccache + compiler, version, compiler_type, for_machine, is_cross, exe_wrap, linker=linker)
         self._handle_exceptions(popen_exceptions, compilers)
