re PR c/35526 (ICE on memcpy)
PR middle-end/35526 * expr.c (store_expr): Call emit_block_move if the mode of "temp" RTX is BLKmode. testsuite/ChangeLog: PR middle-end/35526 * g++.dg/torture/pr35526.C: New test. From-SVN: r133106
This commit is contained in:
parent
2d3ca8b721
commit
ab669042dc
@ -1,5 +1,11 @@
|
||||
2008-03-11 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR middle-end/35526
|
||||
* expr.c (store_expr): Call emit_block_move if the mode
|
||||
of "temp" RTX is BLKmode.
|
||||
|
||||
2008-03-11 Andrew Pinski <andrew_pinski@playstation.sony.com>
|
||||
Richard Guenther <rguenther@suse.de>
|
||||
Richard Guenther <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/31358
|
||||
* tree-ssa-loop-manip.c (create_iv): Call force_gimple_operand for
|
||||
@ -63,7 +69,7 @@
|
||||
to avoid conflicts.
|
||||
|
||||
2008-03-10 Paul Brook <paul@codesourcery.com>
|
||||
Mark Shinwell <shinwell@codesourcery.com>
|
||||
Mark Shinwell <shinwell@codesourcery.com>
|
||||
|
||||
* config/arm/cortex-r4.md: New.
|
||||
* config/arm/thumb2.md (divsi3, udivsi3): Annotate with
|
||||
@ -578,7 +584,7 @@
|
||||
__absvsi2, __absvDI2): Use unsigned arithmetic.
|
||||
|
||||
2008-03-02 Andi Kleen <ak@suse.de>
|
||||
Richard Guenther <rguenther@suse.de>
|
||||
Richard Guenther <rguenther@suse.de>
|
||||
|
||||
* struct-equiv.c: Remove file.
|
||||
* cfg_cleanup.c (condjump_equiv_p): Remove.
|
||||
|
@ -4654,7 +4654,8 @@ store_expr (tree exp, rtx target, int call_param_p, bool nontemporal)
|
||||
temp = convert_to_mode (GET_MODE (target), temp, unsignedp);
|
||||
emit_move_insn (target, temp);
|
||||
}
|
||||
else if (GET_MODE (target) == BLKmode)
|
||||
else if (GET_MODE (target) == BLKmode
|
||||
|| GET_MODE (temp) == BLKmode)
|
||||
emit_block_move (target, temp, expr_size (exp),
|
||||
(call_param_p
|
||||
? BLOCK_OP_CALL_PARM
|
||||
|
@ -1,3 +1,8 @@
|
||||
2008-03-11 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR middle-end/35526
|
||||
* g++.dg/torture/pr35526.C: New test.
|
||||
|
||||
2008-03-10 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR c++/35328
|
||||
|
18
gcc/testsuite/g++.dg/torture/pr35526.C
Normal file
18
gcc/testsuite/g++.dg/torture/pr35526.C
Normal file
@ -0,0 +1,18 @@
|
||||
/* { dg-do compile } */
|
||||
|
||||
extern void *memcpy (void *__dest, __const void *__src, __SIZE_TYPE__ __n);
|
||||
|
||||
char internal_crash_read_ip[] = { 0xb8 };
|
||||
|
||||
struct u_internal_crash_read_t
|
||||
{
|
||||
char ip[sizeof (internal_crash_read_ip)];
|
||||
}
|
||||
u_internal_crash_read;
|
||||
|
||||
void
|
||||
gSignalHandler (int psignalNr, int pinfo, int pctx)
|
||||
{
|
||||
memcpy (u_internal_crash_read.ip, internal_crash_read_ip,
|
||||
sizeof (internal_crash_read_ip));
|
||||
}
|
Loading…
Reference in New Issue
Block a user