]> git.ipfire.org Git - thirdparty/gcc.git/commit
emit-rtl: Fix -fcompare-debug bug with label references in debug insns [PR105203]
authorJakub Jelinek <jakub@redhat.com>
Thu, 21 Apr 2022 07:43:30 +0000 (09:43 +0200)
committerJakub Jelinek <jakub@redhat.com>
Thu, 21 Apr 2022 07:43:30 +0000 (09:43 +0200)
commit504b02c70abcc31e0e9b56e69f82f85b5261bca9
tree2231105e2c415dc2393522bbe10f06c1045f0b22
parent6a4e9934545c112eef5eb7248636baa96cbfd2c0
emit-rtl: Fix -fcompare-debug bug with label references in debug insns [PR105203]

When we compute LABEL_NUSES from scratch, mark_all_labels doesn't call
mark_jump_label on DEBUG_INSNs:
              if (NONDEBUG_INSN_P (insn))
                mark_jump_label (PATTERN (insn), insn, 0);
and so doesn't increment LABEL_NUSES from references in DEBUG_INSNs.
But, when we call emit_copy_of_insn_after e.g. when duplicating some
DEBUG_INSNs, we call it even on those, which then results in LABEL_NUSES
differences and -fcompare-debug failures.

The following patch makes sure we don't call it on DEBUG_INSNs.

2022-04-21  Jakub Jelinek  <jakub@redhat.com>

PR debug/105203
* emit-rtl.cc (emit_copy_of_insn_after): Don't call mark_jump_label
on DEBUG_INSNs.

* gfortran.dg/g77/pr105203.f: New test.
gcc/emit-rtl.cc
gcc/testsuite/gfortran.dg/g77/pr105203.f [new file with mode: 0644]