Skip to content

Commit 59c9a93

Browse files
committed
Add a test with class template
1 parent 2bc0b2a commit 59c9a93

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

clang/test/SemaCXX/default-argument-different-scopes.cpp

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,3 +144,22 @@ template <typename>
144144
void L::l6(int = 6) {}
145145
// expected-error@-1 {{redefinition of default argument}}
146146
// expected-note@#l6 {{previous definition is here}}
147+
148+
template <typename>
149+
struct M {
150+
void m1(int);
151+
void m2(int = 2);
152+
void m3(int = 3); // #m3
153+
};
154+
155+
template <typename T>
156+
void M<T>::m1(int = 1) {}
157+
// expected-error@-1 {{default arguments cannot be added to an out-of-line definition of a member of a class template}}
158+
159+
template <typename T>
160+
void M<T>::m2(int) {}
161+
162+
template <typename T>
163+
void M<T>::m3(int = 3) {}
164+
// expected-error@-1 {{redefinition of default argument}}
165+
// expected-note@#m3 {{previous definition is here}}

0 commit comments

Comments
 (0)