https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79015
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Resolution|--- |FIXED Status|NEW |RESOLVED Target Milestone|--- |8.0 --- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Fixed in GCC 8 by a few patches combined together. The final result is the following code which deletes the debug_markers: /* Turn debug markers into notes if the var-tracking pass has not been invoked. */ if (!flag_var_tracking && MAY_HAVE_DEBUG_MARKER_INSNS) delete_vta_debug_insns (false); Which does for each debug_insn (non debug_marker which is handled as a note): tree decl = INSN_VAR_LOCATION_DECL (insn); if (TREE_CODE (decl) == LABEL_DECL && DECL_NAME (decl) && !DECL_RTL_SET_P (decl)) { PUT_CODE (insn, NOTE); NOTE_KIND (insn) = NOTE_INSN_DELETED_DEBUG_LABEL; NOTE_DELETED_LABEL_NAME (insn) = IDENTIFIER_POINTER (DECL_NAME (decl)); SET_DECL_RTL (decl, insn); CODE_LABEL_NUMBER (insn) = debug_label_num++; } else delete_insn (insn); So yes this is fixed and not made latent.