fix #2706 (Analysis failed. If the code is valid then please report this failure.)
This commit is contained in:
parent
af632a6aa0
commit
23e4f020e9
|
@ -9363,8 +9363,11 @@ void Tokenizer::simplifyBitfields()
|
||||||
if (tok->next()->str() == "const")
|
if (tok->next()->str() == "const")
|
||||||
offset = 1;
|
offset = 1;
|
||||||
|
|
||||||
Token::eraseTokens(tok->tokAt(0), tok->tokAt(5 + offset));
|
if (tok->strAt(3 + offset) != "{")
|
||||||
tok = tok->previous();
|
{
|
||||||
|
Token::eraseTokens(tok->tokAt(0), tok->tokAt(5 + offset));
|
||||||
|
tok = tok->previous();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (last && last->str() == ",")
|
if (last && last->str() == ",")
|
||||||
|
|
|
@ -296,6 +296,7 @@ private:
|
||||||
TEST_CASE(bitfields6); // ticket #2595
|
TEST_CASE(bitfields6); // ticket #2595
|
||||||
TEST_CASE(bitfields7); // ticket #1987
|
TEST_CASE(bitfields7); // ticket #1987
|
||||||
TEST_CASE(bitfields8);
|
TEST_CASE(bitfields8);
|
||||||
|
TEST_CASE(bitfields9); // ticket #2706
|
||||||
|
|
||||||
TEST_CASE(microsoftMFC);
|
TEST_CASE(microsoftMFC);
|
||||||
|
|
||||||
|
@ -5373,6 +5374,19 @@ private:
|
||||||
ASSERT_EQUALS("", errout.str());
|
ASSERT_EQUALS("", errout.str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void bitfields9() // ticket #2706
|
||||||
|
{
|
||||||
|
const char code[] = "void f() {\n"
|
||||||
|
" goto half;\n"
|
||||||
|
"half:\n"
|
||||||
|
" {\n"
|
||||||
|
" ;\n"
|
||||||
|
" }\n"
|
||||||
|
"};";
|
||||||
|
tokenizeAndStringify(code,false);
|
||||||
|
ASSERT_EQUALS("", errout.str());
|
||||||
|
}
|
||||||
|
|
||||||
void microsoftMFC()
|
void microsoftMFC()
|
||||||
{
|
{
|
||||||
const char code1[] = "class MyDialog : public CDialog { DECLARE_MESSAGE_MAP() private: CString text; };";
|
const char code1[] = "class MyDialog : public CDialog { DECLARE_MESSAGE_MAP() private: CString text; };";
|
||||||
|
|
Loading…
Reference in New Issue