diff options
author | Douglas Gregor <dgregor@apple.com> | 2010-09-12 07:22:28 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2010-09-12 07:22:28 +0000 |
commit | 6309e3d18ef06a243d52fc77287d07d3b1c406bc (patch) | |
tree | b227c472bc85b0164cf5a481bb1a2d85c48877eb /clang/test/SemaCXX/conversion-function.cpp | |
parent | fd26915742092a49c0a147e7d15e9a36255fbcb0 (diff) | |
download | bcm5719-llvm-6309e3d18ef06a243d52fc77287d07d3b1c406bc.tar.gz bcm5719-llvm-6309e3d18ef06a243d52fc77287d07d3b1c406bc.zip |
Don't complain about useless user-defined conversion functions when
they were instantiated from a template. In template metaprogramming,
stuff happens. Fixes PR8065.
llvm-svn: 113722
Diffstat (limited to 'clang/test/SemaCXX/conversion-function.cpp')
-rw-r--r-- | clang/test/SemaCXX/conversion-function.cpp | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/conversion-function.cpp b/clang/test/SemaCXX/conversion-function.cpp index 7f8fdd53400..8d5e01039c1 100644 --- a/clang/test/SemaCXX/conversion-function.cpp +++ b/clang/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; +} |