File tree Expand file tree Collapse file tree 1 file changed +17
-0
lines changed
clang/test/CXX/temp/temp.spec/temp.expl.spec Expand file tree Collapse file tree 1 file changed +17
-0
lines changed Original file line number Diff line number Diff line change @@ -39,7 +39,9 @@ namespace PR10024 {
39
39
40
40
namespace extraneous {
41
41
template <typename T> struct A ;
42
+
42
43
template <typename T> int x;
44
+
43
45
template <typename T> void f ();
44
46
45
47
template <> // expected-error{{extraneous template parameter list in template specialization}}
@@ -70,6 +72,11 @@ namespace extraneous {
70
72
71
73
template <typename U>
72
74
void h ();
75
+
76
+ enum class E ;
77
+
78
+ enum class E ;
79
+ enum F : int ;
73
80
};
74
81
75
82
template <>
@@ -113,4 +120,14 @@ namespace extraneous {
113
120
template <> // expected-error{{extraneous template parameter list in template specialization}}
114
121
template <typename U>
115
122
void B<int >::h<int >(); // expected-error{{function template partial specialization is not allowed}}
123
+
124
+ // FIXME: We should diagnose this as having an extraneous 'template<>'
125
+ template <>
126
+ template <>
127
+ enum class B <int >::E; // expected-error{{enumeration cannot be a template}}
128
+
129
+ // FIXME: We should diagnose this as having an extraneous 'template<>'
130
+ template <>
131
+ template <>
132
+ enum B<int >::F : int ; // expected-error{{enumeration cannot be a template}}
116
133
}
You can’t perform that action at this time.
0 commit comments