Partial revert of r290511.
The rules around typechecking deduced template arguments during partial ordering are not clear, and while the prior behavior does not seem to be correct (it doesn't follow the general model of partial ordering where each template parameter is replaced by a non-dependent but unique value), the new behavior is also not clearly right and breaks some existing idioms. The new behavior is retained for dealing with non-type template parameters with 'auto' types, as without it even the most basic uses of that feature don't work. We can revisit this once CWG has come to an agreement on how partial ordering with 'auto' non-type template parameters is supposed to work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@292183 91177308-0d34-0410-b5e6-96231b3b80d8
Showing
- lib/Sema/SemaTemplate.cpp 16 additions, 12 deletionslib/Sema/SemaTemplate.cpp
- test/SemaTemplate/class-template-spec.cpp 6 additions, 6 deletionstest/SemaTemplate/class-template-spec.cpp
- test/SemaTemplate/partial-order.cpp 14 additions, 0 deletionstest/SemaTemplate/partial-order.cpp
- test/SemaTemplate/temp_arg_nontype.cpp 8 additions, 8 deletionstest/SemaTemplate/temp_arg_nontype.cpp
- test/SemaTemplate/temp_arg_template_cxx1z.cpp 4 additions, 4 deletionstest/SemaTemplate/temp_arg_template_cxx1z.cpp
Loading
Please register or sign in to comment