Skip to content

Commit c61e21d

Browse files
committed
[FOLD]
1 parent e2d0e6a commit c61e21d

File tree

1 file changed

+17
-0
lines changed
  • clang/test/CXX/temp/temp.spec/temp.expl.spec

1 file changed

+17
-0
lines changed

clang/test/CXX/temp/temp.spec/temp.expl.spec/p16.cpp

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,9 @@ namespace PR10024 {
3939

4040
namespace extraneous {
4141
template<typename T> struct A;
42+
4243
template<typename T> int x;
44+
4345
template<typename T> void f();
4446

4547
template<> // expected-error{{extraneous template parameter list in template specialization}}
@@ -70,6 +72,11 @@ namespace extraneous {
7072

7173
template<typename U>
7274
void h();
75+
76+
enum class E;
77+
78+
enum class E;
79+
enum F : int;
7380
};
7481

7582
template<>
@@ -113,4 +120,14 @@ namespace extraneous {
113120
template<> // expected-error{{extraneous template parameter list in template specialization}}
114121
template<typename U>
115122
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}}
116133
}

0 commit comments

Comments
 (0)