From 54fd9e38bb912b94cf32fecac5028d462f4e659f Mon Sep 17 00:00:00 2001 From: Rolf Eike Beer Date: Fri, 20 Jan 2012 18:27:26 +0100 Subject: [PATCH] fix uninitialized var in if(NOT foo bar STREQUAL "foo bar") Also adds test to verify this. --- Source/cmIfCommand.cxx | 1 + Tests/CMakeTests/If-Invalid-Argument.cmake | 2 ++ Tests/CMakeTests/IfTest.cmake.in | 8 ++++++++ 3 files changed, 11 insertions(+) create mode 100644 Tests/CMakeTests/If-Invalid-Argument.cmake diff --git a/Source/cmIfCommand.cxx b/Source/cmIfCommand.cxx index 22ba28f93..4eed47728 100644 --- a/Source/cmIfCommand.cxx +++ b/Source/cmIfCommand.cxx @@ -910,6 +910,7 @@ bool cmIfCommand::IsTrue(const std::vector &args, if (newArgs.size() != 1) { errorString = "Unknown arguments specified"; + status = cmake::FATAL_ERROR; return false; } diff --git a/Tests/CMakeTests/If-Invalid-Argument.cmake b/Tests/CMakeTests/If-Invalid-Argument.cmake new file mode 100644 index 000000000..b4fb97f41 --- /dev/null +++ b/Tests/CMakeTests/If-Invalid-Argument.cmake @@ -0,0 +1,2 @@ +if (NOT foo bar STREQUAL "foo bar") +endif() diff --git a/Tests/CMakeTests/IfTest.cmake.in b/Tests/CMakeTests/IfTest.cmake.in index e5211b4fa..639e22672 100644 --- a/Tests/CMakeTests/IfTest.cmake.in +++ b/Tests/CMakeTests/IfTest.cmake.in @@ -156,3 +156,11 @@ foreach(_bad 2x -2x) endforeach() test_vars("") + +set(Invalid-Argument-RESULT 1) +set(Invalid-Argument-STDERR ".*CMake Error at (@CMAKE_CURRENT_SOURCE_DIR@/)?If-Invalid-Argument.cmake:1 \\(if\\):.*Unknown arguments specified.*") + +include("@CMAKE_CURRENT_SOURCE_DIR@/CheckCMakeTest.cmake") +check_cmake_test(If + Invalid-Argument +)