summaryrefslogtreecommitdiff
path: root/gcc/testsuite/gcc.c-torture/compile
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/compile')
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20010226-1.c22
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20010227-1.c6
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20010426-1.c19
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20010510-1.c3
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20010605-3.c20
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20010824-1.c7
6 files changed, 77 insertions, 0 deletions
diff --git a/gcc/testsuite/gcc.c-torture/compile/20010226-1.c b/gcc/testsuite/gcc.c-torture/compile/20010226-1.c
new file mode 100644
index 00000000000..c06be53dc52
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20010226-1.c
@@ -0,0 +1,22 @@
+void f1 (void *);
+void f3 (void *, void (*)(void *));
+void f2 (void *);
+
+int foo (void *a, int b)
+{
+ if (!b)
+ {
+ f1 (a);
+ return 1;
+ }
+ if (b)
+ {
+ void bar (void *c)
+ {
+ if (c == a)
+ f2 (c);
+ }
+ f3 (a, bar);
+ }
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20010227-1.c b/gcc/testsuite/gcc.c-torture/compile/20010227-1.c
new file mode 100644
index 00000000000..767cb0d1c2e
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20010227-1.c
@@ -0,0 +1,6 @@
+void foo (void)
+{
+ double a = 0.0;
+ double b = a;
+ if (&b != &a);
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20010426-1.c b/gcc/testsuite/gcc.c-torture/compile/20010426-1.c
new file mode 100644
index 00000000000..356818f9ec8
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20010426-1.c
@@ -0,0 +1,19 @@
+struct { char *m; long n; } a[20];
+int b = 20, c;
+void bar(void) __attribute__((__noreturn__));
+
+int
+foo(int x)
+{
+ int i;
+
+ for (i = 0; i < x; i++)
+ {
+ a[0].m = "a"; a[0].n = 10; c=1;
+ a[c].m = "b"; a[c].n = 32; c++;
+ if (c >= b) bar ();
+ a[c].m = "c"; a[c].n = 80; c++;
+ if (c >= b) bar ();
+ }
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20010510-1.c b/gcc/testsuite/gcc.c-torture/compile/20010510-1.c
new file mode 100644
index 00000000000..23d44f8642c
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20010510-1.c
@@ -0,0 +1,3 @@
+typedef char *ident;
+#ident "This is ident"
+ident i;
diff --git a/gcc/testsuite/gcc.c-torture/compile/20010605-3.c b/gcc/testsuite/gcc.c-torture/compile/20010605-3.c
new file mode 100644
index 00000000000..a43c0b1e462
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20010605-3.c
@@ -0,0 +1,20 @@
+struct A { unsigned long buf[100]; };
+int foo(unsigned int *x)
+{
+ unsigned int a;
+
+ if (!x)
+ return -22;
+
+#ifdef __ia64__
+ if (({
+ register long b asm ("r8") = 0;
+ register long c asm ("r9") = 0;
+ asm ("" : "=r"(c), "=r"(b) : "m"(*(struct A *)x), "1"(b));
+ a = (unsigned int) c;
+ b; }))
+ return -14;
+#endif
+
+ return 0;
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20010824-1.c b/gcc/testsuite/gcc.c-torture/compile/20010824-1.c
new file mode 100644
index 00000000000..8e67722b960
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20010824-1.c
@@ -0,0 +1,7 @@
+void f(int n)
+{
+bugcauser:
+ if (n != 0)
+ f(n-1);
+ return;
+}