diff --git a/cli/cli.vcxproj b/cli/cli.vcxproj
index a5d0d749f..e35224215 100644
--- a/cli/cli.vcxproj
+++ b/cli/cli.vcxproj
@@ -177,6 +177,8 @@
true
$(TargetDir)cli.pdb
true
+ 8000000
+ 8000000
@@ -202,6 +204,8 @@
Console
true
true
+ 8000000
+ 8000000
@@ -225,6 +229,8 @@
true
Console
true
+ 8000000
+ 8000000
@@ -248,6 +254,8 @@
true
Console
true
+ 8000000
+ 8000000
@@ -282,6 +290,8 @@
true
true
true
+ 8000000
+ 8000000
@@ -316,6 +326,8 @@
true
true
true
+ 8000000
+ 8000000
@@ -350,6 +362,8 @@
true
true
true
+ 8000000
+ 8000000
@@ -384,6 +398,8 @@
true
true
true
+ 8000000
+ 8000000
diff --git a/cmake/compileroptions.cmake b/cmake/compileroptions.cmake
index 6a90dd885..17c8c287f 100644
--- a/cmake/compileroptions.cmake
+++ b/cmake/compileroptions.cmake
@@ -121,6 +121,10 @@ if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux" AND
set(EXTRA_C_FLAGS "${EXTRA_C_FLAGS} -U_GLIBCXX_DEBUG")
endif()
+if (MSVC)
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /STACK:8000000")
+endif()
+
include(cmake/dynamic_analyzer_options.cmake REQUIRED)
# Add user supplied extra options (optimization, etc...)
diff --git a/lib/checkleakautovar.cpp b/lib/checkleakautovar.cpp
index 5b93b8031..5286666e9 100644
--- a/lib/checkleakautovar.cpp
+++ b/lib/checkleakautovar.cpp
@@ -237,10 +237,8 @@ void CheckLeakAutoVar::checkScope(const Token * const startToken,
std::set notzero,
unsigned int recursiveCount)
{
- // The C++ standard suggests a minimum of 256 nested control statements
- // but MSVC has a limit of 100.
- if (++recursiveCount > 100)
- throw InternalError(startToken, "Internal limit: CheckLeakAutoVar::checkScope() Maximum recursive count of 100 reached.", InternalError::LIMIT);
+ if (++recursiveCount > 1000) // maximum number of "else if ()"
+ throw InternalError(startToken, "Internal limit: CheckLeakAutoVar::checkScope() Maximum recursive count of 1000 reached.", InternalError::LIMIT);
std::map &alloctype = varInfo->alloctype;
std::map &possibleUsage = varInfo->possibleUsage;
diff --git a/lib/cppcheck.vcxproj b/lib/cppcheck.vcxproj
index a1957a32a..39d036072 100644
--- a/lib/cppcheck.vcxproj
+++ b/lib/cppcheck.vcxproj
@@ -295,6 +295,8 @@
true
false
true
+ 8000000
+ 8000000
xcopy "$(SolutionDir)cfg" "$(OutDir)cfg" /E /I /D /Y
@@ -323,6 +325,8 @@ xcopy "$(SolutionDir)platforms" "$(OutDir)platforms" /E /I /D /Y
true
true
true
+ 8000000
+ 8000000
xcopy "$(SolutionDir)cfg" "$(OutDir)cfg" /E /I /D /Y
@@ -349,6 +353,8 @@ xcopy "$(SolutionDir)platforms" "$(OutDir)platforms" /E /I /D /Y
../externals;%(AdditionalLibraryDirectories)
true
true
+ 8000000
+ 8000000
xcopy "$(SolutionDir)cfg" "$(OutDir)cfg" /E /I /D /Y
@@ -376,6 +382,8 @@ xcopy "$(SolutionDir)platforms" "$(OutDir)platforms" /E /I /D /Y
../externals;%(AdditionalLibraryDirectories)
true
true
+ 8000000
+ 8000000
xcopy "$(SolutionDir)cfg" "$(OutDir)cfg" /E /I /D /Y
@@ -414,6 +422,8 @@ xcopy "$(SolutionDir)platforms" "$(OutDir)platforms" /E /I /D /Y
true
true
true
+ 8000000
+ 8000000
xcopy "$(SolutionDir)cfg" "$(OutDir)cfg" /E /I /D /Y
@@ -453,6 +463,8 @@ xcopy "$(SolutionDir)platforms" "$(OutDir)platforms" /E /I /D /Y
true
true
true
+ 8000000
+ 8000000
xcopy "$(SolutionDir)cfg" "$(OutDir)cfg" /E /I /D /Y
@@ -490,6 +502,8 @@ xcopy "$(SolutionDir)platforms" "$(OutDir)platforms" /E /I /D /Y
true
true
true
+ 8000000
+ 8000000
xcopy "$(SolutionDir)cfg" "$(OutDir)cfg" /E /I /D /Y
@@ -528,6 +542,8 @@ xcopy "$(SolutionDir)platforms" "$(OutDir)platforms" /E /I /D /Y
true
true
true
+ 8000000
+ 8000000
xcopy "$(SolutionDir)cfg" "$(OutDir)cfg" /E /I /D /Y
diff --git a/test/testleakautovar.cpp b/test/testleakautovar.cpp
index d8c260a45..4780d83b3 100644
--- a/test/testleakautovar.cpp
+++ b/test/testleakautovar.cpp
@@ -1823,7 +1823,7 @@ private:
"#define THOU HUN HUN HUN HUN HUN HUN HUN HUN HUN HUN\n"
"void foo() {\n"
" if (0) { }\n"
- " THOU\n"
+ " THOU THOU\n"
"}"), InternalError);
ASSERT_NO_THROW(checkP("#define ONE if (0) { }\n"
"#define TEN ONE ONE ONE ONE ONE ONE ONE ONE ONE ONE\n"
@@ -1831,7 +1831,7 @@ private:
"#define THOU HUN HUN HUN HUN HUN HUN HUN HUN HUN HUN\n"
"void foo() {\n"
" if (0) { }\n"
- " THOU\n"
+ " THOU THOU\n"
"}"));
}
diff --git a/test/testrunner.vcxproj b/test/testrunner.vcxproj
index f874a6db8..1ca5b7413 100755
--- a/test/testrunner.vcxproj
+++ b/test/testrunner.vcxproj
@@ -195,6 +195,8 @@
Console
true
true
+ 8000000
+ 8000000
@@ -221,6 +223,8 @@
true
Console
true
+ 8000000
+ 8000000
@@ -259,6 +263,8 @@
true
true
true
+ 8000000
+ 8000000
@@ -298,6 +304,8 @@
true
true
true
+ 8000000
+ 8000000