diff options
Diffstat (limited to 'gcc/testsuite/g++.old-deja/g++.jason/template22.C')
-rw-r--r-- | gcc/testsuite/g++.old-deja/g++.jason/template22.C | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template22.C b/gcc/testsuite/g++.old-deja/g++.jason/template22.C new file mode 100644 index 000000000..f6e81aa36 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.jason/template22.C @@ -0,0 +1,31 @@ +// { 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 ()); +} |