diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.brendan/crash7.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.brendan/crash7.C | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash7.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash7.C deleted file mode 100644 index 19476fc47ce..00000000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash7.C +++ /dev/null @@ -1,48 +0,0 @@ -// Build don't link: -// GROUPS passed templates - -template<class T> -class Vector -{ - int sz; - T *v; -public: - Vector (int s) : sz (s) { v = new T[sz]; } - ~Vector () { delete[] v; } - T &operator[] (int i) { return v[i]; } - int size () { return sz; } -}; - -template<class T>// ERROR - previous definition of T -struct Comparator -{ - typedef T T;// ERROR - use of template type T in typedef to T - static int lessthan (T &a, T &b) { return a < b; } -}; - -template<class Comp> -struct Sort -{ - static void sort (Vector<Comp::T> &);// ERROR - use of bad T -}; - -template<class Comp> -void Sort<Comp>::sort (Vector<Comp::T> &v)// ERROR - use of bad T -{ - int n = v.size (); - - for (int i = 0; i < n - 1; i++) - for (int j = n - 1; i < j; j--) - if (Comp::lessthan (v[j], v[j - 1])) - { - typename Comp::T temp = v[j]; - v[j] = v[j - 1]; - v[j - 1] = temp; - } -} - -void -f (Vector<int> &vi) -{ - Sort<Comparator<int> >::sort (vi); -} |