aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/expr.c2
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr27907.c23
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
diff --git a/gcc/expr.c b/gcc/expr.c
index 48ec0ef..a0dc9c3 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -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;
+ }
+}