OSDN Git Service

* gcc.c-torture/execute/990811-1.c: New test.
authorlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 11 Aug 1999 07:50:52 +0000 (07:50 +0000)
committerlaw <law@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 11 Aug 1999 07:50:52 +0000 (07:50 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28665 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/testsuite/ChangeLog
gcc/testsuite/gcc.c-torture/execute/990811-1.c [new file with mode: 0644]

index 2203f87..45cae86 100644 (file)
@@ -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  <nickc@cygnus.com>
 
        * 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 (file)
index 0000000..95e1da9
--- /dev/null
@@ -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);
+}