diff options
author | Jakub Jelinek <jakub@redhat.com> | 2001-04-04 17:14:24 +0200 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2001-04-04 17:14:24 +0200 |
commit | 347f344069b04a3bd333dc0341de7f1db2714af3 (patch) | |
tree | ec8563114db54fbaaa6a2bcedb46d6d00989d62a | |
parent | e59d6709eeadae59bde748d60539f33ae9ac89a4 (diff) | |
download | gcc-347f344069b04a3bd333dc0341de7f1db2714af3.zip gcc-347f344069b04a3bd333dc0341de7f1db2714af3.tar.gz gcc-347f344069b04a3bd333dc0341de7f1db2714af3.tar.bz2 |
recog.c (validate_replace_rtx_1): Instead of aborting just make sure the change won't be validated.
* recog.c (validate_replace_rtx_1): Instead of aborting just make
sure the change won't be validated.
* gcc.c-torture/compile/20010326-1.c: New test.
From-SVN: r41083
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/recog.c | 8 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20010326-1.c | 16 |
4 files changed, 32 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d99ef4a..5f23f3c 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-04-04 Jakub Jelinek <jakub@redhat.com> + + * recog.c (validate_replace_rtx_1): Instead of aborting just make + sure the change won't be validated. + Wed Apr 4 00:45:38 EDT 2001 John Wehle (john@feith.com) * rtl.h (set_noop_p): Declare. diff --git a/gcc/recog.c b/gcc/recog.c index bc7c712..bbecd5b 100644 --- a/gcc/recog.c +++ b/gcc/recog.c @@ -625,7 +625,13 @@ validate_replace_rtx_1 (loc, from, to, object) inner_mode = SImode; if (GET_MODE_CLASS (mode) != MODE_INT) - abort (); + { + /* Substitute in something that we know won't be + recognized. */ + to = gen_rtx_CLOBBER (GET_MODE (x), const0_rtx); + validate_change (object, loc, to, 1); + return; + } if (BYTES_BIG_ENDIAN || WORDS_BIG_ENDIAN) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index c72d2de..225f928 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +2001-04-04 Jakub Jelinek <jakub@redhat.com> + + * gcc.c-torture/compile/20010326-1.c: New test. + 2001-04-03 Alexandre Oliva <aoliva@redhat.com> * g++.old-deja/g++.ext/instantiate1.C: Adjust to accommodate diff --git a/gcc/testsuite/gcc.c-torture/compile/20010326-1.c b/gcc/testsuite/gcc.c-torture/compile/20010326-1.c new file mode 100644 index 0000000..43acf45 --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/20010326-1.c @@ -0,0 +1,16 @@ +float d; +int e, f; + +void foo (void) +{ + struct { float u, v; } a = {0.0, 0.0}; + float b; + int c; + + c = e; + if (c == 0) + c = f; + b = d; + if (a.v < b) + a.v = b; +} |