diff options
author | Douglas Gregor <dgregor@apple.com> | 2012-03-11 03:29:50 +0000 |
---|---|---|
committer | Douglas Gregor <dgregor@apple.com> | 2012-03-11 03:29:50 +0000 |
commit | fc55a8290a3e81111c0a373e1a04b09dd7da0b98 (patch) | |
tree | d1cf9db2ecd57855548311d22eb2a745edce6f17 /test/CXX | |
parent | 15dcec73d1e261533c2a32d5f11928570266f7c8 (diff) |
When template argument deduction is ignoring qualifiers, perform deep
structural comparison of non-dependent types. Otherwise, we end up
rejecting cases where the non-dependent types don't match due to
qualifiers in, e.g., a pointee type. Fixes PR12132.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152529 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CXX')
-rw-r--r-- | test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/p4.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/p4.cpp b/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/p4.cpp index 9236efce2b..83b5f23140 100644 --- a/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/p4.cpp +++ b/test/CXX/temp/temp.fct.spec/temp.deduct/temp.deduct.call/p4.cpp @@ -10,3 +10,11 @@ namespace PR8598 { void g() { (f)(&X::f, 0); } } + +namespace PR12132 { + template<typename S> void fun(const int* const S::* member) {} + struct A { int* x; }; + void foo() { + fun(&A::x); + } +} |