| // { 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" } |
| } |