| /* PR c++/98413 - ICE on placement new and member pointer | |
| { dg-do compile } | |
| { dg-options "-Wall" } */ | |
| void* operator new (__SIZE_TYPE__, void *p) { return p; } | |
| struct A { int m; } a; | |
| void fc (int A::*p) | |
| { | |
| new (&(a.*p)) char; | |
| } | |
| void fi (int A::*p) | |
| { | |
| new (&(a.*p)) int; | |
| } | |
| void fB (int A::*p) | |
| { | |
| struct B { int a[2]; }; | |
| new (&(a.*p)) B; // { dg-warning "\\\[-Wplacement-new" } | |
| } |