blob: 9b0f19e74637926765d71c9275d95189ca979c4c [file] [log] [blame]
Douglas Gregor025291b2010-07-01 00:21:21 +00001// RUN: %clang_cc1 -fsyntax-only -verify %s
2
3// <rdar://problem/8124080>
4template<typename _Alloc> class allocator;
5template<class _CharT> struct char_traits;
6template<typename _CharT, typename _Traits = char_traits<_CharT>,
7 typename _Alloc = allocator<_CharT> >
8class basic_string;
9template<typename _CharT, typename _Traits, typename _Alloc>
10const typename basic_string<_CharT, _Traits, _Alloc>::size_type
11basic_string<_CharT, _Traits, _Alloc>::_Rep::_S_max_size // expected-error{{no member named '_Rep' in 'basic_string<_CharT, _Traits, _Alloc>'}}
12 = (((npos - sizeof(_Rep_base))/sizeof(_CharT)) - 1) / 4;
13
14// PR7118
15template<typename T>
16class Foo {
17 class Bar;
18 void f() {
19 Bar i;
20 }
21};
Argyrios Kyrtzidis6a622df2010-10-30 01:06:23 +000022
23// PR7625
24template<typename T> struct a : T {
25 struct x : T {
26 int aa() { return p; } // expected-error{{use of undeclared identifier 'p'}}
27 };
28};
Argyrios Kyrtzidisd86132d2010-10-30 01:06:26 +000029
30// rdar://8605381
31namespace rdar8605381 {
32struct X {};
33
34struct Y { // expected-note{{candidate}}
35 Y();
36};
37
38struct {
39 Y obj;
40} objs[] = {
41 new Y // expected-error{{no viable conversion}}
42};
43}
Argyrios Kyrtzidis2c4792c2010-11-05 23:25:18 +000044
45// http://llvm.org/PR8234
46namespace PR8234 {
47template<typename Signature>
48class callback
49{
50};
51
52template<typename R , typename ARG_TYPE0>
53class callback<R( ARG_TYPE0)>
54{
55 public:
56 callback() {}
57};
58
59template< typename ARG_TYPE0>
60class callback<void( ARG_TYPE0)>
61{
62 public:
63 callback() {}
64};
65
66void f()
67{
68 callback<void(const int&)> op;
69}
70}
Rafael Espindolaac6a8582011-01-20 16:11:21 +000071
72namespace PR9007 {
73 struct bar {
74 enum xxx {
75 yyy = sizeof(struct foo*)
76 };
77 foo *xxx();
78};
79}