Index: C:/LLVM/llvm/tools/clang/lib/Driver/Tools.cpp =================================================================== --- C:/LLVM/llvm/tools/clang/lib/Driver/Tools.cpp +++ C:/LLVM/llvm/tools/clang/lib/Driver/Tools.cpp @@ -3589,8 +3589,16 @@ if (!Args.hasArg(options::OPT__analyzer_no_default_checks)) { CmdArgs.push_back("-analyzer-checker=core"); - if (!IsWindowsMSVC) - CmdArgs.push_back("-analyzer-checker=unix"); + // Enable "unix" checkers (which also work on Windows). + // Specifically, this enables: + // unix.API (open, pthread_once, calloc, malloc, realloc, alloca) checkers, + // unix.Malloc (leaks, double-frees, use-after-frees, etc...), + // unix.MallocSizeof (misusing sizeof in malloc, calloc, and realloc), + // unix.MismatchedDeallocator (calling delete on a malloc'd pointer, + // freeing a new'd pointer, etc...), + // unix.cstring.BadSizeArg (strncat buffer size misuse), + // unix.cstring.NullArg (passing null pointers to C string functions). + CmdArgs.push_back("-analyzer-checker=unix"); if (getToolChain().getTriple().getVendor() == llvm::Triple::Apple) CmdArgs.push_back("-analyzer-checker=osx");