diff options
author | Bartosz Kosiorek <bartosz.kosiorek@tomtom.com> | 2019-05-30 07:18:16 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2019-06-03 14:03:53 (GMT) |
commit | 3475e2728bad16899b50131785a61f43083e8ba9 (patch) | |
tree | a5068cc18e7e94fec5b03844da01edf88ec5542b | |
parent | 187928875d215df8757b291ad629a36df75da42b (diff) | |
download | CMake-3475e2728bad16899b50131785a61f43083e8ba9.zip CMake-3475e2728bad16899b50131785a61f43083e8ba9.tar.gz CMake-3475e2728bad16899b50131785a61f43083e8ba9.tar.bz2 |
cmListFileCache: When missing ending ) print starting line instead of last one
Fixes: #19301
-rw-r--r-- | Source/cmListFileCache.cxx | 7 | ||||
-rw-r--r-- | Tests/RunCMake/Syntax/UnterminatedCall1-stderr.txt | 2 | ||||
-rw-r--r-- | Tests/RunCMake/Syntax/UnterminatedCall1.cmake | 3 | ||||
-rw-r--r-- | Tests/RunCMake/Syntax/UnterminatedCall2-stderr.txt | 2 | ||||
-rw-r--r-- | Tests/RunCMake/Syntax/UnterminatedCall2.cmake | 3 |
5 files changed, 10 insertions, 7 deletions
diff --git a/Source/cmListFileCache.cxx b/Source/cmListFileCache.cxx index f99caed..df0d00c 100644 --- a/Source/cmListFileCache.cxx +++ b/Source/cmListFileCache.cxx @@ -192,12 +192,9 @@ bool cmListFileParser::ParseFunction(const char* name, long line) } // Arguments. - unsigned long lastLine; unsigned long parenDepth = 0; this->Separation = SeparationOkay; - while ( - (static_cast<void>(lastLine = cmListFileLexer_GetCurrentLine(this->Lexer)), - token = cmListFileLexer_Scan(this->Lexer))) { + while ((token = cmListFileLexer_Scan(this->Lexer))) { if (token->type == cmListFileLexer_Token_Space || token->type == cmListFileLexer_Token_Newline) { this->Separation = SeparationOkay; @@ -252,7 +249,7 @@ bool cmListFileParser::ParseFunction(const char* name, long line) std::ostringstream error; cmListFileContext lfc; lfc.FilePath = this->FileName; - lfc.Line = lastLine; + lfc.Line = line; cmListFileBacktrace lfbt = this->Backtrace; lfbt = lfbt.Push(lfc); error << "Parse error. Function missing ending \")\". " diff --git a/Tests/RunCMake/Syntax/UnterminatedCall1-stderr.txt b/Tests/RunCMake/Syntax/UnterminatedCall1-stderr.txt index 3f52244..f3ee895 100644 --- a/Tests/RunCMake/Syntax/UnterminatedCall1-stderr.txt +++ b/Tests/RunCMake/Syntax/UnterminatedCall1-stderr.txt @@ -1,4 +1,4 @@ -CMake Error at UnterminatedCall1.cmake:2: +CMake Error at UnterminatedCall1.cmake:1: Parse error. Function missing ending "\)". End of file reached. Call Stack \(most recent call first\): CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/Syntax/UnterminatedCall1.cmake b/Tests/RunCMake/Syntax/UnterminatedCall1.cmake index 1166109..e1d2118 100644 --- a/Tests/RunCMake/Syntax/UnterminatedCall1.cmake +++ b/Tests/RunCMake/Syntax/UnterminatedCall1.cmake @@ -1 +1,4 @@ message( + + +message("Additional message") diff --git a/Tests/RunCMake/Syntax/UnterminatedCall2-stderr.txt b/Tests/RunCMake/Syntax/UnterminatedCall2-stderr.txt index 18656f7..04216c3 100644 --- a/Tests/RunCMake/Syntax/UnterminatedCall2-stderr.txt +++ b/Tests/RunCMake/Syntax/UnterminatedCall2-stderr.txt @@ -1,4 +1,4 @@ -CMake Error at UnterminatedCall2.cmake:4: +CMake Error at UnterminatedCall2.cmake:3: Parse error. Function missing ending "\)". End of file reached. Call Stack \(most recent call first\): CMakeLists.txt:3 \(include\) diff --git a/Tests/RunCMake/Syntax/UnterminatedCall2.cmake b/Tests/RunCMake/Syntax/UnterminatedCall2.cmake index 26e9e62..8d4088d 100644 --- a/Tests/RunCMake/Syntax/UnterminatedCall2.cmake +++ b/Tests/RunCMake/Syntax/UnterminatedCall2.cmake @@ -1,3 +1,6 @@ set(var "\ ") message( + + +message("Additional message") |