]> granicus.if.org Git - clang/commit
Canonicalize implicit deduction guide parameter types when forming a deduction
authorRichard Smith <richard-llvm@metafoo.co.uk>
Tue, 14 Feb 2017 01:49:59 +0000 (01:49 +0000)
committerRichard Smith <richard-llvm@metafoo.co.uk>
Tue, 14 Feb 2017 01:49:59 +0000 (01:49 +0000)
commit298af83a3b41a0bae5990ba63be491fa61f2a020
treed9c79274968d538dc089105b13189c0e65faf8fb
parentee8fbfe77883193c27ddc69435a480a057f1d15b
Canonicalize implicit deduction guide parameter types when forming a deduction
guide from a constructor.

The purpose of this change is to avoid triggering instantiation of the class
when substituting back into the deduction guide if it uses a typedef member.
We will still instantiate the class if the constructor (explicitly or
implicitly, directly or indirectly) uses the current instantiation in a way
that we can't canonicalize out, but that seems unavoidable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@295016 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Sema/SemaTemplate.cpp
test/SemaCXX/cxx1z-class-template-argument-deduction.cpp