Fixed #2361 (false positive on t[0X10])
This commit is contained in:
parent
0758160fcd
commit
2367cfcf1e
|
@ -126,7 +126,7 @@ void Tokenizer::addtoken(const char str[], const unsigned int lineno, const unsi
|
||||||
|
|
||||||
// Replace hexadecimal value with decimal
|
// Replace hexadecimal value with decimal
|
||||||
std::ostringstream str2;
|
std::ostringstream str2;
|
||||||
if (strncmp(str, "0x", 2) == 0)
|
if (strncmp(str, "0x", 2) == 0 || strncmp(str, "0X", 2) == 0)
|
||||||
{
|
{
|
||||||
str2 << std::strtoul(str + 2, NULL, 16);
|
str2 << std::strtoul(str + 2, NULL, 16);
|
||||||
}
|
}
|
||||||
|
|
|
@ -51,6 +51,7 @@ private:
|
||||||
TEST_CASE(tokenize11);
|
TEST_CASE(tokenize11);
|
||||||
TEST_CASE(tokenize12);
|
TEST_CASE(tokenize12);
|
||||||
TEST_CASE(tokenize13); // bailout if the code contains "@" - that is not handled well.
|
TEST_CASE(tokenize13); // bailout if the code contains "@" - that is not handled well.
|
||||||
|
TEST_CASE(tokenize14); // tokenize "0X10" => 16
|
||||||
|
|
||||||
// don't freak out when the syntax is wrong
|
// don't freak out when the syntax is wrong
|
||||||
TEST_CASE(wrong_syntax);
|
TEST_CASE(wrong_syntax);
|
||||||
|
@ -481,6 +482,13 @@ private:
|
||||||
ASSERT_EQUALS("", tokenizeAndStringify(code));
|
ASSERT_EQUALS("", tokenizeAndStringify(code));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Ticket #2361: 0X10 => 16
|
||||||
|
void tokenize14()
|
||||||
|
{
|
||||||
|
ASSERT_EQUALS("; 16 ;", tokenizeAndStringify(";0x10;"));
|
||||||
|
ASSERT_EQUALS("; 16 ;", tokenizeAndStringify(";0X10;"));
|
||||||
|
}
|
||||||
|
|
||||||
void wrong_syntax()
|
void wrong_syntax()
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue