aboutsummaryrefslogtreecommitdiff
path: root/gcc/expr.h
diff options
context:
space:
mode:
authorEric Botcazou <ebotcazou@adacore.com>2012-10-20 21:00:23 +0000
committerEric Botcazou <ebotcazou@gcc.gnu.org>2012-10-20 21:00:23 +0000
commit929634d86bcd5007915a67ef38e50a56e0e6bfd9 (patch)
tree98407a614491ba2e6e3f90bd531334efd0366b60 /gcc/expr.h
parente598c332d81d419ecdfce59051bb4657c685e53f (diff)
downloadgcc-929634d86bcd5007915a67ef38e50a56e0e6bfd9.zip
gcc-929634d86bcd5007915a67ef38e50a56e0e6bfd9.tar.gz
gcc-929634d86bcd5007915a67ef38e50a56e0e6bfd9.tar.bz2
re PR middle-end/54315 (unnecessary copy of return value for union)
PR rtl-optimization/54315 * calls.c (expand_call): Don't deal specifically with BLKmode values returned in naked registers. * expr.h (copy_blkmode_from_reg): Adjust prototype. * expr.c (copy_blkmode_from_reg): Rename first parameter into TARGET and make it required. Assert that SRCREG hasn't BLKmode. Add a couple of short-circuits for common cases and be prepared for sub-word registers. (expand_assignment): Call copy_blkmode_from_reg for BLKmode values returned in naked registers. (store_expr): Likewise. (store_field): Likewise. From-SVN: r192641
Diffstat (limited to 'gcc/expr.h')
-rw-r--r--gcc/expr.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/gcc/expr.h b/gcc/expr.h
index 562ffe0..0f5e854 100644
--- a/gcc/expr.h
+++ b/gcc/expr.h
@@ -335,7 +335,7 @@ extern rtx emit_group_move_into_temps (rtx);
extern void emit_group_store (rtx, rtx, tree, int);
/* Copy BLKmode object from a set of registers. */
-extern rtx copy_blkmode_from_reg (rtx, rtx, tree);
+extern void copy_blkmode_from_reg (rtx, rtx, tree);
/* Mark REG as holding a parameter for the next CALL_INSN.
Mode is TYPE_MODE of the non-promoted parameter, or VOIDmode. */