diff options
author | Zdenek Dvorak <dvorakz@suse.cz> | 2006-07-26 18:47:28 +0200 |
---|---|---|
committer | Zdenek Dvorak <rakdver@gcc.gnu.org> | 2006-07-26 16:47:28 +0000 |
commit | e69e3d0e8b7ccc7ba990130dfd6ed909609ed971 (patch) | |
tree | 29c0cc7ebb01049429c54e789330710175ac3bf8 | |
parent | bf3fb7e43c8d1f22edda0c427a2ac194e8db104b (diff) | |
download | gcc-e69e3d0e8b7ccc7ba990130dfd6ed909609ed971.zip gcc-e69e3d0e8b7ccc7ba990130dfd6ed909609ed971.tar.gz gcc-e69e3d0e8b7ccc7ba990130dfd6ed909609ed971.tar.bz2 |
re PR target/27907 (ICE in expand_simple_unop, at optabs.c:2307)
PR rtl-optimization/27907
* expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and
FLOAT_TRUNCATE.
* gcc.c-torture/compile/pr27907.c: New test.
From-SVN: r115760
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/expr.c | 2 | ||||
-rw-r--r-- | gcc/testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/pr27907.c | 23 |
4 files changed, 36 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0ec948f..f4d3620 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2006-07-26 Zdenek Dvorak <dvorakz@suse.cz> + + PR rtl-optimization/27907 + * expr.c (force_operand): Use convert_move to handle FLOAT_EXTEND and + FLOAT_TRUNCATE. + 2006-07-25 Roger Sayle <roger@eyesopen.com> PR middle-end/28473 @@ -6024,6 +6024,8 @@ force_operand (rtx value, rtx target) case ZERO_EXTEND: case SIGN_EXTEND: case TRUNCATE: + case FLOAT_EXTEND: + case FLOAT_TRUNCATE: convert_move (target, op1, code == ZERO_EXTEND); return target; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 5f5bdcc..6f504ce 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2006-07-26 Zdenek Dvorak <dvorakz@suse.cz> + + PR rtl-optimization/27907 + * gcc.c-torture/compile/pr27907.c: New test. + 2006-07-26 Francois-Xavier Coudert <coudert@clipper.ens.fr> * gfortran.dg/mclock.f90: New test. diff --git a/gcc/testsuite/gcc.c-torture/compile/pr27907.c b/gcc/testsuite/gcc.c-torture/compile/pr27907.c new file mode 100644 index 0000000..575ac6a --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/compile/pr27907.c @@ -0,0 +1,23 @@ +typedef double fann_type; +typedef struct { } _G_fpos64_t; +struct fann_neuron +{ + fann_type value; +} +__attribute__ ((packed)); +struct fann_layer +{ + struct fann_neuron *last_neuron; +}; +struct fann +{ + struct fann_layer *first_layer; +}; +fann_run (struct fann *ann, fann_type * input) +{ + struct fann_layer *layer_it, *layer_it2, *last_layer; + for (layer_it = ann->first_layer + 1; layer_it != last_layer; layer_it++) + { + ((layer_it - 1)->last_neuron - 1)->value = 1; + } +} |