re PR c/8439 (empty struct causes crash)

PR c/8439
	* recog.c (validate_replace_rtx_1) [PLUS]: Simplify only
	if there is something new to be simplified.

From-SVN: r59005
This commit is contained in:
Eric Botcazou 2002-11-11 06:38:22 +01:00 committed by Mark Mitchell
parent 5aad4daaba
commit 45ed7228db
4 changed files with 23 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2002-11-09 Eric Botcazou <ebotcazou@libertysurf.fr>
PR c/8439
* recog.c (validate_replace_rtx_1) [PLUS]: Simplify only
if there is something new to be simplified.
2002-11-10 H.J. Lu <hjl@gnu.org>
* calls.c (PUSH_ARGS_REVERSED): Define only if not defined.

View File

@ -522,10 +522,10 @@ validate_replace_rtx_1 (loc, from, to, object)
{
case PLUS:
/* If we have a PLUS whose second operand is now a CONST_INT, use
plus_constant to try to simplify it.
simplify_gen_binary to try to simplify it.
??? We may want later to remove this, once simplification is
separated from this function. */
if (GET_CODE (XEXP (x, 1)) == CONST_INT)
if (GET_CODE (XEXP (x, 1)) == CONST_INT && XEXP (x, 1) == to)
validate_change (object, loc,
simplify_gen_binary
(PLUS, GET_MODE (x), XEXP (x, 0), XEXP (x, 1)), 1);

View File

@ -1,3 +1,8 @@
2002-11-09 Eric Botcazou <ebotcazou@libertysurf.fr>
PR c/8439
* gcc.dg/testsuite/20021110.c: New test.
2002-11-10 Mark Mitchell <mark@codesourcery.com>
* g++.dg/abi/vthunk3.C: Run only on x86.

View File

@ -0,0 +1,10 @@
/* PR c/8439 */
/* Verify that GCC properly handles null increments. */
struct empty {
};
void foo(struct empty *p)
{
p++;
}