Skip to content

Commit 63b6c38

Browse files
authored
[clang] Fix incorrect partial ordering context setting (#108491)
1 parent 765e106 commit 63b6c38

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

clang/lib/Sema/SemaTemplateDeduction.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -3411,7 +3411,7 @@ DeduceTemplateArguments(Sema &S, T *Partial,
34113411
if (TemplateDeductionResult Result = ::DeduceTemplateArguments(
34123412
S, Partial->getTemplateParameters(),
34133413
Partial->getTemplateArgs().asArray(), TemplateArgs, Info, Deduced,
3414-
/*NumberOfArgumentsMustMatch=*/false, /*PartialOrdering=*/true,
3414+
/*NumberOfArgumentsMustMatch=*/false, /*PartialOrdering=*/false,
34153415
PackFold::ParameterToArgument,
34163416
/*HasDeducedAnyParam=*/nullptr);
34173417
Result != TemplateDeductionResult::Success)

clang/test/SemaTemplate/cwg2398.cpp

+10
Original file line numberDiff line numberDiff line change
@@ -379,3 +379,13 @@ namespace regression1 {
379379
bar(input);
380380
}
381381
} // namespace regression1
382+
383+
namespace regression2 {
384+
template <class> struct D {};
385+
386+
template <class ET, template <class> class VT>
387+
struct D<VT<ET>>;
388+
389+
template <typename, int> struct Matrix;
390+
template struct D<Matrix<double, 3>>;
391+
} // namespace regression2

0 commit comments

Comments
 (0)