Remove old autovect-branch by moving to "dead" directory.
[official-gcc.git] / old-autovect-branch / gcc / testsuite / g++.dg / tc1 / dr176.C
blobaad805bbd2eee1977528c2feb5ef432d6df09acb
1 // { dg-do compile }
2 // Origin: Giovanni Bajo <giovannibajo at gcc dot gnu dot org>
3 // DR176: Name injection and templates 
5 namespace N1 {
6   template <class T> struct Base {
7     Base* p;
8     Base<T*>* p2;
9     ::Base* p3;    // { dg-error "" "" }
10   };
12   template <class T> struct Derived: public Base<T> {
13     Base* p;     // { dg-bogus "" "injected class name in derived classes" { xfail *-*-* } }
14     Base<T*>* p2;
15     typename Derived::Base* p3;   // { dg-bogus "" "injected class name in derived classes" { xfail *-*-* } }
16   };
18   template struct Derived<void>;  // { dg-bogus "instantiated from here" "everything should be looked up at parsing time (after DR224)" { xfail *-*-* } }
22 namespace N2 {
23   template <class T> struct Base {};
24   template <class T> struct Derived: public Base<T> {
25     typename Derived::template Base<double>* p1;  // { dg-bogus "" "" { xfail *-*-* } }
26   };
28   template struct Derived<void>;