1// { dg-do assemble } 2 3#include <new> 4 5inline void * 6operator new(size_t alloc_sz, const char *fname, unsigned lineno) 7{ 8 return ::operator new (alloc_sz); 9} 10inline void * 11operator new[](size_t alloc_sz, const char *fname, unsigned lineno) 12{ 13 return ::operator new[] (alloc_sz); 14} 15inline void 16operator delete(void *ptr, const char *fname, unsigned lineno) 17{ 18} 19inline void 20operator delete[](void *ptr, const char *fname, unsigned lineno) 21{ 22} 23 24class DEF { 25public: 26 DEF( DEF *parent=0, const char *name=0 ); 27}; 28 29class ABC 30{ 31public: 32 enum stuff { ID0, ID1 }; 33 ABC( stuff, DEF *parent=0, const char *name=0 ); 34}; 35 36class GHI : public DEF 37{ 38}; 39 40class LMNFrame; 41class LMN : public DEF 42{ 43 friend class LMNFrame; 44 public: 45public: 46 LMN(); 47private: 48 LMNFrame *draw_area; 49 50 ABC *scroll_h; 51}; 52class LMNFrame : public GHI { 53}; 54LMN::LMN() 55{ 56 draw_area = new ("abc", 69) LMNFrame; 57 58 scroll_h = new ("def", 71) ABC(ABC::ID0, this); 59} 60 61