This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
RE: ACATS
- From: "Dave Korn" <dk at artimi dot com>
- To: <gcc at gcc dot gnu dot org>
- Date: Thu, 29 Apr 2004 17:18:25 +0100
- Subject: RE: ACATS
> -----Original Message-----
> From: gcc-owner On Behalf Of John R. Shannon
> Sent: 29 April 2004 16:59
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Thank you. I have a case of '.L124' being reference where it
> should be '.L123'.
Ouch. Grep the source for ASM_OUTPUT_INTERNAL_LABEL where the second
parameter is "L", and you'll see that these are generated in final_scan_insn
in final.c, using CODE_LABEL_NUMBER (insn). However defaults.h also
implements default definitions of ASM_OUTPUT_ADDR_VEC_ELT and
ASM_OUTPUT_DEBUG_LABEL from ASM_OUTPUT_INTERNAL_LABEL. So your problem may
be specifically related either to switch....case constructs, or to debug
info, or your problem may be more generic. What's actually at .L123 ?
The problem seems likely to be that either the CODE_LABEL_NUMBER field of
the insn is getting stomped on, or something is damaging the operand of the
reference in the label_ref. It might become clear which by following the
rtl dumps through the various stages; or it might be something you can
locate easily by setting a watchpoint or two with gdb. I'd suspect
something going wrong when insns get deleted, myself.
cheers,
DaveK
--
Can't think of a witty .sigline today....