diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.other/inline3.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.other/inline3.C | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.other/inline3.C b/gcc/testsuite/g++.old-deja/g++.other/inline3.C new file mode 100644 index 000000000..a61410015 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.other/inline3.C @@ -0,0 +1,51 @@ +// { dg-do assemble } +// { dg-options "-O3" } +// Origin: Mark Mitchell <mark@codesourcery.com> + +class ostream; + +struct S +{ + virtual void print(ostream&) const = 0; +}; + +template <class _Tp> +class vector +{ +public: + _Tp& operator[](unsigned __n) const { return *(_M_start + __n); } + _Tp* _M_start; +}; + +class T +{ +public: + + void print(ostream&) const; + + vector<S*> bcList_m; +}; + +void T::print(ostream& o) const +{ + int n = 3; + + for (int i = 0; i < n; ++i) + bcList_m[i]->print(o); + return; +} + +ostream& +operator<<(ostream& o, const T& bcList) +{ + bcList.print(o); + return o; +} + + + + + + + + |