diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.jason/template10.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.jason/template10.C | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template10.C b/gcc/testsuite/g++.old-deja/g++.jason/template10.C new file mode 100644 index 00000000000..35841f64712 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.jason/template10.C @@ -0,0 +1,26 @@ +// Bug: member operator shadows global template in tsubst. +// Build don't link: + +class ostream; + +template <class TP> class smanip { +public: + friend ostream& operator<<(ostream &o, const smanip<TP>&m); +}; + +template<class TP> +ostream& operator<<(ostream& o, const smanip<TP>& m) +{ return o;} + +class X +{ +public: + X operator<<(int); // commenting out this line makes it work! + void print(ostream& os); +}; + +void X::print(ostream& os) +{ + smanip<double> smd; + os << smd; // gets bogus error +} |