1 /* PR c++/94510 - nullptr_t implicitly cast to zero twice in std::array
2    { dg-do compile } */
3 
4 int ia1[2] = { (void*)0 };              // { dg-error "invalid conversion from 'void\\\*'" }
5 int ia2[2] = { (void*)0, 0 };           // { dg-error "invalid conversion from 'void\\\*'" }
6 int ia3[] = { (void*)0, 0 };            // { dg-error "invalid conversion from 'void\\\*'" }
7 
8 int ia4[2] = { __null };                // { dg-warning "\\\[-Wconversion-null" }
9 int ia5[2] = { __null, 0 };             // { dg-warning "\\\[-Wconversion-null" }
10 int ia6[] = { __null, 0 };              // { dg-warning "\\\[-Wconversion-null" }
11 
12 
13 const char ca1[2] = { (char*)0, 0 };    // { dg-error "invalid conversion from 'char\\\*'" }
14 
15 const char ca2[2] = { __null, 0 };      // { dg-warning "\\\[-Wconversion-null" }
16 
17 
18 typedef void Func ();
19 const char ca6[2] = { (Func*)0, 0 };    // { dg-error "invalid conversion from 'void \\\(\\\*\\\)\\\(\\\)' to 'char'" }
20 
21 struct S;
22 typedef int S::*MemPtr;
23 typedef int (S::*MemFuncPtr)();
24 
25 const char ca4[2] = { (MemPtr)0, 0 };   // { dg-error "cannot convert 'MemPtr' " }
26 const char ca5[2] = { (MemFuncPtr)0, 0 };   // { dg-error "cannot convert 'int \\\(S::\\\*\\\)\\\(\\\)' "  }
27