Fixed #4276 (segmentation fault of cppcheck (invalid code))
This commit is contained in:
parent
be52a1404b
commit
f0f216390e
|
@ -4995,6 +4995,10 @@ void Tokenizer::simplifyVarDecl(bool only_k_r_fpar)
|
||||||
|
|
||||||
//skip combinations of templates and namespaces
|
//skip combinations of templates and namespaces
|
||||||
while (Token::Match(tok2, "%type% <") || Token::Match(tok2, "%type% ::")) {
|
while (Token::Match(tok2, "%type% <") || Token::Match(tok2, "%type% ::")) {
|
||||||
|
if (tok2->next()->str() == "<" && !TemplateSimplifier::templateParameters(tok2->next())) {
|
||||||
|
tok2 = NULL;
|
||||||
|
break;
|
||||||
|
}
|
||||||
typelen += 2;
|
typelen += 2;
|
||||||
tok2 = tok2->tokAt(2);
|
tok2 = tok2->tokAt(2);
|
||||||
if (tok2 && tok2->previous()->str() == "::")
|
if (tok2 && tok2->previous()->str() == "::")
|
||||||
|
|
|
@ -334,6 +334,7 @@ private:
|
||||||
TEST_CASE(vardecl20); // #3700 - register const int H = 0;
|
TEST_CASE(vardecl20); // #3700 - register const int H = 0;
|
||||||
TEST_CASE(vardecl21); // #4042 - a::b const *p = 0;
|
TEST_CASE(vardecl21); // #4042 - a::b const *p = 0;
|
||||||
TEST_CASE(vardecl22); // #4211 - segmentation fault
|
TEST_CASE(vardecl22); // #4211 - segmentation fault
|
||||||
|
TEST_CASE(vardecl23); // #4276 - segmentation fault
|
||||||
TEST_CASE(vardecl_stl_1);
|
TEST_CASE(vardecl_stl_1);
|
||||||
TEST_CASE(vardecl_stl_2);
|
TEST_CASE(vardecl_stl_2);
|
||||||
TEST_CASE(vardecl_template_1);
|
TEST_CASE(vardecl_template_1);
|
||||||
|
@ -5252,6 +5253,10 @@ private:
|
||||||
tokenizeAndStringify("A<B<C<int>> >* p = 0;");
|
tokenizeAndStringify("A<B<C<int>> >* p = 0;");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void vardecl23() { // #4276 - segmentation fault
|
||||||
|
tokenizeAndStringify("class a { protected : template < class int x = 1 ; public : int f ( ) ; }");
|
||||||
|
}
|
||||||
|
|
||||||
void volatile_variables() {
|
void volatile_variables() {
|
||||||
const char code[] = "volatile int a=0;\n"
|
const char code[] = "volatile int a=0;\n"
|
||||||
"volatile int b=0;\n"
|
"volatile int b=0;\n"
|
||||||
|
|
Loading…
Reference in New Issue