mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-18 01:39:19 +08:00
varasm.c (record_constant_1): Record the CODE_LABEL when taking the address of a LABEL_REF.
* varasm.c (record_constant_1): Record the CODE_LABEL when taking the address of a LABEL_REF. From-SVN: r33517
This commit is contained in:
parent
ce48579b9a
commit
e67cd9f80d
@ -1,3 +1,8 @@
|
||||
2000-04-28 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* varasm.c (record_constant_1): Record the CODE_LABEL when
|
||||
taking the address of a LABEL_REF.
|
||||
|
||||
2000-04-28 Richard Henderson <rth@cygnus.com>
|
||||
Jan Hubicka <jh@suse.cz>
|
||||
|
||||
|
21
gcc/varasm.c
21
gcc/varasm.c
@ -2867,9 +2867,24 @@ record_constant_1 (exp)
|
||||
/* Record the offset. */
|
||||
obstack_grow (&permanent_obstack,
|
||||
(char *) &value.offset, sizeof value.offset);
|
||||
/* Record the symbol name. */
|
||||
obstack_grow (&permanent_obstack, XSTR (value.base, 0),
|
||||
strlen (XSTR (value.base, 0)) + 1);
|
||||
|
||||
switch (GET_CODE (value.base))
|
||||
{
|
||||
case SYMBOL_REF:
|
||||
/* Record the symbol name. */
|
||||
obstack_grow (&permanent_obstack, XSTR (value.base, 0),
|
||||
strlen (XSTR (value.base, 0)) + 1);
|
||||
break;
|
||||
case LABEL_REF:
|
||||
/* Record the address of the CODE_LABEL. It may not have
|
||||
been emitted yet, so it's UID may be zero. But pointer
|
||||
identity is good enough. */
|
||||
obstack_grow (&permanent_obstack, &XEXP (value.base, 0),
|
||||
sizeof (rtx));
|
||||
break;
|
||||
default:
|
||||
abort ();
|
||||
}
|
||||
}
|
||||
return;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user