Fixed crash on garbage code (#7090)
This commit is contained in:
parent
8374e8414b
commit
6c20f4b2a2
|
@ -347,8 +347,8 @@ bool Tokenizer::duplicateTypedef(Token **tokPtr, const Token *name, const Token
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (tok)
|
||||||
tok = tok->previous();
|
tok = tok->previous();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((*tokPtr)->strAt(1) != "(" || !Token::Match((*tokPtr)->linkAt(1), ") .|(|[")) {
|
if ((*tokPtr)->strAt(1) != "(" || !Token::Match((*tokPtr)->linkAt(1), ") .|(|[")) {
|
||||||
|
|
|
@ -196,6 +196,7 @@ private:
|
||||||
TEST_CASE(garbageCode145); // #7074
|
TEST_CASE(garbageCode145); // #7074
|
||||||
TEST_CASE(garbageCode146); // #7081
|
TEST_CASE(garbageCode146); // #7081
|
||||||
TEST_CASE(garbageCode147); // #7082
|
TEST_CASE(garbageCode147); // #7082
|
||||||
|
TEST_CASE(garbageCode148); // #7090
|
||||||
|
|
||||||
TEST_CASE(garbageValueFlow);
|
TEST_CASE(garbageValueFlow);
|
||||||
TEST_CASE(garbageSymbolDatabase);
|
TEST_CASE(garbageSymbolDatabase);
|
||||||
|
@ -1168,6 +1169,14 @@ private:
|
||||||
checkCode("; void f ^ { return } int main ( ) { }"); // #4941
|
checkCode("; void f ^ { return } int main ( ) { }"); // #4941
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void garbageCode148() { // #7090
|
||||||
|
ASSERT_THROW(checkCode("void f_1() {\n"
|
||||||
|
" typedef S0 b[][1][1] != 0\n"
|
||||||
|
"};\n"
|
||||||
|
"b[K][0] S0 b[][1][1] != 4{ 0 };\n"
|
||||||
|
"b[0][0]"), InternalError);
|
||||||
|
}
|
||||||
|
|
||||||
void garbageValueFlow() {
|
void garbageValueFlow() {
|
||||||
// #6089
|
// #6089
|
||||||
const char* code = "{} int foo(struct, x1, struct x2, x3, int, x5, x6, x7)\n"
|
const char* code = "{} int foo(struct, x1, struct x2, x3, int, x5, x6, x7)\n"
|
||||||
|
|
Loading…
Reference in New Issue