| // PR c++/93529 |
| // P1009: Array size deduction in new-expressions |
| // { dg-do compile { target c++11 } } |
| |
| // Test error cases. |
| int *p = new double[] = { 1, 2, 3}; // { dg-error "invalid use of array with unspecified bounds" } |
| int *p2 = new double[] = (1, 2, 3); // { dg-error "invalid use of array with unspecified bounds" } |
| struct Aggr { int a; int b; int c; }; |
| Aggr *p3 = new Aggr[]( 1, 2, 3 ); // { dg-error "could not convert|parenthesized initializer" } |
| char *p4 = new char[]("foo", "a"); // { dg-error "invalid conversion|parenthesized initializer" } |
| |
| template<typename... T> |
| int *fn(T... t) |
| { |
| return new int[]{t...}; // { dg-error "invalid conversion" } |
| } |
| |
| void |
| g () |
| { |
| int *p = fn ("a"); |
| } |