aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRoger Sayle <roger@eyesopen.com>2004-12-21 03:18:47 +0000
committerRoger Sayle <sayle@gcc.gnu.org>2004-12-21 03:18:47 +0000
commitbd340349092b1d189d798f8d3654244b4141da45 (patch)
tree4f5a15e5ac68ef18d670c8a27bd016bc7bba50fb /gcc
parent5fdf61fee32a4b2b2dd2e2884a43c730dd5f90d1 (diff)
downloadgcc-bd340349092b1d189d798f8d3654244b4141da45.zip
gcc-bd340349092b1d189d798f8d3654244b4141da45.tar.gz
gcc-bd340349092b1d189d798f8d3654244b4141da45.tar.bz2
re PR middle-end/18683 (seg fault in local allocate)
PR middle-end/18683 * config/rs6000/rs6000.c (current_file_function_operand): Only check current_function_decl's DECL_RTL if it has already been set. From-SVN: r92453
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/rs6000/rs6000.c3
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 5026be9..cbcd64f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,6 +1,12 @@
2004-12-20 Roger Sayle <roger@eyesopen.com>
PR middle-end/18683
+ * config/rs6000/rs6000.c (current_file_function_operand): Only check
+ current_function_decl's DECL_RTL if it has already been set.
+
+2004-12-20 Roger Sayle <roger@eyesopen.com>
+
+ PR middle-end/18683
* function.c (pop_function_context_from): Don't reset reg_renumber.
2004-12-20 Eric Botcazou <ebotcazou@libertysurf.fr>
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index b2e64f6..8bedc58 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -2960,7 +2960,8 @@ current_file_function_operand (rtx op,
return (GET_CODE (op) == SYMBOL_REF
&& (DEFAULT_ABI != ABI_AIX || SYMBOL_REF_FUNCTION_P (op))
&& (SYMBOL_REF_LOCAL_P (op)
- || (op == XEXP (DECL_RTL (current_function_decl), 0))));
+ || (DECL_RTL_SET_P (current_function_decl)
+ && op == XEXP (DECL_RTL (current_function_decl), 0))));
}
/* Return 1 if this operand is a valid input for a move insn. */