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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [testsuite/] [g++.old-deja/] [g++.robertl/] [eb49.C] - Rev 823

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

// { dg-do assemble  }

// Here we declare ::S
typedef struct s1 *S;

struct s1
{
  int s;
};

struct A
{
  // Here we declare A::S
  typedef struct s1 *S;
};

template<class T, class U> class XX;

template<class T, class U>
class X
{
public:
  static T *do_something ();
  friend class T; // { dg-error "" } `T' is a template parameter
  friend class XX<T, U>;
};

struct N
{
  // Here we declare N::S
  class S
  {
  };

  // Should use N::S and A::S.
  typedef X<S, A::S> X_S;

  void bug ();
};

void
N::bug ()
{
  // X_S is template class X<N::S, A::S>
  // `s' is N::S.
  S *s = X_S::do_something ();
}

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

powered by: WebSVN 2.1.0

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