This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug debug/41353] VTA missed-debug issues
- From: "jakub at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 16 Sep 2009 11:53:15 -0000
- Subject: [Bug debug/41353] VTA missed-debug issues
- References: <bug-41353-87@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #6 from jakub at gcc dot gnu dot org 2009-09-16 11:53 -------
With:
--- var-tracking.c.xx 2009-09-16 09:17:52.000000000 +0200
+++ var-tracking.c 2009-09-16 13:48:08.000000000 +0200
@@ -4416,14 +4416,14 @@ use_type (rtx *loc, struct count_use_inf
expr = REG_EXPR (*loc);
if (!expr)
- return MO_USE_NO_VAR;
+ return cui && DEBUG_INSN_P (cui->insn) ? MO_CLOBBER : MO_USE_NO_VAR;
else if (target_for_debug_bind (var_debug_decl (expr)))
return MO_CLOBBER;
else if (track_loc_p (*loc, expr, REG_OFFSET (*loc),
false, modep, NULL))
return MO_USE;
else
- return MO_USE_NO_VAR;
+ return cui && DEBUG_INSN_P (cui->insn) ? MO_CLOBBER : MO_USE_NO_VAR;
}
else if (MEM_P (*loc))
{
hack the vars var-tracking doesn't cancel everything immediately, but only
after the
(insn 19 32 36 2 d6.c:9 (use (reg/i:SI 0 ax)) -1 (nil))
insn - which isn't a debug insn and therefore it is still treated as
MO_USE_NO_VAR.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41353