https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70594
--- Comment #41 from Richard Biener <rguenth at gcc dot gnu.org> --- Maybe decl_maybe_in_construction_p using BLOCKs. I suppose it should restrict itself to inlined_function_outer_scope_p ()s which we surely preserve. for (tree block = gimple_block (call); block && TREE_CODE (block) == BLOCK; block = BLOCK_SUPERCONTEXT (block)) if (tree fn = inlined_polymorphic_ctor_dtor_block_p (block, check_clones)) { tree type = TYPE_METHOD_BASETYPE (TREE_TYPE (fn)); if (!outer_type || !types_odr_comparable (type, outer_type)) { if (TREE_CODE (type) == RECORD_TYPE && TYPE_BINFO (type) && polymorphic_type_binfo_p (TYPE_BINFO (type))) return true; } else if (types_same_for_odr (type, outer_type)) return true; }