diff options
author | Douglas Gregor <dgregor@apple.com> | 2009-08-22 00:34:47 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2009-08-22 00:34:47 +0000 |
commit | c45a40afd1f977a40315022b2b70e801d6e1fceb (patch) | |
tree | 99ff705746bcb5084d782de5ed31b0f901f7a65f /clang/test/CXX/temp/temp.fct.spec | |
parent | 8e2456c2542fc030c0a09707b28902dfcb545a81 (diff) | |
download | bcm5719-llvm-c45a40afd1f977a40315022b2b70e801d6e1fceb.tar.gz bcm5719-llvm-c45a40afd1f977a40315022b2b70e801d6e1fceb.zip |
Implement delayed parsing for member function templates. Fixes PR4608.
llvm-svn: 79709
Diffstat (limited to 'clang/test/CXX/temp/temp.fct.spec')
-rw-r--r-- | clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.conv/p4.cpp | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.conv/p4.cpp b/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.conv/p4.cpp index 439afa8c04a..50d31fb2f85 100644 --- a/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.conv/p4.cpp +++ b/clang/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.conv/p4.cpp @@ -11,36 +11,32 @@ void test_cvqual_ref(AnyT any) { struct AnyThreeLevelPtr { template<typename T> - operator T***() const; - // FIXME: Can't handle definitions of member templates yet -#if 0 + operator T***() const { T x = 0; - x = 0; // will fail if T is deduced to a const type + // FIXME: looks like we get this wrong, too! + // x = 0; // will fail if T is deduced to a const type // (EDG and GCC get this wrong) return 0; } -#endif }; +struct X { }; + void test_deduce_with_qual(AnyThreeLevelPtr a3) { int * const * const * const ip = a3; } -struct X { }; - struct AnyPtrMem { template<typename Class, typename T> - operator T Class::*() const; - // FIXME: Can't handle definitions of member templates yet -#if 0 + operator T Class::*() const { T x = 0; - x = 0; // will fail if T is deduced to a const type. + // FIXME: looks like we get this wrong, too! + // x = 0; // will fail if T is deduced to a const type. // (EDG and GCC get this wrong) return 0; } -#endif }; void test_deduce_ptrmem_with_qual(AnyPtrMem apm) { |