OwningExprResult TernaryMiddle(Actions, true);
if (NextTokPrec == prec::Conditional) {
if (Tok.isNot(tok::colon)) {
+ // Don't parse FOO:BAR as if it were a typo for FOO::BAR.
+ ColonProtectionRAIIObject X(*this);
+
// Handle this production specially:
// logical-OR-expression '?' expression ':' conditional-expression
// In particular, the RHS of the '?' is 'expression', not
int x(*g); // expected-error {{use of undeclared identifier 'g'}}
-struct Type { };
+struct Type {
+ int Type;
+};
// PR4451 - We should recover well from the typo of '::' as ':' in a2.
int Type : fooenum;
};
+void test(struct Type *P) {
+ int Type;
+ Type = 1 ? P->Type : Type;
+}
\ No newline at end of file