AST: fixed ast for 'a(new (X));'

This commit is contained in:
Daniel Marjamäki 2014-10-12 09:24:43 +02:00
parent 30353d4b61
commit c537c98751
2 changed files with 2 additions and 1 deletions

View File

@ -664,7 +664,7 @@ static void compilePrecedence3(Token *&tok, AST_state& state)
tok = tok->link()->next();
if (Token::Match(tok->link(), ") %type%"))
tok = tok->link()->next();
else if (Token::Match(tok, "( %type%") && Token::Match(tok->link(), ") [(;]"))
else if (Token::Match(tok, "( %type%") && Token::Match(tok->link(), ") [();]"))
tok = tok->next();
else if (Token::Match(tok, "( &| %var%") && Token::simpleMatch(tok->link(), ") ("))
tok = tok->next();

View File

@ -8387,6 +8387,7 @@ private:
ASSERT_EQUALS("aFoobar(new=", testAst("a = new Foo(bar);"));
ASSERT_EQUALS("aFoo(new=", testAst("a = new Foo<bar>();"));
ASSERT_EQUALS("X12,3,(new", testAst("new (a,b,c) X(1,2,3);"));
ASSERT_EQUALS("aXnew(", testAst("a (new (X));"));
ASSERT_EQUALS("adelete", testAst("delete a;"));
ASSERT_EQUALS("adelete", testAst("delete (a);"));
ASSERT_EQUALS("adelete", testAst("delete[] a;"));