diff options
author | YamaArashi <shadow962@live.com> | 2016-01-06 01:47:28 -0800 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-01-06 01:47:28 -0800 |
commit | be8b04496302184c6e8f04d6179f9c3afc50aeb6 (patch) | |
tree | 726e2468c0c07add773c0dbd86ab6386844259ae /gcc/testsuite/gcc.wendy/gnu28.c |
initial commit
Diffstat (limited to 'gcc/testsuite/gcc.wendy/gnu28.c')
-rwxr-xr-x | gcc/testsuite/gcc.wendy/gnu28.c | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.wendy/gnu28.c b/gcc/testsuite/gcc.wendy/gnu28.c new file mode 100755 index 0000000..943fda8 --- /dev/null +++ b/gcc/testsuite/gcc.wendy/gnu28.c @@ -0,0 +1,63 @@ +/* +From: uunet!mcvax!sor.inria.fr!tiemann (Mike Tiemann) +Date: Sun, 4 Sep 88 11:15:27 +0100 + +I got all your tests working (except str1597a.c), and the compiler +bootstrapping itself, and I thought I was done. Then I remembered +*my* favorite test program...which used to work, but now fails again. +Here it is, for your collecting joy: + +[Altered in obvious ways to avoid using function prototypes -- gnu] +*/ + +/* a reasonably sized structure. */ +typedef struct foo +{ + int x[57]; +} foo; + +int bad = 0; + +foo sum (x, y) + foo x; foo y; +{ + foo s; + int i; + + for (i = 0; i < 57; i++) + { + if (x.x[i] != 1) {printf("sum x[%d] = %d\n", i, x.x[i]); bad++;} + if (y.x[i] != 2) {printf("sum y[%d] = %d\n", i, y.x[i]); bad++;} + s.x[i] = x.x[i] + y.x[i]; + } + return s; +} + +foo init (val) + int val; +{ + foo s; + int i; + + for (i = 0; i < 57; i++) + s.x[i] = val; + return s; +} + +main () +{ + foo s; + foo t; + int i; + + s = sum (init (1), init (2)); + t = sum (init (1), init (2)); + + for (i = 0; i < 57; i++) + if (s.x[i] != 3 || t.x[i] != 3) { + printf ("failure at %i\n", i); + bad++; + } + if (bad) printf ("Failed %d ways.\n", bad); + else printf ("Test passed.\n"); +} |