// RUN: %clang_cc1 -fsyntax-only -verify -std=c++17 %s
// RUN: not %clang_cc1 -fsyntax-only -ast-dump %s -std=c++17 | FileCheck %s

void test() {
  while(!!!) // expected-error {{expected expression}}
    int whileBody;
  // CHECK: WhileStmt
  // CHECK: RecoveryExpr {{.*}} <line:{{.*}}:9, col:11> 'bool'
  // CHECK: whileBody 'int'

  for(!!!) // expected-error {{expected expression}} expected-error {{expected ';'}}
    int forBody;
  // CHECK: ForStmt
  // FIXME: the AST should have a RecoveryExpr to distinguish from for(;;)
  // CHECK-NOT: RecoveryExpr
  // CHECK: forBody 'int'

  for(auto c : !!!) // expected-error {{expected expression}}
    int forEachBody;
  // FIXME: parse the foreach body
  // CHECK-NOT: CXXForRangeStmt
  // CHECK-NOT: forEachBody 'int'

  do
    int doBody;
  while(!!!); // expected-error {{expected expression}}
  // CHECK: DoStmt
  // CHECK: doBody 'int'
  // CHECK: RecoveryExpr {{.*}} <line:{{.*}}:9, col:11> 'bool'

  if(!!!) // expected-error {{expected expression}}
    int ifBody;
  else
    int elseBody;
  // CHECK: IfStmt
  // CHECK: RecoveryExpr {{.*}} <line:{{.*}}:6, col:8> 'bool'
  // CHECK: ifBody 'int'
  // CHECK: elseBody 'int'

  switch(!!!) // expected-error {{expected expression}}
    int switchBody;
  // CHECK: SwitchStmt
  // CHECK: RecoveryExpr {{.*}} <line:{{.*}}:10, col:12> 'int'
  // CHECK: switchBody 'int'

  switch (;) // expected-error {{expected expression}}
    int switchBody;
  // CHECK: SwitchStmt
  // CHECK: NullStmt
  // CHECK: RecoveryExpr {{.*}} <col:11> 'int'
  // CHECK: switchBody 'int'

  switch (;;) // expected-error {{expected expression}}
    int switchBody;
  // CHECK: SwitchStmt
  // CHECK: NullStmt
  // CHECK: RecoveryExpr {{.*}} <col:11, col:12> 'int'
  // CHECK: switchBody 'int'

  switch (!!!;) // expected-error {{expected expression}}
    int switchBody;
  // CHECK: SwitchStmt
  // CHECK: RecoveryExpr {{.*}} <line:{{.*}}:11, col:14> 'int'
  // CHECK: switchBody 'int'
}
