parent
1d19f57c5e
commit
2eb575d990
|
@ -10839,7 +10839,7 @@ void Tokenizer::simplifyOperatorName()
|
||||||
return;
|
return;
|
||||||
|
|
||||||
for (Token *tok = list.front(); tok; tok = tok->next()) {
|
for (Token *tok = list.front(); tok; tok = tok->next()) {
|
||||||
if (Token::Match(tok, "using|:: operator %op% ;")) {
|
if (Token::Match(tok, "using|:: operator %op%|%name% ;")) {
|
||||||
tok->next()->str("operator" + tok->strAt(2));
|
tok->next()->str("operator" + tok->strAt(2));
|
||||||
tok->next()->deleteNext();
|
tok->next()->deleteNext();
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -399,6 +399,7 @@ private:
|
||||||
TEST_CASE(simplifyOperatorName12); // #9110
|
TEST_CASE(simplifyOperatorName12); // #9110
|
||||||
TEST_CASE(simplifyOperatorName13); // user defined literal
|
TEST_CASE(simplifyOperatorName13); // user defined literal
|
||||||
TEST_CASE(simplifyOperatorName14); // std::complex operator "" if
|
TEST_CASE(simplifyOperatorName14); // std::complex operator "" if
|
||||||
|
TEST_CASE(simplifyOperatorName15); // ticket #9468 syntaxError
|
||||||
|
|
||||||
TEST_CASE(simplifyNullArray);
|
TEST_CASE(simplifyNullArray);
|
||||||
|
|
||||||
|
@ -6378,6 +6379,21 @@ private:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void simplifyOperatorName15() { // ticket #9468 syntaxError
|
||||||
|
const char code[] = "template <typename> struct a;"
|
||||||
|
"template <typename> struct b {"
|
||||||
|
" typedef char c;"
|
||||||
|
" operator c();"
|
||||||
|
"};"
|
||||||
|
"template <> struct a<char> : b<char> { using b::operator char; };";
|
||||||
|
ASSERT_EQUALS("struct a<char> ; template < typename > struct a ; "
|
||||||
|
"struct b<char> ; "
|
||||||
|
"struct a<char> : b<char> { using b :: operatorchar ; } ; struct b<char> { "
|
||||||
|
"operatorchar ( ) ; "
|
||||||
|
"} ;",
|
||||||
|
tokenizeAndStringify(code));
|
||||||
|
}
|
||||||
|
|
||||||
void simplifyNullArray() {
|
void simplifyNullArray() {
|
||||||
ASSERT_EQUALS("* ( foo . bar [ 5 ] ) = x ;", tokenizeAndStringify("0[foo.bar[5]] = x;"));
|
ASSERT_EQUALS("* ( foo . bar [ 5 ] ) = x ;", tokenizeAndStringify("0[foo.bar[5]] = x;"));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue