view gcc/testsuite/g++.old-deja/g++.jason/template22.C @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children
line wrap: on
line source

// { dg-do assemble  }
// Testcase for proper unification of code involving references.

template<class T>
struct A
{
    void foo();
};

template<class T> void A<T>::foo() { }

template class A<int&>;

const int& f1 ();
int& f2 ();
int f3 ();

template <class T> void g1 (const T&);
template <class T> void g2 (T&);
template <class T> void g3 (T);

int main()
{
  g1 (f1 ());
  g1 (f2 ());
  g1 (f3 ());
  g2 (f2 ());
  g3 (f1 ());
  g3 (f2 ());
  g3 (f3 ());
}