diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-03-28 09:26:28 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 1999-03-28 09:26:28 +0000 |
commit | 9fd68c082693e2db323eee226f8f041a1a596cc9 (patch) | |
tree | 60bd2c4c9dd96be75e26bf7a55c401eb632b6850 /gcc/testsuite/g++.old-deja/g++.brendan/crash7.C | |
parent | 9f9d16c921fcede880ddba43b970b29f0f888d8f (diff) |
Merge from mainlinebefore_gc_merge_990902egcs_gc_branch
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/egcs_gc_branch@26036 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.brendan/crash7.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.brendan/crash7.C | 47 |
1 files changed, 1 insertions, 46 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash7.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash7.C index c55cab97848..36745b89ae5 100644 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash7.C +++ b/gcc/testsuite/g++.old-deja/g++.brendan/crash7.C @@ -1,47 +1,2 @@ -// 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 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); -} + static int lessthan (T &a, T &b) { return a < b; } |