diff options
author | DJ Delorie <dj@redhat.com> | 2003-09-04 19:03:50 -0400 |
---|---|---|
committer | DJ Delorie <dj@gcc.gnu.org> | 2003-09-04 19:03:50 -0400 |
commit | 92f6864c060a2051cd5e13c527aaaf8e5e377a9e (patch) | |
tree | 7dc61157497f53d5f447813963c6e1bc1df6e6b4 /gcc/builtins.c | |
parent | dc94d89ef7d5caddb1168053f688e69cdedbc7ee (diff) | |
download | gcc-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.c | 8 |
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) |