diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.mike/net31.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.mike/net31.C | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net31.C b/gcc/testsuite/g++.old-deja/g++.mike/net31.C deleted file mode 100644 index 3ecf81c7349..00000000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net31.C +++ /dev/null @@ -1,68 +0,0 @@ -// Build don't link: - -class foo_a { - protected: - double func(int xi) {return 0.0;} - public: - foo_a() {} -}; - -class foo_b { - public: - foo_b(int); - foo_b(); - ~foo_b(); - foo_b(const foo_b&); - inline double& operator()(int); - foo_b& operator=(foo_b&); - void bar_a(int); -}; - -foo_b& operator*(foo_b&, foo_b&); -foo_b& operator*(double, foo_b&); - -template <class TP> -class foo_c { - typedef double (TP::* Tmatf)(int); - int m; - Tmatf* a; - void foo_cinst (int mm); - public: - foo_c(int mm); - foo_c() {m = 0; a = 0;} - ~foo_c() {delete a;} - double (TP::*& operator()(int i))(int) {return a[i];} - foo_b& bug_func(int); -}; - -template <class TP> -foo_b& foo_c<TP>::bug_func(int x) { - static foo_b retval(m); - retval.bar_a(m); - for (register int i = 0; i < m; i++) - retval(i) = (*(operator()(i)))(x); // ERROR - - return retval; -} - -template <class TP> -class foo_d { - protected: - foo_c<TP> bar_b; - public: - foo_d() {} - virtual ~foo_d() {} - virtual void setfoo_c(); -}; - -class foo_e : public foo_a, public foo_d<foo_a> { - public: - foo_e(); - ~foo_e() {} - void setfoo_c(); -}; - -void foo_e::setfoo_c() { - bar_b(0) = func; // ERROR - -} - -template class foo_c<foo_a>; |