diff options
author | Eric Botcazou <ebotcazou@libertysurf.fr> | 2002-11-11 06:38:22 +0100 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2002-11-11 05:38:22 +0000 |
commit | 45ed7228db8501bfe840fe8b5adce1b01c9eefa2 (patch) | |
tree | 40da459ba25373c9a9c3df50aa7ee84d2b280291 /gcc | |
parent | 5aad4daaba1a304a06dacb53793f71138b6bdcd7 (diff) | |
download | gcc-45ed7228db8501bfe840fe8b5adce1b01c9eefa2.zip gcc-45ed7228db8501bfe840fe8b5adce1b01c9eefa2.tar.gz gcc-45ed7228db8501bfe840fe8b5adce1b01c9eefa2.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/recog.c | 4 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/20021110.c | 10 |
4 files changed, 23 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 308e817..b29de89 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. diff --git a/gcc/recog.c b/gcc/recog.c index b40867b..649f366 100644 --- a/gcc/recog.c +++ b/gcc/recog.c @@ -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); diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e67e784..99af5fe 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -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. diff --git a/gcc/testsuite/gcc.dg/20021110.c b/gcc/testsuite/gcc.dg/20021110.c new file mode 100644 index 0000000..dd2aa7e --- /dev/null +++ b/gcc/testsuite/gcc.dg/20021110.c @@ -0,0 +1,10 @@ +/* PR c/8439 */ +/* Verify that GCC properly handles null increments. */ + +struct empty { +}; + +void foo(struct empty *p) +{ + p++; +} |