mirror of
https://github.com/Kitware/CMake.git
synced 2026-05-08 07:10:12 -05:00
cmListCommand: Handle invalid FOR selector ranges
Fixes crashes involving invalid ranges specified in list(TRANSFORM ... FOR ...) calls. * Report error when step is not positive * Report error when start is after stop Fixes: #22985
This commit is contained in:
@@ -77,6 +77,9 @@ run_cmake(TRANSFORM-Selector-FOR-NoEnoughArguments)
|
||||
run_cmake(TRANSFORM-Selector-FOR-TooManyArguments)
|
||||
run_cmake(TRANSFORM-Selector-FOR-BadArgument)
|
||||
run_cmake(TRANSFORM-Selector-FOR-InvalidIndex)
|
||||
run_cmake(TRANSFORM-Selector-FOR-ZeroStepArgument)
|
||||
run_cmake(TRANSFORM-Selector-FOR-NegativeStepArgument)
|
||||
run_cmake(TRANSFORM-Selector-FOR-BackwardsRange)
|
||||
# 'output' oriented tests
|
||||
run_cmake(TRANSFORM-Output-OUTPUT_VARIABLE-NoArguments)
|
||||
run_cmake(TRANSFORM-Output-OUTPUT_VARIABLE-TooManyArguments)
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
1
|
||||
@@ -0,0 +1,5 @@
|
||||
^CMake Error at TRANSFORM-Selector-FOR-BackwardsRange.cmake:2 \(list\):
|
||||
list sub-command TRANSFORM, selector FOR expects <start> to be no greater
|
||||
than <stop> \(2 > 1\)
|
||||
Call Stack \(most recent call first\):
|
||||
CMakeLists.txt:3 \(include\)$
|
||||
@@ -0,0 +1,2 @@
|
||||
set(mylist alpha bravo charlie)
|
||||
list(TRANSFORM mylist TOUPPER FOR 2 1)
|
||||
@@ -0,0 +1 @@
|
||||
1
|
||||
@@ -0,0 +1,5 @@
|
||||
^CMake Error at TRANSFORM-Selector-FOR-NegativeStepArgument.cmake:2 \(list\):
|
||||
list sub-command TRANSFORM, selector FOR expects positive numeric value for
|
||||
<step>.
|
||||
Call Stack \(most recent call first\):
|
||||
CMakeLists.txt:3 \(include\)$
|
||||
@@ -0,0 +1,2 @@
|
||||
set(mylist alpha bravo charlie)
|
||||
list(TRANSFORM mylist TOUPPER FOR 0 2 -1)
|
||||
@@ -0,0 +1 @@
|
||||
1
|
||||
@@ -0,0 +1,5 @@
|
||||
^CMake Error at TRANSFORM-Selector-FOR-ZeroStepArgument.cmake:2 \(list\):
|
||||
list sub-command TRANSFORM, selector FOR expects positive numeric value for
|
||||
<step>.
|
||||
Call Stack \(most recent call first\):
|
||||
CMakeLists.txt:3 \(include\)$
|
||||
@@ -0,0 +1,2 @@
|
||||
set(mylist alpha bravo charlie)
|
||||
list(TRANSFORM mylist TOUPPER FOR 0 2 0)
|
||||
Reference in New Issue
Block a user