// { dg-do compile { target c++17 } } extern int foo (void); extern void bar (int), die (void); void f (void) { if (auto i = foo (); i != -1) bar (1); else die (); i = 10; // { dg-error "not declared" } } void f2 (void) { switch (auto i = foo (); i) { case 0: bar (i + 1); break; case 1: bar (i + 10); break; default: break; } i = 10; // { dg-error "not declared" } } void f3 (void) { if constexpr (constexpr auto i = sizeof (long); i < 2) die (); i = 4; // { dg-error "not declared" } } void f4 (void) { { if (auto i = foo (); i > -1) { if (i > 5) bar (i); if (auto j = foo (); true) j++; j--; // { dg-error "not declared" } } i = 10; // { dg-error "not declared" } } i = 10; // { dg-error "not declared" } }