https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67750

--- Comment #3 from baoshan <pangbw at gmail dot com> ---
(In reply to Andrew Pinski from comment #2)
> Can you try 5.x?

With the test case this issue can not be reproduced.
But I still think the same problem is also existed in 5.x, it works by
coincidence:
In 4.9.0, the code(pseudo) is like this:
set r0, LCL0
...
set r0, rx
...
debug_insn var X (... r0)

The pass "shrink wrap" would move "set r0, rx" after the debug instruction
which eventually make GCC think the "r0" defined in "set r0, LCL0" is used by
the debug instruction.

But in 5.x, the two 'set' instructions don't use the same register, so even the
"set r0, rx" also has been moved after debug instruction, it would result the
undefined local label issue.

Reply via email to