diff options
author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-10-21 20:48:16 +0000 |
---|---|---|
committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2008-10-21 20:48:16 +0000 |
commit | 58029e618f892253a92b4e5b0c898020e3fd27f7 (patch) | |
tree | 052bfb82b1dc059871fa44b6f66ba8b9ead7deca /gcc/emit-rtl.c | |
parent | e576b5877f91e4174a8f2b032b361b12cd884e32 (diff) | |
download | gcc-58029e618f892253a92b4e5b0c898020e3fd27f7.tar.gz |
PR 37815
* emit-rtl.c (get_spill_slot_decl): Export.
* emit-rtl.h (get_spill_slot_decl): Declare.
* var-tracking.c (vt_add_function_parameters): Relax assertion
on the contents of MEM_EXPR in a PARM_DECL to include a spill slot.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@141278 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/emit-rtl.c')
-rw-r--r-- | gcc/emit-rtl.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c index 46fefda614b..ced4e58b160 100644 --- a/gcc/emit-rtl.c +++ b/gcc/emit-rtl.c @@ -2141,13 +2141,13 @@ widen_memory_access (rtx memref, enum machine_mode mode, HOST_WIDE_INT offset) /* A fake decl that is used as the MEM_EXPR of spill slots. */ static GTY(()) tree spill_slot_decl; -static tree -get_spill_slot_decl (void) +tree +get_spill_slot_decl (bool force_build_p) { tree d = spill_slot_decl; rtx rd; - if (d) + if (d || !force_build_p) return d; d = build_decl (VAR_DECL, get_identifier ("%sfp"), void_type_node); @@ -2179,7 +2179,7 @@ set_mem_attrs_for_spill (rtx mem) rtx addr, offset; tree expr; - expr = get_spill_slot_decl (); + expr = get_spill_slot_decl (true); alias = MEM_ALIAS_SET (DECL_RTL (expr)); /* We expect the incoming memory to be of the form: |