aboutsummaryrefslogtreecommitdiff
path: root/test/SemaCXX/conversion-function.cpp
diff options
context:
space:
mode:
authorDouglas Gregor <dgregor@apple.com>2010-09-12 07:22:28 +0000
committerDouglas Gregor <dgregor@apple.com>2010-09-12 07:22:28 +0000
commitda0fd9a7faa8b8a666e3c31ff0b5897e0f73f892 (patch)
tree7c8f28078916246b779c5240bb1b233ca3633a92 /test/SemaCXX/conversion-function.cpp
parenta4d5de539bc2f0cd25d6292e84eaa067591ff792 (diff)
Don't complain about useless user-defined conversion functions when
they were instantiated from a template. In template metaprogramming, stuff happens. Fixes PR8065. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113722 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaCXX/conversion-function.cpp')
-rw-r--r--test/SemaCXX/conversion-function.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/test/SemaCXX/conversion-function.cpp b/test/SemaCXX/conversion-function.cpp
index 7f8fdd5340..8d5e01039c 100644
--- a/test/SemaCXX/conversion-function.cpp
+++ b/test/SemaCXX/conversion-function.cpp
@@ -325,3 +325,21 @@ namespace rdar8018274 {
int i = ed;
}
}
+
+namespace PR8065 {
+ template <typename T> struct Iterator;
+ template <typename T> struct Container;
+
+ template<>
+ struct Iterator<int> {
+ typedef Container<int> container_type;
+ };
+
+ template <typename T>
+ struct Container {
+ typedef typename Iterator<T>::container_type X;
+ operator X(void) { return X(); }
+ };
+
+ Container<int> test;
+}