diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2006-01-11 13:45:03 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@gcc.gnu.org> | 2006-01-11 13:45:03 +0000 |
commit | 29a6dbbb48b0f2204bf94b8911dc43422903d328 (patch) | |
tree | 831f37d95525c4a3639d1db10cd25f47fc1b5b02 | |
parent | 9c5143260e97429727cd40ad3743924d78fb0f72 (diff) | |
download | gcc-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/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/testsuite/gcc.dg/torture/pr25706-1.c | 35 |
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; + }); +} |