Skip to content

Commit 05740ec

Browse files
committed
Rewrite the implementations:
- Move the implementation to SemaTemplate.cpp where the typical CTAD implementation lives, thus no sepatate CTAD.h/.cpp; - Rewrite the implementation, we leverage more on clang's template instantatiation mechanism to build the deduction guide, it implementation is simplier; - Some enhancements on TreeTransform and TemplateInstantiator to allow running on BuildingDeductionGuides mode; - Added more tests;
1 parent 334cb49 commit 05740ec

File tree

11 files changed

+622
-670
lines changed

11 files changed

+622
-670
lines changed

clang/include/clang/Sema/Sema.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10424,6 +10424,9 @@ class Sema final {
1042410424
const MultiLevelTemplateArgumentList &TemplateArgs,
1042510425
bool EvaluateConstraints = true);
1042610426

10427+
bool SubstTemplateArgument(const TemplateArgumentLoc &Input,
10428+
const MultiLevelTemplateArgumentList &TemplateArgs,
10429+
TemplateArgumentLoc &Output);
1042710430
bool
1042810431
SubstTemplateArguments(ArrayRef<TemplateArgumentLoc> Args,
1042910432
const MultiLevelTemplateArgumentList &TemplateArgs,

clang/lib/Sema/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ clang_tablegen(OpenCLBuiltins.inc -gen-clang-opencl-builtins
1414

1515
add_clang_library(clangSema
1616
AnalysisBasedWarnings.cpp
17-
CTAD.cpp
1817
CodeCompleteConsumer.cpp
1918
DeclSpec.cpp
2019
DelayedDiagnostic.cpp

clang/lib/Sema/CTAD.cpp

Lines changed: 0 additions & 209 deletions
This file was deleted.

clang/lib/Sema/CTAD.h

Lines changed: 0 additions & 65 deletions
This file was deleted.

0 commit comments

Comments
 (0)