[Bug target/88178] [9 Regression] ICE in dbx_reg_number, at dwarf2out.c:13659
ubizjak at gmail dot com
gcc-bugzilla@gcc.gnu.org
Mon Nov 26 21:01:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88178
Uroš Bizjak <ubizjak at gmail dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target|x86_64-unknown-linux-gnu |x86
Status|ASSIGNED |RESOLVED
Resolution|--- |FIXED
--- Comment #5 from Uroš Bizjak <ubizjak at gmail dot com> ---
Fixed for 9.0, no backport planned.
(In reply to Jakub Jelinek from comment #3)
> void foo (void)
> {
> register int r19 asm ("19");
> }
>
> ICEs with -g too.
> Similar effects with "16", "argp" or "frame".
> Guess it would be nice to reject these regs somewhere early, but there
> doesn't seem to be a target hook for that. There is accessible_reg_set
> which only mips uses, wonder if we could make them unaccessible and what
> effect that would have.
> I think it removes those registers from operand_reg_set and thus they
> wouldn't be general_operand though.
It looks to me that accesible_reg_set is intended to disable registers when
certain ISA is not available. x86 disables registers by clearing their names,
in addition to setting fixed_reg flag on the register.
The registers that are now marked as IGNORED_DWARF_REGNUM can sneak to dwarf2
processing via invalid code paths, so they should be marked as ignored
nevertheless.
I'll play a bit with accessible_reg_set, maybe we can also disable unavailable
reg in a more elegant way than currently implemented. This is something to
consider after the release branch is branched, though.
More information about the Gcc-bugs
mailing list