diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.other/new.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/new.C | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.other/new.C b/gcc/testsuite/g++.old-deja/g++.other/new.C new file mode 100644 index 000000000..3c3494ef7 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/new.C @@ -0,0 +1,60 @@ +// { dg-do assemble } + +#include <new> + +inline void * +operator new(std::size_t alloc_sz, const char *fname, unsigned lineno) +{ + return ::operator new (alloc_sz); +} +inline void * +operator new[](std::size_t alloc_sz, const char *fname, unsigned lineno) +{ + return ::operator new[] (alloc_sz); +} +inline void +operator delete(void *ptr, const char *fname, unsigned lineno) +{ +} +inline void +operator delete[](void *ptr, const char *fname, unsigned lineno) +{ +} + +class DEF { +public: + DEF( DEF *parent=0, const char *name=0 ); +}; + +class ABC +{ +public: + enum stuff { ID0, ID1 }; + ABC( stuff, DEF *parent=0, const char *name=0 ); +}; + +class GHI : public DEF +{ +}; + +class LMNFrame; +class LMN : public DEF +{ + friend class LMNFrame; + public: +public: + LMN(); +private: + LMNFrame *draw_area; + + ABC *scroll_h; +}; +class LMNFrame : public GHI { +}; +LMN::LMN() +{ + draw_area = new ("abc", 69) LMNFrame; + + scroll_h = new ("def", 71) ABC(ABC::ID0, this); +} + |