| typedef __SIZE_TYPE__ size_t; | |
| extern "C" void *malloc (size_t); | |
| int i; | |
| struct S { | |
| S(int) { | |
| throw 3; | |
| } | |
| void *operator new(size_t s, int) { | |
| ++i; | |
| return malloc (s); | |
| } | |
| void operator delete(void *, int) { | |
| --i; | |
| } | |
| void operator delete(void *, int, int) ; | |
| }; | |
| int main () { | |
| try { | |
| new (7) S (12); | |
| } catch (int) { | |
| if (i) | |
| return 1; | |
| } | |
| } |