Richard Sandiford <[email protected]> writes:
> How about the attached (untested!) alternative?
Sorry, realised later that we also need the attached, for cases where
the CONCATNs survive. The "else" branch of the subreg case was dead code.
Richard
(resolve_debug): Remove redundant "else". Clear DECOMPOSED_REGISTER_P
on retained CONCATNs.
diff --git a/gcc/lower-subreg.cc b/gcc/lower-subreg.cc
index b43963f780d..b304e25dce0 100644
--- a/gcc/lower-subreg.cc
+++ b/gcc/lower-subreg.cc
@@ -1269,11 +1269,12 @@ resolve_debug (rtx_insn *insn)
if (x)
*loc = x;
- else
- x = copy_rtx (*loc);
}
if (resolve_reg_p (x))
- *loc = copy_rtx (x);
+ {
+ *loc = copy_rtx (x);
+ DECOMPOSED_REGISTER_P (*loc) = false;
+ }
}
df_insn_rescan (insn);