1 /* { dg-do compile } */
2 /* { dg-options "-O3 -fdump-tree-optimized" } */
4 typedef __SIZE_TYPE__ size_t;
5 inline void* operator new(size_t, void* p) throw() { return p; }
7 typedef void (*handler_t)(void);
8 extern handler_t get_handle();
10 inline void* operator new(size_t sz)
17 while ((p = __builtin_malloc (sz)) == 0)
19 handler_t handler = get_handle ();
31 if (n > (size_t)-1 / sizeof(int))
34 start = static_cast<int*> (operator new (n * sizeof(int)));
37 for (size_t l = n; l > 0; --l, ++p)
42 void f (void *p, int n)
47 /* { dg-final { scan-tree-dump-times "calloc" 1 "optimized" } } */
48 /* { dg-final { scan-tree-dump-not "malloc" "optimized" } } */
49 /* { dg-final { scan-tree-dump-not "memset" "optimized" } } */