diff options
Diffstat (limited to 'gcc/testsuite/gcc.c-torture/compile')
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20010226-1.c | 22 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20010227-1.c | 6 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20010426-1.c | 19 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20010510-1.c | 3 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20010605-3.c | 20 | ||||
-rw-r--r-- | gcc/testsuite/gcc.c-torture/compile/20010824-1.c | 7 |
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; +} |