Commit 091ace58 by Richard Sandiford Committed by Richard Sandiford

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
parent 201176d3
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> 2011-08-31 Martin Jambor <mjambor@suse.cz>
PR middle-end/49886 PR middle-end/49886
...@@ -434,8 +434,9 @@ attr_rtx_1 (enum rtx_code code, va_list p) ...@@ -434,8 +434,9 @@ attr_rtx_1 (enum rtx_code code, va_list p)
XEXP (rt_val, 1) = arg1; XEXP (rt_val, 1) = arg1;
} }
} }
else if (GET_RTX_LENGTH (code) == 1 else if (code == SYMBOL_REF
&& GET_RTX_FORMAT (code)[0] == 's') || (GET_RTX_LENGTH (code) == 1
&& GET_RTX_FORMAT (code)[0] == 's'))
{ {
char *arg0 = va_arg (p, char *); char *arg0 = va_arg (p, char *);
...@@ -453,6 +454,11 @@ attr_rtx_1 (enum rtx_code code, va_list p) ...@@ -453,6 +454,11 @@ attr_rtx_1 (enum rtx_code code, va_list p)
rtl_obstack = hash_obstack; rtl_obstack = hash_obstack;
rt_val = rtx_alloc (code); rt_val = rtx_alloc (code);
XSTR (rt_val, 0) = arg0; 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 else if (GET_RTX_LENGTH (code) == 2
...@@ -611,6 +617,7 @@ attr_string (const char *str, int len) ...@@ -611,6 +617,7 @@ attr_string (const char *str, int len)
memcpy (new_str, str, len); memcpy (new_str, str, len);
new_str[len] = '\0'; new_str[len] = '\0';
attr_hash_add_string (hashcode, new_str); attr_hash_add_string (hashcode, new_str);
copy_md_ptr_loc (new_str, str);
return new_str; /* Return the new string. */ return new_str; /* Return the new string. */
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment