summaryrefslogtreecommitdiff
path: root/gcc/testsuite/g++.old-deja/g++.other/new.C
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.other/new.C')
-rw-r--r--gcc/testsuite/g++.old-deja/g++.other/new.C60
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);
+}
+