On Thu, Sep 10, 2020 at 12:39:36PM -0400, Nathan Sidwell wrote: > > We need to record whether template function-scope static decls are > constinit. That's currently held on the var's TEMPLATE_INFO data. > But I want to get rid of such decl's template header as they're not > really templates, and they're never instantiated separately from their > containing function's definition. (Just like auto vars, which don't > get them for instance). > > This patch moves the flag into a spare decl_lang_flag. > > gcc/cp/ > * cp-tree.h (TINFO_VAR_DECLARED_CONSTINIT): Replace with ... > (DECL_DECLARED_CONSTINIT_P): ... this. > * decl.c (start_decl): No need to retrofit_lang_decl for constinit > flag. > (cp_finish_decl): Use DECL_DECLARED_CONSTINIT_P. > * pt.c (tsubst_decl): No need to handle constinit flag > propagation. > (tsubst_expr): Or here.
Is there any need for LOOKUP_CONSTINIT anymore, if we can simply check DECL_DECLARED_CONSTINIT_P? (Not saying you need to clean that up.) My first constinit patch had DECL_DECLARED_CONSTINIT_P, but then I changed it: https://gcc.gnu.org/pipermail/gcc-patches/2019-August/528665.html Marek