blob: b34660acbea0daa46bc554f87760dbdcc170f964 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
// RUN: %clang_cc1 -fsyntax-only -verify %s
namespace PR6915 {
template <typename T>
class D {
enum T::X v; // expected-error{{use of 'X' with tag type that does not match previous declaration}} \
// expected-error{{no enum named 'X' in 'PR6915::D3'}}
};
struct D1 {
enum X { value };
};
struct D2 {
class X { }; // expected-note{{previous use is here}}
};
struct D3 { };
template class D<D1>;
template class D<D2>; // expected-note{{in instantiation of}}
template class D<D3>; // expected-note{{in instantiation of}}
}
template<typename T>
struct DeclOrDef {
enum T::foo; // expected-error{{nested name specifier for a declaration cannot depend on a template parameter}}
enum T::bar { // expected-error{{nested name specifier for a declaration cannot depend on a template parameter}}
value
};
};
namespace PR6649 {
template <typename T> struct foo {
class T::bar; // expected-error{{nested name specifier for a declaration cannot depend on a template parameter}}
class T::bar { int x; }; // expected-error{{nested name specifier for a declaration cannot depend on a template parameter}}
};
}
|