[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