aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJeff Law <law@gcc.gnu.org>1999-06-28 01:24:42 -0600
committerJeff Law <law@gcc.gnu.org>1999-06-28 01:24:42 -0600
commitcfc2e87eae074713ac347e5d6e038210173fb025 (patch)
tree13fbfebef9fe9574ba973a9a6ccb79781a60844a /gcc
parentda621fd225057cb3746132dca0c2a4220e5ea8a8 (diff)
downloadgcc-cfc2e87eae074713ac347e5d6e038210173fb025.zip
gcc-cfc2e87eae074713ac347e5d6e038210173fb025.tar.gz
gcc-cfc2e87eae074713ac347e5d6e038210173fb025.tar.bz2
Opps. Wrong file the first time.
From-SVN: r27813
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/990628-1.c68
1 files changed, 46 insertions, 22 deletions
diff --git a/gcc/testsuite/gcc.c-torture/execute/990628-1.c b/gcc/testsuite/gcc.c-torture/execute/990628-1.c
index d2ef610..3b1342f 100644
--- a/gcc/testsuite/gcc.c-torture/execute/990628-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/990628-1.c
@@ -1,30 +1,54 @@
-#define TP_BSIZE 64
+#include <stdlib.h>
-char buf[2*TP_BSIZE];
-char (*nextblock)[TP_BSIZE] = (char (*)[TP_BSIZE]) buf;
+struct {
+ long sqlcode;
+} sqlca;
-union u_test {
- char dummy[TP_BSIZE];
- struct s_test {
- int a;
- int b;
- int c;
- } s_test;
-};
-main(int argc, char **argv)
+struct data_record {
+ int dummy;
+ int a[100];
+} *data_ptr, data_tmp;
+
+
+int
+num_records()
{
- int i;
- char dp[TP_BSIZE];
+ return 1;
+}
+
- for (i = 0; i < 2*TP_BSIZE; i++)
- buf[i] = '.';
- for (i = 0; i < TP_BSIZE; i++)
- dp[i] = 'a';
+void
+fetch()
+{
+ static int fetch_count;
+
+ memset(&data_tmp, 0x55, sizeof(data_tmp));
+ sqlca.sqlcode = (++fetch_count > 1 ? 100 : 0);
+}
- *(union u_test *)(*(nextblock)++) = *(union u_test *)dp;
- for (i = 0; i < 2*TP_BSIZE; i++)
- printf("%c%s", buf[i], (i % 64) == 63 ? "\n" : "");
- exit(0);
+void
+load_data() {
+ struct data_record *p;
+ int num = num_records();
+
+ data_ptr = malloc(num * sizeof(struct data_record));
+ memset(data_ptr, 0xaa, num * sizeof(struct data_record));
+
+ fetch();
+ p = data_ptr;
+ while (sqlca.sqlcode == 0) {
+ *p++ = data_tmp;
+ fetch();
+ }
+}
+
+
+main()
+{
+ load_data();
+ if (data_ptr[0].dummy != 0x55555555)
+ abort ();
+ exit (0);
}