| 1 | // RUN: %clang_cc1 -fsyntax-only -verify -std=c++98 -pedantic -Werror %s |
| 2 | int a1[] = { 1, 3, 5 }; |
| 3 | void f() { |
| 4 | int a2[] = { 1, 3, 5 }; |
| 5 | } |
| 6 | template <typename T> |
| 7 | void tf() { |
| 8 | T t; |
| 9 | // Element type may be dependent |
| 10 | T a3[] = { 1, 3, 5 }; |
| 11 | // As might be the initializer list, value |
| 12 | int a5[] = { sizeof(T) }; |
| 13 | // or even type. |
| 14 | int a6[] = { t.get() }; |
| 15 | } |
| 16 | |
| 17 | // Allowed by GNU extension |
| 18 | int a4[] = {}; // expected-error {{zero size arrays}} |
| 19 | |
| 20 | struct Incomplete; // expected-note {{forward declaration of 'Incomplete'}} |
| 21 | struct A { |
| 22 | Incomplete i; // expected-error {{field has incomplete type 'Incomplete'}} |
| 23 | }; |
| 24 | A a[] = { 0 }; // PR13971: don't hang. |
| 25 | |