[clang] Reapply "[Clang][Sema] Refactor collection of multi-level template argument lists (#106585, #111173)" (PR #111852)
Krystian Stasiowski via cfe-commits
cfe-commits at lists.llvm.org
Mon Oct 14 07:47:40 PDT 2024
sdkrystian wrote:
> Could you dive a little deeper why this change is necessary? E.g. does the most recent redecl have some properties that the canonical declaration (which would be the first one) does not?
@ilya-biryukov When instantiating a template from a member template that was explicitly specialized for a given implicitly instantiated specialization of its enclosing class template, we need to keep track of which template was actually used as the primary template (since we consider the specialization to be a redeclaration of the (instantiated) member template). Since the initial declaration & the specialized declaration have different template depths, this (may) result in `getTemplateInstantiationArgs` returning an incomplete set of template arguments for an entity.
https://github.com/llvm/llvm-project/pull/111852
More information about the cfe-commits
mailing list