From: Richard Earnshaw Date: Wed, 11 Aug 1999 07:50:52 +0000 (+0000) Subject: * gcc.c-torture/execute/990811-1.c: New test. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=0dcda0020345c2c47dac425a33c8a7708ce759e8;p=gcc.git * gcc.c-torture/execute/990811-1.c: New test. From-SVN: r28665 --- diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 2203f8706d5..45cae8676e6 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,7 @@ +1999-08-11 Richard Earnshaw (rearnsha@arm.com) + + * gcc.c-torture/execute/990811-1.c: New test. + 1999-08-09 Nick Clifton * gcc.misc-tests/m-un-2.c: Expect the warnings for all builds, not diff --git a/gcc/testsuite/gcc.c-torture/execute/990811-1.c b/gcc/testsuite/gcc.c-torture/execute/990811-1.c new file mode 100644 index 00000000000..95e1da9cdfa --- /dev/null +++ b/gcc/testsuite/gcc.c-torture/execute/990811-1.c @@ -0,0 +1,31 @@ +struct s {long a; int b;}; + +int foo(int x, void *y) +{ + switch(x) { + case 0: return ((struct s*)y)->a; + case 1: return *(signed char*)y; + case 2: return *(short*)y; + } + abort(); +} + +int main () +{ + struct s s; + short sh[10]; + signed char c[10]; + int i; + + s.a = 1; + s.b = 2; + for (i = 0; i < 10; i++) { + sh[i] = i; + c[i] = i; + } + + if (foo(0, &s) != 1) abort(); + if (foo(1, c+3) != 3) abort(); + if (foo(2, sh+3) != 3) abort(); + exit(0); +}