diff options
author | Stephen Kelly <steveire@gmail.com> | 2012-10-12 15:34:16 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2012-10-17 20:21:12 (GMT) |
commit | e7230c71fdf9ed58b2e8fbf2064452a41ea57180 (patch) | |
tree | f952a656585fda75fadc9267bdd1cbdae5659590 /Tests | |
parent | 145a4af8d3812fbd6a28f27e6fd4bb4d60d715af (diff) | |
download | CMake-e7230c71fdf9ed58b2e8fbf2064452a41ea57180.zip CMake-e7230c71fdf9ed58b2e8fbf2064452a41ea57180.tar.gz CMake-e7230c71fdf9ed58b2e8fbf2064452a41ea57180.tar.bz2 |
GenEx: Fix termination bugs in generator expression parser.
Content which is incomplete as a generator expression could cause
segfaults by advancing an iterator beyond end() and dereferencing
it. Such incomplete generator expressions should be treated as
plain text instead.
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/GeneratorExpression/CMakeLists.txt | 22 | ||||
-rw-r--r-- | Tests/GeneratorExpression/check.cmake | 22 |
2 files changed, 44 insertions, 0 deletions
diff --git a/Tests/GeneratorExpression/CMakeLists.txt b/Tests/GeneratorExpression/CMakeLists.txt index 4967ac0..cb01ec1 100644 --- a/Tests/GeneratorExpression/CMakeLists.txt +++ b/Tests/GeneratorExpression/CMakeLists.txt @@ -49,6 +49,28 @@ add_custom_target(check ALL -Dtest_colons_3=$<1:Qt5::Core> -Dtest_colons_4=$<1:C:\\CMake> -Dtest_colons_5=$<1:C:/CMake> + -Dtest_incomplete_1=$< + -Dtest_incomplete_2=$<something + -Dtest_incomplete_3=$<something: + -Dtest_incomplete_4=$<something:, + -Dtest_incomplete_5=$something:,> + -Dtest_incomplete_6=<something:,> + -Dtest_incomplete_7=$<something:: + -Dtest_incomplete_8=$<something:, + -Dtest_incomplete_9=$<something:,, + -Dtest_incomplete_10=$<something:,: + -Dtest_incomplete_11=$<something,, + -Dtest_incomplete_12=$<,, + -Dtest_incomplete_13=$<some$<1:special>thing + -Dtest_incomplete_14=$<<something + -Dtest_incomplete_15=$<some$<thing + -Dtest_incomplete_16=$<<some$<thing + -Dtest_incomplete_17=$<1:some$thing> + -Dtest_incomplete_18=$<1:some,thing + -Dtest_incomplete_19=$<1:some,thing$<ANGLE-R> + -Dtest_incomplete_20=$<CONFIGURATION$<ANGLE-R> + -Dtest_incomplete_21=$<BOOL:something$<ANGLE-R> + -Dtest_incomplete_22=$<BOOL:something -P ${CMAKE_CURRENT_SOURCE_DIR}/check.cmake COMMAND ${CMAKE_COMMAND} -E echo "check done" VERBATIM diff --git a/Tests/GeneratorExpression/check.cmake b/Tests/GeneratorExpression/check.cmake index e46c1c1..bfdbd65 100644 --- a/Tests/GeneratorExpression/check.cmake +++ b/Tests/GeneratorExpression/check.cmake @@ -50,3 +50,25 @@ check(test_colons_2 "::") check(test_colons_3 "Qt5::Core") check(test_colons_4 "C:\\\\CMake") check(test_colons_5 "C:/CMake") +check(test_incomplete_1 "$<") +check(test_incomplete_2 "$<something") +check(test_incomplete_3 "$<something:") +check(test_incomplete_4 "$<something:,") +check(test_incomplete_5 "$something:,>") +check(test_incomplete_6 "<something:,>") +check(test_incomplete_7 "$<something::") +check(test_incomplete_8 "$<something:,") +check(test_incomplete_9 "$<something:,,") +check(test_incomplete_10 "$<something:,:") +check(test_incomplete_11 "$<something,,") +check(test_incomplete_12 "$<,,") +check(test_incomplete_13 "$<somespecialthing") +check(test_incomplete_14 "$<<something") +check(test_incomplete_15 "$<some$<thing") +check(test_incomplete_16 "$<<some$<thing") +check(test_incomplete_17 "some$thing") +check(test_incomplete_18 "$<1:some,thing") +check(test_incomplete_19 "$<1:some,thing>") +check(test_incomplete_20 "$<CONFIGURATION>") +check(test_incomplete_21 "$<BOOL:something>") +check(test_incomplete_22 "$<BOOL:something") |