// { dg-do run } | |
// Test that we properly default-initialize the new int when () is given. | |
#include <new> | |
using namespace std; | |
extern "C" void *malloc (size_t); | |
typedef int int32_t __attribute__((mode (__SI__))); | |
int32_t special; | |
int32_t space = 0xdeadbeef; | |
void *operator new (size_t size) | |
#if __cplusplus <= 199711L | |
throw (std::bad_alloc) | |
#endif | |
{ | |
if (special) | |
return &space; | |
return malloc (size); | |
} | |
int main () | |
{ | |
special = 1; | |
int32_t *p = new int32_t(); | |
special = 0; | |
return *p != 0; | |
} |