aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@axis.com>2006-01-11 13:45:03 +0000
committerHans-Peter Nilsson <hp@gcc.gnu.org>2006-01-11 13:45:03 +0000
commit29a6dbbb48b0f2204bf94b8911dc43422903d328 (patch)
tree831f37d95525c4a3639d1db10cd25f47fc1b5b02
parent9c5143260e97429727cd40ad3743924d78fb0f72 (diff)
downloadgcc-29a6dbbb48b0f2204bf94b8911dc43422903d328.zip
gcc-29a6dbbb48b0f2204bf94b8911dc43422903d328.tar.gz
gcc-29a6dbbb48b0f2204bf94b8911dc43422903d328.tar.bz2
re PR target/25706 (invalid asm: "mov")
PR target/25706 * gcc.dg/torture/pr25706-1.c: New test. From-SVN: r109585
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/torture/pr25706-1.c35
2 files changed, 40 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index a91cd82..202512c 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2006-01-11 Hans-Peter Nilsson <hp@axis.com>
+
+ PR target/25706
+ * gcc.dg/torture/pr25706-1.c: New test.
+
2006-01-11 Paolo Bonzini <bonzini@gnu.org>
PR tree-optimization/23109
diff --git a/gcc/testsuite/gcc.dg/torture/pr25706-1.c b/gcc/testsuite/gcc.dg/torture/pr25706-1.c
new file mode 100644
index 0000000..49bb327
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/torture/pr25706-1.c
@@ -0,0 +1,35 @@
+/* { dg-do assemble } */
+/* Invalid assembly generated due to port bug. */
+struct tcp_opt {
+ unsigned int window_clamp;
+ unsigned int rcv_ssthresh;
+ unsigned short advmss;
+};
+extern int sysctl_tcp_app_win;
+void tcp_init_buffer_space(struct tcp_opt *tp, int maxwin)
+{
+ if (tp->window_clamp >= maxwin)
+ if (sysctl_tcp_app_win && maxwin>4*tp->advmss)
+ tp->window_clamp
+ = ({
+ int _x = maxwin;
+ typeof(4*tp->advmss) _y = (4*tp->advmss);
+ _x > _y ? _x : _y;
+ });
+
+ if (sysctl_tcp_app_win
+ && tp->window_clamp > 2*tp->advmss
+ && tp->window_clamp + tp->advmss > maxwin)
+ tp->window_clamp
+ = ({
+ unsigned short _x = maxwin;
+ unsigned short _y = (maxwin-tp->advmss);
+ _x > _y ? _x : _y;
+ });
+ tp->rcv_ssthresh
+ = ({
+ unsigned int _x = (tp->rcv_ssthresh);
+ unsigned int _y = (tp->window_clamp);
+ _x < _y ? _x : _y;
+ });
+}