On Thu, Mar 21, 2024 at 07:12:23PM +0400, Centurion via Gcc-help wrote: > HI, I am new in gcc codebase. Can you explain please why we can't just use > TREE_TYPE(parm) for TEMLATE_TEMPLATE_PARM and why DECL_INITIAL is needed > for it? I tried to debug Bug 114377 and it seems to work fine. Thanks You cannot use TREE_TYPE if that would just access nonsense data. The wrong thing might still work, in many cases. If you have no substantiation why your proposed change would work fine, chances are it does not. Sorry. Segher > --- a/gcc/cp/pt.cc > +++ b/gcc/cp/pt.cc > @@ -11032,10 +11032,7 @@ find_template_parameter_info::found (tree parm) > { > if (TREE_CODE (parm) == TREE_LIST) > parm = TREE_VALUE (parm); > - if (TREE_CODE (parm) == TYPE_DECL) > - parm = TREE_TYPE (parm); > - else > - parm = DECL_INITIAL (parm); > + parm = TREE_TYPE(parm); > gcc_checking_assert (TEMPLATE_PARM_P (parm)); > return parms.contains (parm); > }