diff options
author | Alex Turbov <i.zaufi@gmail.com> | 2022-03-03 19:08:07 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2022-03-03 21:51:34 (GMT) |
commit | da2361ffb35799319abca6f7c3138c916685fb2d (patch) | |
tree | 603d91719eeeadf9ae12db307f3dbfaba02f1651 /Tests | |
parent | 47d197745a44b20ee65edd0e3223464a43b3ee55 (diff) | |
download | CMake-da2361ffb35799319abca6f7c3138c916685fb2d.zip CMake-da2361ffb35799319abca6f7c3138c916685fb2d.tar.gz CMake-da2361ffb35799319abca6f7c3138c916685fb2d.tar.bz2 |
while: Restore tolerance of condition error
Since commit 880ca66b51 (Fix: `while()` can silently ignore incorrect
condition, 2021-08-09, v3.22.0-rc1~238^2~4) we correctly reject the
code
set(paren "(")
while(${paren})
endwhile()
However, rejecting it breaks compatibility with projects that used such
code accidentally. In CMake 3.21 and below, any error in the condition
was ignored because the `false` result exited the loop first. Restore
tolerance of the error for now. A policy will be needed to make it an
error later.
Note that the same condition with `if` was always correctly rejected.
Fixes: #22524
Issue: #23296
Co-authored-by: Brad King <brad.king@kitware.com>
Diffstat (limited to 'Tests')
4 files changed, 2 insertions, 9 deletions
diff --git a/Tests/RunCMake/while/unbalanced-parenthesis-result.txt b/Tests/RunCMake/while/unbalanced-parenthesis-result.txt deleted file mode 100644 index d00491f..0000000 --- a/Tests/RunCMake/while/unbalanced-parenthesis-result.txt +++ /dev/null @@ -1 +0,0 @@ -1 diff --git a/Tests/RunCMake/while/unbalanced-parenthesis-stderr.txt b/Tests/RunCMake/while/unbalanced-parenthesis-stderr.txt deleted file mode 100644 index ffa4fda..0000000 --- a/Tests/RunCMake/while/unbalanced-parenthesis-stderr.txt +++ /dev/null @@ -1,8 +0,0 @@ -CMake Error at unbalanced-parenthesis.cmake:[0-9]+ \(while\): - had incorrect arguments: - - "\(" - - mismatched parenthesis in condition -Call Stack \(most recent call first\): - CMakeLists\.txt:[0-9]+ \(include\) diff --git a/Tests/RunCMake/while/unbalanced-parenthesis-stdout.txt b/Tests/RunCMake/while/unbalanced-parenthesis-stdout.txt new file mode 100644 index 0000000..d45e194 --- /dev/null +++ b/Tests/RunCMake/while/unbalanced-parenthesis-stdout.txt @@ -0,0 +1 @@ +-- Code incorrectly accepted diff --git a/Tests/RunCMake/while/unbalanced-parenthesis.cmake b/Tests/RunCMake/while/unbalanced-parenthesis.cmake index 15322e0..39d736b 100644 --- a/Tests/RunCMake/while/unbalanced-parenthesis.cmake +++ b/Tests/RunCMake/while/unbalanced-parenthesis.cmake @@ -3,4 +3,5 @@ while(${paren}) message(STATUS "Condition incorrectly true") break() endwhile() +# FIXME(#23296): The above condition error is tolerated for compatibility. message(STATUS "Code incorrectly accepted") |