diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2011-08-31 21:06:29 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2011-08-31 21:06:29 +0000 |
commit | 091ace5877b03942e6b71fdf13fa4ac2df8e88cf (patch) | |
tree | 7f505cbfe91151d42d96eb4b983f66c34c5b04e6 | |
parent | 201176d3483714110201548a37b157a33415a635 (diff) | |
download | gcc-091ace5877b03942e6b71fdf13fa4ac2df8e88cf.zip gcc-091ace5877b03942e6b71fdf13fa4ac2df8e88cf.tar.gz gcc-091ace5877b03942e6b71fdf13fa4ac2df8e88cf.tar.bz2 |
genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
gcc/
* genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs.
(attr_string): Use copy_md_ptr_loc.
From-SVN: r178387
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/genattrtab.c | 11 |
2 files changed, 14 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index afb213b..8f40314 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-08-31 Richard Sandiford <rdsandiford@googlemail.com> + + * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs. + (attr_string): Use copy_md_ptr_loc. + 2011-08-31 Martin Jambor <mjambor@suse.cz> PR middle-end/49886 diff --git a/gcc/genattrtab.c b/gcc/genattrtab.c index a3da978..69e0850 100644 --- a/gcc/genattrtab.c +++ b/gcc/genattrtab.c @@ -434,8 +434,9 @@ attr_rtx_1 (enum rtx_code code, va_list p) XEXP (rt_val, 1) = arg1; } } - else if (GET_RTX_LENGTH (code) == 1 - && GET_RTX_FORMAT (code)[0] == 's') + else if (code == SYMBOL_REF + || (GET_RTX_LENGTH (code) == 1 + && GET_RTX_FORMAT (code)[0] == 's')) { char *arg0 = va_arg (p, char *); @@ -453,6 +454,11 @@ attr_rtx_1 (enum rtx_code code, va_list p) rtl_obstack = hash_obstack; rt_val = rtx_alloc (code); XSTR (rt_val, 0) = arg0; + if (code == SYMBOL_REF) + { + X0EXP (rt_val, 1) = NULL_RTX; + X0EXP (rt_val, 2) = NULL_RTX; + } } } else if (GET_RTX_LENGTH (code) == 2 @@ -611,6 +617,7 @@ attr_string (const char *str, int len) memcpy (new_str, str, len); new_str[len] = '\0'; attr_hash_add_string (hashcode, new_str); + copy_md_ptr_loc (new_str, str); return new_str; /* Return the new string. */ } |