OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [g++.old-deja/] [g++.brendan/] [crash7.C] - Blame information for rev 749

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 699 jeremybenn
// { dg-do assemble  }
2
// GROUPS passed templates
3
 
4
template
5
class Vector
6
{
7
  int sz;
8
  T *v;
9
public:
10
  Vector (int s) : sz (s) { v = new T[sz]; }
11
  ~Vector () { delete[] v; }
12
  T &operator[] (int i) { return v[i]; }
13
  int size () { return sz; }
14
};
15
 
16
template// { dg-error "" } previous definition of T
17
struct Comparator
18
{
19
  typedef T T;// { dg-error "" } use of template type T in typedef to T
20
  static int lessthan (T &a, T &b) { return a < b; }
21
};
22
 
23
template
24
struct Sort
25
{
26
  static void sort (Vector &);// { dg-error "" } use of bad T
27
};
28
 
29
template
30
void Sort::sort (Vector &v)// { dg-error "" } use of bad T
31
{
32
  int n = v.size ();
33
 
34
  for (int i = 0; i < n - 1; i++)
35
    for (int j = n - 1; i < j; j--)
36
      if (Comp::lessthan (v[j], v[j - 1]))
37
        {
38
          typename Comp::T temp = v[j];
39
          v[j] = v[j - 1];
40
          v[j - 1] = temp;
41
        }
42
}
43
 
44
void
45
f (Vector &vi)
46
{
47
  Sort >::sort (vi); // { dg-error "'sort' is not a member of 'Sort >'" }
48
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.