/* 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" } | |
} |