From 091ace5877b03942e6b71fdf13fa4ac2df8e88cf Mon Sep 17 00:00:00 2001 From: Richard Sandiford Date: Wed, 31 Aug 2011 21:06:29 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 5 +++++ gcc/genattrtab.c | 11 +++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index afb213b586b..8f403140820 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2011-08-31 Richard Sandiford + + * genattrtab.c (attr_rtx_1): Hash SYMBOL_REFs. + (attr_string): Use copy_md_ptr_loc. + 2011-08-31 Martin Jambor PR middle-end/49886 diff --git a/gcc/genattrtab.c b/gcc/genattrtab.c index a3da97868a9..69e08506fe5 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. */ } -- 2.30.2