summaryrefslogtreecommitdiff
path: root/test/CXX/drs/dr1xx.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/CXX/drs/dr1xx.cpp')
-rw-r--r--test/CXX/drs/dr1xx.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/test/CXX/drs/dr1xx.cpp b/test/CXX/drs/dr1xx.cpp
index 9521f0a8b7841..f5395cfe183db 100644
--- a/test/CXX/drs/dr1xx.cpp
+++ b/test/CXX/drs/dr1xx.cpp
@@ -535,13 +535,15 @@ namespace dr145 { // dr145: yes
}
}
-namespace dr147 { // dr147: no
+namespace dr147 { // dr147: yes
namespace example1 {
template<typename> struct A {
template<typename T> A(T);
};
- // FIXME: This appears to be valid, and EDG and G++ accept.
+ // Per core issue 1435, this is ill-formed because A<int>::A<int> does not
+ // name the injected-class-name. (A<int>::A does, though.)
template<> template<> A<int>::A<int>(int) {} // expected-error {{out-of-line constructor for 'A' cannot have template arguments}}
+ template<> template<> A<float>::A(float) {}
}
namespace example2 {
struct A { A(); };