aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.c
diff options
context:
space:
mode:
authorAlexander Basov <coohpt@gmail.com>2015-08-03 19:34:31 +0000
committerJeff Law <law@gcc.gnu.org>2015-08-03 13:34:31 -0600
commitde0fb9055c0928960ecc8e3a5fe990728611c3ca (patch)
treea36a9bce7ffcf52891f3053b06bef0050c844f81 /gcc/expr.c
parentf2fef1c8a3a93f320e9842d09a0ad44d0157281b (diff)
downloadgcc-de0fb9055c0928960ecc8e3a5fe990728611c3ca.zip
gcc-de0fb9055c0928960ecc8e3a5fe990728611c3ca.tar.gz
gcc-de0fb9055c0928960ecc8e3a5fe990728611c3ca.tar.bz2
re PR middle-end/64744 (ARM: gcc internal compiler error: in store_field, at expr.c:6659)
PR middle-end/64744 PR middle-end/48470 PR middle-end/43404 * cfgexpand.c (expand_one_var): Add check if stack is going to be used in naked function. * expr.c (expand_expr_addr_expr_1): Remove excess checking whether expression should not reside in MEM. * function.c (use_register_for_decl): Do not use registers for non-register things (volatile, float, BLKMode) in naked functions. PR middle-end/64744 PR middle-end/48470 PR middle-end/43404 * gcc.target/arm/pr43404.c : New testcase. * gcc.target/arm/pr48470.c : New testcase. * gcc.target/arm/pr64744-1.c : New testcase. * gcc.target/arm/pr64744-2.c : New testcase. From-SVN: r226528
Diffstat (limited to 'gcc/expr.c')
-rw-r--r--gcc/expr.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/gcc/expr.c b/gcc/expr.c
index 46084c2..31b4573 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -7603,15 +7603,7 @@ expand_expr_addr_expr_1 (tree exp, rtx target, machine_mode tmode,
marked TREE_ADDRESSABLE, which will be either a front-end
or a tree optimizer bug. */
- if (TREE_ADDRESSABLE (exp)
- && ! MEM_P (result)
- && ! targetm.calls.allocate_stack_slots_for_args ())
- {
- error ("local frame unavailable (naked function?)");
- return result;
- }
- else
- gcc_assert (MEM_P (result));
+ gcc_assert (MEM_P (result));
result = XEXP (result, 0);
/* ??? Is this needed anymore? */