Fix ticket #598 (Preprocessor: Multiline comments add line change to wrong location)
http://sourceforge.net/apps/trac/cppcheck/ticket/598
This commit is contained in:
parent
8b46172bcf
commit
7d44ce7736
|
@ -368,8 +368,7 @@ std::string Preprocessor::removeComments(const std::string &str)
|
||||||
ch = str[i];
|
ch = str[i];
|
||||||
if (ch == '\n')
|
if (ch == '\n')
|
||||||
{
|
{
|
||||||
code << "\n";
|
++newlines;
|
||||||
previous = '\n';
|
|
||||||
++lineno;
|
++lineno;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -98,6 +98,7 @@ private:
|
||||||
TEST_CASE(multiline2);
|
TEST_CASE(multiline2);
|
||||||
TEST_CASE(multiline3);
|
TEST_CASE(multiline3);
|
||||||
TEST_CASE(multiline4);
|
TEST_CASE(multiline4);
|
||||||
|
TEST_CASE(multiline5);
|
||||||
|
|
||||||
TEST_CASE(if_defined); // "#if defined(AAA)" => "#ifdef AAA"
|
TEST_CASE(if_defined); // "#if defined(AAA)" => "#ifdef AAA"
|
||||||
TEST_CASE(if_not_defined); // "#if !defined(AAA)" => "#ifndef AAA"
|
TEST_CASE(if_not_defined); // "#if !defined(AAA)" => "#ifndef AAA"
|
||||||
|
@ -718,6 +719,27 @@ private:
|
||||||
ASSERT_EQUALS("", errout.str());
|
ASSERT_EQUALS("", errout.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void multiline5()
|
||||||
|
{
|
||||||
|
errout.str("");
|
||||||
|
const char filedata[] = "#define ABC int a /*\n"
|
||||||
|
"*/= 4;\n"
|
||||||
|
"int main(){\n"
|
||||||
|
"ABC\n"
|
||||||
|
"}\n";
|
||||||
|
|
||||||
|
// Preprocess => actual result..
|
||||||
|
std::istringstream istr(filedata);
|
||||||
|
std::map<std::string, std::string> actual;
|
||||||
|
Preprocessor preprocessor;
|
||||||
|
preprocessor.preprocess(istr, actual, "file.c");
|
||||||
|
|
||||||
|
// Compare results..
|
||||||
|
ASSERT_EQUALS(1, static_cast<unsigned int>(actual.size()));
|
||||||
|
ASSERT_EQUALS("\n\nint main(){\nint a = 4;\n}\n", actual[""]);
|
||||||
|
ASSERT_EQUALS("", errout.str());
|
||||||
|
}
|
||||||
|
|
||||||
void if_defined()
|
void if_defined()
|
||||||
{
|
{
|
||||||
const char filedata[] = "#if defined(AAA)\n"
|
const char filedata[] = "#if defined(AAA)\n"
|
||||||
|
|
Loading…
Reference in New Issue