| // PR c++/46688 - [4.6 Regression] g++ requires a function declaration |
| // when it should not |
| // Note that although the definition of struct B in the test case for |
| // c++/46688 was thought to be valid, it is, in fact, invalid, in C and |
| // as noted in c++/42121, should be treated as invalid in C++ as well. |
| // The test verifies that gcc detects and reports the right error. |
| |
| // { dg-options "" } |
| |
| struct A { |
| A(int); |
| }; |
| |
| struct B { |
| B() {} |
| A a[]; // { dg-error "extension|flexible array .* in an otherwise empty" } |
| }; |
| |
| struct C { |
| C() {} |
| A a[0]; // -Wpedantic warning: ISO C++ forbids zero-size arrays |
| }; |
| |