blob: e90b340b0d69160e31e76ae14983319f5d5fbecc [file] [log] [blame]
// PR c++/91364 - Implement P0388R4: Permit conversions to arrays of unknown bound.
// { dg-do compile { target c++17 } }
// { dg-options "-Wpedantic" }
// C++17, because that has CWG 393.
void f(int(&)[]);
void fp(int(*)[]);
void f2(int(&)[][10]);
void fp2(int(*)[][10]);
int arr[10];
int arr2[10][10];
void
g ()
{
f (arr); // { dg-warning "conversions to arrays of unknown bound are only available" "" { target c++17_down } }
fp (&arr); // { dg-warning "conversions to arrays of unknown bound are only available" "" { target c++17_down } }
f2 (arr2);// { dg-warning "conversions to arrays of unknown bound are only available" "" { target c++17_down } }
fp2 (&arr2);// { dg-warning "conversions to arrays of unknown bound are only available" "" { target c++17_down } }
}
int(&r1)[] = arr;// { dg-warning "conversions to arrays of unknown bound are only available" "" { target c++17_down } }
int(&r2)[10] = arr;
int(&r3)[][10] = arr2;// { dg-warning "conversions to arrays of unknown bound are only available" "" { target c++17_down } }
/* Note that
int (&r)[10][] = arr2;
is invalid. */
int(&r4)[10][10] = arr2;
int(*p1)[] = &arr;// { dg-warning "conversions to arrays of unknown bound are only available" "" { target c++17_down } }
int(*p2)[10] = &arr;
int(*p3)[][10] = &arr2;// { dg-warning "conversions to arrays of unknown bound are only available" "" { target c++17_down } }
int(*p4)[10][10] = &arr2;