aboutsummaryrefslogtreecommitdiff
path: root/gcc/builtins.c
diff options
context:
space:
mode:
authorDJ Delorie <dj@redhat.com>2003-09-04 19:03:50 -0400
committerDJ Delorie <dj@gcc.gnu.org>2003-09-04 19:03:50 -0400
commit92f6864c060a2051cd5e13c527aaaf8e5e377a9e (patch)
tree7dc61157497f53d5f447813963c6e1bc1df6e6b4 /gcc/builtins.c
parentdc94d89ef7d5caddb1168053f688e69cdedbc7ee (diff)
downloadgcc-92f6864c060a2051cd5e13c527aaaf8e5e377a9e.zip
gcc-92f6864c060a2051cd5e13c527aaaf8e5e377a9e.tar.gz
gcc-92f6864c060a2051cd5e13c527aaaf8e5e377a9e.tar.bz2
builtins.c (apply_args_size): Guard against a NULL cfun.
* builtins.c (apply_args_size): Guard against a NULL cfun. (expand_builtin_apply_args_1): Likewise. (expand_builtin_apply_args_1): Likewise. (expand_builtin_apply): Likewise. From-SVN: r71095
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r--gcc/builtins.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 6fa0350..290fac49 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -941,7 +941,7 @@ apply_args_size (void)
/* The second value is the structure value address unless this is
passed as an "invisible" first argument. */
- if (targetm.calls.struct_value_rtx (TREE_TYPE (cfun->decl), 0))
+ if (targetm.calls.struct_value_rtx (cfun ? TREE_TYPE (cfun->decl) : 0, 0))
size += GET_MODE_SIZE (Pmode);
for (regno = 0; regno < FIRST_PSEUDO_REGISTER; regno++)
@@ -1116,7 +1116,7 @@ expand_builtin_apply_args_1 (void)
rtx registers;
int size, align, regno;
enum machine_mode mode;
- rtx struct_incoming_value = targetm.calls.struct_value_rtx (TREE_TYPE (cfun->decl), 1);
+ rtx struct_incoming_value = targetm.calls.struct_value_rtx (cfun ? TREE_TYPE (cfun->decl) : 0, 1);
/* Create a block where the arg-pointer, structure value address,
and argument registers can be saved. */
@@ -1124,7 +1124,7 @@ expand_builtin_apply_args_1 (void)
/* Walk past the arg-pointer and structure value address. */
size = GET_MODE_SIZE (Pmode);
- if (targetm.calls.struct_value_rtx (TREE_TYPE (cfun->decl), 0))
+ if (targetm.calls.struct_value_rtx (cfun ? TREE_TYPE (cfun->decl) : 0, 0))
size += GET_MODE_SIZE (Pmode);
/* Save each register used in calling a function to the block. */
@@ -1211,7 +1211,7 @@ expand_builtin_apply (rtx function, rtx arguments, rtx argsize)
rtx incoming_args, result, reg, dest, src, call_insn;
rtx old_stack_level = 0;
rtx call_fusage = 0;
- rtx struct_value = targetm.calls.struct_value_rtx (TREE_TYPE (cfun->decl), 0);
+ rtx struct_value = targetm.calls.struct_value_rtx (cfun ? TREE_TYPE (cfun->decl) : 0, 0);
#ifdef POINTERS_EXTEND_UNSIGNED
if (GET_MODE (arguments) != Pmode)