https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65610
--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> --- Perhaps one possibility would be even for -g0 preserve those specific BLOCKs (those satisfying if (BLOCK_ABSTRACT_ORIGIN (block) && TREE_CODE (BLOCK_ABSTRACT_ORIGIN (block)) == FUNCTION_DECL) { tree fn = BLOCK_ABSTRACT_ORIGIN (block); if (flags_from_decl_or_type (fn) & (ECF_PURE | ECF_CONST)) return false; return (TREE_CODE (TREE_TYPE (fn)) == METHOD_TYPE && (DECL_CXX_CONSTRUCTOR_P (fn) || DECL_CXX_DESTRUCTOR_P (fn))); } ).