• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // RUN: %clang_cc1 -fsyntax-only -verify %s
2 
3 // PR4381
4 template<class T> struct X {};
5 template<typename T> struct Y : public X<T>::X { };
6 
7 // PR4621
8 class A1 {
A1(int x)9   A1(int x) {}
10 };
11 template<class C> class B1 : public A1 {
B1(C x)12   B1(C x) : A1(x.x) {}
13 };
14 class A2 { A2(int x, int y); };
15 template <class C> class B2 {
16   A2 x;
B2(C x)17   B2(C x) : x(x.x, x.y) {}
18 };
19 template <class C> class B3 {
20   C x;
B3()21   B3() : x(1,2) {}
22 };
23 
24 // PR4627
25 template<typename _Container> class insert_iterator {
26     _Container* container;
insert_iterator(_Container & __x)27     insert_iterator(_Container& __x) : container(&__x) {}
28 };
29 
30 // PR4763
31 template<typename T> struct s0 {};
32 template<typename T> struct s0_traits {};
33 template<typename T> struct s1 : s0<typename s0_traits<T>::t0> {
s1s134   s1() {}
35 };
36 
37 // PR6062
38 namespace PR6062 {
39   template <typename T>
40   class A : public T::type
41   {
A()42     A() : T::type()
43     {
44     }
45 
46     template <typename U>
A(U const & init)47     A(U const& init)
48       : T::type(init)
49     { }
50 
51     template<typename U>
A(U & init)52     A(U& init) : U::other_type(init) { }
53   };
54 }
55 
56 template<typename T, typename U>
57 struct X0 : T::template apply<U> {
X0X058   X0(int i) : T::template apply<U>(i) { }
59 };
60 
61 // PR7698
62 namespace PR7698 {
63   template<typename Type>
64   class A {
65     char mA[sizeof(Type *)];
A()66     A(): mA() {}
67   };
68 }
69