aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorKrystian Stasiowski <sdkrystian@gmail.com>2024-10-29 11:36:55 -0600
committerGitHub <noreply@github.com>2024-10-29 13:36:55 -0400
commit639a7ac648f1e50ccd2556e17d401c04f9cce625 (patch)
treec2f9f97fac48728ef5f7b50658865b00f19c801d /flang/lib/Frontend/CompilerInvocation.cpp
parent4abc35740760b626d3fcabd001593d46c4b595af (diff)
downloadllvm-639a7ac648f1e50ccd2556e17d401c04f9cce625.zip
llvm-639a7ac648f1e50ccd2556e17d401c04f9cce625.tar.gz
llvm-639a7ac648f1e50ccd2556e17d401c04f9cce625.tar.bz2
[Clang][AST] Store injected template arguments in TemplateParameterList (#113579)
Currently, we store injected template arguments in `RedeclarableTemplateDecl::CommonBase`. This approach has a couple problems: 1. We can only access the injected template arguments of `RedeclarableTemplateDecl` derived types, but other `Decl` kinds still make use of the injected arguments (e.g. `ClassTemplatePartialSpecializationDecl`, `VarTemplatePartialSpecializationDecl`, and `TemplateTemplateParmDecl`). 2. Accessing the injected template arguments requires the common data structure to be allocated. This may occur before we determine whether a previous declaration exists (e.g. when comparing constraints), so if the template _is_ a redeclaration, we end up discarding the common data structure. This patch moves the storage and access of injected template arguments from `RedeclarableTemplateDecl` to `TemplateParameterList`.
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions