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

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [g++.old-deja/] [g++.brendan/] [crash7.C] - Diff between revs 305 and 338

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 305 Rev 338
// { dg-do assemble  }
// { dg-do assemble  }
// GROUPS passed templates
// GROUPS passed templates
template
template
class Vector
class Vector
{
{
  int sz;
  int sz;
  T *v;
  T *v;
public:
public:
  Vector (int s) : sz (s) { v = new T[sz]; }
  Vector (int s) : sz (s) { v = new T[sz]; }
  ~Vector () { delete[] v; }
  ~Vector () { delete[] v; }
  T &operator[] (int i) { return v[i]; }
  T &operator[] (int i) { return v[i]; }
  int size () { return sz; }
  int size () { return sz; }
};
};
template// { dg-error "" } previous definition of T
template// { dg-error "" } previous definition of T
struct Comparator
struct Comparator
{
{
  typedef T T;// { dg-error "" } use of template type T in typedef to T
  typedef T T;// { dg-error "" } use of template type T in typedef to T
  static int lessthan (T &a, T &b) { return a < b; }
  static int lessthan (T &a, T &b) { return a < b; }
};
};
template
template
struct Sort
struct Sort
{
{
  static void sort (Vector &);// { dg-error "" } use of bad T
  static void sort (Vector &);// { dg-error "" } use of bad T
};
};
template
template
void Sort::sort (Vector &v)// { dg-error "" } use of bad T
void Sort::sort (Vector &v)// { dg-error "" } use of bad T
{
{
  int n = v.size ();
  int n = v.size ();
  for (int i = 0; i < n - 1; i++)
  for (int i = 0; i < n - 1; i++)
    for (int j = n - 1; i < j; j--)
    for (int j = n - 1; i < j; j--)
      if (Comp::lessthan (v[j], v[j - 1]))
      if (Comp::lessthan (v[j], v[j - 1]))
        {
        {
          typename Comp::T temp = v[j];
          typename Comp::T temp = v[j];
          v[j] = v[j - 1];
          v[j] = v[j - 1];
          v[j - 1] = temp;
          v[j - 1] = temp;
        }
        }
}
}
void
void
f (Vector &vi)
f (Vector &vi)
{
{
  Sort >::sort (vi); // { dg-error "'sort' is not a member of 'Sort >'" }
  Sort >::sort (vi); // { dg-error "'sort' is not a member of 'Sort >'" }
}
}
 
 

powered by: WebSVN 2.1.0

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