#8913 SIGSEGV in CheckUnusedVar::checkFunctionVariableUsage - C++/CLI code
This commit is contained in:
parent
ae3e53f391
commit
28bc3cad92
|
@ -9140,7 +9140,7 @@ void Tokenizer::findGarbageCode() const
|
||||||
if (Token::Match(tok, "> %cop%"))
|
if (Token::Match(tok, "> %cop%"))
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (Token::Match(tok, "%or%|%oror%|==|!=|+|-|/|!|>=|<=|~|++|--|::|sizeof|throw|decltype|typeof {|if|else|try|catch|while|do|for|return|switch|break|namespace"))
|
if (Token::Match(tok, "%or%|%oror%|==|!=|+|-|/|!|>=|<=|~|^|++|--|::|sizeof|throw|decltype|typeof {|if|else|try|catch|while|do|for|return|switch|break|namespace"))
|
||||||
syntaxError(tok);
|
syntaxError(tok);
|
||||||
if (Token::Match(tok, "( %any% )") && tok->next()->isKeyword() && !Token::simpleMatch(tok->next(), "void"))
|
if (Token::Match(tok, "( %any% )") && tok->next()->isKeyword() && !Token::simpleMatch(tok->next(), "void"))
|
||||||
syntaxError(tok);
|
syntaxError(tok);
|
||||||
|
|
|
@ -245,6 +245,7 @@ private:
|
||||||
TEST_CASE(syntaxErrorLastToken); // Make sure syntax errors are detected and reported
|
TEST_CASE(syntaxErrorLastToken); // Make sure syntax errors are detected and reported
|
||||||
TEST_CASE(syntaxErrorCase);
|
TEST_CASE(syntaxErrorCase);
|
||||||
TEST_CASE(syntaxErrorFuzzerCliType1);
|
TEST_CASE(syntaxErrorFuzzerCliType1);
|
||||||
|
TEST_CASE(cliCode);
|
||||||
TEST_CASE(enumTrailingComma);
|
TEST_CASE(enumTrailingComma);
|
||||||
|
|
||||||
TEST_CASE(nonGarbageCode1); // #8346
|
TEST_CASE(nonGarbageCode1); // #8346
|
||||||
|
@ -1662,6 +1663,16 @@ private:
|
||||||
ASSERT_THROW(checkCode("void f() { x= y{ } name5 y[ ] + y ^ name5 ^ name5 for ( ( y y y && y y y && name5 ++ int )); }"), InternalError); // #9069
|
ASSERT_THROW(checkCode("void f() { x= y{ } name5 y[ ] + y ^ name5 ^ name5 for ( ( y y y && y y y && name5 ++ int )); }"), InternalError); // #9069
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void cliCode() {
|
||||||
|
// #8913
|
||||||
|
ASSERT_THROW(checkCode("public ref class LibCecSharp : public CecCallbackMethods {\n"
|
||||||
|
"array<CecAdapter ^> ^ FindAdapters(String ^ path) {} \n"
|
||||||
|
"bool GetDeviceInformation(String ^ port, LibCECConfiguration ^configuration, uint32_t timeoutMs) {\n"
|
||||||
|
"bool bReturn(false);\n"
|
||||||
|
"}\n"
|
||||||
|
"};\n"), InternalError);
|
||||||
|
}
|
||||||
|
|
||||||
void enumTrailingComma() {
|
void enumTrailingComma() {
|
||||||
ASSERT_THROW(checkCode("enum ssl_shutdown_t {ssl_shutdown_none = 0,ssl_shutdown_close_notify = , } ;"), InternalError); // #8079
|
ASSERT_THROW(checkCode("enum ssl_shutdown_t {ssl_shutdown_none = 0,ssl_shutdown_close_notify = , } ;"), InternalError); // #8079
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue