Expressions like
struct A {}; ... new struct A {}; struct A* b = (1 == 1) ? new struct A : new struct A;
Were parsed as redefinitions of struct A and failed, however as clarified by
CWG2141 new-expression cannot define a type, so both these examples
should be considered as references to the previously declared struct A.
The patch adds a "new" kind context for parsing declaration specifiers in
addition to already existing declarator context in order to track that
the parser is inside of a new expression.