OpenCores
URL https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk

Subversion Repositories openrisc_me

Compare Revisions

  • This comparison shows the changes necessary to convert path
    /openrisc/trunk/gnu-src/gcc-4.2.2/gcc/testsuite/gcc.c-torture/compile
    from Rev 149 to Rev 154
    Reverse comparison

Rev 149 → Rev 154

/simd-5.c
0,0 → 1,12
#define vector64 __attribute__((vector_size(8)))
 
main(){
 
vector64 int c;
vector64 int a = {1, -1};
vector64 int b = {2, -2};
c = -a + b*b*(-1LL);
/* c is now {5, 3} */
 
printf("result is %llx\n", (long long)c);
}
simd-5.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 931203-1.c =================================================================== --- 931203-1.c (nonexistent) +++ 931203-1.c (revision 154) @@ -0,0 +1,5 @@ +v (a, i) + unsigned *a, i; +{ + a++[i] = 0; +}
931203-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030716-1.c =================================================================== --- 20030716-1.c (nonexistent) +++ 20030716-1.c (revision 154) @@ -0,0 +1,7 @@ +void baz(int i); + +void foo(int i, int A[i+1]) +{ + int j=A[i]; + void bar() { baz(A[i]); } +}
20030716-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000718.c =================================================================== --- 20000718.c (nonexistent) +++ 20000718.c (revision 154) @@ -0,0 +1,14 @@ +extern double foo(double, double); +extern void bar(float*, int*); + +void +baz(int* arg) +{ + float tmp = (float)foo(2.0,1.0); + unsigned i; + short junk[64]; + + for (i=0; i<10; i++, arg++) { + bar(&tmp, arg); + } +}
20000718.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: init-3.c =================================================================== --- init-3.c (nonexistent) +++ init-3.c (revision 154) @@ -0,0 +1,11 @@ +struct empty { }; +struct something { + int spacer; + struct empty foo; + int bar; +}; + +struct something X = { + foo: { }, + bar: 1, +};
init-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 940712-1.c =================================================================== --- 940712-1.c (nonexistent) +++ 940712-1.c (revision 154) @@ -0,0 +1,4 @@ +f () +{ + return (*(volatile unsigned int *)8000) / 3; +}
940712-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: struct-non-lval-1.c =================================================================== --- struct-non-lval-1.c (nonexistent) +++ struct-non-lval-1.c (revision 154) @@ -0,0 +1,7 @@ +/* Bug c/17855. */ +struct foo {char x, y, z[2];}; +struct foo f(); +void bar(int baz) +{ + f().z[baz] = 1; +}
struct-non-lval-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920617-2.c =================================================================== --- 920617-2.c (nonexistent) +++ 920617-2.c (revision 154) @@ -0,0 +1 @@ +f(a,b,c,d)float a[],d;int b[],c;{}
920617-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 950816-2.c =================================================================== --- 950816-2.c (nonexistent) +++ 950816-2.c (revision 154) @@ -0,0 +1,8 @@ +f () +{ + int i; + float a,b,c; + unsigned char val[2]; + i = func (&c); + val[0] = c < a ? a : c >= 1.0 ? b : c; +}
950816-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: funcptr-1.c =================================================================== --- funcptr-1.c (nonexistent) +++ funcptr-1.c (revision 154) @@ -0,0 +1,19 @@ +extern int (*gp)(const char*); + +int +g (const char* d) +{ + printf ("g"); + return 0; +} + +f () +{ + int errcnt=0; + + if (gp != g) + { + printf ("f"); + errcnt++; + } +}
funcptr-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: nested-2.c =================================================================== --- nested-2.c (nonexistent) +++ nested-2.c (revision 154) @@ -0,0 +1,16 @@ +/* PR 21105 */ + +void +CheckFile () +{ + char tagname[10]; + char *a = tagname; + + int validate () + { + return (a == tagname + 4); + } + + if (a == tagname) + validate (); +}
nested-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr21761.c =================================================================== --- pr21761.c (nonexistent) +++ pr21761.c (revision 154) @@ -0,0 +1,9 @@ +void f1() +{ + long bit=0, exponent; + exponent = -exponent; + for (bit = 1; exponent; bit <<= 1) + if (exponent & bit) + exponent ^= bit; +} +
pr21761.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr23445.c =================================================================== --- pr23445.c (nonexistent) +++ pr23445.c (revision 154) @@ -0,0 +1,10 @@ + struct buffer_head { + char *b_data; + }; + void asfs_deletebnode( struct buffer_head *bhsec) { + if (bhsec == 0) { + void *bnc2 = (void *) bhsec->b_data; + if (bnc2) return; + if (bhsec) __brelse(bhsec); + } + }
pr23445.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020120-1.c =================================================================== --- 20020120-1.c (nonexistent) +++ 20020120-1.c (revision 154) @@ -0,0 +1,55 @@ +/* This ICEed on IA-32 with -O2 -mcpu=i386, because reload was trying + to reload into %sil register. */ + +struct A +{ + void *a; + unsigned int b, c, d; +}; + +struct B +{ + struct A *e; +}; + +void bar (struct A *); +void baz (struct A *); + +static inline unsigned int +inl (unsigned int v, unsigned char w, unsigned char x, unsigned char y, + unsigned char z) +{ + switch (v) + { + case 2: + return ((w & 0xf8) << 8) | ((x & 0xfc) << 3) | ((y & 0xf8) >> 3); + case 4: + return (z << 24) | (w << 16) | (x << 8) | y; + default: + return 0; + } +} + +void foo (struct B *x, int y, const float *z) +{ + struct A *a = x->e; + + if (y) + { + if (x->e->a) + bar (x->e); + } + else + { + unsigned char c[4]; + unsigned int b; + + c[0] = z[0]; c[1] = z[1]; c[2] = z[2]; c[3] = z[3]; + b = inl (a->b, c[0], c[1], c[2], c[3] ); + if (a->a) + bar (a); + else + baz (a); + a->c = b; + } +}
20020120-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20001212-1.c =================================================================== --- 20001212-1.c (nonexistent) +++ 20001212-1.c (revision 154) @@ -0,0 +1,10 @@ +typedef struct +{ + long double l; +} ld; + +ld a (ld x, ld y) +{ + ld b; + b.l = x.l + y.l; +}
20001212-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050122-1.c =================================================================== --- 20050122-1.c (nonexistent) +++ 20050122-1.c (revision 154) @@ -0,0 +1,12 @@ +/* From PR 19484. */ +extern void foo (void) __attribute__((noreturn)); +int n; + +void +g (void) +{ + void (*f) (void) = foo; + if (n) + f (); + n = 1; +}
20050122-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040303-2.c =================================================================== --- 20040303-2.c (nonexistent) +++ 20040303-2.c (revision 154) @@ -0,0 +1,23 @@ +void abort(void); +int x, y; +void init_xy(void); +void +test4(void) +{ + init_xy(); + _Bool iftemp0; + int x1 = x; + _Bool iftemp1; + x1++; + if (x1 != 3) + { + iftemp1 = 1; + goto endfirstif; + } + iftemp1 = 0; + endfirstif: + iftemp0 = iftemp1; + if (iftemp0) + abort(); +} +
20040303-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040124-1.c =================================================================== --- 20040124-1.c (nonexistent) +++ 20040124-1.c (revision 154) @@ -0,0 +1,22 @@ +int +f1 (int a, int b) +{ + int i, j, k; + + switch (b) + { + case (-9): + j = 4; + break; + case (-10): + j = 10; + break; + case (-8): + j = 15; + break; + } + + i = f2 (f3 (b == (-9) ? k : a), j); + + return 0; +}
20040124-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr27907.c =================================================================== --- pr27907.c (nonexistent) +++ pr27907.c (revision 154) @@ -0,0 +1,23 @@ +typedef double fann_type; +typedef struct { } _G_fpos64_t; +struct fann_neuron +{ + fann_type value; +} +__attribute__ ((packed)); +struct fann_layer +{ + struct fann_neuron *last_neuron; +}; +struct fann +{ + struct fann_layer *first_layer; +}; +fann_run (struct fann *ann, fann_type * input) +{ + struct fann_layer *layer_it, *layer_it2, *last_layer; + for (layer_it = ann->first_layer + 1; layer_it != last_layer; layer_it++) + { + ((layer_it - 1)->last_neuron - 1)->value = 1; + } +}
pr27907.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030323-1.c =================================================================== --- 20030323-1.c (nonexistent) +++ 20030323-1.c (revision 154) @@ -0,0 +1,17 @@ +/* PR c/10178. The following code would ICE because we didn't check for + overflow when computing the range of the switch-statment, and therefore + decided it could be implemented using bit-tests. */ + +int +banana(long citron) +{ + switch (citron) { + case 0x80000000: + case 0x40000: + case 0x40001: + return 1; + break; + } + return 0; +} +
20030323-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000804-1.c =================================================================== --- 20000804-1.c (nonexistent) +++ 20000804-1.c (revision 154) @@ -0,0 +1,19 @@ +/* This does not work on m68hc11 or h8300 due to the use of an asm + statement to force a 'long long' (64-bits) to go in a register. */ +/* { dg-do assemble { xfail m6811-*-* m6812-*-* h8300-*-* } } */ +/* { dg-skip-if "" { { i?86-*-* x86_64-*-* } && ilp32 } { "-fpic" "-fPIC" } { "" } } */ +/* { dg-skip-if "PIC default" { i?86-*-darwin* } { "*" } { "" } } */ +/* { dg-skip-if "No 64-bit registers" { m32c-*-* } { "*" } { "" } } */ + +/* Copyright (C) 2000, 2003 Free Software Foundation */ +__complex__ long long f () +{ + int i[99]; + __complex__ long long v; + + v += f (); + asm("": "+r" (v) : "r" (0), "r" (1)); + v = 2; + return v; + g (&v); +}
20000804-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010605-1.c =================================================================== --- 20010605-1.c (nonexistent) +++ 20010605-1.c (revision 154) @@ -0,0 +1,15 @@ +int +main (int argc, char **argv) +{ + int size = 10; + + typedef struct { + char val[size]; + } block; + block retframe_block() + { + return *(block*)0; + } + + return 0; +}
20010605-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010327-1.c =================================================================== --- 20010327-1.c (nonexistent) +++ 20010327-1.c (revision 154) @@ -0,0 +1,12 @@ +/* { dg-skip-if "non-SI pointers" { m32c-*-* } { "*" } { "" } } */ + +/* This testcase tests whether GCC can produce static initialized data + that references addresses of size 'unsigned long', even if that's not + the same as __SIZE_TYPE__. (See 20011114-1.c for the same test of + size __SIZE_TYPE__.) + + Some rare environments might not have the required relocs to support + this; they should have this test disabled in the .x file. */ + +extern void _text; +static unsigned long x = (unsigned long) &_text - 0x10000000L - 1;
20010327-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010408-1.c =================================================================== --- 20010408-1.c (nonexistent) +++ 20010408-1.c (revision 154) @@ -0,0 +1,77 @@ +extern struct win *windows, *wtab[]; +struct win +{ + struct win *w_next; +}; + +struct auser; + +struct comm +{ + char *name; + int flags; +}; + +extern struct comm comms[]; + +extern int WindowByNoN (char *); +extern int FindCommnr (char *); +extern int AclSetPermCmd (struct auser *, char *, struct comm *); +extern int AclSetPermWin (struct auser *, struct auser *, char *, struct win *); + + +int + AclSetPerm(uu, u, mode, s) + struct auser *uu, *u; +char *mode, *s; +{ + struct win *w; + int i; + char *p, ch; + + do + { + } + while (0); + + while (*s) + { + switch (*s) + { + case '*': + return AclSetPerm(uu, u, mode, "#?"); + case '#': + if (uu) + AclSetPermWin(uu, u, mode, (struct win *)1); + else + for (w = windows; w; w = w->w_next) + AclSetPermWin((struct auser *)0, u, mode, w); + s++; + break; + case '?': + if (uu) + AclSetPermWin(uu, u, mode, (struct win *)0); + else + for (i = 0; i <= 174; i++) + AclSetPermCmd(u, mode, &comms[i]); + s++; + break; + default: + for (p = s; *p && *p != ' ' && *p != '\t' && *p != ','; p++) + ; + if ((ch = *p)) + *p++ = '\0'; + if ((i = FindCommnr(s)) != -1) + AclSetPermCmd(u, mode, &comms[i]); + else if (((i = WindowByNoN(s)) >= 0) && wtab[i]) + AclSetPermWin((struct auser *)0, u, mode, wtab[i]); + else + return -1; + if (ch) + p[-1] = ch; + s = p; + } + } + + return 0; +}
20010408-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20011218-1.c =================================================================== --- 20011218-1.c (nonexistent) +++ 20011218-1.c (revision 154) @@ -0,0 +1,16 @@ +/* This testcase failed on Alpha at -O2 because $27 hard register + for the indirect call was exposed too early and reload couldn't + allocate it for multiplication and division. */ + +struct S { + int a, b; + void (*f) (long, int); +}; + +void foo (struct S *x) +{ + long c = x->a * 50; + c /= (long) x->b; + c *= (long) x->b; + x->f (c, 0); +}
20011218-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000329-1.c =================================================================== --- 20000329-1.c (nonexistent) +++ 20000329-1.c (revision 154) @@ -0,0 +1,40 @@ +int giop_tx_big_endian; + +inline +void +giop_encode_ulong (unsigned long i, char *buf) +{ + if (giop_tx_big_endian) + { + *(unsigned long *) buf = i; + } + else + { + *buf++ = i & 0xff; + *buf++ = (i >> 8) & 0xff; + *buf++ = (i >> 16) & 0xff; + *buf = (i >> 24) & 0xff; + } +} + + + +static +double +time_giop_encode (unsigned long l) +{ + int c; + char buf[4]; + + for (c = 0; c < (512 * 1024 * 1024); ++c) + { + giop_encode_ulong (l, buf); + } +} + +int +main (int ac, char *av[]) +{ + giop_tx_big_endian = 1; + time_giop_encode (0); +}
20000329-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20011119-2.c =================================================================== --- 20011119-2.c (nonexistent) +++ 20011119-2.c (revision 154) @@ -0,0 +1,12 @@ +/* { dg-require-weak "" } */ +/* { dg-require-alias "" } */ +#define ASMNAME(cname) ASMNAME2 (__USER_LABEL_PREFIX__, cname) +#define ASMNAME2(prefix, cname) STRING (prefix) cname +#define STRING(x) #x + +extern inline int foo (void) { return 23; } +int bar (void) { return foo (); } +extern int foo (void) __attribute__ ((weak, alias ("xxx"))); +int baz (void) { return foo (); } +int xxx(void) __asm__(ASMNAME ("xxx")); +int xxx(void) { return 23; }
20011119-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050802-1.c =================================================================== --- 20050802-1.c (nonexistent) +++ 20050802-1.c (revision 154) @@ -0,0 +1,10 @@ +/* PR 23196 */ +/* { dg-options "-fforce-addr" } */ + +void foo() +{ + char c; + + c |= 1; + bar(&c); +}
20050802-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050721-1.c =================================================================== --- 20050721-1.c (nonexistent) +++ 20050721-1.c (revision 154) @@ -0,0 +1,57 @@ +/* Test for PR target/20191. */ + +struct S1; + +struct S1 { + struct S1 *next; + float x; +}; + +struct S2 { + float y; +}; + +extern int func_ex1 (float); + +extern int f; +extern float n; +extern struct S1 *bp1; +extern struct S2 *bp2; + +inline float +func1 (int f, struct S2 *p2) +{ + float a; + + if (f) + a = n >= p2->y ? n : p2->y; + else + a = n; + return a; +} + +inline float +func2 (struct S1 *p1, struct S2 *p2) +{ + float a, b; + + if(n <= 1.0) + b = func1 (f, p2); + else + { + a = n <= p1->x ? 0.0 : p1->x; + b = a >= p2->y ? a : p2->y; + } + return(b); +} + +void +func3 (struct S1 *p) +{ + float a = 0.0; + + if (f) + a = func2 (bp1, bp2); + if (func_ex1 (a)) + bp1 = p; +}
20050721-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920520-1.c =================================================================== --- 920520-1.c (nonexistent) +++ 920520-1.c (revision 154) @@ -0,0 +1,3 @@ +/* { dg-do compile { xfail m6811-*-* m6812-*-* } } */ + +f(){asm("%0"::"r"(1.5F));}g(){asm("%0"::"r"(1.5));}
920520-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030725-1.c =================================================================== --- 20030725-1.c (nonexistent) +++ 20030725-1.c (revision 154) @@ -0,0 +1,9 @@ +/* This testcase caused ICE on any 64-bit arch at -O2/-O3 due to + fold/extract_muldiv/convert destroying its argument. */ +int x, *y, z, *p; + +void +foo (void) +{ + p = y + (8 * (x == 1 || x == 3) + z); +}
20030725-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920502-2.c =================================================================== --- 920502-2.c (nonexistent) +++ 920502-2.c (revision 154) @@ -0,0 +1 @@ +x(c){1LL<
920502-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920501-4.c =================================================================== --- 920501-4.c (nonexistent) +++ 920501-4.c (revision 154) @@ -0,0 +1,53 @@ +/* This test fails on HC11/HC12 when it is compiled without -mshort because + the 'r0' array is too large. Force to use 16-bit ints for it. */ +/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */ + +foo () +{ + int r0[8186 ]; + int r1[2 ]; + int r2[2 ]; + int bitm0[2 ]; + int bitm1[2 ]; + int bitm2[2 ]; + + int i,j,k,m,n,m_max; + int f; + double fm,ft; + + while (1) { + + if (m%4 == 2) + ++m; + + if (m_max != 0 && m > m_max) + break; + + fm=m; + + r0[k=1]=0; + bitm0[0] = 0; + + while ( n%f == 0 ) { + while ( (ft != 0) && (ft < fm )) { + bitm1[i] = 0; + r1[i]=0; + } + + while ( r0[i] != 0 && r1[i] != 0 ) { + if ( r0[i] < r1[i] ) { + bitm2[k] = bitm0[i]; + r2[k++]=0; + } + else if ( r0[i] > r1[j] ) { + bitm2[k] = bitm1[j]; + r2[k++]=r1[j++]; + } + else { + bitm1[k] = bitm0[i]; + r2[k++]=r0[i++]; + } + } + } + } +}
920501-4.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930607-1.c =================================================================== --- 930607-1.c (nonexistent) +++ 930607-1.c (revision 154) @@ -0,0 +1,9 @@ +typedef void f (); +typedef f *pf; +long long i; + +g () +{ + long long p = i; + ((pf) (long) p) (); +}
930607-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920806-1.c =================================================================== --- 920806-1.c (nonexistent) +++ 920806-1.c (revision 154) @@ -0,0 +1 @@ +f(){short x=32000;}
920806-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930427-2.c =================================================================== --- 930427-2.c (nonexistent) +++ 930427-2.c (revision 154) @@ -0,0 +1,9 @@ +struct s { + int f; +}; + +f (w, v0, v1, v2, v3) + struct s *w; +{ + g (v0 ? 1 : w->f, v1 ? v3 : v2); +}
930427-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920428-4.c =================================================================== --- 920428-4.c (nonexistent) +++ 920428-4.c (revision 154) @@ -0,0 +1 @@ +x(a){struct{int p[a],i;}l;l.i;}
920428-4.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 980506-2.c =================================================================== --- 980506-2.c (nonexistent) +++ 980506-2.c (revision 154) @@ -0,0 +1,89 @@ +/* + * inspired by glibc-2.0.6/sysdeps/libm-ieee754/s_nextafterf.c + * + * gcc -O2 -S -DOP=+ gives faddp %st(1),%st + * gcc -O2 -S -DOP=* gives fmulp %st(1),%st + * gcc -O2 -S -DOP=- gives fsubrp %st(1),%st + * gcc -O2 -S -DOP=/ gives fdivrp %st(1),%st + */ + +#ifndef OP +#define OP * +#endif + +typedef int int32_t __attribute__ ((__mode__ ( __SI__ ))) ; +typedef unsigned int u_int32_t __attribute__ ((__mode__ ( __SI__ ))) ; + +typedef union +{ + float value; + u_int32_t word; +} ieee_float_shape_type; + +float __nextafterf(float x, float y) +{ + int32_t hx,hy,ix,iy; + + { + ieee_float_shape_type gf_u; + gf_u.value = x; + hx = gf_u.word; + } + { + ieee_float_shape_type gf_u; + gf_u.value = y; + hy = gf_u.word; + } + ix = hx&0x7fffffff; + iy = hy&0x7fffffff; + + if ( ix > 0x7f800000 || iy > 0x7f800000 ) + return x+y; + if (x == y) return x; + if (ix == 0) + { + { + ieee_float_shape_type sf_u; + sf_u.word = (hy&0x80000000) | 1; + x = sf_u.value; + } + y = x*x; + if (y == x) return y; else return x; + } + if (hx >= 0) + { + if (hx > hy) + hx -= 1; + else + hx += 1; + } + else + { + if (hy >= 0 || hx > hy) + hx -= 1; + else + hx += 1; + } + hy = hx & 0x7f800000; + if (hy >= 0x7f800000) + return x+x; + if (hy < 0x00800000) + { + y = x OP x; + if (y != x) + { + ieee_float_shape_type sf_u; + sf_u.word = hx; + y = sf_u.value; + return y; + } + } + { + ieee_float_shape_type sf_u; + sf_u.word = hx; + x = sf_u.value; + } + return x; +} + +
980506-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 980408-1.c =================================================================== --- 980408-1.c (nonexistent) +++ 980408-1.c (revision 154) @@ -0,0 +1,129 @@ +typedef struct _RunlengthPacket +{ + unsigned short + red, + green, + blue, + length; + unsigned short + index; +} RunlengthPacket; +typedef struct _Image +{ + int + status, + temporary; + char + filename[1664 ]; + long int + filesize; + int + pipe; + char + magick[1664 ], + *comments, + *label, + *text; + unsigned int + matte; + unsigned int + columns, + rows, + depth; + unsigned int + scene, + number_scenes; + char + *montage, + *directory; + unsigned int + colors; + double + gamma; + float + x_resolution, + y_resolution; + unsigned int + mean_error_per_pixel; + double + normalized_mean_error, + normalized_maximum_error; + unsigned long + total_colors; + char + *signature; + unsigned int + packets, + runlength, + packet_size; + unsigned char + *packed_pixels; + long int + magick_time; + char + magick_filename[1664 ]; + unsigned int + magick_columns, + magick_rows; + char + *geometry, + *page; + unsigned int + dispose, + delay, + iterations; + unsigned int + orphan; + struct _Image + *previous, + *list, + *next; +} Image; + Image *MinifyImage(Image *image) +{ + Image + *minified_image; + register RunlengthPacket + *q, + *s, + *s0, + *s1, + *s2, + *s3; + register unsigned int + x; + unsigned int + blue, + green, + red; + unsigned long + total_matte, + total_blue, + total_green, + total_red; + unsigned short + index; + for (x=0; x < (image->columns-1); x+=2) + { + total_red=0; + total_green=0; + total_blue=0; + total_matte=0; + s=s0; + total_red+=( 3 )*(s->red); total_green+=( 3 )*(s->green); total_blue+=( 3 )*(s->blue); total_matte+=( 3 )*(s->index); s++; ; total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ; total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ; total_red+=( 3 )*(s->red); total_green+=( 3 )*(s->green); total_blue+=( 3 )*(s->blue); total_matte+=( 3 )*(s->index); s++; ; + s=s1; + total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ; total_red+=( 15 )*(s->red); total_green+=( 15 )*(s->green); total_blue+=( 15 )*(s->blue); total_matte+=( 15 )*(s->index); s++; ; total_red+=( 15 )*(s->red); total_green+=( 15 )*(s->green); total_blue+=( 15 )*(s->blue); total_matte+=( 15 )*(s->index); s++; ; total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ; + s=s2; + total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ; total_red+=( 15 )*(s->red); total_green+=( 15 )*(s->green); total_blue+=( 15 )*(s->blue); total_matte+=( 15 )*(s->index); s++; ; total_red+=( 15 )*(s->red); total_green+=( 15 )*(s->green); total_blue+=( 15 )*(s->blue); total_matte+=( 15 )*(s->index); s++; ; total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ; + s=s3; + total_red+=( 3 )*(s->red); total_green+=( 3 )*(s->green); total_blue+=( 3 )*(s->blue); total_matte+=( 3 )*(s->index); s++; ; total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ; total_red+=( 7 )*(s->red); total_green+=( 7 )*(s->green); total_blue+=( 7 )*(s->blue); total_matte+=( 7 )*(s->index); s++; ; total_red+=( 3 )*(s->red); total_green+=( 3 )*(s->green); total_blue+=( 3 )*(s->blue); total_matte+=( 3 )*(s->index); s++; ; + red=(unsigned short) ((total_red+63) >> 7); + green=(unsigned short) ((total_green+63) >> 7); + blue=(unsigned short) ((total_blue+63) >> 7); + index=(unsigned short) ((total_matte+63) >> 7); + if ((red == q->red) && (green == q->green) && (blue == q->blue) && + (index == q->index) && ((int) q->length < 65535L )) + q->length++; + } + return(minified_image); +}
980408-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920928-5.c =================================================================== --- 920928-5.c (nonexistent) +++ 920928-5.c (revision 154) @@ -0,0 +1,7 @@ +/* REPRODUCED:CC1:SIGNAL MACHINE:m68k OPTIONS:-fpcc-struct-return */ +struct b{}; +f(struct b(*f)()) +{ +struct b d=f(); +} +
920928-5.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 980729-1.c =================================================================== --- 980729-1.c (nonexistent) +++ 980729-1.c (revision 154) @@ -0,0 +1,14 @@ +static int +regex_compile () +{ + int c, c1; + char str[6 + 1]; + c1 = 0; + for (;;) + { + do { } while (0) ; + if (c1 == 6 ) + break; + str[c1++] = c; + } +}
980729-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr25513.c =================================================================== --- pr25513.c (nonexistent) +++ pr25513.c (revision 154) @@ -0,0 +1,9 @@ +int f(void) +{ + static _Complex double t; + int i, j; + for(i = 0;i<2;i++) + for(j = 0;j<2;j++) + t = .5 * 1.0; + return t; +}
pr25513.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020210-1.c =================================================================== --- 20020210-1.c (nonexistent) +++ 20020210-1.c (revision 154) @@ -0,0 +1,2 @@ +/* PR c/5615 */ +void f(int a, struct {int b[a];} c) {}
20020210-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr17119.c =================================================================== --- pr17119.c (nonexistent) +++ pr17119.c (revision 154) @@ -0,0 +1,19 @@ +void +_mesa_DrawPixels (int width, int height, unsigned format, + unsigned type, const void * pixels) +{ + switch (format) + { + case 0x1900: + func1 (); + break; + case 0x1907: + case 0x80E0: + case 0x1908: + case 0x80E1: + case 0x8000: + func2 (); + break; + } +} +
pr17119.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr21638.c =================================================================== --- pr21638.c (nonexistent) +++ pr21638.c (revision 154) @@ -0,0 +1,21 @@ +typedef struct hashhdr { + int bitmaps[32]; +} HASHHDR; + +static void +swap_header_copy(HASHHDR *srcp, HASHHDR *destp) +{ + int i; + for (i = 0; i < 32; i++) + ((char *)&(destp->bitmaps[i]))[0] = ((char *)&(srcp->bitmaps[i]))[1]; +} + +int +flush_meta(HASHHDR *whdrp1) +{ + HASHHDR *whdrp; + HASHHDR whdr; + whdrp = &whdr; + swap_header_copy(whdrp1, whdrp); + return (0); +}
pr21638.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20001221-1.c =================================================================== --- 20001221-1.c (nonexistent) +++ 20001221-1.c (revision 154) @@ -0,0 +1,70 @@ +static void +foo () +{ + long maplength; + int type; + { + const long nibbles = 8; + char buf1[nibbles + 1]; + char buf2[nibbles + 1]; + char buf3[nibbles + 1]; + buf1[nibbles] = '\0'; + buf2[nibbles] = '\0'; + buf3[nibbles] = '\0'; + ((nibbles) <= 16 + ? (({ + void *__s = (buf1); + union + { + unsigned int __ui; + unsigned short int __usi; + unsigned char __uc; + } + *__u = __s; + unsigned char __c = (unsigned char)('0'); + switch ((unsigned int) (nibbles)) + { + case 16: + __u->__ui = __c * 0x01010101; + __u = __extension__ ((void *) __u + 4); + case 12: + __u->__ui = __c * 0x01010101; + __u = __extension__ ((void *) __u + 4); + case 0: + break; + } + __s; + })) + : 0); + ((nibbles) <= 16 + ? (({ + void *__s = (buf2); + union + { + unsigned int __ui; + unsigned short int __usi; + unsigned char __uc; + } + *__u = __s; + unsigned char __c = (unsigned char)('0'); + switch ((unsigned int) (nibbles)) + { + case 16: + __u->__ui = __c * 0x01010101; + __u = __extension__ ((void *) __u + 4); + case 12: + __u->__ui = __c * 0x01010101; + __u = __extension__ ((void *) __u + 4); + case 8: + __u->__ui = __c * 0x01010101; + __u = __extension__ ((void *) __u + 4); + case 4: + __u->__ui = __c * 0x01010101; + case 0: + break; + } + __s; + })) + : 0); + } +}
20001221-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr22269.c =================================================================== --- pr22269.c (nonexistent) +++ pr22269.c (revision 154) @@ -0,0 +1,16 @@ +/* We used to ICE in tree-ssa-reassoc because we did look at the correct operand to + see if it was a SSA_NAME. */ +int printf(const char*, ...); +int main(int argv, char*argc) { + + int d1; + int d2; + int s1, s2; + int b; + ((d1)&=(int)0x0000ffffL, (d1)|=((int)(short)(0x344))<<16); + ((d1)&=(int)0xffff0000UL, (d1)|=(int)(unsigned short)(0x4567)); + ((d2)&=(int)0x0000ffffL, (d2)|=((int)(short)(0))<<16); + ((d2)&=(int)0xffff0000UL, (d2)|=(int)(unsigned short)(0x3b9a)); + printf(" dividend >>: %ld\n", d1); + printf(" divisor >>: %ld\n", d2); +}
pr22269.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20001024-1.c =================================================================== --- 20001024-1.c (nonexistent) +++ 20001024-1.c (revision 154) @@ -0,0 +1,13 @@ +/* Copyright (C) 2000 Free Software Foundation */ +/* Contributed by Nathan Sidwell */ + +typedef __SIZE_TYPE__ size_t; + +extern void *memset(void *, int, size_t); + +struct Baz; + +void quux(struct Baz *context) +{ + memset(context, 0, 4); +}
20001024-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr26781-2.c =================================================================== --- pr26781-2.c (nonexistent) +++ pr26781-2.c (revision 154) @@ -0,0 +1,11 @@ +void zconfdump(__SIZE_TYPE__ i) +{ + for (;;) + { + char __a0; + __a0 = ("\"\\")[i]; + if (__a0) + return; + } +} +
pr26781-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr28905.c =================================================================== --- pr28905.c (nonexistent) +++ pr28905.c (revision 154) @@ -0,0 +1,11 @@ +/* We used to ICE here because after VRP we ended up with + non-compatible ranges in a value-range equivalences set. */ +void code_comment (int size) +{ + int i; + for (i = 0; i < size; i++) + if (i) + if (i < 0) + if (i < 0) + return; +}
pr28905.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040214-1.c =================================================================== --- 20040214-1.c (nonexistent) +++ 20040214-1.c (revision 154) @@ -0,0 +1,7 @@ +void foo(void) +{ + char c; + + for (c = -75; c <= 75; c++) + ; +}
20040214-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030216-1.c =================================================================== --- 20030216-1.c (nonexistent) +++ 20030216-1.c (revision 154) @@ -0,0 +1,42 @@ +/* PR c/8086 */ + +#define P(x) \ + (((((((((((((((((((((((((((((((( \ + (x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) \ + *(x)+a) + +int +polynomial(int a) +{ + return P(3); +}
20030216-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020415-1.c =================================================================== --- 20020415-1.c (nonexistent) +++ 20020415-1.c (revision 154) @@ -0,0 +1,22 @@ +/* Check that floating point casts of integer operations don't ICE. */ +/* The first of these routines caused problems for a patch, that wasn't + otherwise caught by a full bootstrap, the regression test suite or + SPEC CPU2000. */ + +double +andop (unsigned int x) +{ + return x & 1; +} + +double +orop (unsigned int x) +{ + return x | 1; +} + +double +notop (unsigned int x) +{ + return ~x; +}
20020415-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: simd-6.c =================================================================== --- simd-6.c (nonexistent) +++ simd-6.c (revision 154) @@ -0,0 +1,3 @@ +typedef int __attribute__((vector_size (8))) vec; + +vec a[] = {(vec) {1, 2}, {3, 4}};
simd-6.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930411-1.c =================================================================== --- 930411-1.c (nonexistent) +++ 930411-1.c (revision 154) @@ -0,0 +1,36 @@ +int heap; + +g(){} + +f(int i1, int i2) +{ + i1 = *(int*)(i1 + 4); + if (i1 == 0) + goto L4; + else + goto L9; + L3: + i2 = heap - 8; + *(int*)i2 = 3; + *(int*)(i2 + 4) = i1; + heap -= 8; + return i2; + L4: + i1 = g(i2); + goto L5; + L5: + i1 = *(int*)(i1 + 4); + if (i1 == 0) + goto L7; + else + goto L8; + L7: + i1 = 0; + goto L3; + L8: + i1 = 1; + goto L3; + L9: + i1 = 1; + goto L3; +}
930411-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920413-1.c =================================================================== --- 920413-1.c (nonexistent) +++ 920413-1.c (revision 154) @@ -0,0 +1,2 @@ +union u {double d;long long ll;}; +f(double x, int n){union u v;v.d=x;if(n>=0){v.ll<<=63;}else{v.ll+=1<<-n;v.ll>>=-n;}return v.ll;}
920413-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 921026-1.c =================================================================== --- 921026-1.c (nonexistent) +++ 921026-1.c (revision 154) @@ -0,0 +1,4 @@ +f(unsigned short*a) +{ +a[0]=65535; +}
921026-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040419-1.c =================================================================== --- 20040419-1.c (nonexistent) +++ 20040419-1.c (revision 154) @@ -0,0 +1,3 @@ +/* This used to ICE because PHI-OPT would produce non-gimple code. */ + +int f(double d0, double d1) { return d0 > 0 == d1 > 0; }
20040419-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 970214-1.c =================================================================== --- 970214-1.c (nonexistent) +++ 970214-1.c (revision 154) @@ -0,0 +1,3 @@ +#include +#define L 264 +wchar_t c = L'X';
970214-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 950612-1.c =================================================================== --- 950612-1.c (nonexistent) +++ 950612-1.c (revision 154) @@ -0,0 +1,134 @@ +typedef enum +{ + LODI, + STO, + ADDI, + ADD, + SUBI, + SUB, + MULI, + MUL, + DIVI, + DIV, + INC, + DEC +} INSN; + +f (pc) + short *pc; +{ + long long stack[16], *sp = &stack[16], acc = 0; + + for (;;) + { + switch ((INSN)*pc++) + { + case LODI: + *--sp = acc; + acc = ((long long)*pc++) << 32; + break; + case STO: + return (acc >> 32) + (((((unsigned long long) acc) & 0xffffffff) & (1 << 31)) != 0); + break; + case ADDI: + acc += ((long long)*pc++) << 32; + break; + case ADD: + acc = *sp++ + acc; + break; + case SUBI: + acc -= ((long long)*pc++) << 32; + break; + case SUB: + acc = *sp++ - acc; + break; + case MULI: + acc *= *pc++; + break; + case MUL: + { + long long aux; + unsigned char minus; + + minus = 0; + aux = *sp++; + if (aux < 0) + { + minus = ~minus; + aux = -aux; + } + if (acc < 0) + { + minus = ~minus; + acc = -acc; + } + acc = ((((((unsigned long long) acc) & 0xffffffff) * (((unsigned long long) aux) & 0xffffffff)) >> 32) + + ((((unsigned long long) acc) >> 32) * (((unsigned long long) aux) & 0xffffffff) + (((unsigned long long) acc) & 0xffffffff) + (((unsigned long long) aux) >> 32)) + + (((((unsigned long long) acc) >> 32) * (((unsigned long long) aux) >> 32)) << 32)); + if (minus) + acc = -acc; + } + break; + case DIVI: + { + short aux; + + aux = *pc++; + acc = (acc + aux / 2) / aux; + } + break; + case DIV: + { + long long aux; + unsigned char minus; + + minus = 0; + aux = *sp++; + if (aux < 0) + { + minus = ~minus; + aux = -aux; + } + if (acc < 0) + { + minus = ~minus; + acc = -acc; + } + + if (((unsigned long long)acc) == 0) + acc = (unsigned long long)-1 / 2; + else if ((((unsigned long long) ((unsigned long long)acc)) & 0xffffffff) == 0) + acc = ((unsigned long long)aux) / (((unsigned long long) ((unsigned long long)acc)) >> 32); + else if ((((unsigned long long) ((unsigned long long)acc)) >> 32) == 0) + acc = ((((unsigned long long)aux) / ((unsigned long long)acc)) << 32) + + ((((unsigned long long)aux) % ((unsigned long long)acc)) << 32) / ((unsigned long long)acc); + else + { + unsigned char shift; + unsigned long hi; + + shift = 32; + hi = (((unsigned long long) ((unsigned long long)acc)) >> 32); + do { + if (hi & ((unsigned long)1 << (shift - 1))) + break; + } while (--shift != 0); + printf("shift = %d\n", shift); + acc = ((((unsigned long long)aux) / ((unsigned long long)acc)) << 32) + + (((((unsigned long long)aux) % ((unsigned long long)acc)) << (32 - shift)) + ((((unsigned long long)acc) >> shift) / 2)) / (((unsigned long long)acc) >> shift); + } + + if (minus) + acc = -acc; + } + break; + case INC: + acc += 1; + break; + case DEC: + acc -= 1; + break; + } + printf("%08lx.%08lx\n", (long)(((unsigned long long) acc) >> 32) , (long)(((unsigned long long) acc) & 0xffffffff)); + } +}
950612-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: struct-non-lval-2.c =================================================================== --- struct-non-lval-2.c (nonexistent) +++ struct-non-lval-2.c (revision 154) @@ -0,0 +1,7 @@ +/* Bug c/17855, using conditional expression for non-lvalue. */ +struct foo {char x, y, z[2];}; +struct foo p, q; int r; +void bar(int baz) +{ + (r ? p : q).z[baz] = 1; +}
struct-non-lval-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr20412.c =================================================================== --- pr20412.c (nonexistent) +++ pr20412.c (revision 154) @@ -0,0 +1,20 @@ +int +foo(void) +{ + int a,b,g; + int i,len; + int stop; + + len = 10; + stop = 0; + for (i=0; i
pr20412.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 950816-3.c =================================================================== --- 950816-3.c (nonexistent) +++ 950816-3.c (revision 154) @@ -0,0 +1,8 @@ +f () +{ + int i; + short x, z; + for (i = 0; i <= 1; i++) + x = i; + return x + z; +}
950816-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr29201.c =================================================================== --- pr29201.c (nonexistent) +++ pr29201.c (revision 154) @@ -0,0 +1,116 @@ +/* { dg-do assemble { target ia64-*-* } } */ +typedef int gint; +typedef gint gboolean; +typedef unsigned int guint; +typedef struct _MetaRectangle MetaRectangle; +struct _MetaRectangle +{ + int x; + int y; +}; +typedef struct _MetaDisplay MetaDisplay; +typedef struct _MetaFrame MetaFrame; +typedef struct _MetaWindow MetaWindow; +typedef struct +{ + int win_gravity; +} +XSizeHints; +typedef enum +{ + META_DEBUG_FOCUS = 1 << 0, META_DEBUG_WORKAREA = 1 << 1, META_DEBUG_STACK = + 1 << 6, META_DEBUG_WINDOW_OPS = 1 << 7, META_DEBUG_GEOMETRY = + 1 << 20, META_DEBUG_EDGE_RESISTANCE = 1 << 21 +} +MetaStackLayer; +struct _MetaWindow +{ + MetaDisplay *display; + MetaFrame *frame; + guint user_has_move_resized:1; + MetaRectangle user_rect; + XSizeHints size_hints; +}; +void meta_window_get_position (MetaWindow * window, int *x, int *y); +typedef struct _MetaFrameGeometry MetaFrameGeometry; +struct _MetaFrameGeometry +{ +}; +struct _MetaFrame +{ + MetaWindow *window; + MetaRectangle rect; + int child_x; + int child_y; +}; +typedef enum +{ + META_IS_CONFIGURE_REQUEST = 1 << 0, META_DO_GRAVITY_ADJUST = + 1 << 3, META_IS_RESIZE_ACTION = 1 << 4 +} +MetaMoveResizeFlags; +adjust_for_gravity (MetaWindow * window, MetaFrameGeometry * fgeom, + gboolean coords_assume_border, int gravity, + MetaRectangle * rect) +{ + int ref_x, ref_y; + int child_x, child_y; + int frame_width, frame_height; + switch (gravity) + { + case 1: + ref_x = rect->x; + } + switch (gravity) + { + case 1: + rect->y = ref_y + child_y; + case 2: + rect->x = ref_x - frame_width / 2 + child_x; + break; + case 3: + case 5: + case 6: + rect->x = ref_x - frame_width + child_x; + } +} +meta_window_move_resize_internal (MetaWindow * window, + MetaMoveResizeFlags flags, + int resize_gravity, int root_x_nw, + int root_y_nw, int w, int h) +{ + unsigned int mask; + MetaFrameGeometry fgeom; + gboolean need_resize_client = (0); + gboolean is_configure_request; + MetaRectangle new_rect; + MetaRectangle old_rect; + { + adjust_for_gravity (window, window->frame ? &fgeom : ((void *) 0), + is_configure_request, window->size_hints.win_gravity, + &new_rect); + } + meta_window_constrain (window, window->frame ? &fgeom : ((void *) 0), flags, + resize_gravity, &old_rect, &new_rect); + if (mask != 0) + { + { + meta_topic_real (META_DEBUG_GEOMETRY, + need_resize_client ? "true" : "false"); + } + } + { + window->user_has_move_resized = (!(0)); + meta_window_get_position (window, &window->user_rect.x, + &window->user_rect.y); + } +} +void +meta_window_get_position (MetaWindow * window, int *x, int *y) +{ + if (window->frame) + { + *x = window->frame->rect.x + window->frame->child_x; + *y = window->frame->rect.y + window->frame->child_y; + } +}
pr29201.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr13066-1.c =================================================================== --- pr13066-1.c (nonexistent) +++ pr13066-1.c (revision 154) @@ -0,0 +1,10 @@ +void *g, *c; +int a, b; + +int f() +{ + if ((0 == a) != (b || g == c)) + return 1; + return 0; +} +
pr13066-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: strcpy-1.c =================================================================== --- strcpy-1.c (nonexistent) +++ strcpy-1.c (revision 154) @@ -0,0 +1,15 @@ + + +typedef struct +{ + char str[20]; +}STACK; +STACK stack[15]; +int level; +rezero () +{ + level = 0; + __builtin_strcpy (stack[level].str, ""); +} + +
strcpy-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000420-1.c =================================================================== --- 20000420-1.c (nonexistent) +++ 20000420-1.c (revision 154) @@ -0,0 +1,19 @@ +struct z_candidate { struct z_candidate *next;int viable;}; +int pedantic; + +static struct z_candidate * +splice_viable (cands) + struct z_candidate *cands; +{ + struct z_candidate **p = &cands; + + for (; *p; ) + { + if (pedantic ? (*p)->viable == 1 : (*p)->viable) + p = &((*p)->next); + else + *p = (*p)->next; + } + + return cands; +}
20000420-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr21728.c =================================================================== --- pr21728.c (nonexistent) +++ pr21728.c (revision 154) @@ -0,0 +1,10 @@ +int main (void) +{ + __label__ l1; + void __attribute__((used)) q(void) + { + goto l1; + } + + l1:; +}
pr21728.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020103-1.c =================================================================== --- 20020103-1.c (nonexistent) +++ 20020103-1.c (revision 154) @@ -0,0 +1,22 @@ +/* This testcase failed on Alpha at -O2 when simplifying conditional + expressions. */ + +int foo (void); + +struct A +{ + int a, b, c, d; +}; + +void bar (struct A *x) +{ + int e, f; + + e = foo (); + e = e / x->b; + if (e < 1) + e = 1; + f = (x->a + x->c) / e; + if (f < x->d) + x->d -= (1 << 16) / 8; +}
20020103-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030503-1.c =================================================================== --- 20030503-1.c (nonexistent) +++ 20030503-1.c (revision 154) @@ -0,0 +1,12 @@ +void foo () +{ + if (1) + goto foo; + else + for (;;) + { + foo: + bar (); + return; + } +}
20030503-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050122-2.c =================================================================== --- 20050122-2.c (nonexistent) +++ 20050122-2.c (revision 154) @@ -0,0 +1,19 @@ +/* Related to PR 19484. */ +extern void foo (void) __attribute__((noreturn)); +int n; + +void +g (void) +{ + __label__ lab; + void h (void) { if (n == 2) goto lab; } + void (*f1) (void) = foo; + void (*f2) (void) = h; + + f2 (); + if (n) + f1 (); + n = 1; + lab: + n++; +}
20050122-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050105-1.c =================================================================== --- 20050105-1.c (nonexistent) +++ 20050105-1.c (revision 154) @@ -0,0 +1,5 @@ +void bar (struct S *); +void foo (void *x) +{ + bar ((struct S *) x); +}
20050105-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040304-1.c =================================================================== --- 20040304-1.c (nonexistent) +++ 20040304-1.c (revision 154) @@ -0,0 +1,20 @@ +void +cpplib_macroExpand (char * pfile) +{ + int nargs; + int rest_args; + int token = -1; + rest_args = 0; + do + { + if (rest_args != 0) + continue; + if (nargs == 0) + { + rest_args = 1; + token = macarg (pfile, rest_args); + } + } + while (token == 20); +} +
20040304-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010426-1.c =================================================================== --- 20010426-1.c (nonexistent) +++ 20010426-1.c (revision 154) @@ -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; +}
20010426-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030109-1.c =================================================================== --- 20030109-1.c (nonexistent) +++ 20030109-1.c (revision 154) @@ -0,0 +1,6 @@ +void foo () +{ + int x1, x2, x3; + + bar (&x2 - &x1, &x3 - &x2); +}
20030109-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010605-2.c =================================================================== --- 20010605-2.c (nonexistent) +++ 20010605-2.c (revision 154) @@ -0,0 +1,17 @@ +/* Origin: Joseph Myers . */ +/* As an extension, GCC allows a struct or union to be cast to its own + type, but failed to allow this when a typedef was involved. + Reported as PR c/2735 by . */ +union u { int i; }; +typedef union u uu; +union u a; +uu b; + +void +foo (void) +{ + a = (union u) b; + a = (uu) b; + b = (union u) a; + b = (uu) a; +}
20010605-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030708-1.c =================================================================== --- 20030708-1.c (nonexistent) +++ 20030708-1.c (revision 154) @@ -0,0 +1,13 @@ +/* PR 10795. */ + +/* ix86_expand_carry_flag_compare() in i386.c swapped the comparison + operands without checking that the compare instruction, cmpl, would + accept the swapped operands. */ + +extern const char a[]; + +int +foo (const char *p) +{ + return (p > a) ? 0 : 2; +}
20030708-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20060826-1.c =================================================================== --- 20060826-1.c (nonexistent) +++ 20060826-1.c (revision 154) @@ -0,0 +1,7 @@ +typedef _Complex double S; +S bar (void); +void quux (S, S); +void foo (void) +{ + quux (bar(), bar()); +}
20060826-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920428-5.c =================================================================== --- 920428-5.c (nonexistent) +++ 920428-5.c (revision 154) @@ -0,0 +1 @@ +typedef struct{unsigned b0:1;}*t;x(a,b)t a,b;{b->b0=a->b0;}
920428-5.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920928-6.c =================================================================== --- 920928-6.c (nonexistent) +++ 920928-6.c (revision 154) @@ -0,0 +1,2 @@ +struct{int c;}v; +static short i=((char*)&(v.c)-(char*)&v);
920928-6.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr25514.c =================================================================== --- pr25514.c (nonexistent) +++ pr25514.c (revision 154) @@ -0,0 +1,24 @@ +struct node { + struct node *next; + int value; +}; + +struct node *current_node, global_list; + +void +bar (void) +{ + struct node *node, *next; + + node = current_node; + next = node->next; + if (node != &global_list) + current_node = next; + else + { + node = global_list.next; + global_list.value = node->value; + global_list.next = node->next; + } + foo (node); +}
pr25514.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030110-1.c =================================================================== --- 20030110-1.c (nonexistent) +++ 20030110-1.c (revision 154) @@ -0,0 +1,39 @@ +extern char bpp; + +void foo() +{ + if (bpp == 32) + { + if (2 < 8) + { + do + { + while (inb(0x9ae8) & (0x0100 >> (2 +1))); + } + while(0); + } + else + { + do + { + while (inb(0x9ae8) & (0x0100 >> (2))); + } + while(0); + } + } + else + do + { + while (inb(0x9ae8) & (0x0100 >> (1))); + } + while(0); + if (8 < 8) + { + do + { + while (inb(0x9ae8) & (0x0100 >> (8 +1))); + } + while(0); + } +} +
20030110-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020110.c =================================================================== --- 20020110.c (nonexistent) +++ 20020110.c (revision 154) @@ -0,0 +1,12 @@ +/* Copyright 2002 Free Software Foundation */ + +/* Make sure the nested extern declaration doesn't conflict with the + non-extern one in the enclosing scope. */ + +void foo() { + static long bar; + + { + extern int bar; + } +}
20020110.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010114-1.c =================================================================== --- 20010114-1.c (nonexistent) +++ 20010114-1.c (revision 154) @@ -0,0 +1,5 @@ +/* Origin: PR c/166 from Joerg Czeranski . */ +/* In the declaration of proc, x cannot be parsed as a typedef name, + so it must be parsed as a parameter name. */ +typedef int x; +void proc(int (*x)(void)) {}
20010114-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr32169.c =================================================================== --- pr32169.c (nonexistent) +++ pr32169.c (revision 154) @@ -0,0 +1,17 @@ +void f(char); +static inline +void * __memset_generic(char c) +{ + f(c); +} +int prepare_startup_playback_urb( + int b, + int c +) +{ + char d; + if (b) + __memset_generic(c == ( 1) ? 0x80 : 0); + else + __memset_generic (c == ( 1) ? 0x80 : 0); +}
pr32169.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20001123-1.c =================================================================== --- 20001123-1.c (nonexistent) +++ 20001123-1.c (revision 154) @@ -0,0 +1,11 @@ + +typedef __builtin_va_list __gnuc_va_list; +typedef __gnuc_va_list va_list; + +struct X { int y; }; + +void func(va_list va) +{ + char* a = __builtin_va_arg(va, char**)[0]; + int b = __builtin_va_arg(va, struct X*)->y; +}
20001123-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040214-2.c =================================================================== --- 20040214-2.c (nonexistent) +++ 20040214-2.c (revision 154) @@ -0,0 +1,57 @@ +/* http://gcc.gnu.org/ml/gcc-patches/2004-02/msg01307.html */ + +typedef struct xdef xdef; +struct xdef +{ + char xtyp; + xdef *next; + int y; +}; + +extern void b (); +extern void *foo (void *bar); +extern void *foo2 (void *bar1, void *bar2); +extern void *qwe; + +static void +c (xdef * xp) +{ + b (xp); +} +static void +a (xdef ** xpp) +{ + xdef *xp; + xp = *xpp; + + foo (xp); + xp = foo2 (xp, qwe); + b (xp->next); + foo (xp); + if (xp->y) + { + foo (xp); + if (xp) + { + xdef *p = foo2 (xp, qwe); + foo2 (xp, p); + xp = foo (p); + } + else + { + foo2 (foo(*xpp), *xpp); + } + } + *xpp = foo2 (xpp, qwe); +} + +void +b (xdef ** xpp) +{ + xdef *xp = *xpp; + if (!xp) + return; + if (xp->xtyp == 0) + a (xpp); + c (xp); +}
20040214-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20041007-1.c =================================================================== --- 20041007-1.c (nonexistent) +++ 20041007-1.c (revision 154) @@ -0,0 +1,16 @@ +/* PR rtl-optimization/17027 */ +/* Origin: dbk */ +/* Testcase by Christian Ehrhardt */ + +int bar(void); +void baz (void) __attribute__ ((noreturn)); /* noreturn is required */ + +void foo (void) +{ + while (bar ()) { + switch (1) { + default: + baz (); + } + } +}
20041007-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr19736.c =================================================================== --- pr19736.c (nonexistent) +++ pr19736.c (revision 154) @@ -0,0 +1,21 @@ +/* We used to ICE because we had forgot to update the immediate_uses + information after foldding the last strcpy in Reduce PHI. + This was PR tree-opt/19763. */ + +extern char *strcpy (char *, const char *); +void sdbout_one_type (char *p) +{ + int i, t = 1; + char *q; + for (i = 0; i < 2; i++) + { + strcpy (p, "1"); + p += sizeof ("1"); + } + if (t) + q = "2"; + else + q = "3"; + strcpy (p, q); +} +
pr19736.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031125-1.c =================================================================== --- 20031125-1.c (nonexistent) +++ 20031125-1.c (revision 154) @@ -0,0 +1,36 @@ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ +short *_offsetTable; +/* This tests to make sure PRE splits the entry block ->block 0 edge + when there are multiple block 0 predecessors. + This is done so that we don't end up with an insertion on the + entry block -> block 0 edge which would require a split at insertion + time. + PR 13163. */ +void proc4WithoutFDFE(char *dst, const char *src, int next_offs, int bw, + int bh, int pitch) +{ + do { + int i = bw; + int code = *src++; + int x, l; + int length = *src++ + 1; + + for (l = 0; l < length; l++) { + int x; + + for (x = 0; x < 4; x++) ; + if (i == 0) + dst += pitch * 3; + } + char *dst2 = dst + _offsetTable[code] + next_offs; + + for (x = 0; x < 4; x++) { + int j = 0; + (dst + pitch * x)[j] = (dst2 + pitch * x)[j]; + } + dst += pitch * 3; + } while (--bh); +} + +
20031125-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000518-1.c =================================================================== --- 20000518-1.c (nonexistent) +++ 20000518-1.c (revision 154) @@ -0,0 +1,17 @@ +void callit1(void*); + +extern __inline__ void test() +{ + __label__ l1; + + callit1(&&l1); + +l1:; + +} + + +void dotest() +{ + test(); +}
20000518-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930510-1.c =================================================================== --- 930510-1.c (nonexistent) +++ 930510-1.c (revision 154) @@ -0,0 +1,18 @@ +typedef long time_t; +static __const int mon_lengths[2][12] = { + 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31, + 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 +}; +static time_t +f (janfirst, year, rulep, offset) + __const time_t janfirst; + __const int year; + register __const struct rule * __const rulep; + __const long offset; +{ + register int leapyear; + register time_t value; + register int i; + + value += mon_lengths[leapyear][i] * ((long) (60 * 60) * 24); +}
930510-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050516-1.c =================================================================== --- 20050516-1.c (nonexistent) +++ 20050516-1.c (revision 154) @@ -0,0 +1,12 @@ +/* PR tree-optimization/21610 */ + +struct S { char s; }; +struct T { struct S t; }; + +struct S *const p = &((struct T * const) (0x4000))->t; + +void +foo (void) +{ + p->s = 0; +}
20050516-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 921206-1.c =================================================================== --- 921206-1.c (nonexistent) +++ 921206-1.c (revision 154) @@ -0,0 +1,28 @@ +double sqrt(double),fabs(double),sin(double); +int sxs; +int sys; +f() +{ + int l; + int sm = -52, sx = 52; + char *smap; + for (l = 0; l < 9; l++) + { + double g; + int cx, cy, gx, gy, x, y; + gx = 2 > g / 3 ? 2 : g / 3; + gy = 2 > g / 3 ? 2 : g / 3; + for (y = 0 > cy - gy ? 0 : cy - gy; y <= (sys - 1 < cy + gy ? sys : cy + gy); y++) + { + int sx = 0 > cx - gx ? 0 : cx - gx; + short *ax = (short *) (y * sxs + sx); + + for (x = sx; x <= (sxs - 1 < cx + gx ? sxs - 1 : cx + gx); x++) + { + double c=2.25, z=sqrt(fabs(1-c)), cz=(c>1?0.0:-10)>z?c>1?0:1:z; + } + } + } + for (l = sm; l <= sx; l++) + smap[l] = l > 0 ? 1 + foo(sin(.1 * l / sx)) : 1 - foo(sin(.1 * l / sm)); +}
921206-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 900516-1.c =================================================================== --- 900516-1.c (nonexistent) +++ 900516-1.c (revision 154) @@ -0,0 +1 @@ +f(c){return!(c?2.0:1.0);}
900516-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: struct-non-lval-3.c =================================================================== --- struct-non-lval-3.c (nonexistent) +++ struct-non-lval-3.c (revision 154) @@ -0,0 +1,7 @@ +/* Bug c/17855, using assignment for non-lvalue. */ +struct foo {char x, y, z[2];}; +struct foo p, q; +void bar(int baz) +{ + (p = q).z[baz] = 1; +}
struct-non-lval-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 991208-1.c =================================================================== --- 991208-1.c (nonexistent) +++ 991208-1.c (revision 154) @@ -0,0 +1,4 @@ +void fn (char *ptr) +{ + void *p = ptr - 8 - 4; +}
991208-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 991127-1.c =================================================================== --- 991127-1.c (nonexistent) +++ 991127-1.c (revision 154) @@ -0,0 +1,12 @@ + +extern void foo (int *); + +static void bar (char *buf) +{ + int a; + foo (&a); + while (a > 0) { + *buf++ = '0'; + a--; + } +}
991127-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 950719-1.c =================================================================== --- 950719-1.c (nonexistent) +++ 950719-1.c (revision 154) @@ -0,0 +1,11 @@ +typedef struct +{ + int Header; + char data[4092]; +} t_node; + +f (unsigned short rid, unsigned short record_length) +{ + t_node tnode; + g (rid, tnode.data + rid * record_length); +}
950719-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: strcpy-2.c =================================================================== --- strcpy-2.c (nonexistent) +++ strcpy-2.c (revision 154) @@ -0,0 +1,7 @@ +char wrkstr_un[270]; +extern void +LoadUserAlph (char *s) +{ + s = &wrkstr_un[0]; + __builtin_strcpy (s, ""); +};
strcpy-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031010-1.c =================================================================== --- 20031010-1.c (nonexistent) +++ 20031010-1.c (revision 154) @@ -0,0 +1,4 @@ +/* This crashed the ARM backend with -mcpu=iwmmxt -O because an insn + required a split which was not available for the iwmmxt. */ +inline int *f1(int* a, int* b) { if (*b < *a) return b; return a; } +int f2(char *d, char *e, int f) { int g = e - d; return *f1(&f, &g); }
20031010-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20011130-1.c =================================================================== --- 20011130-1.c (nonexistent) +++ 20011130-1.c (revision 154) @@ -0,0 +1,7 @@ +struct S { int i; }; +extern struct S x[]; +char *bar (const struct S *); +void foo (void) +{ + bar (x); +}
20011130-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010320-1.c =================================================================== --- 20010320-1.c (nonexistent) +++ 20010320-1.c (revision 154) @@ -0,0 +1,28 @@ +typedef struct sec { +const char *name; +int id; +int index; +struct sec *next; +unsigned int flags; +unsigned int user_set_vma : 1; +unsigned int reloc_done : 1; +unsigned int linker_mark : 1; +unsigned int gc_mark : 1; +unsigned int segment_mark : 1; +unsigned long long vma; } asection; + +static void pe_print_pdata (asection *section) +{ + unsigned long long i; + unsigned long long start = 0, stop = 0; + int onaline = (3*8) ; + + for (i = start; i < stop; i += onaline) + { + if (i + (3*8) > stop) + break; + + f (((unsigned long) ((( i + section->vma ) >> 32) & 0xffffffff)) , ((unsigned long) ((( i + section->vma ) & 0xffffffff))) ) ; + } +} +
20010320-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020121-1.c =================================================================== --- 20020121-1.c (nonexistent) +++ 20020121-1.c (revision 154) @@ -0,0 +1,30 @@ +/* This testcase resulted in a 'unrecognizeable insn' on powerpc-linux-gnu + because of a missing trunc_int_for_mode in simplify_and_const_int. */ + +struct display { + struct disphist *hstent; + int pid; + int status; +}; + +struct disphist { + struct disphist *next; + char *name; + int startTries; + unsigned rLogin:2, + sd_how:2, + sd_when:2, + lock:1, + goodExit:1; + char *nuser, *npass, **nargs; +}; + +void +StartDisplay (struct display *d) +{ + d->pid = 0; + d->status = 0; + d->hstent->lock = d->hstent->rLogin = d->hstent->goodExit = + d->hstent->sd_how = d->hstent->sd_when = 0; +} +
20020121-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000420-2.c =================================================================== --- 20000420-2.c (nonexistent) +++ 20000420-2.c (revision 154) @@ -0,0 +1,11 @@ +struct x { int a, b, c; }; + +extern struct x a (); +extern void b (struct x); + +void +foo () +{ + a (); + b (a ()); +}
20000420-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000403-1.c =================================================================== --- 20000403-1.c (nonexistent) +++ 20000403-1.c (revision 154) @@ -0,0 +1,18 @@ +struct utsname { + char sysname[32 ]; + char version[32 ]; +}; +int +uname(name) + struct utsname *name; +{ + int mib[2], rval; + long len; + char *p; + int oerrno; + if (sysctl(mib, 2, &name->sysname, &len, 0 , 0) == -1) + ; + for (p = name->version; len--; ++p) { + *p = ' '; + } +}
20000403-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20060202-1.c =================================================================== --- 20060202-1.c (nonexistent) +++ 20060202-1.c (revision 154) @@ -0,0 +1,54 @@ +typedef unsigned int size_t; +typedef const struct objc_selector +{ + void *sel_id; +} + *SEL; +typedef struct objc_object +{ +} + *id; +typedef struct objc_class *Class; +struct objc_class +{ + struct sarray *dtable; +}; +typedef size_t sidx; +struct soffset +{ + unsigned int boffset:(sizeof (size_t) * 8) / 2; + unsigned int eoffset:(sizeof (size_t) * 8) / 2; +}; +union sofftype +{ + struct soffset off; + sidx idx; +}; +struct sarray +{ + size_t capacity; +}; +static __inline__ unsigned int +soffset_decode (sidx indx) +{ + union sofftype x; + x.idx = indx; + return x.off.eoffset + (x.off.boffset * (1 << 5)); +} +static __inline__ void * +sarray_get_safe (struct sarray *array, sidx indx) +{ + if (soffset_decode (indx) < array->capacity) + return (void *)sarray_get (array, indx); +} +void * +get_imp (Class class, SEL sel) +{ + void *res = sarray_get_safe (class->dtable, (size_t) sel->sel_id); + if (res == 0) + { + { + res = get_imp (class, sel); + } + } +}
20060202-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030405-1.c =================================================================== --- 20030405-1.c (nonexistent) +++ 20030405-1.c (revision 154) @@ -0,0 +1,30 @@ +/* When compiled with -pedantic, this program will cause an ICE when the + constant propagator tries to set the value of *str to UNDEFINED. + + This happens because *str is erroneously considered as a store alias. + The aliasing code is then making *str an alias leader for its alias set + and when the PHI node at the end of the while() is visited the first + time, CCP will try to assign it a value of UNDEFINED, but the default + value for *str is a constant. */ +typedef unsigned int size_t; +size_t strlength (const char * const); +char foo(); + +static const char * const str = "mingo"; + +bar() +{ + size_t c; + char *x; + + c = strlength (str); + while (c < 10) + { + if (c > 5) + *x = foo (); + if (*x < 'a') + break; + } + + return *x == '3'; +}
20030405-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020604-1.c =================================================================== --- 20020604-1.c (nonexistent) +++ 20020604-1.c (revision 154) @@ -0,0 +1,92 @@ +/* The array is too big. */ +/* { dg-xfail-if "The array too big" { "h8300-*-*" } { "-mno-h" "-mn" } { "" } } */ +/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */ +/* { dg-skip-if "" { m32c-*-* } { } { } } */ + +/* PR c/6957 + This testcase ICEd at -O2 on IA-32, because + (insn 141 139 142 (set (subreg:SF (reg:QI 72) 0) + (plus:SF (reg:SF 73) + (reg:SF 76))) 525 {*fop_sf_comm_nosse} (insn_list 134 (nil)) + (expr_list:REG_DEAD (reg:SF 73) (nil))) + couldn't be reloaded. */ + +void +foo (unsigned int n, int x, int y, unsigned char *z) +{ + int a, b; + float c[2048][4]; + + switch (x) + { + case 0x1906: + a = b = -1; + break; + case 0x190A: + a = b = -1; + break; + case 0x8049: + a = b = -1; + break; + case 0x1907: + a = 1; + b = 2; + break; + default: + return; + } + + if (a >= 0) + { + unsigned char *d = z; + unsigned int i; + for (i = 0; i < n; i++) + { + do + { + union + { + float r; + unsigned int i; + } + e; + e.r = c[i][1]; + d[a] = + ((e.i >= 0x3f7f0000) ? ((int) e.i < + 0) ? (unsigned char) 0 + : (unsigned char) 255 : (e.r = + e.r * (255.0F / 256.0F) + + 32768.0F, (unsigned char) e.i)); + } + while (0); + d += y; + } + } + + if (b >= 0) + { + unsigned char *d = z; + unsigned int i; + for (i = 0; i < n; i++) + { + do + { + union + { + float r; + unsigned int i; + } + e; + e.r = c[i][2]; + d[b] = + ((e.i >= 0x3f7f0000) ? ((int) e.i < + 0) ? (unsigned char) 0 + : (unsigned char) 255 : (e.r = + e.r * (255.0F / 256.0F) + + 32768.0F, (unsigned char) e.i)); + } + while (0); + d += y; + } + } +}
20020604-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010525-1.c =================================================================== --- 20010525-1.c (nonexistent) +++ 20010525-1.c (revision 154) @@ -0,0 +1,6 @@ +static int kind_varread(char *str) +{ + if (0 == memcmp("%_#", str, 3)) return 2; + /* NOTREACHED */ +} +
20010525-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020129-1.c =================================================================== --- 20020129-1.c (nonexistent) +++ 20020129-1.c (revision 154) @@ -0,0 +1,17 @@ +/* Test call to static variable. */ + +typedef struct +{ + long long a[10]; +} A; + +void bar (A *); + +typedef int (*B)(int); + +void foo (void) +{ + static A a; + bar (&a); + (*(B)&a) (1); +}
20020129-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20011219-1.c =================================================================== --- 20011219-1.c (nonexistent) +++ 20011219-1.c (revision 154) @@ -0,0 +1,29 @@ +/* This testcase failed on IA-64 at -O2 during scheduling. */ + +void * baz (unsigned long); +static inline double ** +bar (long w, long x, long y, long z) +{ + long i, a = x - w + 1, b = z - y + 1; + double **m = (double **) baz (sizeof (double *) * (a + 1)); + + m += 1; + m -= w; + m[w] = (double *) baz (sizeof (double) * (a * b + 1)); + m[w] += 1; + m[w] -= y; + for (i = w + 1; i <= x; i++) + m[i] = m[i - 1] + b; + return m; +} + +void +foo (double w[], int x, double y[], double z[]) +{ + int i; + double **a; + + a = bar (1, 50, 1, 50); + for (i = 1; i <= x; i++) + a[1][i] = - w[x - i] / w[x]; +}
20011219-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010328-1.c =================================================================== --- 20010328-1.c (nonexistent) +++ 20010328-1.c (revision 154) @@ -0,0 +1,80 @@ +typedef unsigned int size_t; +typedef unsigned int __u_int; +typedef unsigned long __u_long; + +__extension__ typedef unsigned long long int __u_quad_t; +__extension__ typedef long long int __quad_t; + +typedef struct + { + int __val[2]; + } __fsid_t; + +typedef long int __blksize_t; +typedef long int __blkcnt_t; +typedef __quad_t __blkcnt64_t; +typedef __u_long __fsblkcnt_t; +typedef __u_quad_t __fsblkcnt64_t; +typedef __u_long __fsfilcnt_t; +typedef __u_quad_t __fsfilcnt64_t; +typedef __u_quad_t __ino64_t; + +extern void *memcpy (void *__restrict __dest, + __const void *__restrict __src, size_t __n) ; + +struct statfs + { + int f_type; + int f_bsize; + + __fsblkcnt_t f_blocks; + __fsblkcnt_t f_bfree; + __fsblkcnt_t f_bavail; + __fsfilcnt_t f_files; + __fsfilcnt_t f_ffree; + + __fsid_t f_fsid; + int f_namelen; + int f_spare[6]; + }; + + +struct statfs64 + { + int f_type; + int f_bsize; + __fsblkcnt64_t f_blocks; + __fsblkcnt64_t f_bfree; + __fsblkcnt64_t f_bavail; + __fsfilcnt64_t f_files; + __fsfilcnt64_t f_ffree; + __fsid_t f_fsid; + int f_namelen; + int f_spare[6]; + }; + +extern int __statfs (__const char *__file, struct statfs *__buf); +extern int __statfs64 (__const char *__file, struct statfs64 *__buf); + + +int +__statfs64 (const char *file, struct statfs64 *buf) +{ + struct statfs buf32; + + if (__statfs (file, &buf32) < 0) + return -1; + + buf->f_type = buf32.f_type; + buf->f_bsize = buf32.f_bsize; + buf->f_blocks = buf32.f_blocks; + buf->f_bfree = buf32.f_bfree; + buf->f_bavail = buf32.f_bavail; + buf->f_files = buf32.f_files; + buf->f_ffree = buf32.f_ffree; + buf->f_fsid = buf32.f_fsid; + buf->f_namelen = buf32.f_namelen; + memcpy (buf->f_spare, buf32.f_spare, sizeof (buf32.f_spare)); + + return 0; +}
20010328-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010605-3.c =================================================================== --- 20010605-3.c (nonexistent) +++ 20010605-3.c (revision 154) @@ -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; +}
20010605-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 961010-1.c =================================================================== --- 961010-1.c (nonexistent) +++ 961010-1.c (revision 154) @@ -0,0 +1 @@ +double f (double x) { return x == 0 ? x : 0.0; }
961010-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920521-1.c =================================================================== --- 920521-1.c (nonexistent) +++ 920521-1.c (revision 154) @@ -0,0 +1,3 @@ +/* { dg-do compile } */ + +f(){asm("f":::"cc");}g(x,y){asm("g"::"%r"(x), "r"(y));}
920521-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 941014-1.c =================================================================== --- 941014-1.c (nonexistent) +++ 941014-1.c (revision 154) @@ -0,0 +1,11 @@ +f (to) + char *to; +{ + unsigned int wch; + register length; + unsigned char tmp; + unsigned int mult = 10; + + tmp = (wch>>(unsigned int)(length * mult)); + *to++ = (unsigned char)tmp; +}
941014-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050328-1.c =================================================================== --- 20050328-1.c (nonexistent) +++ 20050328-1.c (revision 154) @@ -0,0 +1,24 @@ +void fn1 (void *); +void fn2 (void *); +void foo (void); +void bar (void); + +extern inline void * +baz (void) +{ + return 0; +} + +void +foo (void) +{ + fn1 (baz ()); + fn2 (baz ()); +} + +void +bar (void) +{ + fn1 (baz ()); + fn2 (baz); +}
20050328-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 921116-2.c =================================================================== --- 921116-2.c (nonexistent) +++ 921116-2.c (revision 154) @@ -0,0 +1,9 @@ +typedef struct { + long l[5]; +} t; + +f(size) +{ + t event; + g(&(event.l[2 + size]), (3 - size) * 4); +}
921116-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920501-6.c =================================================================== --- 920501-6.c (nonexistent) +++ 920501-6.c (revision 154) @@ -0,0 +1 @@ +x(y,z)float*y;{*y=z;}
920501-6.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 970206-1.c =================================================================== --- 970206-1.c (nonexistent) +++ 970206-1.c (revision 154) @@ -0,0 +1,13 @@ +struct Rect +{ + int iA; + int iB; + int iC; + int iD; +}; + +void +f (int * const this, struct Rect arect) +{ + g (*this, arect); +}
970206-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930527-1.c =================================================================== --- 930527-1.c (nonexistent) +++ 930527-1.c (revision 154) @@ -0,0 +1,16 @@ +enum {e0, e1}; + +int x[] = +{ + [e0] = 0 +}; + +f () +{ + switch (1) + { + case e0: + case e1: + break; + } +}
930527-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 990801-1.c =================================================================== --- 990801-1.c (nonexistent) +++ 990801-1.c (revision 154) @@ -0,0 +1,26 @@ +extern int getch(); +extern int class(); + +int +token() +{ + int state = 1; + + while (1) { + int c=0; + c = getch(); + switch (state) { + case 1: break; + case 4: break; + case 5: break; + case 6: + { + switch (class(c)) { + default: break; + } + } break; + case 7: break; + } + } +} +
990801-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920529-1.c =================================================================== --- 920529-1.c (nonexistent) +++ 920529-1.c (revision 154) @@ -0,0 +1,21 @@ +void +f (a, b, m, n) + unsigned short *a, *b; + int m, n; +{ + unsigned long acc; + int qn; + int j; + + abort (); + + acc = a[m - 1]; + a += 0; + for (j = qn - 1; j >= 0; j = j - 1) + { + acc = (acc << 16) | a[j]; + acc = acc % *b; + } + + return; +}
920529-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 990523-1.c =================================================================== --- 990523-1.c (nonexistent) +++ 990523-1.c (revision 154) @@ -0,0 +1,30 @@ +extern float decwin[512+32]; + +int synth_1to1(float *bandPtr,int channel,unsigned char *out,int *pnt) +{ + static const int step = 2; + short *samples = (short *) (out+*pnt); + + float *b0; + int clip = 0; + int bo1; + + { + register int j; + float *window = decwin + 16 - bo1; + for (j=15;j;j--,b0-=0x20,window-=0x10,samples+=step) + { + float sum; + sum -= *(--window) * *b0++; + sum -= *(--window) * *b0++; + sum -= *(--window) * *b0++; + sum -= *(--window) * *b0++; + sum -= *(--window) * *b0++; + sum -= *(--window) * *b0++; + sum -= *(--window) * *b0++; + sum -= *(--window) * *b0++; + + if( ( sum ) > 32767.0) *( samples ) = 0x7fff; ( clip )++; ; + } + } +}
990523-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920428-6.c =================================================================== --- 920428-6.c (nonexistent) +++ 920428-6.c (revision 154) @@ -0,0 +1,22 @@ +typedef struct x +{ + struct x *type; + struct x *chain; + struct x *value; +} *tree; + +int +func (new, old) + register tree new, old; +{ + if (old->type == 0 || new->type == 0) + { + register tree t = old->type; + if (t == 0) + t = new->type; + for (; t; t = t->chain ) + if (t->value) + return 1; + } + return 0; +}
920428-6.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr20928.c =================================================================== --- pr20928.c (nonexistent) +++ pr20928.c (revision 154) @@ -0,0 +1,10 @@ +extern struct bar_t bar; +void *a; +void +foo (void) +{ + void **p = a; + do { + *p++ = ((unsigned char *) &bar + ((unsigned long int) 1L << 31)); + } while (p); +}
pr20928.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20011023-1.c =================================================================== --- 20011023-1.c (nonexistent) +++ 20011023-1.c (revision 154) @@ -0,0 +1,14 @@ +/* Test whether tree inlining works with prototyped nested functions. */ + +extern void foo (char *x); +void bar (void); +void bar (void) +{ + auto void baz (void); + void baz (void) + { + char tmp[2]; + foo (tmp); + } + baz (); +}
20011023-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000412-1.c =================================================================== --- 20000412-1.c (nonexistent) +++ 20000412-1.c (revision 154) @@ -0,0 +1,16 @@ +typedef struct { + short a; + short b; +} s1; + +extern void g(unsigned char *b); + +void f(void) +{ + s1 a; + unsigned char *b; + + a.a = 0; + b = (unsigned char *)&a; + g(b); +}
20000412-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20001222-1.c =================================================================== --- 20001222-1.c (nonexistent) +++ 20001222-1.c (revision 154) @@ -0,0 +1,6 @@ +/* Testcase for PR c/1501. */ +double __complex__ +f (void) +{ + return ~(1.0 + 2.0i); +}
20001222-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20001123-2.c =================================================================== --- 20001123-2.c (nonexistent) +++ 20001123-2.c (revision 154) @@ -0,0 +1,21 @@ +/* Copyright 2000 Free Software Foundation + + by Alexandre Oliva + + Based on zlib/gzio.c. + + This used to generate duplicate labels when compiled with + sh-elf-gcc -O2 -m3 -fPIC. + + Bug reported by NIIBE Yutaka . */ + +void foo (void); + +void +bar () +{ + unsigned len; + + for (len = 0; len < 2; len++) + foo (); +}
20001123-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010114-2.c =================================================================== --- 20010114-2.c (nonexistent) +++ 20010114-2.c (revision 154) @@ -0,0 +1,6 @@ +/* Origin: + from Fred Fish . See also PR c/1625. */ + +#include + +struct { int x; bool y; } foo = { 0, false };
20010114-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030530-1.c =================================================================== --- 20030530-1.c (nonexistent) +++ 20030530-1.c (revision 154) @@ -0,0 +1,23 @@ +union tree_node; +typedef union tree_node *tree; +struct tree_common +{ + tree type; + unsigned lang_flag_0 : 1; +}; +union tree_node +{ + struct tree_common common; +}; +static void +java_check_regular_methods (tree class_decl) +{ + int saw_constructor = class_decl->common.type->common.lang_flag_0; + tree class = class_decl->common.type; + for (;;) + { + if (class) + if (class_decl->common.type) + bar (class); + } +}
20030530-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031125-2.c =================================================================== --- 20031125-2.c (nonexistent) +++ 20031125-2.c (revision 154) @@ -0,0 +1,20 @@ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ +struct BlobSpan { + int right; +}; +/* This test makes sure we don't accidently cause a bad insertion to occur + by choosing the wrong variable name so that we end up with a use not + dominated by a def. */ +void render_blob_line(struct BlobSpan blobdata) { + int buf[4 * 8]; + int *data = buf; + int i, n = 0; + if (blobdata.right) + n++; + if (n) + for (; i < 2 * n;) + data[i] = 0; + n *= 2; + for (; n;) ; +}
20031125-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20051228-1.c =================================================================== --- 20051228-1.c (nonexistent) +++ 20051228-1.c (revision 154) @@ -0,0 +1,10 @@ +/* PR target/25554 */ +/* Bitwise shift with negative shift count has undefined behavior, + but we shouldn't ICE on it. */ + +void +foo (long x) +{ + if (((x >> -2) & 1) != 0) + bar (); +}
20051228-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 950613-1.c =================================================================== --- 950613-1.c (nonexistent) +++ 950613-1.c (revision 154) @@ -0,0 +1,31 @@ +#ifndef NO_LABEL_VALUES +f () +{ + long *sp; + long *pc; + + static void *dummy[] = + { + &&L1, + &&L2, + }; + + L1: + { + float val; + val = *(float *) sp; + val = -val; + *(float *) sp = val; + goto *pc++; + } + + L2: + { + float from; + *(long long *) sp = from; + goto *pc++; + } +} +#else +int x; +#endif
950613-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr17407.c =================================================================== --- pr17407.c (nonexistent) +++ pr17407.c (revision 154) @@ -0,0 +1,15 @@ +typedef struct libxml_xpathCallback { + void *ns_uri; +} libxml_xpathCallback; + +typedef libxml_xpathCallback libxml_xpathCallbackArray[]; + +libxml_xpathCallbackArray *libxml_xpathCallbacks; + +void foo1(void); + +void +foo (void) +{ + if ((*libxml_xpathCallbacks)[3].ns_uri != ((void *)0)) foo1(); +}
pr17407.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20011130-2.c =================================================================== --- 20011130-2.c (nonexistent) +++ 20011130-2.c (revision 154) @@ -0,0 +1,54 @@ +/* This testcase caused infinite loop in life info computation + after if conversion on IA-64. Conditional register dead for + pseudo holding sign-extended k was improperly computed, + resulting in this pseudo beeing live at start of bb if it was + dead at the end and vice versa; as it was a bb which had edge + to itself, this resulted in alternative propagating this basic + block forever. */ + +typedef struct { + unsigned char a; + unsigned char b; +} S0; + +typedef struct { + S0 *c; + int d; + unsigned int e; + unsigned char *f[3]; + void *g; +} S1; + +int bar (int, void *); + +int foo (S1 *x, float y) +{ + S0 *h; + int i, j, k, l, m; + float n, o, p; + unsigned char *q, *r[3]; + + h = x->c; + m = h->a; + l = h->b; + n = y; + o = 0.0; + if (x->d == 8) + for (j = 0; j < x->e; j++) + for (k = 0; k < 3; k++) + { + n = y; + o = 0.0; + if (m) + q = x->f[k] + x->e - 1 - j; + else + q = x->f[k] + j; + p = (*q - o) * y / (n - o); + p = 0.0 > p ? 0.0 : p; + p = y < p ? y : p; + if (l) + p = r[k][(int) p]; + bar (p, x->g); + } + return 1; +}
20011130-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000502-1.c =================================================================== --- 20000502-1.c (nonexistent) +++ 20000502-1.c (revision 154) @@ -0,0 +1,17 @@ +static int minimum(int a, int b) +{ + if(a < b) + return a; + else + return b; +} +static int a, b; +static inline int foo(void) +{ + a = minimum (a, b); + return 0; +} +static int bar(void) +{ + return foo(); +}
20000502-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000224-1.c =================================================================== --- 20000224-1.c (nonexistent) +++ 20000224-1.c (revision 154) @@ -0,0 +1,41 @@ +enum Lisp_Type +{ + Lisp_Int + ,Lisp_Record + ,Lisp_Cons + ,Lisp_String + ,Lisp_Vector + ,Lisp_Symbol + ,Lisp_Char +}; +typedef +union Lisp_Object + { + struct + { + enum Lisp_Type type: 3L ; + unsigned long markbit: 1; + unsigned long val: 32; + } gu; + long i; + } +Lisp_Object; +extern int initialized; +void +init_device_faces (int *d) +{ + if (initialized) + { + Lisp_Object tdevice; + do { + tdevice = (union Lisp_Object) + { gu: + { markbit: 0, + type: Lisp_Record, + val: ((unsigned long )d) + } + }; + } while (0); + call_critical_lisp_code (tdevice); + } +}
20000224-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000403-2.c =================================================================== --- 20000403-2.c (nonexistent) +++ 20000403-2.c (revision 154) @@ -0,0 +1,6 @@ +void +foo () +{ + long long tmp; + (( tmp ) = (long long)( tmp ) >> ( 32 )) ; +}
20000403-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: vector-align-1.c =================================================================== --- vector-align-1.c (nonexistent) +++ vector-align-1.c (revision 154) @@ -0,0 +1,11 @@ +/* Check to make sure the alignment on vectors is not being lost. */ + +/* If some target has a Max alignment less than 128, please create + a #ifdef around the alignment and add your alignment. */ +#define alignment 128 + +char x __attribute__((aligned(alignment),vector_size(2))); + + +int f[__alignof__(x) == alignment?1:-1]; +
vector-align-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050303-1.c =================================================================== --- 20050303-1.c (nonexistent) +++ 20050303-1.c (revision 154) @@ -0,0 +1,13 @@ +/* { dg-require-effective-target int32plus } */ +/* { dg-require-effective-target size32plus } */ + +void crc() +{ + int toread; + long long nleft; + unsigned char buf[(128 * 1024)]; + + nleft = 0; + while (toread = (nleft < (2147483647 * 2U + 1U)) ? nleft: (2147483647 * 2U + 1U) ) + ; +}
20050303-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr27863.c =================================================================== --- pr27863.c (nonexistent) +++ pr27863.c (revision 154) @@ -0,0 +1,28 @@ +/* This test used to ICE on IA64. */ +long stack[100]; +int main(int argc,char**argv,char **envp) +{ + long *esp=stack; + static void* jarray[]={ &&KeyCtrlKV }; + *++esp=(long)&&_loc0; + goto SetTermStruc; + _loc0:; + *++esp=(long)&&_loc1; + _loc1:; +*++esp=(long)&&_loc35; + _loc35:; +goto *(*esp--); +*++esp=(long)&&_loc36; + _loc36:; +*++esp=(long)&&_loc37; + _loc37:; +KeyCtrlKV: +*++esp=(long)&&_loc66; +_loc66:; +*++esp=(long)&&_loc106; + _loc106:; +*++esp=(long)&&_loc119; + _loc119:; +SetTermStruc: + goto *(*esp--); +}
pr27863.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20070121.c =================================================================== --- 20070121.c (nonexistent) +++ 20070121.c (revision 154) @@ -0,0 +1,18 @@ +/* PR rtl-optimization/29329 */ +/* Origin: Debian GCC Maintainers */ +/* Testcase by: Andrew Pinski */ + +struct node234_Tag +{ + int t1; + int kids[4]; + void *elems[3]; +}; + +void *add234_internal(struct node234_Tag *n, int ei) +{ + int j; + for (j = ei; j < 2 && n->elems[j+1];) + j++; + n->kids[j+1] = 0; +}
20070121.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020309-1.c =================================================================== --- 20020309-1.c (nonexistent) +++ 20020309-1.c (revision 154) @@ -0,0 +1,14 @@ +int +sub1 (char *p, int i) +{ + char j = p[i]; + + { + void + sub2 () + { + i = 2; + p = p + 2; + } + } +}
20020309-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20021119-1.c =================================================================== --- 20021119-1.c (nonexistent) +++ 20021119-1.c (revision 154) @@ -0,0 +1,11 @@ +/* PR c/8588 */ +/* Contributed by Volker Reichelt. */ + +/* Verify that GCC converts integer constants + in shift operations. */ + +void foo() +{ + unsigned int i, j; + j = (i >> 0xf0); +}
20021119-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20011219-2.c =================================================================== --- 20011219-2.c (nonexistent) +++ 20011219-2.c (revision 154) @@ -0,0 +1,20 @@ +/* This testcase failed on Alpha at -O2 when simplifying conditional + expressions. */ + +struct S { + unsigned long a; + double b, c; +}; + +extern double bar (double, double); + +int +foo (unsigned long x, unsigned int y, struct S *z) +{ + unsigned int a = z->a; + int b = y / z->a > 1 ? y / z->a : 1; + + a = y / b < z->a ? y / b : z->a; + z->c = z->b * bar ((double) a, (double) x); + return 0; +}
20011219-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 941113-1.c =================================================================== --- 941113-1.c (nonexistent) +++ 941113-1.c (revision 154) @@ -0,0 +1,12 @@ +typedef void foo (void); + +f (x) +{ + if (x) + { + const foo* v; + (*v)(); + } + else + g (0); +}
941113-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920701-1.c =================================================================== --- 920701-1.c (nonexistent) +++ 920701-1.c (revision 154) @@ -0,0 +1 @@ +f(char*c){extern char a[],b[];return a+(b-c);}
920701-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930421-1.c =================================================================== --- 930421-1.c (nonexistent) +++ 930421-1.c (revision 154) @@ -0,0 +1,19 @@ +double q(double); + +f (int **x, int *r, int *s, int a, int b, int c, int d) +{ + int i, j, k, m, e, f, g, z[1024], y[2]; + + e = g = 0; + for (i = 0; i < a; i++) + for (j = 0; j < b; j++) + if (x[i][j]) + for (k = 0; k < c; k++) + { + f = q(1.5) + q(2.5); + if (g < y[f]) + g = e; + } + for (m = 0; m < 1; m++) + z[0] = m*2*d/3.0 - d; +}
930421-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 941014-2.c =================================================================== --- 941014-2.c (nonexistent) +++ 941014-2.c (revision 154) @@ -0,0 +1,37 @@ +void +f (n, ppt, xrot) +{ + int tileWidth; + int nlwSrc; + int srcx; + int v3, v4; + register unsigned long ca1, cx1, ca2, cx2; + unsigned long *pSrcLine; + register unsigned long *pDst; + register unsigned long *pSrc; + register unsigned long b, tmp; + unsigned long tileEndMask; + int v1, v2; + int tileEndPart; + int needFirst; + tileEndPart = 0; + v1 = tileEndPart << 5; + v2 = 32 - v1; + while (n--) + { + if ((srcx = (ppt - xrot) % tileWidth) < 0) + if (needFirst) + if (nlwSrc == 1) + { + tmp = b; + if (tileEndPart) + b = (*pSrc & tileEndMask) | (*pSrcLine >> v1); + } + if (tileEndPart) + b = (tmp << v1) | (b >> v2); + if (v4 != 32) + *pDst = (*pDst & ((tmp << v3) | (b >> v4) & ca1 ^ cx1) + ^ (((tmp << v3) | (b >> v4)) & ca2 ^ cx2)); + *pDst = *pDst & tmp; + } +}
941014-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20060309-1.c =================================================================== --- 20060309-1.c (nonexistent) +++ 20060309-1.c (revision 154) @@ -0,0 +1,3 @@ +/* Test to make sure that indirect jumps compile. */ +extern void bar(void); +void foo() { bar(); }
20060309-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920501-7.c =================================================================== --- 920501-7.c (nonexistent) +++ 920501-7.c (revision 154) @@ -0,0 +1,5 @@ +#ifndef NO_LABEL_VALUES +x(){if(&&e-&&b<0)x();b:goto*&&b;e:;} +#else +int x; +#endif
920501-7.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920825-1.c =================================================================== --- 920825-1.c (nonexistent) +++ 920825-1.c (revision 154) @@ -0,0 +1,3 @@ +#pragma pack(1) +struct{unsigned short f1:5;unsigned short f2:6;}x; +f(){x.f2=1;}
920825-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 980821-1.c =================================================================== --- 980821-1.c (nonexistent) +++ 980821-1.c (revision 154) @@ -0,0 +1,15 @@ +typedef int __int32_t; +int __kernel_rem_pio2(int prec) +{ + __int32_t i, jz; + double fw, fq[20]; + switch(prec) { + case 2: + fw = 0.0; + case 3: + for (i=jz;i>0;i--) { + fw = fq[i-1] +fq[i]; + fq[i-1] = fw; + } + } +}
980821-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 990801-2.c =================================================================== --- 990801-2.c (nonexistent) +++ 990801-2.c (revision 154) @@ -0,0 +1,11 @@ +void f() +{ + extern char* p; + int ch; + while (!(ch = 0)) { + if ((ch == 0) || (ch == 2)) { + break; + } + *p = 0; + } +}
990801-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920428-7.c =================================================================== --- 920428-7.c (nonexistent) +++ 920428-7.c (revision 154) @@ -0,0 +1 @@ +x(float*x){int a[4],i=0,j;for(j=0;j<2;j++){f(a[i++]);f(a[i++]);}}
920428-7.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: volatile-1.c =================================================================== --- volatile-1.c (nonexistent) +++ volatile-1.c (revision 154) @@ -0,0 +1,18 @@ +/* The problem here was that the statements that + loaded from exception.reason where not being + marked as having volatile behaviour which + caused load PRE on the tree level to go + into an infinite loop. */ + +struct gdb_exception +{ + int reason; +}; +int catch_exceptions_with_msg (int *gdberrmsg) +{ + volatile struct gdb_exception exception; + exceptions_state_mc_init (&(exception)); + if (exception.reason != 0) + foo (); + return exception.reason; +}
volatile-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr16461.c =================================================================== --- pr16461.c (nonexistent) +++ pr16461.c (revision 154) @@ -0,0 +1,14 @@ +/* PR tree-optimization/16461 */ + +int DVDinput_read(int); +int DVDReadBlocksPath(int offset, int block_count) { + int ret = 0, ret2 = 0; + for (;;) { + if (offset) + ret = DVDinput_read(block_count); + else + ret2 = DVDinput_read(block_count); + break; + } + return ret + ret2; +}
pr16461.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031002-1.c =================================================================== --- 20031002-1.c (nonexistent) +++ 20031002-1.c (revision 154) @@ -0,0 +1,9 @@ +/* PR/12292 + http://gcc.gnu.org/ml/gcc-patches/2003-10/msg00143.html */ + +char flags; + +int bug12292(int t) +{ + flags &= ~(1 << (t + 4)); +}
20031002-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20021120-1.c =================================================================== --- 20021120-1.c (nonexistent) +++ 20021120-1.c (revision 154) @@ -0,0 +1,9 @@ +/* PR c/8518 */ +/* Contributed by Volker Reichelt. */ + +/* Verify that GCC doesn't get confused by the + redefinition of an extern inline function. */ + +extern int inline foo () { return 0; } +extern int inline bar () { return 0; } +static int inline bar () { return foo(); }
20021120-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000511-1.c =================================================================== --- 20000511-1.c (nonexistent) +++ 20000511-1.c (revision 154) @@ -0,0 +1,31 @@ +typedef struct { + char y; + char x[32]; +} X; + +int z (void) +{ + X xxx; + xxx.x[0] = + xxx.x[31] = '0'; + xxx.y = 0xf; + return f (xxx, xxx); +} + +int main (void) +{ + int val; + + val = z (); + if (val != 0x60) + abort (); + exit (0); +} + +int f(X x, X y) +{ + if (x.y != y.y) + return 'F'; + + return x.x[0] + y.x[0]; +}
20000511-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000314-1.c =================================================================== --- 20000314-1.c (nonexistent) +++ 20000314-1.c (revision 154) @@ -0,0 +1,11 @@ +struct { + char a[5]; +} *p; + +int main () +{ + int i = -1; + + if(p->a[-i]) + return 1; +}
20000314-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20001205-1.c =================================================================== --- 20001205-1.c (nonexistent) +++ 20001205-1.c (revision 154) @@ -0,0 +1,25 @@ +/* This does not work on m68hc11 due to the asm statement which forces + two 'long' (32-bits) variables to go in registers. */ +/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */ + +static inline unsigned long rdfpcr(void) +{ + unsigned long tmp, ret; + __asm__ ("" : "=r"(tmp), "=r"(ret)); + return ret; +} + +static inline unsigned long +swcr_update_status(unsigned long swcr, unsigned long fpcr) +{ + swcr &= ~0x7e0000ul; + swcr |= (fpcr >> 3) & 0x7e0000ul; + return swcr; +} + +unsigned long osf_getsysinfo(unsigned long flags) +{ + unsigned long w; + w = swcr_update_status(flags, rdfpcr()); + return w; +}
20001205-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000412-2.c =================================================================== --- 20000412-2.c (nonexistent) +++ 20000412-2.c (revision 154) @@ -0,0 +1,4 @@ +char list[250][64]; + +int f(int idx) { return (strlen(list[idx])); } +
20000412-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr19853.c =================================================================== --- pr19853.c (nonexistent) +++ pr19853.c (revision 154) @@ -0,0 +1,19 @@ +struct test { int *x; } global_test; +int global_int; + +int flag; + +void test (char *dummy) +{ + static const struct test const_test = { &global_int }; + struct test local_test; + + int i; + for (i = 0; i < 1; i++) + *dummy = 0; + if (flag) + __builtin_memset (dummy, 0, 16); + + local_test = const_test; + global_test = local_test; +}
pr19853.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010911-1.c =================================================================== --- 20010911-1.c (nonexistent) +++ 20010911-1.c (revision 154) @@ -0,0 +1,4 @@ +/* Test for segfault handling an empty attribute. */ +/* Origin: PR c/4294 from . */ + +void __attribute__(()) foo();
20010911-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010714-1.c =================================================================== --- 20010714-1.c (nonexistent) +++ 20010714-1.c (revision 154) @@ -0,0 +1,5 @@ +/* Test that prefix attributes after a comma only apply to a single + declared object or function. */ +/* Origin: Joseph Myers . */ + +__attribute__((noreturn)) void d0 (void), __attribute__((format(printf, 1, 2))) d1 (const char *, ...), d2 (void);
20010714-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020318-1.c =================================================================== --- 20020318-1.c (nonexistent) +++ 20020318-1.c (revision 154) @@ -0,0 +1,16 @@ +/* PR c/5656 + This testcase ICEd on IA-32 at -O3, due to tree inliner not converting + parameter assignment when using K&R syntax. */ + +void foo (c) + char c; +{ + (void) &c; +} + +int bar (void); + +void baz (void) +{ + foo (bar ()); +}
20020318-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 951004-1.c =================================================================== --- 951004-1.c (nonexistent) +++ 951004-1.c (revision 154) @@ -0,0 +1,23 @@ +typedef struct +{ + short v, h; +} S; + +S a; + +f (S pnt) +{ + S mpnt, mtp; + + (&pnt)->v -= 1; + mpnt = pnt; + mtp = a; + if (mtp.v != mpnt.v) + { + S tpnt; + + tpnt = mtp; + mtp = mpnt; + mpnt = tpnt; + } +}
951004-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920611-2.c =================================================================== --- 920611-2.c (nonexistent) +++ 920611-2.c (revision 154) @@ -0,0 +1,53 @@ +typedef unsigned char uchar; +typedef unsigned short ushort; +typedef unsigned int uint; +typedef unsigned long ulong; + +static unsigned long S[1][1]={0x00820200}; + +static int body(out0,out1,ks,Eswap0,Eswap1) +ulong *out0,*out1; +int *ks; +ulong Eswap0,Eswap1; +{ + register unsigned long l,r,t,u,v; + register unsigned long *s; + register int i,j; + register unsigned long E0,E1; + + l=0; + r=0; + + s=(ulong *)ks; + E0=Eswap0; + E1=Eswap1; + + for (i=0; i<(16 *2); i+=4) + { + v=(r^(r>>16)); + u=(v&E0); + v=(v&E1); + u=(u^(u<<16))^r^s[ i ]; + t=(v^(v<<16))^r^s[ i+1]; + t=(t>>4)|(t<<28); + l^=S[1][(t)&0x3f]| S[3][(t>> 8)&0x3f]| S[5][(t>>16)&0x3f]| S[7][(t>>24)&0x3f]| S[0][(u)&0x3f]| S[2][(u>> 8)&0x3f]| S[4][(u>>16)&0x3f]| S[6][(u>>24)&0x3f]; + v=(l^(l>>16)); + u=(v&E0); + v=(v&E1); + u=(u^(u<<16))^l^s[ i+2 ]; + t=(v^(v<<16))^l^s[ i+2+1]; + t=(t>>4)|(t<<28); + r^= S[1][(t )&0x3f]; + } + t=l; + l=r; + r=t; + + t=r; + r=(l>>1)|(l<<31); + l=(t>>1)|(t<<31); + + *out0=l; + *out1=r; + return(0); +}
920611-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930117-1.c =================================================================== --- 930117-1.c (nonexistent) +++ 930117-1.c (revision 154) @@ -0,0 +1,4 @@ +f(x) +{ + (*(void (*)())&x)(); +}
930117-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 921126-1.c =================================================================== --- 921126-1.c (nonexistent) +++ 921126-1.c (revision 154) @@ -0,0 +1,11 @@ +f() +{ + long long a0, a1, a0s, val; + int width; + float d; + if (d) + ; + if (a0s & (1LL << width)) + ; + return a0 / a1; +}
921126-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 981006-1.c =================================================================== --- 981006-1.c (nonexistent) +++ 981006-1.c (revision 154) @@ -0,0 +1,53 @@ +/* Test that tablejump insns are correctly handled. If the compiler + loses track of the jump targets, it will report that x and y can be + used uninitialized. + + This is broken in egcs 1998/10/06 for mips in pic mode. */ +/* { dg-do assemble } */ +/* For MIPS at least, pic is needed to trigger the problem. */ +/* { dg-options "-w -Wuninitialized -Werror -fpic" } */ +/* { dg-options "-w -Wuninitialized -Werror" { target rs6000-*-aix* powerpc*-*-aix* arm*-*-* xscale*-*-* strongarm*-*-* fr30-*-* sh-*-hms sh-*-coff h8300*-*-* cris-*-elf* cris-*-aout* mmix-*-* } } */ + +int foo (int a, int b) +{ + __label__ z; + int x; /* { dg-bogus "warning: `.' might be used uninitialized in this function" } */ + int y; /* { dg-bogus "warning: `.' might be used uninitialized in this function" } */ + static void *p; + + switch (a) { + case 2: + x = 4; + break; + case 4: + x = 6; + break; + case 8: case 10: case 13: case 11: case 17: case 19: + x = 7; + break; + default: + x = -1; + break; + } + switch (b) { + case 2: + y = 4; + break; + case 4: + y = 6; + break; + case 8: case 10: case 13: case 11: case 17: case 19: + y = 7; + break; + default: + y = -1; + break; + } + z: + p = &&z; + return x * y; +} +int main (int argc, char *argv[]) +{ + return 1 == foo (argc, argc + 1); +}
981006-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 961126-1.c =================================================================== --- 961126-1.c (nonexistent) +++ 961126-1.c (revision 154) @@ -0,0 +1,107 @@ +int *p; + +main() +{ + int i = sub (); + + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + i = -i; + if (*p != i) + goto quit; + + i = -i; +quit: + sub2 (i); +}
961126-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 951128-1.c =================================================================== --- 951128-1.c (nonexistent) +++ 951128-1.c (revision 154) @@ -0,0 +1,5 @@ +char a[]; +f (const int i) +{ + a[i] = 0; +}
951128-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: dll.c =================================================================== --- dll.c (nonexistent) +++ dll.c (revision 154) @@ -0,0 +1,23 @@ +/* { dg-require-dll "" } */ + +__declspec (dllimport) int foo; +extern int (* import) (void) __attribute__((dllimport)); +int func2 (void) __attribute__((dllexport)); + +__declspec(dllexport) int +func1 (int a) +{ + return a + foo; +} + +static int +internal (void) +{ + return 77; +} + +int +func2 (void) +{ + return import (); +}
dll.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr31345-1.c =================================================================== --- pr31345-1.c (nonexistent) +++ pr31345-1.c (revision 154) @@ -0,0 +1,24 @@ +/* PR tree-optimization/31345 + This caused a crash in VRP when dealing with overflow infinities. */ + +void +dpsnaffle (const char *kbuf) +{ + int hash, thash, head[2], off; + { + int _DP_i; + (hash) = 19780211; + { + (hash) = (hash) + (kbuf)[_DP_i]; + } + (hash) = ((hash) * 43321879) & 0x7FFFFFFF; + } + while (off != 0) + { + if (hash > thash) {} + else if (hash < thash) + { + off = head[2]; + } + } +}
pr31345-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr33382.c =================================================================== --- pr33382.c (nonexistent) +++ pr33382.c (revision 154) @@ -0,0 +1,95 @@ +typedef unsigned int size_t; +typedef struct { + int disable; + char *searchconfig[]; +} config_t; +typedef struct { + void *lng; +} arglist_t; +config_t config = { + .searchconfig = { + ((void *) 0)} +}; + +arglist_t arglist[] = { + { + &config.searchconfig[0]} +}; +const int arglistsize = ((int) (sizeof(arglist) / sizeof(arglist_t))); +void show_configuration(char *arg) +{ + int i; + + if (!__extension__( { + size_t + __s1_len, + __s2_len; (__builtin_constant_p(arglist[i].lng) + && (__s1_len = (!((size_t) + (const void *) + 1) + || __s2_len >= 4)) + ? : (__builtin_constant_p(arglist[i].lng) + && ((size_t) + (const void *) + 4) + ? (__builtin_constant_p(arg) + && ((size_t) (const void *) 1) ? + : (__extension__( { + __const * __s2 = + (__const *) + (arg); + register + __result = + (((__const + *) (arglist + [i]. + lng))[0] + - __s2[0]); + if (__s1_len == + 0) { + if (__s1_len == + 0) { + __result = + (((__const + unsigned char + *) (__const + char + *) + (arglist[i]. + lng))[3] - + __s2[3]);} + } + __result;} + ))): + (__builtin_constant_p(arg) + ? + (__builtin_constant_p + (arglist[i].lng) + ? : (__extension__( { + char + __result + = + ((__const + unsigned *) + (arg))[0]; + if + (__s2_len + > 0 + && __result == + 0) { + if (__s2_len > + 1 + && __result + == 0) { + } + } + __result;} + ))): + + + + __builtin_strcmp(arglist[i].lng, + arg))));} + )) + return; +}
pr33382.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr17408.c =================================================================== --- pr17408.c (nonexistent) +++ pr17408.c (revision 154) @@ -0,0 +1,5 @@ +/* PRs 17408 and 17409, with different options. */ +extern int t; +extern int t = 0; +void f(){t =0;} +void g(){h(&t);}
pr17408.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031011-1.c =================================================================== --- 20031011-1.c (nonexistent) +++ 20031011-1.c (revision 154) @@ -0,0 +1,21 @@ +/* PR optimization/12544 */ +/* Origin: Tony Hosking */ + +/* Verify that non-local structures passed by invisible + reference are correctly put in the stack. */ + +typedef struct { + int a; + int f; +} A; + +A *b; + +void x (A a) { + void y () { + a.a = 0; + } + + b = &a; + y(); +}
20031011-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20021110.c =================================================================== --- 20021110.c (nonexistent) +++ 20021110.c (revision 154) @@ -0,0 +1,10 @@ +/* PR c/8439 */ +/* Verify that GCC properly handles null increments. */ + +struct empty { +}; + +void foo(struct empty *p) +{ + p++; +}
20021110.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010124-1.c =================================================================== --- 20010124-1.c (nonexistent) +++ 20010124-1.c (revision 154) @@ -0,0 +1,9 @@ +/* Origin: testcase from Joseph Myers , problem pointed + out in a post to comp.std.c + <980283801.3063.0.nnrp-07.c2deb1c2@news.demon.co.uk> + by Dibyendu Majumdar . + Compound literals should be parsed as postfix expressions, rather than + as cast expressions. In particular, they are valid operands of sizeof. */ + +struct s { int a; int b; }; +char x[((sizeof (struct s){ 1, 2 }) == sizeof (struct s)) ? 1 : -1];
20010124-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr12578.c =================================================================== --- pr12578.c (nonexistent) +++ pr12578.c (revision 154) @@ -0,0 +1,15 @@ +/* PR tree-optimization/12517 */ + +void trivial_regexp_p(int *s, int len) +{ + while (--len) { + switch (*s++) { + case '\\': + switch (*s++) { + case '|': + ; + } + } + } +} +
pr12578.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr22379.c =================================================================== --- pr22379.c (nonexistent) +++ pr22379.c (revision 154) @@ -0,0 +1,23 @@ +void __add_entropy_words(void); +void __wake_up(void); +void SHATransform(void); +static inline __attribute__((always_inline)) void add_entropy_words(void){} +void extract_entropy(void); +static inline __attribute__((always_inline)) void xfer_secondary_pool(void) +{ +extract_entropy(); +add_entropy_words(); +} +void extract_entropy(void) +{ +xfer_secondary_pool(); +__wake_up(); +} +void init_std_data(void) +{ +add_entropy_words(); +} +void rand_initialize(void) +{ +init_std_data(); +}
pr22379.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040323-1.c =================================================================== --- 20040323-1.c (nonexistent) +++ 20040323-1.c (revision 154) @@ -0,0 +1,12 @@ +/* PR middle-end/14694 */ +/* { dg-require-alias "" } */ + +unsigned int _rtld_global = 1; +extern unsigned int _rtld_local __attribute__ ((alias ("_rtld_global"))); + +unsigned int +_dl_start (void *arg) +{ + unsigned int elf_machine_rel () { return _rtld_local; } + return elf_machine_rel (); +}
20040323-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 921011-1.c =================================================================== --- 921011-1.c (nonexistent) +++ 921011-1.c (revision 154) @@ -0,0 +1,27 @@ +void +fun (nb) + int nb; +{ + int th, h, em, nlwm, nlwS, nlw, sy; + + while (nb--) + while (h--) + { + nlw = nlwm; + while (nlw) + { + if (nlwS == 1) + { + } + else + if (nlwS == 1) + { + } + nlwS--; nlw--; + } + if (em) + nlwS--; + if (++sy == th) + sy = 0; + } +}
921011-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000922-1.c =================================================================== --- 20000922-1.c (nonexistent) +++ 20000922-1.c (revision 154) @@ -0,0 +1,12 @@ +extern void doit(int); +void +quick_doit(int x) +{ +#ifdef __OPTIMIZE__ + if (__builtin_constant_p (x) + && x != 0) + asm volatile ("%0" : : "i#*X"(x)); + else +#endif + doit(x); +}
20000922-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020605-1.c =================================================================== --- 20020605-1.c (nonexistent) +++ 20020605-1.c (revision 154) @@ -0,0 +1,17 @@ +/* This testcase caused on IA-32 -O2 endless loop in + merge_blocks when trying to merge a basic block + with itself. */ + +void f (void) +{ + char *c; + do + { + if (c) + break; + } + while (1); + if (!c) + while (1) + f (); +}
20020605-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020309-2.c =================================================================== --- 20020309-2.c (nonexistent) +++ 20020309-2.c (revision 154) @@ -0,0 +1,16 @@ +/* This testcase ICEd on IA-32 at -O2, because loop was calling convert_modes + between a MODE_FLOAT and MODE_INT class modes. */ + +typedef union +{ + double d; + long long ll; +} A; + +void +foo (A x, A **y, A z) +{ + for (; *y; y++) + if (x.ll == 262 && (*y)->d == z.d) + break; +}
20020309-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000609-1.c =================================================================== --- 20000609-1.c (nonexistent) +++ 20000609-1.c (revision 154) @@ -0,0 +1,6 @@ +int main () +{ + char temp[1024] = "tempfile"; + return temp[0] != 't'; +} +
20000609-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010329-1.c =================================================================== --- 20010329-1.c (nonexistent) +++ 20010329-1.c (revision 154) @@ -0,0 +1,17 @@ +union u { + unsigned char a; + double b; +}; + +int a; + +union u foo (void) +{ + union u b; + + if (a) + b.a = 1; + else + b.a = 0; + return b; +}
20010329-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 960201-1.c =================================================================== --- 960201-1.c (nonexistent) +++ 960201-1.c (revision 154) @@ -0,0 +1,5 @@ +union foo +{ + char a; + int x[2]; +} __attribute__ ((transparent_union));
960201-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 950122-1.c =================================================================== --- 950122-1.c (nonexistent) +++ 950122-1.c (revision 154) @@ -0,0 +1,5 @@ +int +foo (int i, unsigned short j) +{ + return j *= i; +}
950122-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020926-1.c =================================================================== --- 20020926-1.c (nonexistent) +++ 20020926-1.c (revision 154) @@ -0,0 +1,21 @@ +/* PR c/7160 */ +/* Verify that the register-to-stack converter properly handles + branches without return value containing function calls. */ + +extern int gi; + +extern int foo1(int, int); +extern void foo2(int, int); +extern float foo3(int); + +float bar(int i1, int i2) +{ + int i3; + + if (i2) { + i3 = foo1(i1, gi); + foo2(i1, i3); + } + else + return foo3(i2); +}
20020926-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 941014-3.c =================================================================== --- 941014-3.c (nonexistent) +++ 941014-3.c (revision 154) @@ -0,0 +1,72 @@ +typedef unsigned char byte; +typedef unsigned int uint; +typedef unsigned long ulong; +typedef ulong gs_char; +typedef struct gs_show_enum_s gs_show_enum; +typedef struct gs_font_s gs_font; +typedef struct gx_font_stack_item_s { + gs_font *font; +} gx_font_stack_item; +typedef struct gx_font_stack_s { + gx_font_stack_item items[1 + 5 ]; +} gx_font_stack; +struct gs_show_enum_s { + gx_font_stack fstack; +}; +typedef enum { + ft_composite = 0, +} font_type; +struct gs_font_s { + font_type FontType; +}; +typedef enum { + fmap_escape = 3, + fmap_shift = 8 + } fmap_type; +typedef struct gs_type0_data_s { + fmap_type FMapType; +} gs_type0_data; +gs_type0_next_char(register gs_show_enum *penum) +{ + const byte *p; + int fdepth; + gs_font *pfont; + gs_type0_data *pdata; + uint fidx; + gs_char chr; + for (; pfont->FontType == ft_composite; ) + { + fmap_type fmt; + switch ( fmt ) + { + do {} while (0); + rdown: + continue; + case fmap_shift: + p++; + do {} while (0); + goto rdown; + } + break; + } + up: + while ( fdepth > 0 ) + { + switch ( pdata->FMapType ) + { + default: + continue; + case fmap_escape: + fidx = *++p; + do {} while (0); + if ( fidx == chr && fdepth > 1 ) + goto up; + down: + fdepth--; + do {} while (0); + } + break; + } + while ( (pfont = penum->fstack.items[fdepth].font)->FontType == ft_composite ) + ; +}
941014-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930126-1.c =================================================================== --- 930126-1.c (nonexistent) +++ 930126-1.c (revision 154) @@ -0,0 +1,74 @@ +typedef unsigned T; +typedef char Tchar; +T mt (long, char *); +T ms (long, char *); +T mv (long, T, char); +T cons (T, T); +T decl (T * (*) (T *), char *); + +T*L92(T*),*L15(T*),*L14(T*),*L13(T*),*L12(T*),*L11(T*),*L10(T*),*L9(T*),*L8(T*),*L7(T*),*L6(T*),*L5(T*),*L4(T*),*L3(T*),*L2(T*),*L1(T*); + +static T * +Ldata (T * my_pc) +{ +int cc = (((* ((T *) (my_pc))) >> 16) & 0xFF); +T B92, B91, B90, B15, B14, B13, B12, B11, B10, B9, B8, B7, B6, B5, B4, B3, B2, B1, tO7, tO6, tO5, tO4, tO3, tO2, tO1, tO0; +T object = mv (168, 0, ((Tchar) 1)); +T * cb = (T *) (((T) (object & 0x3FF)) | 0x400); +tO0 = mv (92, 0, ((Tchar) 1)); +B92 = decl (L92, ""); +B15 = decl (L15, ""); +B14 = decl (L14, ""); +B13 = decl (L13, ""); +B12 = decl (L12, ""); +B11 = decl (L11, ""); +B10 = decl (L10, ""); +B9 = decl (L9, ""); +B8 = decl (L8, ""); +B7 = decl (L7, ""); +B6 = decl (L6, ""); +B5 = decl (L5, ""); +B4 = decl (L4, ""); +B3 = decl (L3, ""); +B2 = decl (L2, ""); +B1 = decl (L1, ""); +cb[19] = ((((cc) & 0xFF) << 16) | (9 & 0xFF)); +cb[21] = ((((cc) & 0xFF) << 16) | ((10) & 0xFF)); +cb[23] = ((((cc) & 0xFF) << 16) | (11 & 0xFF)); +cb[25] = ((((cc) & 0xFF) << 16) | (12 & 0xFF)); +cb[27] = ((((cc) & 0xFF) << 16) | (13 & 0xFF)); +cb[29] = ((((cc) & 0xFF) << 16) | (14 & 0xFF)); +cb[31] = ((((cc) & 0xFF) << 16) | (15 & 0xFF)); +cb[35] = ((((cc) & 0xFF) << 16) | (17 & 0xFF)); +cb[36] = ((0x1A) << 26) | (((0x39) << 26) | 1) & 0x3FF; +cb[39] = ms (24, ((char *) "")); +cb[41] = ((0x1A) << 26) | (((0x39) << 26) | 1) & 0x3FF; +cb[44] = 3; +cb[46] = 2; +cb[48] = 3; +cb[50] = 6; +cb[52] = 4; +cb[146] = tO0; +((T *) (((tO0 & 0x3FF)) | 0x400))[92] = B1; +((T *) (((tO0 & 0x3FF)) | 0x400))[91] = B2; +((T *) (((tO0 & 0x3FF)) | 0x400))[2] = B90; +((T *) (((tO0 & 0x3FF)) | 0x400))[2] = B91; +((T *) (((tO0 & 0x3FF)) | 0x400))[1] = B92; +cb[58] = 0x2800 | (T) ((T *) ((B6 & 0x3FF) | 0x400) + 3); +cb[57] = 0x2800 | (T) ((T *) ((B7 & 0x3FF) | 0x400) + 3) & ~0xC00; +cb[56] = 0x2800 | (T) ((T *) ((B8 & 0x3FF) | 0x400) + 3) & ~0xC00; +cb[55] = 0x2800 | (T) ((T *) ((B9 & 0x3FF) | 0x400) + 3) & ~0xC00; +tO7 = mv (8, 0, ((Tchar) 1)); +tO4 = ms (9, ((char *) "")); +tO3 = mv (58, 0, ((Tchar) 1)); +tO6 = ms (4, ((char *) "")); +tO2 = mv (4, 0, ((Tchar) 1)); +tO5 = ms (4, ((char *) "")); +tO1 = mv (28, 0, ((Tchar) 1)); +cb[165] = tO1; +cb[163] = cons (((ms (10, ((char *) "")))), (cons (tO5, 0))); +cb[162] = cons (1, (cons (2, 0))); +cb[150] = cons (1, (cons (2, (cons (3, (cons (4, (cons (5, (cons (6, 0))))))))))); +cb[148] = tO7; +return cb; +}
930126-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 921019-1.c =================================================================== --- 921019-1.c (nonexistent) +++ 921019-1.c (revision 154) @@ -0,0 +1,9 @@ +struct +{ +int n:1,c:1; +}p; + +f() +{ +p.c=p.n=0; +}
921019-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 990203-1.c =================================================================== --- 990203-1.c (nonexistent) +++ 990203-1.c (revision 154) @@ -0,0 +1,7 @@ +int +f (f) + float f; +{ + long long *ip = (long long *) &f; + return (*ip & 0x7ff0000000000000LL ) != 0x7ff0000000000000LL ; +}
990203-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920501-8.c =================================================================== --- 920501-8.c (nonexistent) +++ 920501-8.c (revision 154) @@ -0,0 +1 @@ +x(int*p){int x=p;}
920501-8.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 961019-1.c =================================================================== --- 961019-1.c (nonexistent) +++ 961019-1.c (revision 154) @@ -0,0 +1,11 @@ +char _hex_value[256]; + +void +hex_init () +{ + int i; + for (i = 0; i < 256; i++) + _hex_value[i] = 99; + for (i = 0; i < 10; i++) + _hex_value['0' + i] = i; +}
961019-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920825-2.c =================================================================== --- 920825-2.c (nonexistent) +++ 920825-2.c (revision 154) @@ -0,0 +1,3 @@ +f(double*a,int m){int j;for(j=0;j
920825-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920808-1.c =================================================================== --- 920808-1.c (nonexistent) +++ 920808-1.c (revision 154) @@ -0,0 +1 @@ +f(i){for(i=1;i<=2;({;}),i++){({;}),g();}}
920808-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 980329-1.c =================================================================== --- 980329-1.c (nonexistent) +++ 980329-1.c (revision 154) @@ -0,0 +1,72 @@ +typedef unsigned long int size_t; +struct re_pattern_buffer + { + unsigned char *buffer; + unsigned long int used; + }; +struct re_registers + { + int *start; + }; + +static const char **regstart, **regend; +static const char **old_regend; + +static int +re_match_2_internal (struct re_pattern_buffer *bufp, + struct re_registers *regs) +{ + unsigned char *p = bufp->buffer; + unsigned char *pend = p + bufp->used; + + for (;;) + { + int highest_active_reg = 1; + if (bufp) + { + int i; + for (i = 1;; i++) + regs->start[i] = 0; + } + + switch ((unsigned int) *p++) + { + case 1: + { + unsigned char r = *p; + if (r) + highest_active_reg = r; + } + if (p + 2 == pend) + { + char is_a_jump_n = 0; + int mcnt = 0; + unsigned char *p1; + + p1 = p + 2; + switch (*p1++) + { + case 2: + is_a_jump_n = 1; + case 1: + do { do { mcnt = *p1; } while (0); p1 += 2; } while (0); + if (is_a_jump_n) + p1 = 0; + } + + if (mcnt && *p1 == 0) + { + unsigned r; + for (r = 0; r < (unsigned) *p + (unsigned) *(p + 1); r++) + { + if (regend[0] >= regstart[r]) + regend[r] = old_regend[r]; + } + do { while (0 < highest_active_reg + 1) { } } while (0); + } + } + } + } + + return -1; +}
980329-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 950729-1.c =================================================================== --- 950729-1.c (nonexistent) +++ 950729-1.c (revision 154) @@ -0,0 +1,39 @@ +static const char * const lcset = "0123456789abcdef"; +static const char * const ucset = "0123456789ABCDEF"; + +char * +f (char *buffer, long long value, char type) +{ + int base, i; + + i = 128 - 1; + buffer[i--] = '\0'; + + switch (type) + { + case 'u': + case 'o': + case 'x': + case 'X': + if (type == 'u') + base = 10; + else if (type == 'o') + base = 8; + else + base = 16; + + while (i >= 0) + { + if (type == 'X') + buffer[i--] = ucset[((unsigned long long) value) % base]; + else + buffer[i--] = lcset[((unsigned long long) value) % base]; + + if ((value = ((unsigned long long) value) / base) == 0) + break; + } + break; + } + + return &buffer[++i]; +}
950729-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr26425.c =================================================================== --- pr26425.c (nonexistent) +++ pr26425.c (revision 154) @@ -0,0 +1,9 @@ +struct keyring_list { + struct key *keys[0]; +}; +void keyring_destroy(struct keyring_list *keyring, unsigned short a) +{ + int loop; + for (loop = a - 1; loop >= 0; loop--) + key_put(keyring->keys[loop]); +}
pr26425.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: packed-1.c =================================================================== --- packed-1.c (nonexistent) +++ packed-1.c (revision 154) @@ -0,0 +1,14 @@ +struct s +{ + int e; +} x; + +struct rbuf +{ + struct s *p __attribute__ ((packed)); +} *b; + +f () +{ + b->p = &x; +}
packed-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20021103-1.c =================================================================== --- 20021103-1.c (nonexistent) +++ 20021103-1.c (revision 154) @@ -0,0 +1,10 @@ +/* PR middle-end/8408 */ +/* Verify that the recognizer explicitly + handles ADDRESSOF operands. */ + +void foo(void) +{ + double d1 = 3.14159, d2; + if (&d2 == &d1) + ; +}
20021103-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20021120-2.c =================================================================== --- 20021120-2.c (nonexistent) +++ 20021120-2.c (revision 154) @@ -0,0 +1,9 @@ +/* PR c/8518 */ +/* Contributed by Volker Reichelt. */ + +/* Verify that GCC doesn't get confused by the + redefinition of an extern inline function. */ + +extern int inline foo () { return 0; } +extern int inline bar () { return 0; } +static int bar () { return foo(); }
20021120-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000314-2.c =================================================================== --- 20000314-2.c (nonexistent) +++ 20000314-2.c (revision 154) @@ -0,0 +1,6 @@ +extern void malloc(__SIZE_TYPE__ size); + +toto() +{ + malloc(100); +}
20000314-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040610-1.c =================================================================== --- 20040610-1.c (nonexistent) +++ 20040610-1.c (revision 154) @@ -0,0 +1,5 @@ +int foo (float x) +{ + float i = __builtin_inff (); + return x != i; +}
20040610-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030612-1.c =================================================================== --- 20030612-1.c (nonexistent) +++ 20030612-1.c (revision 154) @@ -0,0 +1,11 @@ +static inline void +foo (long long const v0, long long const v1) +{ + bar (v0 == v1); +} + +void +test (void) +{ + foo (0, 1); +}
20030612-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030530-3.c =================================================================== --- 20030530-3.c (nonexistent) +++ 20030530-3.c (revision 154) @@ -0,0 +1,16 @@ +struct tree_decl +{ + unsigned in_system_header_flag:1; +}; +union tree_node +{ + struct tree_decl decl; +}; +typedef union tree_node *tree; +static int +redeclaration_error_message (olddecl) + tree olddecl; +{ + if (({olddecl;})->decl.in_system_header_flag) + ; +}
20030530-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20041026-1.c =================================================================== --- 20041026-1.c (nonexistent) +++ 20041026-1.c (revision 154) @@ -0,0 +1,5 @@ +int +foo (double x, long double y) +{ + return __builtin_isgreater (x, y); +}
20041026-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030415-1.c =================================================================== --- 20030415-1.c (nonexistent) +++ 20030415-1.c (revision 154) @@ -0,0 +1,4 @@ +float g(float f) +{ + return fabs(f); +}
20030415-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040216-1.c =================================================================== --- 20040216-1.c (nonexistent) +++ 20040216-1.c (revision 154) @@ -0,0 +1,4 @@ +int foo (int a, int b, int c, int d) +{ + return ~a & ~b & ~c & ~d; +}
20040216-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20011229-1.c =================================================================== --- 20011229-1.c (nonexistent) +++ 20011229-1.c (revision 154) @@ -0,0 +1,78 @@ +/* ICE: call insn does not satisfy its constraints, MMIX port. + Origin: ghostscript-6.52, reduction from hp@bitrange.com. */ +struct s0 +{ + void (*init_color)(void *, void *); +}; +struct s1 +{ + void (*map_cmyk)(short, void *, void **, void *); + void (*map_rgb_alpha)(short, void *, void **, void *); +}; +struct s5 +{ + long fill1; int fill2; + long fill3; unsigned int fill4, fill5; +}; +struct s2 +{ + struct s5 x, y; +}; +struct s3 +{ + long dev_color; + unsigned int key; +}; +struct s4 +{ + unsigned char spp; + int alpha; + struct mc_ + { + unsigned int values[14]; + unsigned int mask, test; + int exact; + } mask_color; + void **pis; + struct s0 *pcs; + struct dd_ + { + struct s2 row[2]; + struct s2 pixel0; + } dda; + struct s3 clues[256]; +}; +extern struct s1 *get_cmap_procs (void **, void *); +int image_render_color (struct s4 *, unsigned char *, int, void *); +int +image_render_color (struct s4 *penum, unsigned char *buffer, + int data_x, void *dev) +{ + struct s3 *clues = penum->clues; + void **pis = penum->pis; + struct s2 pnext; + struct s0 *pcs = penum->pcs; + struct s1 *cmap_procs = get_cmap_procs(pis, dev); + void (*map_4)(short, void *, void **, void *) = + (penum->alpha ? cmap_procs->map_rgb_alpha : cmap_procs->map_cmyk); + unsigned int mask = penum->mask_color.mask; + unsigned int test = penum->mask_color.test; + struct s3 *pic_next = &clues[1]; + int spp = penum->spp; + unsigned char *psrc = buffer + data_x * spp; + unsigned char v[6]; + + pnext = penum->dda.pixel0; + __builtin_memset (&v, 0, sizeof(v)); + (*(pcs)->init_color) (0, 0); + + if (spp == 4) + { + v[0] = psrc[0]; + v[1] = psrc[1]; + if ((buffer[0] & mask) == test && penum->mask_color.exact) + pic_next->dev_color = 0; + (*map_4)(v[0], &pic_next->dev_color, pis, dev); + } + return 0; +}
20011229-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920710-2.c =================================================================== --- 920710-2.c (nonexistent) +++ 920710-2.c (revision 154) @@ -0,0 +1,36 @@ +union u +{ + struct {unsigned h, l;} i; + double d; +}; + +foo (union u x) +{ + while (x.i.h++) + { + while (x.i.l-- > 0) + ; + while (x.d++ > 0) + ; + } +} + +union n +{ + long long unsigned i; + double d; +}; + +bar (union n x) +{ + int i; + for (i = 0; i < 100; i++) + { + while (--x.i > 0) + ; + while (++x.d > 0) + ; + } + return x.i; +} +
920710-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920415-1.c =================================================================== --- 920415-1.c (nonexistent) +++ 920415-1.c (revision 154) @@ -0,0 +1,20 @@ +extern void abort (void); +extern void exit (int); + +#ifndef NO_LABEL_VALUES +f () +{ + __label__ l; + void *x() + { + return &&l; + } + goto *x (); + abort (); + return; + l: + exit (0); +} +#else +int x; +#endif
920415-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 921109-1.c =================================================================== --- 921109-1.c (nonexistent) +++ 921109-1.c (revision 154) @@ -0,0 +1,28 @@ +typedef struct { double x, y; } p; +typedef struct { int s; float r; } t; +t *e, i; +int i1; + +f(t *op) +{ +int i2 = e->r; +p pt; +int c = g(); +t p; + +if (c) +{ +i = *e; +e -= 3; +return 8; +} +if (op > e) +return 1; +op->r = pt.x; +op->r = pt.y; +p = *e; +++e; +e->r = i1, e->s = i1; +*++e = p; +return 3; +}
921109-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: vla-const-1.c =================================================================== --- vla-const-1.c (nonexistent) +++ vla-const-1.c (revision 154) @@ -0,0 +1,5 @@ +/* Test TREE_CONSTANT VLA size: bug 27893. */ +/* Origin: Joseph Myers */ +int a; +void g(void *); +void f(void) { int b[(__SIZE_TYPE__)&a]; g(b); }
vla-const-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 960218-1.c =================================================================== --- 960218-1.c (nonexistent) +++ 960218-1.c (revision 154) @@ -0,0 +1,2 @@ +#define X(x) x +int main() { return X(0/* *//* */); }
960218-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920817-1.c =================================================================== --- 920817-1.c (nonexistent) +++ 920817-1.c (revision 154) @@ -0,0 +1 @@ +int v;static inline f(){return 0;}g(){return f();}void h(){return v++;}
920817-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930618-1.c =================================================================== --- 930618-1.c (nonexistent) +++ 930618-1.c (revision 154) @@ -0,0 +1,8 @@ +f (s) +{ + int r; + + r = (!g(s)) | (!g(s)) | (!g(s)) | (!g(s)) | (!g(s)) | (!g(s)) | (!g(s)) | (!g(s)) | (!g(s)) | (!g(s)) | (!g(s)) | (!g(s)) | (!g(s)) | (!g(s)) | (!g(s)) | (!g(s)) | (!g(s)) | (!g(s)) | (!g(s)); + + return r; +}
930618-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: cpp-1.c =================================================================== --- cpp-1.c (nonexistent) +++ cpp-1.c (revision 154) @@ -0,0 +1,8 @@ +/* Copyright (C) 2000 Free Software Foundation. + + by Alexandre Oliva */ + +#define foo/**/1 +#if foo != 1 +# error "foo not properly defined" +#endif
cpp-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr19080.c =================================================================== --- pr19080.c (nonexistent) +++ pr19080.c (revision 154) @@ -0,0 +1,115 @@ +typedef union { int ioport; volatile char *maddr; } bus_space_handle_t; +struct scb { unsigned short *hscb; }; +struct ahd_softc +{ + int tags[2]; + bus_space_handle_t bshs[2]; + int dst_mode; + int src_mode; + int flags; +}; +void outb(int, int); + +int foo_inb(struct ahd_softc*); +int foo_int_int (int, int); +int ahd_inb(struct ahd_softc*); +int ahd_scb_active_in_fifo (void); + +void ahd_flush_qoutfifo (struct ahd_softc *ahd, struct scb *scb) +{ + int src, dst, *a = &src, *b = &dst; *a = 1, *b = 1; + int bb, p; + + if (ahd->src_mode == 1) + { int src, dst, *a = &src, *b = &dst; *a = 1, *b = 1;} + foo_int_int (ahd->src_mode, ahd->dst_mode); + p = 1; + if (ahd->src_mode == 2 && ahd->dst_mode == p) + { + if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr); + outb (1, ahd->bshs[0].ioport ); + if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr); + outb (1, ahd->bshs[0].ioport ); + } + ahd->src_mode = 1; + ahd->dst_mode = 2; + while ((ahd_inb (ahd) & 0x01) != 0) + { + p = 1; + if (ahd->src_mode == 2 && ahd->dst_mode == p) + { + if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr); + outb (1, ahd->bshs[0].ioport ); + if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr); + outb (1, ahd->bshs[0].ioport ); + } + ahd->src_mode = 1; + ahd->dst_mode = 2; + if (ahd_scb_active_in_fifo () == 0) + continue; + p = 1; + if (ahd->src_mode == 2 && ahd->dst_mode == p) + { + if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr); + outb (1, ahd->bshs[0].ioport ); + if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr); + outb (1, ahd->bshs[0].ioport ); + } + ahd->src_mode = 1; + ahd->dst_mode = 2; + if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr); + outb (1, ahd->bshs[0].ioport ); + if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr); + outb (1, ahd->bshs[0].ioport ); + if ((ahd->flags & 1) != 0) + foo_inb (ahd); + if ((ahd->flags & 1) != 0) + foo_inb (ahd); + if ((ahd->flags & 1) != 0) + foo_inb (ahd); + if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr); + outb (1, ahd->bshs[0].ioport ); + if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr); + outb (1, ahd->bshs[0].ioport ); + if ((ahd->flags & 1) != 0) + foo_inb (ahd); + if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr); + outb (1, ahd->bshs[0].ioport ); + if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr); + outb (1, ahd->bshs[0].ioport ); + bb = (*(scb->hscb)); + if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr); + outb (1, ahd->bshs[0].ioport ); + if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr); + outb (1, ahd->bshs[0].ioport ); + bb = (*(scb->hscb)); + if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr); + outb (1, ahd->bshs[0].ioport ); + if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr); + outb (1, ahd->bshs[0].ioport ); + } + if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr); + outb (1, ahd->bshs[0].ioport ); + if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr); + outb (1, ahd->bshs[0].ioport ); + p = 1; + if (ahd->src_mode == 2 && ahd->dst_mode == p) + { + if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr); + outb (1, ahd->bshs[0].ioport ); + if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr); + outb (1, ahd->bshs[0].ioport ); + } + ahd->src_mode = 1; + ahd->dst_mode = 2; + if (ahd->src_mode == 2 && ahd->dst_mode == dst) + { + if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr); + outb (1, ahd->bshs[0].ioport ); + if (ahd->tags[0] == 1) *(ahd->bshs[0].maddr); + outb (1, ahd->bshs[0].ioport ); + } + ahd->src_mode = 1; + ahd->dst_mode = 2; + ahd->flags |= 1; +}
pr19080.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040101-1.c =================================================================== --- 20040101-1.c (nonexistent) +++ 20040101-1.c (revision 154) @@ -0,0 +1,28 @@ +typedef unsigned short uint16_t; +typedef unsigned int uint32_t; + +#define CF (1<<0) +#define PF (1<<2) +#define AF (1<<4) +#define ZF (1<<6) +#define SF (1<<7) +#define OF (1<<11) + +#define EFLAGS_BITS (CF|PF|AF|ZF|SF|OF) + +void test16(uint16_t x, uint32_t eflags) +{ + uint16_t bsr_result; + uint32_t bsr_eflags; + uint16_t bsf_result; + uint32_t bsf_eflags; + + __asm volatile("" + : "=&r" (bsr_result), "=&r" (bsr_eflags) + : "r" (x), "i" (~EFLAGS_BITS), "r" (eflags)); + __asm volatile("" + : "=&r" (bsf_result), "=&r" (bsf_eflags) + : "r" (x), "i" (~EFLAGS_BITS), "r" (eflags)); + printf("%08x %04x bsrw %02x %08x bsfw %02x %08x\n", + x, eflags, bsr_result, bsr_eflags, bsf_result, bsf_eflags); +}
20040101-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr26255.c =================================================================== --- pr26255.c (nonexistent) +++ pr26255.c (revision 154) @@ -0,0 +1,31 @@ +typedef short int16_t; + +int round_sample(int *sum); + +#define MULS(ra, rb) ((ra) * (rb)) + +#define SUM8(sum, op, w, p) \ +{ \ + sum op MULS((w)[0 * 64], p[0 * 64]); \ + sum op MULS((w)[1 * 64], p[1 * 64]); \ + sum op MULS((w)[2 * 64], p[2 * 64]); \ + sum op MULS((w)[3 * 64], p[3 * 64]); \ + sum op MULS((w)[4 * 64], p[4 * 64]); \ + sum op MULS((w)[5 * 64], p[5 * 64]); \ + sum op MULS((w)[6 * 64], p[6 * 64]); \ + sum op MULS((w)[7 * 64], p[7 * 64]); \ +} + +void foo(int *dither_state, int *samples) +{ + int16_t *synth_buf; + const int16_t *w, *p; + int sum; + + sum = *dither_state; + p = synth_buf + 16; + SUM8(sum, +=, w, p); + p = synth_buf + 48; + SUM8(sum, -=, w + 32, p); + *samples = round_sample(&sum); +}
pr26255.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031011-2.c =================================================================== --- 20031011-2.c (nonexistent) +++ 20031011-2.c (revision 154) @@ -0,0 +1,15 @@ +/* PR optimization/12260. */ + +extern int f(void); +extern int g(int); + +static char buf[512]; +void h(int l) { + while (l) { + char *op = buf; + if (f() == 0) + break; + if (g(op - buf + 1)) + break; + } +}
20031011-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20011114-1.c =================================================================== --- 20011114-1.c (nonexistent) +++ 20011114-1.c (revision 154) @@ -0,0 +1,2 @@ +extern void _text; +static __SIZE_TYPE__ x = (__SIZE_TYPE__) &_text - 0x10000000L - 1;
20011114-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010107-1.c =================================================================== --- 20010107-1.c (nonexistent) +++ 20010107-1.c (revision 154) @@ -0,0 +1,6 @@ +unsigned long x[4]; + +void foo(void) +{ + ((void (*)())(x+2))(); +}
20010107-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20001116-1.c =================================================================== --- 20001116-1.c (nonexistent) +++ 20001116-1.c (revision 154) @@ -0,0 +1,3 @@ +int x[60]; +char *y = ((char*)&(x[2*8 + 2]) - 8); +int z = (&"Foobar"[1] - &"Foobar"[0]);
20001116-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010903-1.c =================================================================== --- 20010903-1.c (nonexistent) +++ 20010903-1.c (revision 154) @@ -0,0 +1,28 @@ +struct A { + long a; +}; + +static inline void foo(struct A *x) +{ + __asm__ __volatile__("" : "+m"(x->a) : "r"(x) : "memory", "cc"); +} + +static inline void bar(struct A *x) +{ + foo(x); +} + +struct B { char buf[640]; struct A a; }; +struct B b[32]; + +int baz(void) +{ + int i; + struct B *j; + for (i = 1; i < 32; i++) + { + j = &b[i]; + bar(&j->a); + } + return 0; +}
20010903-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 921011-2.c =================================================================== --- 921011-2.c (nonexistent) +++ 921011-2.c (revision 154) @@ -0,0 +1,65 @@ +extern int foobar1 (); + +typedef struct + { + unsigned long colormap; + unsigned long red_max; + unsigned long red_mult; + unsigned long green_max; + unsigned long green_mult; + unsigned long blue_max; + unsigned long blue_mult; + unsigned long base_pixel; + unsigned long visualid; + unsigned long killid; + } +frotz; + +int +foobar (stdcmap, count) + frotz **stdcmap; + int *count; +{ + register int i; + frotz *data = ((void *) 0); + + unsigned long nitems; + int ncmaps; + int old_style = 0; + unsigned long def_visual = 0L; + frotz *cmaps; + + + if ( foobar1 (&data) != 0) + return 0; + if (nitems < 10) + { + ncmaps = 1; + if (nitems < 9) + { + } + } + else + ncmaps = (nitems / 10); + + { + register frotz *map; + register frotz *prop; + + for (i = ncmaps, map = cmaps, prop = data; i > 0; i--, map++, prop++) + { + map->colormap = prop->colormap; + map->red_max = prop->red_max; + map->red_mult = prop->red_mult; + map->green_max = prop->green_max; + map->green_mult = prop->green_mult; + map->blue_max = prop->blue_max; + map->blue_mult = prop->blue_mult; + map->base_pixel = prop->base_pixel; + map->visualid = (def_visual ? def_visual : prop->visualid); + map->killid = (old_style ? 0L : prop->killid); + } + } + *stdcmap = cmaps; + *count = ncmaps; +}
921011-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr28675.c =================================================================== --- pr28675.c (nonexistent) +++ pr28675.c (revision 154) @@ -0,0 +1,38 @@ +struct fb_cmap { + unsigned int start; + unsigned int len; + unsigned short *red; + unsigned short *green; + unsigned short *blue; + unsigned short *transp; +}; + +typedef struct { + int r; + int g; + int b; + int a; +} rgba_t; + +static unsigned int cmap_len; + +extern unsigned int red_len, green_len, blue_len, alpha_len; +extern struct fb_cmap fb_cmap; +extern rgba_t *clut; +extern int fb_set_cmap(void); + +void directcolor_update_cmap(void) +{ + unsigned int i; + + for (i = 0; i < cmap_len; i++) { + if (i < red_len) + fb_cmap.red[i] = clut[i].r; + if (i < green_len) + fb_cmap.green[i] = clut[i].g; + if (i < blue_len) + fb_cmap.blue[i] = clut[i].b; + if (fb_cmap.transp && i < alpha_len) + fb_cmap.transp[i] = clut[i].a; + } +}
pr28675.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040109-1.c =================================================================== --- 20040109-1.c (nonexistent) +++ 20040109-1.c (revision 154) @@ -0,0 +1,25 @@ +/* PR target/13380. + On m32r, the condition code register, (reg:SI 17), was replaced with + a pseudo reg, which would cause an unrecognized insn. */ + +void +foo (unsigned int a, unsigned int b) +{ + if (a > b) + { + while (a) + { + switch (b) + { + default: + a = 0; + case 2: + a = 0; + case 1: + a = 0; + case 0: + ; + } + } + } +}
20040109-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010706-1.c =================================================================== --- 20010706-1.c (nonexistent) +++ 20010706-1.c (revision 154) @@ -0,0 +1,5 @@ + +foo(unsigned int x) +{ + return (x << 1) | (x >> 31); +}
20010706-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: trunctfdf.c =================================================================== --- trunctfdf.c (nonexistent) +++ trunctfdf.c (revision 154) @@ -0,0 +1,14 @@ +/* Sparc w/128-bit long double bombed on this because even though + the trunctfdf libcall passed the long double by reference, the + libcall was still marked as LCT_CONST instead of LCT_PURE. */ + +double *copy(long double *first, long double *last, double *result) +{ + int n; + for (n = last - first; n > 0; --n) { + *result = *first; + ++first; + ++result; + } + return result; +}
trunctfdf.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 950221-1.c =================================================================== --- 950221-1.c (nonexistent) +++ 950221-1.c (revision 154) @@ -0,0 +1,16 @@ +short v = -1; + +typedef struct +{ + short network; +} atype; + +void f () +{ + static atype config; + atype *cp; + short net; + cp = &config; + cp->network = (v == -1) ? 100 : v; + net = cp->network; +}
950221-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: mangle-1.c =================================================================== --- mangle-1.c (nonexistent) +++ mangle-1.c (revision 154) @@ -0,0 +1,9 @@ +int foo(void) +{ + static int x asm ("x") = 3; + return x++; +} + +int X2 asm ("x.0") = 4; +int X3 asm ("_x.0") = 5; +
mangle-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930503-1.c =================================================================== --- 930503-1.c (nonexistent) +++ 930503-1.c (revision 154) @@ -0,0 +1,8 @@ +f (const char *s, char *d, unsigned l) +{ + if (0) + while (1); + else + while (--l >= 0) + *d++ = *s++; +}
930503-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920702-1.c =================================================================== --- 920702-1.c (nonexistent) +++ 920702-1.c (revision 154) @@ -0,0 +1,10 @@ +int somevar; +void +yylex () +{ + register int result = 0; + int num_bits = -1; + + if (((result >> -1) & 1)) + somevar = 99; +}
920702-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040824-1.c =================================================================== --- 20040824-1.c (nonexistent) +++ 20040824-1.c (revision 154) @@ -0,0 +1,2 @@ +/* This caused an out-of-range address on the MIPS port. */ +void foo (char *x) { __builtin_prefetch (x + 0x8000); }
20040824-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030907-1.c =================================================================== --- 20030907-1.c (nonexistent) +++ 20030907-1.c (revision 154) @@ -0,0 +1,25 @@ +/* PR 11665 + Orgin: jwhite@cse.unl.edu + The problem was in initializer_constant_valid_p, + "for a CONSTRUCTOR, only the last element + of the CONSTRUCTOR was being checked" + (from the email of the patch which fixed this). + This used to ICE because GCC thought gdt_table was a + constant value when it is not. */ + +int x; +struct gdt +{ +unsigned a,b,c,d,e,f; +}; +void f() +{ +struct gdt gdt_table[2]= +{ + { + 0, + ( (((unsigned)(&x))<<(24))&(-1<<(8)) ), + }, +}; +} +
20030907-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040708-1.c =================================================================== --- 20040708-1.c (nonexistent) +++ 20040708-1.c (revision 154) @@ -0,0 +1,68 @@ +/* PR rtl-optimization/16199 */ +/* Origin: Olaf Klein */ + +typedef enum { + APR_LOCK_FCNTL, + APR_LOCK_FLOCK, + APR_LOCK_SYSVSEM, + APR_LOCK_PROC_PTHREAD, + APR_LOCK_POSIXSEM, + APR_LOCK_DEFAULT +} apr_lockmech_e; + +struct apr_proc_mutex_unix_lock_methods_t { + unsigned int flags; + const char *name; +}; + +typedef struct apr_proc_mutex_unix_lock_methods_t apr_proc_mutex_unix_lock_methods_t; + +extern const apr_proc_mutex_unix_lock_methods_t apr_proc_mutex_unix_sysv_methods; + +struct apr_proc_mutex_t { + const apr_proc_mutex_unix_lock_methods_t *inter_meth; + int curr_locked; + char *fname; +}; + +typedef struct apr_proc_mutex_t apr_proc_mutex_t; + +extern const apr_proc_mutex_unix_lock_methods_t apr_proc_mutex_unix_proc_pthread_methods; + +extern const apr_proc_mutex_unix_lock_methods_t apr_proc_mutex_unix_fcntl_methods; + +static int proc_mutex_choose_method(apr_proc_mutex_t *new_mutex, apr_lockmech_e mech) +{ + switch (mech) { + case APR_LOCK_FCNTL: + new_mutex->inter_meth = &apr_proc_mutex_unix_fcntl_methods; + break; + case APR_LOCK_FLOCK: + return ((20000 + 50000) + 23); + break; + case APR_LOCK_SYSVSEM: + new_mutex->inter_meth = &apr_proc_mutex_unix_sysv_methods; + break; + case APR_LOCK_POSIXSEM: + return ((20000 + 50000) + 23); + break; + case APR_LOCK_PROC_PTHREAD: + new_mutex->inter_meth = &apr_proc_mutex_unix_proc_pthread_methods; + break; + case APR_LOCK_DEFAULT: + new_mutex->inter_meth = &apr_proc_mutex_unix_proc_pthread_methods; + break; + default: + return ((20000 + 50000) + 23); + } + return 0; +} + +const char* apr_proc_mutex_defname(void) +{ + apr_proc_mutex_t mutex; + + if (proc_mutex_choose_method(&mutex, APR_LOCK_DEFAULT) != 0) { + return "unknown"; + } +}
20040708-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 921118-1.c =================================================================== --- 921118-1.c (nonexistent) +++ 921118-1.c (revision 154) @@ -0,0 +1,8 @@ +inline f(i) +{ + h((long long) i * 2); +} +g() +{ + f(9); +}
921118-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 941014-4.c =================================================================== --- 941014-4.c (nonexistent) +++ 941014-4.c (revision 154) @@ -0,0 +1,16 @@ +#ifndef NO_LABEL_VALUES +f (int *re) +{ + int *loops = 0, *loope = 0; + unsigned dat0 = 0; + static void *debug = &&firstdebug; + + firstdebug: + g (loops, loope); + + if (dat0 & 1) + re[(dat0 >> 2) & 3] = 0; +} +#else +int x; +#endif
941014-4.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930109-1.c =================================================================== --- 930109-1.c (nonexistent) +++ 930109-1.c (revision 154) @@ -0,0 +1,12 @@ +f(x) + unsigned x; +{ + static short c; + return x>>c; +} +g(x) + unsigned x; +{ + static char c; + return x>>c; +}
930109-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920501-9.c =================================================================== --- 920501-9.c (nonexistent) +++ 920501-9.c (revision 154) @@ -0,0 +1 @@ +short x(a)unsigned a;{a=32987799;return a;}
920501-9.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: mipscop-1.c =================================================================== --- mipscop-1.c (nonexistent) +++ mipscop-1.c (revision 154) @@ -0,0 +1,14 @@ +/* { dg-do compile { target mips*-*-* } } */ + +#ifndef __mips16 +register unsigned int cp0count asm ("$c0r1"); + +int +main (int argc, char *argv[]) +{ + unsigned int d; + + d = cp0count + 3; + printf ("%d\n", d); +} +#endif
mipscop-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920826-1.c =================================================================== --- 920826-1.c (nonexistent) +++ 920826-1.c (revision 154) @@ -0,0 +1 @@ +f(int*x){goto*(char)*x;}
920826-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 980706-1.c =================================================================== --- 980706-1.c (nonexistent) +++ 980706-1.c (revision 154) @@ -0,0 +1,10 @@ +void g(long long); + +long long f(long long v1, long long v2, long long v3, long long v4) +{ + g(v1); + g(v2); + g(v3); + g(v4); + return v1 && v2; +}
980706-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920501-10.c =================================================================== --- 920501-10.c (nonexistent) +++ 920501-10.c (revision 154) @@ -0,0 +1 @@ +x(y){return 8193*y;}
920501-10.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr26622.c =================================================================== --- pr26622.c (nonexistent) +++ pr26622.c (revision 154) @@ -0,0 +1,11 @@ +/* PR middle-end/26622 + fold_ternary used to create a tree with mismatching types, causing + (const_int 128) to appear in QImode rtx. */ + +unsigned char g; + +unsigned long long +foo (void) +{ + return ((long long) ((g & 0x80) != 0)) << 7; +}
pr26622.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr17273.c =================================================================== --- pr17273.c (nonexistent) +++ pr17273.c (revision 154) @@ -0,0 +1,22 @@ +struct A { int i; }; +struct B { struct A a; }; + +void f(struct A*, struct A*); +#define bool _Bool + +void bar(bool b) +{ + struct B * D1601; + struct A D1576; + struct A * D1593; + struct B * D1592; + struct B D1575; + + D1575 = (struct B){}; + + if (b) D1592 = &D1575; else D1592 = &D1575; + + D1593 = &D1592->a; // <-- we are prograting &D1575 into here. + D1576 = (struct A){}; + f (D1593, &D1576); +}
pr17273.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010510-1.c =================================================================== --- 20010510-1.c (nonexistent) +++ 20010510-1.c (revision 154) @@ -0,0 +1,3 @@ +typedef char *ident; +#ident "This is ident" +ident i;
20010510-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr23476.c =================================================================== --- pr23476.c (nonexistent) +++ pr23476.c (revision 154) @@ -0,0 +1,14 @@ +int h(int); +int t; +static inline int f(const int i) +{ + int tt = i; + _Bool a = i < t; + if (a) + return h(t); + return 9; +} +int g(void) +{ + return f(0x7FFFFFFF); +}
pr23476.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010313-1.c =================================================================== --- 20010313-1.c (nonexistent) +++ 20010313-1.c (revision 154) @@ -0,0 +1,5 @@ +/* Origin: Joseph Myers . */ +/* After the open parenthesis before the __attribute__, we used to shift + the __attribute__ (expecting a parenthesised abstract declarator) + instead of reducing to the start of a parameter list. */ +void bar (int (__attribute__((__mode__(__SI__))) int foo));
20010313-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: combine-hang.c =================================================================== --- combine-hang.c (nonexistent) +++ combine-hang.c (revision 154) @@ -0,0 +1,26 @@ +typedef union +{ + double value; + struct + { + unsigned long msw; + unsigned long lsw; + } parts; +} ieee_double_shape_type; + +double f (int iy) +{ + double z, t; + ieee_double_shape_type u, v; + + if (iy == 1) + return 0; + + u.parts.msw = iy; + u.parts.lsw = 0; + z = u.value; + v.parts.msw = iy; + v.parts.lsw = 0; + t = v.value; + return 1.0+z+t+t; +}
combine-hang.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr21839.c =================================================================== --- pr21839.c (nonexistent) +++ pr21839.c (revision 154) @@ -0,0 +1,12 @@ + typedef struct { } spinlock_t; +typedef struct { + unsigned sequence; + spinlock_t lock; +} seqlock_t; +void ext3_new_inode(seqlock_t *rsv_seqlock) +{ + *rsv_seqlock = (seqlock_t) { 0, (spinlock_t) { } }; + +} + +
pr21839.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050510-1.c =================================================================== --- 20050510-1.c (nonexistent) +++ 20050510-1.c (revision 154) @@ -0,0 +1,12 @@ +void bar (int k) +{ + void *label = (k) ? &&x : &&y; + if (k) + goto *label; + +x: + if (k) + dont_remove (); +y: + return; +}
20050510-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020910-1.c =================================================================== --- 20020910-1.c (nonexistent) +++ 20020910-1.c (revision 154) @@ -0,0 +1,19 @@ +/* The bit-field below would have a problem if __INT_MAX__ is too + small. */ +#if __INT_MAX__ < 2147483647 +int a; +#else +unsigned int x0 = 0; + +typedef struct { + unsigned int field1 : 20; + unsigned int field2 : 12; +} XX; + +static XX yy; + +static void foo (void) +{ + yy.field1 = (unsigned int ) (&x0); +} +#endif
20020910-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20061005-1.c =================================================================== --- 20061005-1.c (nonexistent) +++ 20061005-1.c (revision 154) @@ -0,0 +1,23 @@ +/* PR target/28924 */ + +char c; + +void +testc (void) +{ + (void) __sync_fetch_and_add (&c, -1); +} + +short s; + +void +tests (void) +{ + (void) __sync_fetch_and_add (&s, -1); +} + +void +testc2 (void) +{ + (void) __sync_val_compare_and_swap (&c, -1, -3); +}
20061005-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031208-1.c =================================================================== --- 20031208-1.c (nonexistent) +++ 20031208-1.c (revision 154) @@ -0,0 +1,6 @@ +extern int foo(int, ...); +int bar(void) { + long double l = 1.2345E6; + foo(0, l); + return 0; +}
20031208-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 900313-1.c =================================================================== --- 900313-1.c (nonexistent) +++ 900313-1.c (revision 154) @@ -0,0 +1,172 @@ +main () +{ + char *a; + foo (alloca (10000)); + foo (alloca (100000)); + foo (alloca ((int) &main)); +} + +many_par (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) +{ + char *x; + int aa, ba, ca, da, ea, fa, ga, ha, ia, ja, ka, la, ma, na, oa, pa; + + aa = bar (); + ba = bar (); + ca = bar (); + da = bar (); + ea = bar (); + fa = bar (); + ga = bar (); + ha = bar (); + ia = bar (); + ja = bar (); + ka = bar (); + la = bar (); + ma = bar (); + na = bar (); + oa = bar (); + pa = bar (); + foobar (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, aa, ba, ca, + da, ea, fa, ga, ha, ia, ja, ka, la, ma, na, oa, pa); + +} + +foobar (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, aa, ba, ca, + da, ea, fa, ga, ha, ia, ja, ka, la, ma, na, oa, pa) +{ + int ab, bb, cb, db, eb, fb, gb, hb, ib, jb, kb, lb, mb, nb, ob, pb; + int qb, rb, sb, tb, ub, vb, xb, yb; + + ab = bar (); + bb = bar (); + cb = bar (); + db = bar (); + eb = bar (); + fb = bar (); + gb = bar (); + hb = bar (); + ib = bar (); + jb = bar (); + kb = bar (); + lb = bar (); + mb = bar (); + nb = bar (); + ob = bar (); + pb = bar (); + qb = bar (); + rb = bar (); + sb = bar (); + tb = bar (); + ub = bar (); + vb = bar (); + xb = bar (); + yb = bar (); + + boofar (a); + boofar (b); + boofar (c); + boofar (d); + boofar (e); + boofar (f); + boofar (g); + boofar (h); + boofar (i); + boofar (j); + boofar (k); + boofar (l); + boofar (m); + boofar (n); + boofar (o); + boofar (p); + boofar (aa); + boofar (ba); + boofar (ca); + boofar (da); + boofar (ea); + boofar (fa); + boofar (ga); + boofar (ha); + boofar (ia); + boofar (ja); + boofar (ka); + boofar (la); + boofar (ma); + boofar (na); + boofar (oa); + boofar (pa); + + boofar (ab); + boofar (bb); + boofar (cb); + boofar (db); + boofar (eb); + boofar (fb); + boofar (gb); + boofar (hb); + boofar (ib); + boofar (jb); + boofar (kb); + boofar (lb); + boofar (mb); + boofar (nb); + boofar (ob); + boofar (pb); + + boofar (a); + boofar (b); + boofar (c); + boofar (d); + boofar (e); + boofar (f); + boofar (g); + boofar (h); + boofar (i); + boofar (j); + boofar (k); + boofar (l); + boofar (m); + boofar (n); + boofar (o); + boofar (p); + boofar (aa); + boofar (ba); + boofar (ca); + boofar (da); + boofar (ea); + boofar (fa); + boofar (ga); + boofar (ha); + boofar (ia); + boofar (ja); + boofar (ka); + boofar (la); + boofar (ma); + boofar (na); + boofar (oa); + boofar (pa); + + boofar (ab); + boofar (bb); + boofar (cb); + boofar (db); + boofar (eb); + boofar (fb); + boofar (gb); + boofar (hb); + boofar (ib); + boofar (jb); + boofar (kb); + boofar (lb); + boofar (mb); + boofar (nb); + boofar (ob); + boofar (pb); + +} + +test_exit_ignore_stack () +{ + foobar (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1); +}
900313-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 900116-1.c =================================================================== --- 900116-1.c (nonexistent) +++ 900116-1.c (revision 154) @@ -0,0 +1,14 @@ +struct st {char a, b, c, d; } + +zloop (struct st *s, int *p, int *q) +{ + int i; + struct st ss; + + for (i = 0; i < 100; i++) + { + ss = s[i]; + p[i] = ss.c; + q[i] = ss.b; + } +}
900116-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000717-1.c =================================================================== --- 20000717-1.c (nonexistent) +++ 20000717-1.c (revision 154) @@ -0,0 +1,11 @@ +short +inner_product (short *a, short *b) +{ + int i; + short sum = 0; + + for (i = 9; i >= 0; i--) + sum += (*a++) * (*b++); + + return sum; +}
20000717-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010518-1.c =================================================================== --- 20010518-1.c (nonexistent) +++ 20010518-1.c (revision 154) @@ -0,0 +1,205 @@ +/* This was cut down from reload1.c in May 2001, was observed to cause + a bootstrap failure for powerpc-apple-darwin1.3. + + Copyright (C) 2001 Free Software Foundation. */ + +enum insn_code +{ + CODE_FOR_extendqidi2 = 3, + CODE_FOR_nothing = 870 +}; + +struct rtx_def; + +enum machine_mode +{ + VOIDmode, + MAX_MACHINE_MODE +}; + +typedef unsigned long long HARD_REG_ELT_TYPE; +typedef HARD_REG_ELT_TYPE HARD_REG_SET[((77 + (8 * 8) - 1) / (8 * 8))]; + +enum rtx_code +{ + UNKNOWN, + NIL, + REG, + LAST_AND_UNUSED_RTX_CODE = 256 +}; + +typedef struct +{ + unsigned min_align:8; + unsigned base_after_vec:1; + unsigned min_after_vec:1; + unsigned max_after_vec:1; + unsigned min_after_base:1; + unsigned max_after_base:1; + unsigned offset_unsigned:1; + unsigned:2; + unsigned scale:8; +} +addr_diff_vec_flags; +typedef union rtunion_def +{ + long long rtwint; + int rtint; + unsigned int rtuint; + const char *rtstr; + struct rtx_def *rtx; + struct rtvec_def *rtvec; + enum machine_mode rttype; + addr_diff_vec_flags rt_addr_diff_vec_flags; + struct cselib_val_struct *rt_cselib; + struct bitmap_head_def *rtbit; + union tree_node *rttree; + struct basic_block_def *bb; +} +rtunion; +typedef struct rtx_def +{ + enum rtx_code code:16; + enum machine_mode mode:8; + unsigned int jump:1; + unsigned int call:1; + unsigned int unchanging:1; + unsigned int volatil:1; + unsigned int in_struct:1; + unsigned int used:1; + unsigned integrated:1; + unsigned frame_related:1; + rtunion fld[1]; +} + *rtx; + +enum reload_type +{ + RELOAD_FOR_INPUT, RELOAD_FOR_OUTPUT, RELOAD_FOR_INSN, + RELOAD_FOR_INPUT_ADDRESS, RELOAD_FOR_INPADDR_ADDRESS, + RELOAD_FOR_OUTPUT_ADDRESS, RELOAD_FOR_OUTADDR_ADDRESS, + RELOAD_FOR_OPERAND_ADDRESS, RELOAD_FOR_OPADDR_ADDR, + RELOAD_OTHER, RELOAD_FOR_OTHER_ADDRESS +}; + +struct reload +{ + rtx in; + rtx out; + // enum reg_class class; + enum machine_mode inmode; + enum machine_mode outmode; + enum machine_mode mode; + unsigned int nregs; + int inc; + rtx in_reg; + rtx out_reg; + int regno; + rtx reg_rtx; + int opnum; + int secondary_in_reload; + int secondary_out_reload; + enum insn_code secondary_in_icode; + enum insn_code secondary_out_icode; + enum reload_type when_needed; + unsigned int optional:1; + unsigned int nocombine:1; + unsigned int secondary_p:1; + unsigned int nongroup:1; +}; + +struct insn_chain +{ + rtx insn; +}; + +extern int n_reloads; +static short reload_order[(2 * 10 * (2 + 1))]; +int reload_spill_index[(2 * 10 * (2 + 1))]; +extern struct reload rld[(2 * 10 * (2 + 1))]; +static rtx *reg_last_reload_reg; +static HARD_REG_SET reg_reloaded_valid; +static HARD_REG_SET reg_reloaded_dead; +static HARD_REG_SET reg_reloaded_died; +static HARD_REG_SET reg_is_output_reload; +extern const unsigned int mode_size[]; +extern int target_flags; + +static void +emit_reload_insns (chain) + struct insn_chain *chain; +{ + rtx insn = chain->insn; + register int j; + rtx following_insn = (((insn)->fld[2]).rtx); + rtx before_insn = (((insn)->fld[1]).rtx); + + for (j = 0; j < n_reloads; j++) + { + register int r = reload_order[j]; + register int i = reload_spill_index[r]; + + { + rtx out = (((enum rtx_code) (rld[r].out)->code) == REG ? rld[r].out : rld[r].out_reg); + register int nregno = (((out)->fld[0]).rtuint); + + if (nregno >= 77) + { + rtx src_reg, store_insn = (rtx) 0; + + reg_last_reload_reg[nregno] = 0; + if (src_reg && ((enum rtx_code) (src_reg)->code) == REG && (((src_reg)->fld[0]).rtuint) < 77) + { + int src_regno = (((src_reg)->fld[0]).rtuint); + int nr = + (((src_regno) >= 32 + && (src_regno) <= + 63) ? (((mode_size[(int) (rld[r].mode)]) + 8 - + 1) / 8) : (((mode_size[(int) (rld[r].mode)]) + + (!(target_flags & 0x00000020) ? 4 : + 8) - 1) / (!(target_flags & 0x00000020) ? 4 : 8))); + rtx note = 0; + + while (nr-- > 0) + { + ((reg_reloaded_dead) + [(src_regno + nr) / ((unsigned) (8 * 8))] &= + ~(((HARD_REG_ELT_TYPE) (1)) << ((src_regno + nr) % ((unsigned) (8 * 8))))); + ((reg_reloaded_valid) + [(src_regno + nr) / ((unsigned) (8 * 8))] |= + ((HARD_REG_ELT_TYPE) (1)) << ((src_regno + nr) % ((unsigned) (8 * 8)))); + ((reg_is_output_reload) + [(src_regno + nr) / ((unsigned) (8 * 8))] |= + ((HARD_REG_ELT_TYPE) (1)) << ((src_regno + nr) % ((unsigned) (8 * 8)))); + if (note) + ((reg_reloaded_died) + [(src_regno) / ((unsigned) (8 * 8))] |= + ((HARD_REG_ELT_TYPE) (1)) << ((src_regno) % ((unsigned) (8 * 8)))); + else + ((reg_reloaded_died) + [(src_regno) / ((unsigned) (8 * 8))] &= + ~(((HARD_REG_ELT_TYPE) (1)) << ((src_regno) % ((unsigned) (8 * 8))))); + } + reg_last_reload_reg[nregno] = src_reg; + } + } + else + { + int num_regs = + (((nregno) >= 32 + && (nregno) <= + 63) + ? (((mode_size + [(int) (((enum machine_mode) (rld[r].out)->mode))]) + + 8 - + 1) / + 8) + : (((mode_size + [(int) (((enum machine_mode) (rld[r].out)->mode))]) + + (!(target_flags & 0x00000020) ? 4 : 8) - 1) / (!(target_flags & 0x00000020) ? 4 : 8))); + while (num_regs-- > 0) + reg_last_reload_reg[nregno + num_regs] = 0; + } + } + } +}
20010518-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020319-1.c =================================================================== --- 20020319-1.c (nonexistent) +++ 20020319-1.c (revision 154) @@ -0,0 +1,20 @@ +/* This testcase ICEd in combine.c:do_SUBST() self-test for sign-extended +CONST_INT because expr.c:expand_expr() was not sign-extending array index +into constant strings. */ + +typedef unsigned char uch; +extern uch outbuf[]; +extern unsigned outcnt; + +extern void flush_outbuf (void); + +int zip(void) +{ + outcnt = 0; + + {outbuf[outcnt++]=(uch)("\037\213"[0]); if (outcnt==16384) flush_outbuf();}; + {outbuf[outcnt++]=(uch)("\037\213"[1]); if (outcnt==16384) flush_outbuf();}; + + return 0; +} +
20020319-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20011229-2.c =================================================================== --- 20011229-2.c (nonexistent) +++ 20011229-2.c (revision 154) @@ -0,0 +1,17 @@ +/* Test whether jump threading doesn't ICE if redirecting the jump to exit + block. */ + +extern int bar (); +extern void baz (); + +void foo () +{ + int x; + + do + { + if ((x = bar ()) == 1) + baz (); + } + while (x == 1); +}
20011229-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040914-1.c =================================================================== --- 20040914-1.c (nonexistent) +++ 20040914-1.c (revision 154) @@ -0,0 +1,39 @@ +extern int clobber_k (int *); +extern int barrier (void); +int t, u; + +int +process_second_stream(void) +{ + int k; + int i = 0, j = 0, result; + + clobber_k (&k); + + while(t) + ; + + while(!j) + { + while(!j) + { + barrier (); + if (t == 0) + break; + else if(t == 1) + t = 2; + else + { + if(t < 0) + j=1; + if(u < 0) + k = i++; + } + } + + if(!j && u) + j=1; + } + + return 0; +}
20040914-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920711-1.c =================================================================== --- 920711-1.c (nonexistent) +++ 920711-1.c (revision 154) @@ -0,0 +1 @@ +f(a){a=(1,1)/2;}
920711-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930118-1.c =================================================================== --- 930118-1.c (nonexistent) +++ 930118-1.c (revision 154) @@ -0,0 +1,6 @@ +f() +{ +__label__ l; +l:p(); +} +
930118-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 991202-1.c =================================================================== --- 991202-1.c (nonexistent) +++ 991202-1.c (revision 154) @@ -0,0 +1,18 @@ +extern float A[], B[]; +extern float MAXNUMF; +float chbevlf(float, float *, int); +float expf(float), i1f(float), logf(float), sqrtf(float); + +float k1f(float xx) +{ + float x, y; + + x = xx; + if( x <= 2.0 ) + { + y = x * x - 2.0; + y = logf( 0.5f * x ) * i1f(x) + chbevlf( y, A, 7 ) / x; + return( y ); + } + return( expf(-x) * chbevlf( (float)(8.0/x - 2.0), B, 10 ) / sqrtf(x) ); +}
991202-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 950910-1.c =================================================================== --- 950910-1.c (nonexistent) +++ 950910-1.c (revision 154) @@ -0,0 +1,22 @@ +f (char *p) +{ + char c; + + c = *++p; + if (c != ' ') + return 0; + for (;;) + { + c = *p; + if (g (c)) + p++; + else + { + if (c == ' ') + break; + else + return 0; + } + } + return 1; +}
950910-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: vla-const-2.c =================================================================== --- vla-const-2.c (nonexistent) +++ vla-const-2.c (revision 154) @@ -0,0 +1,4 @@ +/* Test TREE_CONSTANT VLA size: bug 27893. */ +/* Origin: Joseph Myers */ +void g(void *); +void f(void) { int b[1/0]; g(b); }
vla-const-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 981007-1.c =================================================================== --- 981007-1.c (nonexistent) +++ 981007-1.c (revision 154) @@ -0,0 +1,21 @@ +extern double fabs (double); +extern double sqrt (double); + +typedef struct complexm { + double re,im; +} complex; + +static complex +setCom (double r, double i) +{ + complex ct; + ct.re=fabs(r)<1E-300?0.0:r; + ct.im=fabs(i)<1E-300?0.0:i; + return ct; +} + +static complex +csqrt_crash (double x) +{ + return (x>=0) ? setCom(sqrt(x),0) : setCom(0,sqrt(-x)); +}
981007-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 960514-1.c =================================================================== --- 960514-1.c (nonexistent) +++ 960514-1.c (revision 154) @@ -0,0 +1,12 @@ +struct s { + unsigned long long t[5]; +}; + +void +f (struct s *d, unsigned long long *l) +{ + int i; + + for (i = 0; i < 5; i++) + d->t[i] += l[i]; +}
960514-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: cpp-2.c =================================================================== --- cpp-2.c (nonexistent) +++ cpp-2.c (revision 154) @@ -0,0 +1,5 @@ +/* Copyright (C) 2000 Free Software Foundation. + + by Alexandre Oliva */ + +#pragma /* the token after #pragma is optional. */
cpp-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr24930.c =================================================================== --- pr24930.c (nonexistent) +++ pr24930.c (revision 154) @@ -0,0 +1,17 @@ +/* PR 24930 */ +extern int foo(int u) __attribute__((noinline)); +int foo(int u) {return 0;} +int +main(int argc, char** argv) +{ + const char *buf = argv[1]; + + unsigned int data = (((unsigned int) buf[0]) << 8) + (unsigned int) buf[1]; + if (data & 0x8000) { + data &= 0x7fff ; + data ^= 0x7fff ; + data += 1 ; + data *= -1 ; + } + return foo((int)data); +}
pr24930.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020320-1.c =================================================================== --- 20020320-1.c (nonexistent) +++ 20020320-1.c (revision 154) @@ -0,0 +1,24 @@ +/* PR bootstrap/4192 + This testcase caused infinite loop in flow (several places), + because flow assumes gen_jump generates simple_jump_p. */ + +typedef void (*T) (void); +extern T x[]; + +void +foo (void) +{ + static T *p = x; + static _Bool a; + T f; + + if (__builtin_expect (a, 0)) + return; + + while ((f = *p)) + { + p++; + f (); + } + a = 1; +}
20020320-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000405-1.c =================================================================== --- 20000405-1.c (nonexistent) +++ 20000405-1.c (revision 154) @@ -0,0 +1,13 @@ +// Copyright (C) 2000 Free Software Foundation + +// by Alexandre Oliva +// simplified from libio/floatconv.c + +static const double bar[] = { 0 }; +int j; + +double +foo () +{ + return bar[j]; +}
20000405-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20011114-2.c =================================================================== --- 20011114-2.c (nonexistent) +++ 20011114-2.c (revision 154) @@ -0,0 +1,13 @@ +typedef struct { int c, d, e, f, g; } D; + +void bar (unsigned long, unsigned long); +void foo (D *y) +{ + int x = 0; + + if (y->f == 0) + x |= 0x1; + if (y->g == 0) + x |= 0x2; + bar ((x << 16) | (y->c & 0xffff), (y->d << 16) | (y->e & 0xffff)); +}
20011114-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr22398.c =================================================================== --- pr22398.c (nonexistent) +++ pr22398.c (revision 154) @@ -0,0 +1,21 @@ +#if ULONG_MAX != 4294967295u && ULONG_MAX != 18446744073709551615ull +int main(void) { exit (0); } +#else +#if ULONG_MAX != 18446744073709551615ull +#define NUM 0xf0000000 +#else +#define NUM 0xf000000000000000 +#endif + + +int func1(void *rw) +{ + return (rw && (((unsigned long) rw) >= NUM) ); +} + +void func2(void *rw) +{ + while(rw && (((unsigned long) rw) >= NUM) ) {} +} + +#endif
pr22398.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20001018-1.c =================================================================== --- 20001018-1.c (nonexistent) +++ 20001018-1.c (revision 154) @@ -0,0 +1,10 @@ +void +foo (void) +{ + extern char i[10]; + + { + extern char i[]; + char x[sizeof (i) == 10 ? 1 : -1]; + } +}
20001018-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000127-1.c =================================================================== --- 20000127-1.c (nonexistent) +++ 20000127-1.c (revision 154) @@ -0,0 +1,7 @@ +double bar(void), c; +int foo(void) { + double a, b; + int i = bar() + bar(); + a = i; i += 1; a += 0.1; i = c + i; + return i; +}
20000127-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040602-1.c =================================================================== --- 20040602-1.c (nonexistent) +++ 20040602-1.c (revision 154) @@ -0,0 +1,5 @@ +/* Test type qualifiers. These should as equal types. */ +extern volatile unsigned long foo; +typedef unsigned long ulong; +extern volatile ulong foo; +volatile ulong foo;
20040602-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 921012-1.c =================================================================== --- 921012-1.c (nonexistent) +++ 921012-1.c (revision 154) @@ -0,0 +1,4 @@ +f() +{ +g(({int x;0;})); +}
921012-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr18299-1.c =================================================================== --- pr18299-1.c (nonexistent) +++ pr18299-1.c (revision 154) @@ -0,0 +1,12 @@ +/* We used to ICE in gimple-lower because we + would produce __t (VAR_DECL) as a statement in the + instruction stream which is not valid. */ + +static inline int f(int i) +{ + const int __t = (__t); +} +int g(void) +{ + return f(0); +}
pr18299-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050206-1.c =================================================================== --- 20050206-1.c (nonexistent) +++ 20050206-1.c (revision 154) @@ -0,0 +1,8 @@ +unsigned short foo (void) +{ + unsigned short u[1] = { 1 }; + u[0] = 0; + u[1] = 1; + u[2] = 2; + return u[0] + u[1] + u[2]; +}
20050206-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030604-1.c =================================================================== --- 20030604-1.c (nonexistent) +++ 20030604-1.c (revision 154) @@ -0,0 +1,18 @@ +/* PR optimization/10876 */ +/* Contributed by Christian Ehrhardt */ + +/* Verify that the SPARC port doesn't emit + (minus) (reg) (const_int) insns. */ + +void f(void) +{ + unsigned int butterfly, block, offset; + double *Z; + + for (block = 0; block < 512; block += 512) { + double T1re, T2re; + offset = butterfly + block; + T1re += T2re; + T2re = Z[offset] + T1re; + } +}
20030604-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000923-1.c =================================================================== --- 20000923-1.c (nonexistent) +++ 20000923-1.c (revision 154) @@ -0,0 +1,8 @@ +const int a = 3; +const int b = 50; + +void foo (void) +{ + long int x[a][b]; + asm ("" : : "r" (x) : "memory"); +}
20000923-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010903-2.c =================================================================== --- 20010903-2.c (nonexistent) +++ 20010903-2.c (revision 154) @@ -0,0 +1,15 @@ +extern int __dummy (void *__preg, const char *__string); +extern int rpmatch (const char *response); + +int +rpmatch (const char *response) +{ + auto inline int try (void *re); + + inline int try (void *re) + { + return __dummy (re, response); + } + static void *yesre; + return (try (&yesre)); +}
20010903-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20041018-1.c =================================================================== --- 20041018-1.c (nonexistent) +++ 20041018-1.c (revision 154) @@ -0,0 +1,18 @@ +void +foo (int y, int z, unsigned char **t, int **c, int *b) +{ + int i, j, k; + unsigned char a[2]; + + a[0] = 0; + a[1] = 0; + for (j = 0; j < z; j++) + for (i = 0; i < y; i++, a[0] += 3) + for (k = 0; k < 3; k++) + c[0][k] += 3 * b[k]; + for (i = 0; i < 3; i++) + if (t[0][i] + c[0][i] / a[0] <= 0) + t[0][i] = 0; + else + t[0][i] = t[0][i] + c[0][i] / a[0]; +}
20041018-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020409-1.c =================================================================== --- 20020409-1.c (nonexistent) +++ 20020409-1.c (revision 154) @@ -0,0 +1,9 @@ +/* PR c/5078 */ + +#include + +int f(int i) +{ + i -= 2 * (INT_MAX + 1); + return i; +}
20020409-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930602-1.c =================================================================== --- 930602-1.c (nonexistent) +++ 930602-1.c (revision 154) @@ -0,0 +1,13 @@ +typedef struct { + int f[8]; +} T; + +f (w, l, r) + T *w; + unsigned short l, r; +{ + int i; + + for (i = l; i < r; i++) + g (w->f[i]); +}
930602-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040726-1.c =================================================================== --- 20040726-1.c (nonexistent) +++ 20040726-1.c (revision 154) @@ -0,0 +1,14 @@ +/* PR rtl-optimization/16643 */ +void foo (int a, int b, int c, int d, int e, int *f) +{ + if (a == 0) + if (b == 0) + if (c == 0) + if (d == 0) + { + *f = e; + return; + } + *f = e; + return; +}
20040726-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930503-2.c =================================================================== --- 930503-2.c (nonexistent) +++ 930503-2.c (revision 154) @@ -0,0 +1,5 @@ +f() +{ + struct { char x; } r; + g(r); +}
930503-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 931018-1.c =================================================================== --- 931018-1.c (nonexistent) +++ 931018-1.c (revision 154) @@ -0,0 +1,14 @@ +typedef struct +{ + int a, b; +} T; + +f (T *bs) +{ + long long x; + x = ({ + union { T s; long long l; } u; + u.s = *bs; + u.l; + }); +}
931018-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020927-1.c =================================================================== --- 20020927-1.c (nonexistent) +++ 20020927-1.c (revision 154) @@ -0,0 +1,26 @@ +/* PR optimization/7520 */ +/* ICE at -O3 on x86 due to register life problems caused by + the return-without-value in bar. */ + +int +foo () +{ + int i; + long long int j; + + while (1) + { + if (j & 1) + ++i; + j >>= 1; + if (j) + return i; + } +} + +int +bar () +{ + if (foo ()) + return; +}
20020927-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930109-2.c =================================================================== --- 930109-2.c (nonexistent) +++ 930109-2.c (revision 154) @@ -0,0 +1,11 @@ +f(r) +{ + int i; + for (i = 0; i < 2; i++) + { + r+= (4 >> i*2); + r+= (2 >> i*2); + r+= (1 >> i*2); + } + return r; +}
930109-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20070925-1.c =================================================================== --- 20070925-1.c (nonexistent) +++ 20070925-1.c (revision 154) @@ -0,0 +1,22 @@ +/* PR tree-optimization/32694 */ + +typedef signed long long int WordS64; +typedef unsigned long long int Word64; + +int +foo (Word64 * p) +{ + while (1) + { + WordS64 c = 0x1llu; + WordS64 x = *p; + if (c >= 0) + { + if (x > (WordS64) 0x7FFFFFFFFFFFFFFFll - c) + return 6; + } + else if (x < (WordS64) 0x8000000000000000ll - c) + return 7; + p++; + } +}
20070925-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930529-1.c =================================================================== --- 930529-1.c (nonexistent) +++ 930529-1.c (revision 154) @@ -0,0 +1,83 @@ +struct r +{ + int d1, d2; +}; + +struct km +{ + int d; +}; + +struct f1 +{ + char *fn; + char *fd; + char *fs; + char *ic; + void (*ff) (); +}; + +int g (); + +int y; +struct r *bs; +int bv; + +void b (); +char *w (); + +struct km **q; +char **mns; +int nm; +struct f1 **z; + +f (char *km, char *h) +{ + struct f1 *t; + int map = midn(km, strlen(km)); + int V; + int c; + struct r r; + struct f1 *cm; + + if (!g(&V, &cm, h, strlen(h))) + { + c = (cm - z[V]); + goto L; + } + + for (c = 0; c < nm; c++) + if (!strcmp (h, mns[c])) + { + V = -1; + goto L; + } + + for (c = 0; c < y; c++) + { + if (!memcmp (&bs[c], &r, 8)) + goto L; + } + + h = w (&r); + if (!bv) + { + bs = g (8); + t = (struct f1 *)g (20); + } + else + { + bs = g (bs, y * 8); + z[bv] = cr (z[bv], (1 + y) * 20); + t = &z[bv][y - 1]; + } + bs[y - 1] = r; + t->fs[0] = sp (y - 1); + t->fs[1] = 0; + t->ic = 0; + t->fd = 0; + t->fn = cs (h); + t->ff = b; + L: + g (q[map], V, c); +}
930529-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920809-1.c =================================================================== --- 920809-1.c (nonexistent) +++ 920809-1.c (revision 154) @@ -0,0 +1 @@ +f(x,y){memcpy (&x,&y,8192);}
920809-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: mipscop-2.c =================================================================== --- mipscop-2.c (nonexistent) +++ mipscop-2.c (revision 154) @@ -0,0 +1,20 @@ +/* { dg-do compile { target mips*-*-* } } */ + +#ifndef __mips16 +register unsigned int c3r1 asm ("$c3r1"); + +extern unsigned int b, c; + +void +foo () +{ + unsigned int a, d; + + c3r1 = a; + b = c3r1; + + c3r1 = c; + d = c3r1; + printf ("%d\n", d); +} +#endif
mipscop-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: zero-strct-1.c =================================================================== --- zero-strct-1.c (nonexistent) +++ zero-strct-1.c (revision 154) @@ -0,0 +1,7 @@ +typedef struct { } empty_t; + +f () +{ + empty_t i; + bar (i); +}
zero-strct-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 200031109-1.c =================================================================== --- 200031109-1.c (nonexistent) +++ 200031109-1.c (revision 154) @@ -0,0 +1,11 @@ +/* For a short time on the tree-ssa branch this would warn that + value was not initialized as it was optimizing !(value = (m?1:2)) + to 0 and not setting value before. */ + +int t(int m) +{ + int value; + if (!(value = (m?1:2))) + value = 0; + return value; +}
200031109-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920501-11.c =================================================================== --- 920501-11.c (nonexistent) +++ 920501-11.c (revision 154) @@ -0,0 +1 @@ +typedef struct{int s;}S;foo(){int i=(int)&(S){(void*)((int)&(S){1})};}
920501-11.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: widechar-1.c =================================================================== --- widechar-1.c (nonexistent) +++ widechar-1.c (revision 154) @@ -0,0 +1 @@ +char *s = L"a" "b";
widechar-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031102-1.c =================================================================== --- 20031102-1.c (nonexistent) +++ 20031102-1.c (revision 154) @@ -0,0 +1,12 @@ +/* PR optimization/10817. + Check that the following code doesn't cause any problems + for GCC's if-conversion passes. */ + +int foo(int t) +{ + int result = 0; + if (t != 0) + result = t; + return result; +} +
20031102-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20011106-1.c =================================================================== --- 20011106-1.c (nonexistent) +++ 20011106-1.c (revision 154) @@ -0,0 +1,7 @@ +/* Test that functions passed to the comma operator are correctly converted + to pointers. */ +/* Origin: Joseph Myers . */ + +void foo (void); +void (*fp) (void); +char x[sizeof (1, foo) == sizeof (fp) ? 1 : -1];
20011106-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040611-1.c =================================================================== --- 20040611-1.c (nonexistent) +++ 20040611-1.c (revision 154) @@ -0,0 +1,8 @@ +/* This would cause PRE load motion to generate invalid code and ICE */ +void foo (char *name) +{ + if (*name) + name ++; + while (name[0]); + asm ("" : "=r" (name)); +}
20040611-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050215-1.c =================================================================== --- 20050215-1.c (nonexistent) +++ 20050215-1.c (revision 154) @@ -0,0 +1,4 @@ +/* PR tree-optimization/18947 */ +extern __inline void f1 (void) { } +extern __inline void f2 (void) { f1 (); } +void f2 (void) {}
20050215-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 921021-1.c =================================================================== --- 921021-1.c (nonexistent) +++ 921021-1.c (revision 154) @@ -0,0 +1,12 @@ +void g(); + +f() +{ +int x=1; +while(x) +{ +x=h(); +if(x) +g(); +} +}
921021-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030416-1.c =================================================================== --- 20030416-1.c (nonexistent) +++ 20030416-1.c (revision 154) @@ -0,0 +1,16 @@ +void foo(int x) +{ + if (x > 3) + {;} + else + bar(); + x = 9; +} + +main() +{ + int j; + + foo(j); + return j; +}
20030416-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030219-1.c =================================================================== --- 20030219-1.c (nonexistent) +++ 20030219-1.c (revision 154) @@ -0,0 +1,6 @@ +int global_one; + +void clobber_register() +{ + *(volatile unsigned char *)(0xE0000000 * global_one) = 0x00; +}
20030219-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020418-1.c =================================================================== --- 20020418-1.c (nonexistent) +++ 20020418-1.c (revision 154) @@ -0,0 +1,18 @@ +/* PR c/6358 + This testcase ICEd on IA-32 in foo, because current_function_return_rtx + was assigned a hard register only after expand_null_return was called, + thus return pseudo was clobbered twice and the hard register not at + all. */ + +void baz (void); + +double foo (void) +{ + baz (); + return; +} + +double bar (void) +{ + baz (); +}
20020418-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: builtin_constant_p.c =================================================================== --- builtin_constant_p.c (nonexistent) +++ builtin_constant_p.c (revision 154) @@ -0,0 +1,8 @@ +/* { dg-options "-O2" } */ + +int main (int argc, char *argv[]) +{ + static int a[] = { __builtin_constant_p (argc) ? 1 : 0 }; + return a[0]; +} +
builtin_constant_p.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010518-2.c =================================================================== --- 20010518-2.c (nonexistent) +++ 20010518-2.c (revision 154) @@ -0,0 +1,20 @@ +/* { dg-do compile } */ + +/* This test fails on HC11/HC12 when it is compiled without -mshort because + the array is too large (INT_MAX/2 > 64K). Force to use 16-bit ints + for it. */ +/* { dg-options "-w -mshort" { target m6811-*-* m6812-*-* } } */ + +/* Large static storage. */ + +#include + +static volatile char chars_1[INT_MAX / 2]; +static volatile char chars_2[1]; + +int +foo (void) +{ + chars_1[10] = 'y'; + chars_2[0] = 'x'; +}
20010518-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr28489.c =================================================================== --- pr28489.c (nonexistent) +++ pr28489.c (revision 154) @@ -0,0 +1,48 @@ +typedef int c_int; +union c_insn +{ + void (*op) (); + c_int *mem; + c_int imm; +}; +static union c_insn c_stack[((0x100 + 4) * 4)]; +static struct c_ident *c_funcs; +static void (*c_op_bz) (); +static void c_direct (union c_insn *addr); +c_compile (int (*ext_getchar) (), void (*ext_rewind) (), + struct c_ident *externs) +{ + c_direct (((void *) 0)); +} +static void +c_direct (union c_insn *addr) +{ + union c_insn *pc = addr; + union c_insn *sp = c_stack; + c_int imm = 0; + static void *ops[] = { + &&op_index, &&op_assign, &&op_add_a, &&op_sub_a, &&op_mul_a, &&op_div_a, + &&op_mod_a, &&op_or_a, &&op_xor_a, &&op_and_a, &&op_shl_a, &&op_shr_a, + }; + { + c_op_bz = &&op_bz; + } + goto *(pc++)->op; +op_bz:if (imm) + { + } +op_push_imm_imm:(sp - 2)->imm = imm; + goto *(pc - 1)->op; +op_index:imm = *((sp - 3)->mem += imm); +op_assign:*(sp - 3)->mem = imm; +op_add_a:imm = *(sp - 3)->mem += imm; +op_sub_a:imm = *(sp - 3)->mem -= imm; +op_mul_a:imm = *(sp - 3)->mem *= imm; +op_div_a:imm = *(sp - 3)->mem /= imm; +op_mod_a:imm = *(sp - 3)->mem %= imm; +op_or_a:imm = *(sp - 3)->mem |= imm; +op_xor_a:imm = *(sp - 3)->mem ^= imm; +op_and_a:imm = *(sp - 3)->mem &= imm; +op_shl_a:imm = *(sp - 3)->mem <<= imm; +op_shr_a:imm = *(sp - 3)->mem >>= imm; +}
pr28489.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 951220-1.c =================================================================== --- 951220-1.c (nonexistent) +++ 951220-1.c (revision 154) @@ -0,0 +1,4 @@ +f (char *x) +{ + return (*x & 2) || (*x & 3); +}
951220-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 960130-1.c =================================================================== --- 960130-1.c (nonexistent) +++ 960130-1.c (revision 154) @@ -0,0 +1,8 @@ +int a[1]; + +int +main() +{ + extern int a[]; + return *a; +}
960130-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930611-1.c =================================================================== --- 930611-1.c (nonexistent) +++ 930611-1.c (revision 154) @@ -0,0 +1,7 @@ +float +f (float a1) +{ + union { float f; int l; } fl1; + fl1.f = a1; + return fl1.l ? 1.0 : a1; +}
930611-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930530-1.c =================================================================== --- 930530-1.c (nonexistent) +++ 930530-1.c (revision 154) @@ -0,0 +1,5 @@ +f () +{ + struct { char a, b; } x; + g (x, x, x, x); +}
930530-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930217-1.c =================================================================== --- 930217-1.c (nonexistent) +++ 930217-1.c (revision 154) @@ -0,0 +1,20 @@ +/* The bit-field below would have a problem if __INT_MAX__ is too + small. */ +#if __INT_MAX__ < 2147483647 +int a; +#else +double g (); +typedef union { + struct { + unsigned s:1, e:8, f:23; + } u; + float f; +} s; + +f(x, n) + float x; +{ + ((s *)&x)->u.e -= n; + x = g((double)x, -n); +} +#endif
930217-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920501-20.c =================================================================== --- 920501-20.c (nonexistent) +++ 920501-20.c (revision 154) @@ -0,0 +1 @@ +int*f(x)int*x;{if(x[4]){int h[1];if(setjmp(h))return x;}}
920501-20.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr29241.c =================================================================== --- pr29241.c (nonexistent) +++ pr29241.c (revision 154) @@ -0,0 +1,15 @@ +static inline __attribute__((always_inline)) void ip_finish_output2(){} +void ip_fragment(void (*)(void)); +static inline __attribute__((always_inline)) void ip_finish_output() +{ + ip_fragment(ip_finish_output2); + ip_finish_output2(); +} +void ip_mc_output() +{ + ip_finish_output(); +} +void ip_output() +{ + ip_finish_output(); +}
pr29241.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030220-1.c =================================================================== --- 20030220-1.c (nonexistent) +++ 20030220-1.c (revision 154) @@ -0,0 +1,20 @@ +/* PR optimization/9768 */ +/* Originator: Randolph Chung */ + +inline int fixfloor (long x) +{ + if (x >= 0) + return (x >> 16); + else + return ~((~x) >> 16); +} + +inline int fixtoi (long x) +{ + return fixfloor(x) + ((x & 0x8000) >> 15); +} + +int foo(long x, long y) +{ + return fixtoi(x*y); +}
20030220-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010421-1.c =================================================================== --- 20010421-1.c (nonexistent) +++ 20010421-1.c (revision 154) @@ -0,0 +1,8 @@ +int j; + +void residual () +{ + long double s; + for (j = 3; j < 9; j++) + s -= 3; +}
20010421-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000701-1.c =================================================================== --- 20000701-1.c (nonexistent) +++ 20000701-1.c (revision 154) @@ -0,0 +1,19 @@ +void +dr106_1(void *pv, int i) +{ + *pv; + i ? *pv : *pv; + *pv, *pv; +} + +void +dr106_2(const void *pcv, volatile void *pvv, int i) +{ + *pcv; + i ? *pcv : *pcv; + *pcv, *pcv; + + *pvv; + i ? *pvv : *pvv; + *pvv, *pvv; +}
20000701-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020303-1.c =================================================================== --- 20020303-1.c (nonexistent) +++ 20020303-1.c (revision 154) @@ -0,0 +1,5 @@ +/* With -fzero-initialized-in-bss, we made I a common symbol instead + of a symbol in the .bss section. Not only does that break semantics, + but a common symbol can't be weak. */ + +int i __attribute__((weak)) = 0;
20020303-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020106-1.c =================================================================== --- 20020106-1.c (nonexistent) +++ 20020106-1.c (revision 154) @@ -0,0 +1,8 @@ +/* Origin: PR c/5279 from . */ + +int +foo () +{ + extern long long Y; + return (0 > Y++); +}
20020106-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000504-1.c =================================================================== --- 20000504-1.c (nonexistent) +++ 20000504-1.c (revision 154) @@ -0,0 +1,15 @@ +struct foo { + int a; + int b; +}; + +int func(struct foo *foo, int a) +{ + if (foo->b == 0) { + int ret = foo->a = a; + if (a >= 0) + foo->a = a; + return (ret); + } + return (0); +}
20000504-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000405-2.c =================================================================== --- 20000405-2.c (nonexistent) +++ 20000405-2.c (revision 154) @@ -0,0 +1,6 @@ +extern void foo (int); + +void bar (unsigned long l) +{ + foo(l == 0); +}
20000405-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20011114-3.c =================================================================== --- 20011114-3.c (nonexistent) +++ 20011114-3.c (revision 154) @@ -0,0 +1,42 @@ +typedef struct { int s, t; } C; +C x; +int foo (void); +void bar (int); + +int baz (void) +{ + int a = 0, c, d = 0; + C *b = &x; + + while ((c = foo ())) + switch(c) + { + case 23: + bar (1); + break; + default: + break; + } + + if (a == 0 || (a & 1)) + { + if (b->s) + { + if (a) + bar (1); + else + a = 16; + } + else if (b->t) + { + if (a) + bar (1); + else + a = 32; + } + } + + if (d && (a & ~127)) + bar (2); + return 0; +}
20011114-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030703-1.c =================================================================== --- 20030703-1.c (nonexistent) +++ 20030703-1.c (revision 154) @@ -0,0 +1,10 @@ +/* Extracted from PR target/10700. */ +/* The following code used to cause an ICE on 64-bit targets. */ + +int SAD_Block(int *); +void MBMotionEstimation(int *act_block, int block) +{ + SAD_Block(act_block + ( (8 * (block == 1 || block == 3)) + + (8 * (block == 2 || block == 3)))); +} +
20030703-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 921111-1.c =================================================================== --- 921111-1.c (nonexistent) +++ 921111-1.c (revision 154) @@ -0,0 +1,40 @@ +int ps; +struct vp { + int wa; +}; +typedef struct vp *vpt; +typedef struct vc { + int o; + vpt py[8]; +} *vct; +struct n { + int a; +}; +struct nh { + int x; +}; +typedef struct np *npt; +struct np { + vct d; + int di; +}; +struct nh xhp; +struct n np[3]; + +f(dp) + npt dp; +{ + vpt *py; + int a, l, o = 0; + a = dp->d->o; + if (dp->di < 0) + l = ps; + + if ((int)o & 3) + g(); + + xhp.x = a; + py = &dp->d->py[dp->di]; + if (o + l > ps) + np[2].a = (int)(py[1])->wa; +}
921111-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920301-1.c =================================================================== --- 920301-1.c (nonexistent) +++ 920301-1.c (revision 154) @@ -0,0 +1,4 @@ +#ifndef NO_LABEL_VALUES +f(){static void*t[]={&&x};x:;} +#endif +g(){static unsigned p[5];}
920301-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 921012-2.c =================================================================== --- 921012-2.c (nonexistent) +++ 921012-2.c (revision 154) @@ -0,0 +1,7 @@ +struct foo { +int a,b,c; +}; +f(struct foo*a,struct foo*b) +{ +*a=*b; +}
921012-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000825-1.c =================================================================== --- 20000825-1.c (nonexistent) +++ 20000825-1.c (revision 154) @@ -0,0 +1,31 @@ +typedef signed int s32; +typedef signed long s64; +typedef unsigned int u32; +typedef unsigned long u64; + +extern __inline__ u32 foobar(int logmask) +{ + u32 ret = ~(1 << logmask); // fails + // s32 ret = ~(1 << logmask); // ok + // u64 ret = ~(1 << logmask); // ok + // s64 ret = ~(1 << logmask); // ok + return ret; +} + +// This procedure compiles fine... +u32 good(u32 var) +{ + var = foobar(0); + return var; +} + +// This procedure does not compile... +// Same as above, but formal parameter is a pointer +// Both good() and fails() compile ok if we choose +// a different type for "ret" in foobar(). +u32 fails(u32 *var) +{ + *var = foobar(0); + return *var; +} +
20000825-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 960220-1.c =================================================================== --- 960220-1.c (nonexistent) +++ 960220-1.c (revision 154) @@ -0,0 +1,6 @@ +f () +{ + unsigned long long int a = 0, b; + while (b > a) + ; +}
960220-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040726-2.c =================================================================== --- 20040726-2.c (nonexistent) +++ 20040726-2.c (revision 154) @@ -0,0 +1,22 @@ +/* { dg-do compile } */ +/* From a failure after the global ccp pass. */ +typedef struct +{ + char n[129]; +} A; + +const A C = { + 0, + 0 +}; + +extern const A *const B; + +void bar(const char *); + +void foo () +{ + bar (B->n); +} + +const A *const B = &C;
20040726-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040709-1.c =================================================================== --- 20040709-1.c (nonexistent) +++ 20040709-1.c (revision 154) @@ -0,0 +1,10 @@ +/* PR target/16364 */ +union foo { + long double ld; +} bar; + +double +sub (union foo baz) +{ + return baz.ld / 2; +}
20040709-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20070827-1.c =================================================================== --- 20070827-1.c (nonexistent) +++ 20070827-1.c (revision 154) @@ -0,0 +1,20 @@ +/* PR rtl-optimization/33148 */ + +int +foo (unsigned int *p, int *q, unsigned int w, unsigned int b) +{ + unsigned int i; + int mask; + + if (q[0] < q[1]) + mask = 0xff; + else + mask = 0; + + for (i = 0; 8 * i < w; i++) + { + b ^= mask; + *p++ = b; + } + return 0; +}
20070827-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: mipscop-3.c =================================================================== --- mipscop-3.c (nonexistent) +++ mipscop-3.c (revision 154) @@ -0,0 +1,20 @@ +/* { dg-do compile { target mips*-*-* } } */ + +#ifndef __mips16 +register unsigned int c3r1 asm ("$c3r1"), c3r2 asm ("$c3r2"); + +extern unsigned int b, c; + +void +foo () +{ + unsigned int a, d; + + c3r1 = a; + b = c3r1; + + c3r2 = c; + d = c3r1; + printf ("%d\n", d); +} +#endif
mipscop-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: zero-strct-2.c =================================================================== --- zero-strct-2.c (nonexistent) +++ zero-strct-2.c (revision 154) @@ -0,0 +1,2 @@ +struct { } foo = { }; +void * bar(void) { return &foo; }
zero-strct-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr22422.c =================================================================== --- pr22422.c (nonexistent) +++ pr22422.c (revision 154) @@ -0,0 +1,30 @@ +/* We should not crash trying to figure out the points-to sets for the below. We used to because we + ended up adding pointers to the points-to set of the ANYTHING variable. */ +struct D +{ + int n; + int c [8]; +}; + +struct A +{ + int i; + char *p; +}; + +struct B +{ + struct A *a; + struct D *d; +}; + +int dtInsert1 (struct B *b) +{ + struct A a = { 0, 0 }; + struct D *d; + b->a = &a; + d = b->d; + &d->c [d->n]; + return 0; +} +
pr22422.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920501-12.c =================================================================== --- 920501-12.c (nonexistent) +++ 920501-12.c (revision 154) @@ -0,0 +1,9 @@ +/* This test fails on HC11/HC12 when it is compiled without -mshort because + the stack arrays are too large. Force to use 16-bit ints for it. */ +/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */ + +x(x){ return 3 + x;} +a(x){int y[994]; return 3 + x;} +b(x){int y[999]; return 2*(x + 3);} +A(x){int y[9999];return 2*(x + 3);} +B(x){int y[9949];return 3 + x;}
920501-12.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 990829-1.c =================================================================== --- 990829-1.c (nonexistent) +++ 990829-1.c (revision 154) @@ -0,0 +1,13 @@ +struct x +{ + int a:16; + int b:16; + int c; +}; + +bar() +{ + struct x y; + y.b = 1 < y.a; + foo(&y); +}
990829-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr29250.c =================================================================== --- pr29250.c (nonexistent) +++ pr29250.c (revision 154) @@ -0,0 +1,32 @@ +/* We used to ICE because EXPAND_SUM was being used for all recursive calls + to expand_expr. */ +struct TSparseEntry +{ + int feat_index; + double entry; +}; + +struct TSparse +{ + int vec_index; + int num_feat_entries; + struct TSparseEntry *features; +}; + +void +get_full_feature_matrix (struct TSparse* sparse_feature_matrix, int num_vec) +{ + double *fm; + int v, f; + + for (v=0; v < num_vec; v++) + { + for (f=0; f < sparse_feature_matrix[v].num_feat_entries; f++) + { + long long offs = sparse_feature_matrix[v].vec_index + + sparse_feature_matrix[v].features[f].feat_index; + fm[offs] = sparse_feature_matrix[v].features[f].entry; + } + } +} +
pr29250.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030310-1.c =================================================================== --- 20030310-1.c (nonexistent) +++ 20030310-1.c (revision 154) @@ -0,0 +1,13 @@ +static inline void +foo (char accept) +{ + char s; + while (s == accept) ; +} + +static void +bar (void) +{ + char ch; + foo (ch); +}
20030310-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr31953.c =================================================================== --- pr31953.c (nonexistent) +++ pr31953.c (revision 154) @@ -0,0 +1,14 @@ +struct WView +{ + int hexedit_mode:1; +}; +toggle_hexedit_mode (struct WView *view) +{ + if (view->hexedit_mode) + { + } + else + { + view->hexedit_mode = !view->hexedit_mode; + } +}
pr31953.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020312-1.c =================================================================== --- 20020312-1.c (nonexistent) +++ 20020312-1.c (revision 154) @@ -0,0 +1,23 @@ +/* This does not compile on HC11/HC12 due to the asm which requires + two 32-bit registers. */ +/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */ + +/* PR optimization/5892 */ +typedef struct { unsigned long a; unsigned int b, c; } A; +typedef struct { unsigned long a; A *b; int c; } B; + +static inline unsigned int +bar (unsigned int x) +{ + unsigned long r; + asm ("" : "=r" (r) : "0" (x)); + return r >> 31; +} + +int foo (B *x) +{ + A *y; + y = x->b; + y->b = bar (x->c); + y->c = ({ unsigned int z = 1; (z << 24) | (z >> 24); }); +}
20020312-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20011205-1.c =================================================================== --- 20011205-1.c (nonexistent) +++ 20011205-1.c (revision 154) @@ -0,0 +1,10 @@ +/* Failure to mark_addressable all operands before evaluation means we + don't set up the proper temporaries, which leaves us with an asm that + doesn't match its contraints. */ + +long foo() +{ + long x; + asm("" : "=r"(x) : "m"(x)); + return x; +}
20011205-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010117-1.c =================================================================== --- 20010117-1.c (nonexistent) +++ 20010117-1.c (revision 154) @@ -0,0 +1,7 @@ +unsigned char u, v, w; + +void baz (void) +{ + if ((u - v - w) & 0x80) + v = 1; +}
20010117-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20011106-2.c =================================================================== --- 20011106-2.c (nonexistent) +++ 20011106-2.c (revision 154) @@ -0,0 +1,7 @@ +/* Test the the type of a component of a conditional expression between + two structures is correct. */ +/* Origin: Joseph Myers . */ + +struct s { char c; } a, b; +int c; +char x[sizeof ((c ? a : b).c) == 1 ? 1 : -1];
20011106-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930111-1.c =================================================================== --- 930111-1.c (nonexistent) +++ 930111-1.c (revision 154) @@ -0,0 +1,10 @@ +/* 2.3.3 crashes on 386 with -traditional */ +f(a) + char *a; +{ + int d = strcmp(a,"-"); + + while (vfork() < 0) + ; + return d; +}
930111-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050215-2.c =================================================================== --- 20050215-2.c (nonexistent) +++ 20050215-2.c (revision 154) @@ -0,0 +1,7 @@ +/* PR tree-optimization/18947 */ +int v; +extern __inline void f1 (void) { v++; } +void f4 (void) { f1 (); } +extern __inline void f2 (void) { f1 (); } +void f3 (void) { f2 (); } +void f2 (void) { f1 (); }
20050215-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 921004-1.c =================================================================== --- 921004-1.c (nonexistent) +++ 921004-1.c (revision 154) @@ -0,0 +1,6 @@ +/* REPRODUCED:CC1:SIGNAL MACHINE:i386 OPTIONS: */ +long long f() +{ +long long*g,*s; +return*g+*s; +}
921004-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 961004-1.c =================================================================== --- 961004-1.c (nonexistent) +++ 961004-1.c (revision 154) @@ -0,0 +1,37 @@ +void +f1 (o1, o2, o3, i, j, k) + long long *o1, *o2, *o3; + int i, j, k; +{ + while (--i) + o1[i] = o2[j >>= 1] + o3[k >>= 1]; +} + +void +f2 (o1, o2, o3, i, j, k) + long long *o1, *o2, *o3; + int i, j, k; +{ + while (--i) + o1[i] = o2[j >>= 1] - o3[k >>= 1]; +} + +void +f3 (o1, o2, o3, i, j, k) + long long *o1, *o3; + unsigned *o2; + int i, j, k; +{ + while (--i) + o1[i] = o2[j >>= 1] + o3[k >>= 1]; +} + +void +f4 (o1, o2, o3, i, j, k) + long long *o1, *o2; + unsigned *o3; + int i, j, k; +{ + while (--i) + o1[i] = o2[j >>= 1] - o3[k >>= 1]; +}
961004-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930513-1.c =================================================================== --- 930513-1.c (nonexistent) +++ 930513-1.c (revision 154) @@ -0,0 +1,15 @@ +/* The bit-field below would have a problem if __INT_MAX__ is too + small. */ +#if __INT_MAX__ < 2147483647 +int a; +#else +struct s { + int f1 : 26; + int f2 : 8; +}; + +f (struct s *x) +{ + return x->f2++ == 0; +} +#endif
930513-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030917-1.c =================================================================== --- 20030917-1.c (nonexistent) +++ 20030917-1.c (revision 154) @@ -0,0 +1,18 @@ +typedef struct string STR; +typedef struct atbl ARRAY; +struct string { + unsigned char str_pok; +}; +struct atbl { + int ary_fill; +}; +blah(size,strp) +register int size; +register STR **strp; +{ + register ARRAY *ar; + ar->ary_fill = size - 1; + while (size--) + (*strp)->str_pok &= ~128; +} +
20030917-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 980511-1.c =================================================================== --- 980511-1.c (nonexistent) +++ 980511-1.c (revision 154) @@ -0,0 +1,20 @@ +typedef unsigned int __kernel_dev_t; +typedef __kernel_dev_t dev_t; +struct ustat { +}; +typedef unsigned int kdev_t; +static inline kdev_t to_kdev_t(int dev) +{ + int major, minor; + major = (dev >> 8); + minor = (dev & 0xff); + return ((( major ) << 22 ) | ( minor )) ; +} +struct super_block { +}; +struct super_block * get_super (kdev_t dev); +int sys_ustat(dev_t dev, struct ustat * ubuf) +{ + struct super_block *s; + s = get_super(to_kdev_t(dev)); +}
980511-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920917-1.c =================================================================== --- 920917-1.c (nonexistent) +++ 920917-1.c (revision 154) @@ -0,0 +1,2 @@ +inline f(x){switch(x){case 6:case 4:case 3:case 1:;}return x;} +g(){f(sizeof("xxxxxx"));}
920917-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 990517-1.c =================================================================== --- 990517-1.c (nonexistent) +++ 990517-1.c (revision 154) @@ -0,0 +1,30 @@ +/* Extracted from the sdm module in perl. */ +typedef struct { + char *dptr; + int dsize; +} datum; +extern long sdbm_hash (char *, int) ; +extern void sdbm__putpair (char *, datum, datum) ; +void +sdbm__splpage (char *pag, char *New, long int sbit) +{ + datum key; + datum val; + register int n; + register int off = 1024 ; + char cur[1024 ]; + register short *ino = (short *) cur; + (void) memcpy(cur, pag, 1024 ); + (void) ({ void *__s = ( pag ); __builtin_memset ( __s , '\0', 1024 ) ; __s; }); + (void) ({ void *__s = ( New ); __builtin_memset ( __s , '\0', 1024 ) ; __s; }); + n = ino[0]; + for (ino++; n > 0; ino += 2) { + key.dptr = cur + ino[0]; + key.dsize = off - ino[0]; + val.dptr = cur + ino[1]; + val.dsize = ino[0] - ino[1]; + (void) sdbm__putpair ((sdbm_hash(( key ).dptr, ( key ).dsize) & sbit) ? New : pag, key, val); + off = ino[1]; + n -= 2; + } +}
990517-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr30433.c =================================================================== --- pr30433.c (nonexistent) +++ pr30433.c (revision 154) @@ -0,0 +1,2 @@ +int f = (_Complex float)(0.5) == 0.5; +
pr30433.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 950919-1.c =================================================================== --- 950919-1.c (nonexistent) +++ 950919-1.c (revision 154) @@ -0,0 +1,5 @@ +#define empty +#if empty#cpu(m68k) +#endif + +f (){}
950919-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920501-21.c =================================================================== --- 920501-21.c (nonexistent) +++ 920501-21.c (revision 154) @@ -0,0 +1,3 @@ +typedef unsigned short t; +struct foo{t d;}; +int bar(d)t d;{struct foo u;u.d=d;return(int)(&u);}
920501-21.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr20539-1.c =================================================================== --- pr20539-1.c (nonexistent) +++ pr20539-1.c (revision 154) @@ -0,0 +1,10 @@ +char l7_en; +long long l6_data_Z_0th; +int t; +void f() +{ + if (((char )(l6_data_Z_0th>>1 & 1U)) & ((l6_data_Z_0th & 1U) + | !(((char )(l6_data_Z_0th>>35 & 15U))==14U))) + t = 0ULL; +} +
pr20539-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pta-1.c =================================================================== --- pta-1.c (nonexistent) +++ pta-1.c (revision 154) @@ -0,0 +1,31 @@ +typedef struct JSObject JSObject; +typedef struct JSObjectMap *(*JSNewObjectMapOp) (JSObject *obj); +typedef JSObject *(*JSGetMethodOp) (JSObject *obj); +struct JSObjectOps { + JSNewObjectMapOp newObjectMap; +}; +struct JSXMLObjectOps { + struct JSObjectOps base; + JSGetMethodOp getMethod; +}; +struct JSObjectMap { + struct JSObjectOps *ops; +}; +struct JSObject { + struct JSObjectMap *map; +}; + +struct JSXMLObjectOps js_XMLObjectOps; + + +/* We need to create SFT's for the entire structure when this address is taken, + not just the part in the component reference itself. */ +JSObject *JS_GetMethod(JSObject *obj) +{ + if (obj->map->ops == &js_XMLObjectOps.base) { + struct JSXMLObjectOps *ops; + ops = (struct JSXMLObjectOps *) obj->map->ops; + obj = ops->getMethod(obj); + } + return obj; +}
pta-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000120-1.c =================================================================== --- 20000120-1.c (nonexistent) +++ 20000120-1.c (revision 154) @@ -0,0 +1,13 @@ +extern char letters[26+1]; +char letter; +int letter_number; +char letters[] = "AbCdefghiJklmNopQrStuVwXyZ"; + +static void +pad_home1 () +{ + letter = letters[letter_number = + letters[letter_number + 1] ? letter_number + + 1 : 0]; +} +
20000120-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: iftrap-1.c =================================================================== --- iftrap-1.c (nonexistent) +++ iftrap-1.c (revision 154) @@ -0,0 +1,99 @@ +/* Verify that ifcvt doesn't crash under a number of interesting conditions. */ + +void f1(int p) +{ + if (p) + __builtin_trap(); +} + +void f2(int p) +{ + if (p) + __builtin_trap(); + else + bar(); +} + +void f3(int p) +{ + if (p) + bar(); + else + __builtin_trap(); +} + +void f4(int p, int q) +{ + if (p) + { + bar(); + if (q) + bar(); + } + else + __builtin_trap(); +} + +void f5(int p) +{ + if (p) + __builtin_trap(); + else + abort(); +} + +void f6(int p) +{ + if (p) + abort(); + else + __builtin_trap(); +} + +void f7(int p) +{ + if (p) + __builtin_trap(); + else + __builtin_trap(); +} + +void f8(int p) +{ + if (p) + __builtin_trap(); + else + { + bar(); + __builtin_trap(); + } +} + +void f9(int p) +{ + if (p) + { + bar(); + __builtin_trap(); + } + else + __builtin_trap(); +} + +void f10(int p) +{ + if (p) + __builtin_trap(); + while (1) + bar(); +} + +void f11(int p) +{ + if (p) + __builtin_trap(); + else + bar(); + while (1) + baz(); +}
iftrap-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr18712.c =================================================================== --- pr18712.c (nonexistent) +++ pr18712.c (revision 154) @@ -0,0 +1,17 @@ +void *eintr_source (void *arg) +{ + int ts = 0; + + if (arg) + foo (); + + while (1) + { + if (arg) + foo (); + + foo1 (&ts); + } + + return 0; +}
pr18712.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr23960.c =================================================================== --- pr23960.c (nonexistent) +++ pr23960.c (revision 154) @@ -0,0 +1,12 @@ +/* PR tree-optimization/23960 + fold-const.c used to construct a comparison node with one pointer + operand and one non-pointer operand. */ + +void abort (void) __attribute__ ((noreturn)); + +void +foo (char *d, unsigned long int n) +{ + if (d + n > d) + abort (); +}
pr23960.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20021212-1.c =================================================================== --- 20021212-1.c (nonexistent) +++ 20021212-1.c (revision 154) @@ -0,0 +1,15 @@ +/* PR optimization/8334 */ +/* Verify that GCC produces valid operands + after simplifying an addition. */ + +void foo(int m, int n, double *f) +{ + int i, j, k = 1; + + for (j = 0; j < n; j++) { + for (i = k; i < m; i++) { + f[i] = (double) (i * j); + f[i + j] = (double) ((i + 1) * j); + } + } +}
20021212-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr14692.c =================================================================== --- pr14692.c (nonexistent) +++ pr14692.c (revision 154) @@ -0,0 +1,14 @@ +/* PR rtl-optimization/14692 */ + +void assert_failed (void); +void eidecpos_1 (unsigned char *pos, long n) +{ + int i; + for (i = 0; i < n; i++) + { + const unsigned char *dc_ptr1 = pos; + pos--; + if (dc_ptr1 - pos == 1) + assert_failed (); + } +}
pr14692.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010404-1.c =================================================================== --- 20010404-1.c (nonexistent) +++ 20010404-1.c (revision 154) @@ -0,0 +1,15 @@ +/* This testcase caused a floating point exception in the compiler when + compiled with -O2. The crash occurs when trying to simplify division + and modulo operations. */ + +#include + +extern void bar (int); + +void foo () +{ + int a = INT_MIN; + int b = -1; + bar (a / b); + bar (a % b); +}
20010404-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20021015-1.c =================================================================== --- 20021015-1.c (nonexistent) +++ 20021015-1.c (revision 154) @@ -0,0 +1,12 @@ +/* PR target/7370. */ + +int g (int *x, int *y); + +void f () +{ + int x, y; + char a[4000]; + + g (&x, &y); + x = x/y + x; +}
20021015-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: memcpy-1.c =================================================================== --- memcpy-1.c (nonexistent) +++ memcpy-1.c (revision 154) @@ -0,0 +1,9 @@ +static const char OggFLAC__MAPPING_VERSION_MAJOR = 1; +void f(void) +{ + char synthetic_first_packet_body[10]; + char *b = &synthetic_first_packet_body[4]; + __builtin_memcpy (b, &OggFLAC__MAPPING_VERSION_MAJOR, (1u)); +} + +
memcpy-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000405-3.c =================================================================== --- 20000405-3.c (nonexistent) +++ 20000405-3.c (revision 154) @@ -0,0 +1,9 @@ +struct foo { + void *entry[40]; +} __attribute__ ((aligned(32))); + +int foo (struct foo *ptr, int idx, void *pointer) +{ + ptr->entry[idx] = pointer; + return 0; +}
20000405-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20011114-4.c =================================================================== --- 20011114-4.c (nonexistent) +++ 20011114-4.c (revision 154) @@ -0,0 +1,38 @@ +static inline int foo (long x) +{ + register int a = 0; + register unsigned b; + + do + { + b = (x & 0x7f); + x = (x >> 7) | ~(-1L >> 7); + a += 1; + } + while ((x != 0 || (b & 0x40) != 0) && (x != -1 || (b & 0x40) == 0)); + return a; +} + +static inline int bar (unsigned long x) +{ + register int a = 0; + register unsigned b; + + do + { + b = (x & 0x7f); + x >>= 7; + a++; + } + while (x != 0); + return a; +} + +int +baz (unsigned long x, int y) +{ + if (y) + return foo ((long) x); + else + return bar (x); +}
20011114-4.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050520-1.c =================================================================== --- 20050520-1.c (nonexistent) +++ 20050520-1.c (revision 154) @@ -0,0 +1,13 @@ +struct s { int x[4]; }; +struct s gs; + +void +bar (void) +{ + struct s *s; + int i; + + s = &gs; + for (i = 0; i < 4; i++) + ((char*) (&s->x[i]))[0] = 0; +}
20050520-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930120-1.c =================================================================== --- 930120-1.c (nonexistent) +++ 930120-1.c (revision 154) @@ -0,0 +1,138 @@ +union { + short I[2]; + long int L; + char C[4]; +} itolws; +char *errflg; +long int dot; +short dotinc; +long int expvf; + +char * +f(fcount,ifp,itype,ptype) + short fcount; + char *ifp; +{ + unsigned w; + long int savdot, wx; + char *fp; + char c, modifier, longpr; + union { + double dval; + struct { + int i1; + int i2; + } ival; + } dw; + union { + float fval; + int ival; + } fw; + int gotdot = 0; + while (fcount > 0) { + fp = ifp; + c = *fp; + longpr = ((c >= 'A') & (c <= 'Z') | (c == 'f') | (c == '4') | (c == 'p') | (c == 'i')); + if ((itype == 0) || (*fp == 'a')) { + wx = dot; + w = dot; + } else { + gotdot = 1; + wx = get((int)dot, itype); + if (!longpr) { + w = (itolws.L=(wx), itolws.I[((dot)&3)>>1]); + } + } + if (c == 'F') { + dw.ival.i1 = wx; + if (itype == 0) { + dw.ival.i2 = expvf; + } + } + + modifier = *fp++; + switch(modifier) { + case ' ' : + case '\t' : + break; + case 't': + case 'T': + printf("%T",fcount); + return(fp); + case 'r': + case 'R': + printf("%M",fcount); + return(fp); + case 'k': + printf("%k",w); + break; + case 'K': + printf("%K",wx); + break; + case 'a': + psymoff(dot,ptype,":%16t"); + dotinc = 0; + break; + case 'p': + psymoff(0,ptype,"%16t"); + break; + case 'u': + printf("%-8u",w); + break; + case 'U': + printf("%-16U",wx); break; + case 'c': + case 'C': + if (modifier == 'C') { + printesc((int)(itolws.L=(wx), itolws.C[(dot)&3])); + } else { + printc((char)(itolws.L=(wx), itolws.C[(dot)&3])); + } + dotinc = 1; + break; + case 'b': + printf("%-8x", (itolws.L=(wx), itolws.C[(dot)&3])); + dotinc = 1; + break; + case 'B': + printf("%-8o", (itolws.L=(wx), itolws.C[(dot)&3])); + dotinc = 1; + break; + case 's': + case 'S': + savdot = dot; + dotinc = 1; + while ((c = (itolws.L=(wx), itolws.C[(dot)&3])) && (errflg == 0)) { + dot = inkdot(1); + if (modifier == 'S') { + printesc(c); + } else { + printc(c); + } + endline(); + if (!(dot & 3)) + wx = get((int)dot, itype); + } + dotinc = dot - savdot + 1; + dot = savdot; + break; + case 'i': + if (gotdot) { + wx = get((int)(dot & ~3), itype); + } + iDasm((int)(wx), (unsigned int)0, (unsigned int)(dot&~3)); + printc('\n'); + break; + case 'f': + fw.ival = wx; + printf("%-16.9f", fw.fval); + dotinc = 4; + break; + case 'F': + printf("%-32.18F", dw.dval); + dotinc = 8; + break; + } + } + return(fp); +}
930120-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030605-1.c =================================================================== --- 20030605-1.c (nonexistent) +++ 20030605-1.c (revision 154) @@ -0,0 +1,12 @@ +/* Test for proper preparation of the comparison operands for + generation of a conditional trap. Produced unrecognizable + rtl on Sparc. */ + +struct blah { char *b_data; }; + +void set_bh_page(struct blah *bh, unsigned long offset) +{ + if ((1UL << 12 ) <= offset) + __builtin_trap() ; + bh->b_data = (char *)offset; +}
20030605-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 921013-1.c =================================================================== --- 921013-1.c (nonexistent) +++ 921013-1.c (revision 154) @@ -0,0 +1,4 @@ +f(int x,short y) +{ +long z=y<0?x>0?x:0:y; +}
921013-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040209-1.c =================================================================== --- 20040209-1.c (nonexistent) +++ 20040209-1.c (revision 154) @@ -0,0 +1,9 @@ +/* The following code used to ICE in fold_convert. */ + +float ceilf(float); + +int foo(float x) +{ + return (double)ceilf(x); +} +
20040209-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930603-1.c =================================================================== --- 930603-1.c (nonexistent) +++ 930603-1.c (revision 154) @@ -0,0 +1,10 @@ +union u { union u *a; double d; }; +union u *s, g(); + +f() +{ + union u x = g(); + + s[0] = *x.a; + s[1] = g(); +}
930603-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920721-1.c =================================================================== --- 920721-1.c (nonexistent) +++ 920721-1.c (revision 154) @@ -0,0 +1,11 @@ +typedef struct{short ttype;float s;}T; +short t[8][8]; + +T f(T t2,T t1) +{ + T x; + if (t1.ttype == 1) + x.ttype = t[t2.ttype][t1.ttype], + x.s = 1; + return x; +}
920721-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 950124-1.c =================================================================== --- 950124-1.c (nonexistent) +++ 950124-1.c (revision 154) @@ -0,0 +1,15 @@ +f () +{ + if (g ()) + h (); + else + { + do + { + return 0; + break; + } + while (1); + } + return 1; +}
950124-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040727-1.c =================================================================== --- 20040727-1.c (nonexistent) +++ 20040727-1.c (revision 154) @@ -0,0 +1,32 @@ +/* Extracted from boehm-gc/os_dep.c on Darwin. It caused an ICE when + trying to merge alias information from two pointers that had + different type memory tags. */ +typedef int thread_state_flavor_t; +typedef int exception_behavior_t; +typedef unsigned int exception_mask_t; +typedef unsigned int exception_handler_t; +typedef unsigned int mach_msg_type_number_t; +static struct { + mach_msg_type_number_t count; + exception_mask_t masks[16]; + exception_handler_t ports[16]; + thread_state_flavor_t flavors[16]; +} GC_old_exc_ports; + +typedef exception_handler_t *exception_handler_array_t; +typedef thread_state_flavor_t *exception_flavor_array_t; + + +int task_get_exception_ports +( + mach_msg_type_number_t *masksCnt, + exception_handler_array_t old_handlers, + exception_flavor_array_t old_flavors +); + +void GC_dirty_init() +{ + task_get_exception_ports(GC_old_exc_ports.masks, + GC_old_exc_ports.ports, + GC_old_exc_ports.flavors); +}
20040727-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930325-1.c =================================================================== --- 930325-1.c (nonexistent) +++ 930325-1.c (revision 154) @@ -0,0 +1,23 @@ +typedef unsigned uint; + +inline +g (uint *s, uint *d, uint c) +{ + while (c != 0) + { + *--d = *--s; + c--; + } +} + +f (uint *p1, uint c, uint *p2) +{ + while (c > 0 && *p1 == 0) + { + p1++; + c--; + } + if (c == 0) + return 1; + g (p2, p1, c); +}
930325-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 950607-1.c =================================================================== --- 950607-1.c (nonexistent) +++ 950607-1.c (revision 154) @@ -0,0 +1,38 @@ +typedef struct { + int component_id; + int component_index; + int h_samp_factor; + int v_samp_factor; +} jpeg_component_info; +struct jpeg_common_struct { + struct jpeg_error_mgr * err; +}; +typedef struct jpeg_common_struct * j_common_ptr; +typedef struct jpeg_compress_struct * j_compress_ptr; +struct jpeg_compress_struct { + struct jpeg_error_mgr * err; + int num_components; + jpeg_component_info * comp_info; + int max_h_samp_factor; + int max_v_samp_factor; +}; +struct jpeg_error_mgr { + int msg_code; +}; + +void +jinit_downsampler (j_compress_ptr cinfo) +{ + int ci; + jpeg_component_info * compptr; + + for (ci = 0, compptr = cinfo->comp_info; ci < cinfo->num_components; + ci++, compptr++) { + if (compptr->h_samp_factor == cinfo->max_h_samp_factor && + compptr->v_samp_factor == cinfo->max_v_samp_factor) { + } else if ((cinfo->max_h_samp_factor % compptr->h_samp_factor) == 0 && + (cinfo->max_v_samp_factor % compptr->v_samp_factor) == 0) { + } else + cinfo->err->msg_code = 0; + } +}
950607-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 950329-1.c =================================================================== --- 950329-1.c (nonexistent) +++ 950329-1.c (revision 154) @@ -0,0 +1,19 @@ +f () +{ + int i; + for (i = 1;; i = 0) + { + if (h ()) + { + if (i) + g (); + g (h ()); + g (h ()); + } + else + { + g (); + break; + } + } +}
950329-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920729-1.c =================================================================== --- 920729-1.c (nonexistent) +++ 920729-1.c (revision 154) @@ -0,0 +1,2 @@ +extern volatile int i; +f(){int j;for(;;)j = i;}
920729-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: mipscop-4.c =================================================================== --- mipscop-4.c (nonexistent) +++ mipscop-4.c (revision 154) @@ -0,0 +1,20 @@ +/* { dg-do compile { target mips*-*-* } } */ + +#ifndef __mips16 +register unsigned long c3r1 asm ("$c3r1"), c3r2 asm ("$c3r2"); + +extern unsigned long b, c; + +void +foo () +{ + unsigned long a, d; + + c3r1 = a; + b = c3r1; + + c3r2 = c; + d = c3r1; + printf ("%d\n", d); +} +#endif
mipscop-4.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: zero-strct-3.c =================================================================== --- zero-strct-3.c (nonexistent) +++ zero-strct-3.c (revision 154) @@ -0,0 +1,12 @@ +typedef struct {} spinlock_t; +struct sk_buff_head { + int i; + spinlock_t lock; +}; +struct sk_buff_head audit_skb_queue; +void audit_init(void) +{ + struct sk_buff_head *list = &audit_skb_queue; + spinlock_t a = {}; + audit_skb_queue.lock = a; +}
zero-strct-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr21532.c =================================================================== --- pr21532.c (nonexistent) +++ pr21532.c (revision 154) @@ -0,0 +1,14 @@ + + +int +bar (unsigned char key) +{ + unsigned char buf[sizeof (unsigned long)+2]; + unsigned char b; + unsigned char *buf_ = buf + 1; + + for (b = 8; b != 0; b--) + buf_[b] = key >> b; + + return foo (b); +}
pr21532.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920501-13.c =================================================================== --- 920501-13.c (nonexistent) +++ 920501-13.c (revision 154) @@ -0,0 +1 @@ +typedef struct{int i;}t;inline y(t u){}x(){t u;y(u);}
920501-13.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 990928-1.c =================================================================== --- 990928-1.c (nonexistent) +++ 990928-1.c (revision 154) @@ -0,0 +1,10 @@ +/* Make sure that debug information can be generated + for inline functions containing incomplete type + declarations. */ +inline int foo (void) +{ + struct imcomplete1 * ptr1; + union incomplete2 * ptr2; + enum incomplete3 * ptr3; + return 1; +}
990928-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010610-1.c =================================================================== --- 20010610-1.c (nonexistent) +++ 20010610-1.c (revision 154) @@ -0,0 +1,19 @@ +/* Origin: Kaveh R. Ghazi + + Boolean types were not accepted as array sizes nor as switch + quantities. */ + +#include + +int +main(void) +{ + bool arr[(bool)1]; + + switch (arr[0]) + { + default:; + } + + return 0; +}
20010610-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020330-1.c =================================================================== --- 20020330-1.c (nonexistent) +++ 20020330-1.c (revision 154) @@ -0,0 +1,27 @@ +/* PR 5446 */ +/* This testcase is similar to gcc.c-torture/compile/20011219-1.c except + with parts of it omitted, causing an ICE with -O3 on IA-64. */ + +void * baz (unsigned long); +static inline double ** +bar (long w, long x, long y, long z) +{ + long i, a = x - w + 1, b = z - y + 1; + double **m = (double **) baz (sizeof (double *) * (a + 1)); + + m += 1; + m -= w; + m[w] = (double *) baz (sizeof (double) * (a * b + 1)); + for (i = w + 1; i <= x; i++) + m[i] = m[i - 1] + b; + return m; +} + +void +foo (double w[], int x, double y[], double z[]) +{ + int i; + double **a; + + a = bar (1, 50, 1, 50); +}
20020330-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20001109-1.c =================================================================== --- 20001109-1.c (nonexistent) +++ 20001109-1.c (revision 154) @@ -0,0 +1,9 @@ +/* This does not work on NetWare, which has a default of 1-byte alignment. */ +/* { dg-xfail-if "" { "*-*-netware*" } { "*" } { "" } } */ +typedef struct _foo foo; +extern foo bar; +struct _foo { + int a; +}; + +int tst[__alignof__ (bar) >= __alignof__ (int) ? 1 : -1];
20001109-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010117-2.c =================================================================== --- 20010117-2.c (nonexistent) +++ 20010117-2.c (revision 154) @@ -0,0 +1,20 @@ +unsigned char a, b; + +void baz (void) +{ + if (b & 0x08) + { + int g = 0; + int c = (b & 0x01); + int d = a - g - c; + int e = (a & 0x0f) - (g & 0x0f); + int f = (a & 0xf0) - (g & 0xf0); + int h = (a & 0x0f) - (g & 0x0f); + + if ((a ^ g) & (a ^ d) & 0x80) b |= 0x40; + if ((d & 0xff00) == 0) b |= 0x01; + if (!((a - h - c) & 0xff)) b |= 0x02; + if ((a - g - c) & 0x80) b |= 0x80; + a = (e & 0x0f) | (f & 0xf0); + } +}
20010117-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930210-1.c =================================================================== --- 930210-1.c (nonexistent) +++ 930210-1.c (revision 154) @@ -0,0 +1,11 @@ +f() +{ + char c1, c2; + char *p1, *p2; + + do { + c1 = c2 = *p1++; + while (c1--) + *p2++ = *p1++; + } while (c2); +}
930210-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040415-1.c =================================================================== --- 20040415-1.c (nonexistent) +++ 20040415-1.c (revision 154) @@ -0,0 +1,5 @@ +int isdigit (int); +int f (const char *type) +{ + return isdigit ((unsigned char) *type++); +}
20040415-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 921103-1.c =================================================================== --- 921103-1.c (nonexistent) +++ 921103-1.c (revision 154) @@ -0,0 +1,12 @@ +struct { + unsigned int f1, f2; +} s; + +f() +{ + unsigned x, y; + x = y = 0; + while (y % 4) + y++; + g(&s.f2, s.f1 + x, 4); +}
921103-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050215-3.c =================================================================== --- 20050215-3.c (nonexistent) +++ 20050215-3.c (revision 154) @@ -0,0 +1,8 @@ +/* PR tree-optimization/18947 */ +int v; +extern __inline void f0 (void) { v++; } +extern __inline void f1 (void) { f0 (); } +void f4 (void) { f1 (); } +extern __inline void f2 (void) { f1 (); } +void f3 (void) { f2 (); } +void f2 (void) { f1 (); }
20050215-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031227-1.c =================================================================== --- 20031227-1.c (nonexistent) +++ 20031227-1.c (revision 154) @@ -0,0 +1,17 @@ +/* PR opt/13159 -- test unswitching a loop multiple times. */ + +void +foo (void) +{ + long j, k, p, g; + + while (p) + { + while (k < 0 && j < 0) + ; + if (g) + ; + else if (g) + ; + } +}
20031227-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 900216-1.c =================================================================== --- 900216-1.c (nonexistent) +++ 900216-1.c (revision 154) @@ -0,0 +1,9 @@ +foo (p, a, b) + unsigned short *p; +{ + unsigned int x; + + x = p[0]; + + return (x == 134U); +}
900216-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: compile.exp =================================================================== --- compile.exp (nonexistent) +++ compile.exp (revision 154) @@ -0,0 +1,34 @@ +# Expect driver script for GCC Regression Tests +# Copyright (C) 1993, 1995, 1997, 2003, 2007 Free Software Foundation +# +# This file is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GCC; see the file COPYING3. If not see +# . + +# These tests come from Torbjorn Granlund's (tege@cygnus.com) +# C torture test suite, and other contributors. + +# Load support procs. +load_lib gcc-dg.exp + +# Initialize `dg'. +dg-init + +# Main loop. +set saved-dg-do-what-default ${dg-do-what-default} +set dg-do-what-default "assemble" +gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "-w" +set dg-do-what-default ${saved-dg-do-what-default} + +# All done. +dg-finish Index: 930513-2.c =================================================================== --- 930513-2.c (nonexistent) +++ 930513-2.c (revision 154) @@ -0,0 +1,9 @@ +double g (); + +f (x) + double x; +{ + x = .85; + while (g () < x) + ; +}
930513-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040817-1.c =================================================================== --- 20040817-1.c (nonexistent) +++ 20040817-1.c (revision 154) @@ -0,0 +1,19 @@ +/* PR 17051: SRA failed to rename the VOPS properly. */ + +struct A +{ + char c, d; +}; + +void foo(struct A *p) +{ + struct A a = *p; + + if (p->c) + bar1(a); + else + { + if (p) bar2(a,a.c); + bar3(a.c); + } +}
20040817-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20060419-1.c =================================================================== --- 20060419-1.c (nonexistent) +++ 20060419-1.c (revision 154) @@ -0,0 +1,21 @@ +/* This failed because if conversion didn't handle insv patterns properly. */ + +union y +{ + int a; + unsigned short b; +}; + +extern void bar (unsigned short u, union y v); + +void +foo (int check) +{ + union y x; + + if (check != 0) + x.b = 1; + else + x.b = 2; + bar (x.b, x); +}
20060419-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 921227-1.c =================================================================== --- 921227-1.c (nonexistent) +++ 921227-1.c (revision 154) @@ -0,0 +1,5 @@ +#define k(a) #a +char *s = k(k(1,2)); +char *t = k(#) k(#undef k) k(x); + +f(){}
921227-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 981223-1.c =================================================================== --- 981223-1.c (nonexistent) +++ 981223-1.c (revision 154) @@ -0,0 +1,17 @@ +/* The problem on IA-64 is that the assembler emits + + Warning: Additional NOP may be necessary to workaround Itanium + processor A/B step errata */ + +/* { dg-prune-output "Assembler messages" } */ +/* { dg-prune-output "Additional NOP may be necessary" } */ + + +__complex__ float +func (__complex__ float x) +{ + if (__real__ x == 0.0) + return 1.0; + else + return 0.0; +}
981223-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: structs.c =================================================================== --- structs.c (nonexistent) +++ structs.c (revision 154) @@ -0,0 +1,263 @@ +/* Copyright 1996, 1999, 2007 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING3. If not see + . + + Please email any bugs, comments, and/or additions to this file to: + bug-gdb@prep.ai.mit.edu */ + +struct struct1 { char a;}; +struct struct2 { char a, b;}; +struct struct3 { char a, b, c; }; +struct struct4 { char a, b, c, d; }; +struct struct5 { char a, b, c, d, e; }; +struct struct6 { char a, b, c, d, e, f; }; +struct struct7 { char a, b, c, d, e, f, g; }; +struct struct8 { char a, b, c, d, e, f, g, h; }; +struct struct9 { char a, b, c, d, e, f, g, h, i; }; +struct struct10 { char a, b, c, d, e, f, g, h, i, j; }; +struct struct11 { char a, b, c, d, e, f, g, h, i, j, k; }; +struct struct12 { char a, b, c, d, e, f, g, h, i, j, k, l; }; +struct struct16 { char a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p; }; + +struct struct1 foo1 = {'1'}, L1; +struct struct2 foo2 = { 'a', 'b'}, L2; +struct struct3 foo3 = { 'A', 'B', 'C'}, L3; +struct struct4 foo4 = {'1', '2', '3', '4'}, L4; +struct struct5 foo5 = {'a', 'b', 'c', 'd', 'e'}, L5; +struct struct6 foo6 = {'A', 'B', 'C', 'D', 'E', 'F'}, L6; +struct struct7 foo7 = {'1', '2', '3', '4', '5', '6', '7'}, L7; +struct struct8 foo8 = {'1', '2', '3', '4', '5', '6', '7', '8'}, L8; +struct struct9 foo9 = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i'}, L9; +struct struct10 foo10 = { + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'}, L10; +struct struct11 foo11 = { + '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B'}, L11; +struct struct12 foo12 = { + 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L'}, L12; +struct struct16 foo16 = { + 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p'}, L16; + +struct struct1 fun1() +{ + return foo1; +} +struct struct2 fun2() +{ + return foo2; +} +struct struct3 fun3() +{ + return foo3; +} +struct struct4 fun4() +{ + return foo4; +} +struct struct5 fun5() +{ + return foo5; +} +struct struct6 fun6() +{ + return foo6; +} +struct struct7 fun7() +{ + return foo7; +} +struct struct8 fun8() +{ + return foo8; +} +struct struct9 fun9() +{ + return foo9; +} +struct struct10 fun10() +{ + return foo10; +} +struct struct11 fun11() +{ + return foo11; +} +struct struct12 fun12() +{ + return foo12; +} +struct struct16 fun16() +{ + return foo16; +} + +#ifdef PROTOTYPES +void Fun1(struct struct1 foo1) +#else +void Fun1(foo1) + struct struct1 foo1; +#endif +{ + L1 = foo1; +} +#ifdef PROTOTYPES +void Fun2(struct struct2 foo2) +#else +void Fun2(foo2) + struct struct2 foo2; +#endif +{ + L2 = foo2; +} +#ifdef PROTOTYPES +void Fun3(struct struct3 foo3) +#else +void Fun3(foo3) + struct struct3 foo3; +#endif +{ + L3 = foo3; +} +#ifdef PROTOTYPES +void Fun4(struct struct4 foo4) +#else +void Fun4(foo4) + struct struct4 foo4; +#endif +{ + L4 = foo4; +} +#ifdef PROTOTYPES +void Fun5(struct struct5 foo5) +#else +void Fun5(foo5) + struct struct5 foo5; +#endif +{ + L5 = foo5; +} +#ifdef PROTOTYPES +void Fun6(struct struct6 foo6) +#else +void Fun6(foo6) + struct struct6 foo6; +#endif +{ + L6 = foo6; +} +#ifdef PROTOTYPES +void Fun7(struct struct7 foo7) +#else +void Fun7(foo7) + struct struct7 foo7; +#endif +{ + L7 = foo7; +} +#ifdef PROTOTYPES +void Fun8(struct struct8 foo8) +#else +void Fun8(foo8) + struct struct8 foo8; +#endif +{ + L8 = foo8; +} +#ifdef PROTOTYPES +void Fun9(struct struct9 foo9) +#else +void Fun9(foo9) + struct struct9 foo9; +#endif +{ + L9 = foo9; +} +#ifdef PROTOTYPES +void Fun10(struct struct10 foo10) +#else +void Fun10(foo10) + struct struct10 foo10; +#endif +{ + L10 = foo10; +} +#ifdef PROTOTYPES +void Fun11(struct struct11 foo11) +#else +void Fun11(foo11) + struct struct11 foo11; +#endif +{ + L11 = foo11; +} +#ifdef PROTOTYPES +void Fun12(struct struct12 foo12) +#else +void Fun12(foo12) + struct struct12 foo12; +#endif +{ + L12 = foo12; +} +#ifdef PROTOTYPES +void Fun16(struct struct16 foo16) +#else +void Fun16(foo16) + struct struct16 foo16; +#endif +{ + L16 = foo16; +} + +int main() +{ +#ifdef usestubs + set_debug_traps(); + breakpoint(); +#endif + + /* TEST C FUNCTIONS */ + L1 = fun1(); + L2 = fun2(); + L3 = fun3(); + L4 = fun4(); + L5 = fun5(); + L6 = fun6(); + L7 = fun7(); + L8 = fun8(); + L9 = fun9(); + L10 = fun10(); + L11 = fun11(); + L12 = fun12(); + L16 = fun16(); + + foo1.a = foo2.a = foo3.a = foo4.a = foo5.a = foo6.a = foo7.a = foo8.a = + foo9.a = foo10.a = foo11.a = foo12.a = foo16.a = '$'; + + Fun1(foo1); + Fun2(foo2); + Fun3(foo3); + Fun4(foo4); + Fun5(foo5); + Fun6(foo6); + Fun7(foo7); + Fun8(foo8); + Fun9(foo9); + Fun10(foo10); + Fun11(foo11); + Fun12(foo12); + Fun16(foo16); + + return 0; +}
structs.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 981107-1.c =================================================================== --- 981107-1.c (nonexistent) +++ 981107-1.c (revision 154) @@ -0,0 +1,9 @@ +unsigned long seed(void) +{ + unsigned long u; + + call(); + + u = 26107 * (unsigned long)&u; + return u; +}
981107-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 991229-1.c =================================================================== --- 991229-1.c (nonexistent) +++ 991229-1.c (revision 154) @@ -0,0 +1,23 @@ +static int parse (int, int); +static int parseStmt (int, int); + +ejEval() +{ + int state; + state = parse(8 , 0x1 ); +} +static int parse(int state, int flags) +{ + switch (state) { + case 8 : + case 18 : + case 6 : + case 2 : + state = parseStmt(state, flags); + break; + } +} +static int parseStmt(int state, int flags) +{ + parse (2, flags); +}
991229-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920501-22.c =================================================================== --- 920501-22.c (nonexistent) +++ 920501-22.c (revision 154) @@ -0,0 +1 @@ +x(){int y[]={};}
920501-22.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000120-2.c =================================================================== --- 20000120-2.c (nonexistent) +++ 20000120-2.c (revision 154) @@ -0,0 +1,18 @@ +extern __inline__ int +odd(int i) +{ + return i & 0x1; +} + +int +foo(int i, int j) +{ + return odd(i + j); +} + +int +odd(int i) +{ + return i & 0x1; +} +
20000120-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: iftrap-2.c =================================================================== --- iftrap-2.c (nonexistent) +++ iftrap-2.c (revision 154) @@ -0,0 +1,10 @@ +void foo(int p, int q) +{ + if (p) + { + if (q) + __builtin_trap (); + } + else + bar(); +}
iftrap-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr27282.c =================================================================== --- pr27282.c (nonexistent) +++ pr27282.c (revision 154) @@ -0,0 +1,17 @@ +/* This test used to ICE on PowerPC at -O due to combine GEN_INT bug. */ +typedef struct _ColRowInfo ColRowInfo; +typedef struct { } +GnmSheetRange; +struct _ColRowInfo +{ + float size_pts; + unsigned margin_a:3; + unsigned margin_b:3; + unsigned visible:1; +}; +colrow_equal (ColRowInfo const *a, ColRowInfo const *b) +{ + return a->size_pts == b->size_pts && a->margin_a == b->margin_a + && a->visible == b->visible; +} +
pr27282.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr18291.c =================================================================== --- pr18291.c (nonexistent) +++ pr18291.c (revision 154) @@ -0,0 +1,12 @@ +int baz(int k2) +{ + int i, j, *p, k = 1, k1 = 0; + if (k2) + p = &j; + else + p = &i; + if (k1) + *p = 0 , p = &k; + *p = 1; + return k; +}
pr18291.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031112-1.c =================================================================== --- 20031112-1.c (nonexistent) +++ 20031112-1.c (revision 154) @@ -0,0 +1,2 @@ +extern __inline int __finite (double __value) { return 0; } +extern __typeof (__finite) __finite __asm__ ("" "__GI___finite");
20031112-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031031-1.c =================================================================== --- 20031031-1.c (nonexistent) +++ 20031031-1.c (revision 154) @@ -0,0 +1,36 @@ +/* PR/11640 */ + +int +internal_insn_latency (int insn_code, int insn2_code) +{ + switch (insn_code) + { + case 256: + switch (insn2_code) + { + case 267: + return 8; + case 266: + return 8; + case 265: + return 8; + case 264: + return 8; + case 263: + return 8; + } + break; + case 273: + switch (insn2_code) + { + case 267: + return 5; + case 266: + return 5; + case 277: + return 3; + } + break; + } + return 0; +}
20031031-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr25483.c =================================================================== --- pr25483.c (nonexistent) +++ pr25483.c (revision 154) @@ -0,0 +1,15 @@ +/* { dg-options "-O -fmove-loop-invariants" } */ + +static int mdct_win[8]; +int x; + +int +decode_init (double d) +{ + int j; + for (j = 4; j; j--) + { + d *= 0.5; + mdct_win[j] = (d * 3); + } +}
pr25483.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr23944.c =================================================================== --- pr23944.c (nonexistent) +++ pr23944.c (revision 154) @@ -0,0 +1,4 @@ +float f(float src[][4]) +{ + return *(src[3]); +}
pr23944.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr29128.c =================================================================== --- pr29128.c (nonexistent) +++ pr29128.c (revision 154) @@ -0,0 +1,28 @@ +typedef unsigned long Eterm; +process_main (void) +{ + register Eterm x0; + register Eterm *reg = ((void *) 0); + register Eterm *I = ((void *) 0); + static void *opcodes[] = { + &&lb_allocate_heap_zero_III, + &&lb_allocate_init_tIy, &&lb_allocate_zero_tt + }; +lb_allocate_heap_III:{ + Eterm *next; + goto *(next); + } +lb_allocate_heap_zero_III:{ + } +lb_allocate_init_tIy:{ + } +lb_allocate_zero_tt:{ + Eterm *next; + { + Eterm *tmp_ptr = ((Eterm *) (((x0)) - 0x1)); + (*(Eterm *) (((unsigned char *) reg) + (I[(0) + 1]))) = ((tmp_ptr)[0]); + x0 = ((tmp_ptr)[1]); + } + goto *(next); + } +}
pr29128.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20021230-1.c =================================================================== --- 20021230-1.c (nonexistent) +++ 20021230-1.c (revision 154) @@ -0,0 +1,8 @@ +/* SH has special handling for combined and/shift sequences. Make + sure that it behaves properly when one input is in the MACL register. */ +int r, t; + +static void initRGB() +{ + t = ((r*255/3) & 0xff) << 16; +}
20021230-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020304-1.c =================================================================== --- 20020304-1.c (nonexistent) +++ 20020304-1.c (revision 154) @@ -0,0 +1,777 @@ +/* In 3.0, this test case (extracted from Bigloo) crashes the compiler in + bb-reorder.c. This is a regression from 2.95, already fixed in 3.1. + + Original bug report is c/5830 by Manuel Serrano . + */ + +typedef union scmobj { + struct pair { + union scmobj *car; + union scmobj *cdr; + } pair_t; + struct vector { + long header; + int length; + union scmobj *obj0; + } vector_t; +} *obj_t; + +extern obj_t create_vector (int); +extern obj_t make_pair (obj_t, obj_t); +extern long bgl_list_length (obj_t); +extern int BGl_equalzf3zf3zz__r4_equivalence_6_2z00 (obj_t, obj_t); +extern obj_t BGl_evcompilezd2lambdazd2zz__evcompilez00 (obj_t + BgL_formalsz00_39, + obj_t BgL_bodyz00_40, + obj_t BgL_wherez00_41, + obj_t + BgL_namedzf3zf3_42, + obj_t BgL_locz00_43); + +obj_t +BGl_evcompilezd2lambdazd2zz__evcompilez00 (obj_t BgL_formalsz00_39, + obj_t BgL_bodyz00_40, + obj_t BgL_wherez00_41, + obj_t BgL_namedzf3zf3_42, + obj_t BgL_locz00_43) +{ + if (BGl_equalzf3zf3zz__r4_equivalence_6_2z00 + (BgL_formalsz00_39, + ((obj_t) (obj_t) ((long) (((long) (0) << 2) | 2))))) { + BgL_tagzd21966zd2_943: + if ((BgL_namedzf3zf3_42 != + ((obj_t) (obj_t) ((long) (((long) (1) << 2) | 2))))) { + obj_t BgL_v1042z00_998; + { + int BgL_auxz00_4066; + BgL_auxz00_4066 = (int) (((long) 3)); + BgL_v1042z00_998 = create_vector (BgL_auxz00_4066); + } + { + obj_t BgL_arg1586z00_1000; + BgL_arg1586z00_1000 = make_pair (BgL_wherez00_41, BgL_bodyz00_40); + { + int BgL_auxz00_4070; + BgL_auxz00_4070 = (int) (((long) 2)); + ((&(((obj_t) (BgL_v1042z00_998))->vector_t.obj0))[BgL_auxz00_4070] = + BgL_arg1586z00_1000, + ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + } + { + int BgL_auxz00_4073; + BgL_auxz00_4073 = (int) (((long) 1)); + ((&(((obj_t) (BgL_v1042z00_998))->vector_t.obj0))[BgL_auxz00_4073] = + BgL_locz00_43, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + { + obj_t BgL_auxz00_4078; + int BgL_auxz00_4076; + { + long BgL_auxz00_4079; + { + long BgL_auxz00_4080; + BgL_auxz00_4080 = bgl_list_length (BgL_formalsz00_39); + BgL_auxz00_4079 = (BgL_auxz00_4080 + ((long) 37)); + } + BgL_auxz00_4078 = + (obj_t) ((long) (((long) (BgL_auxz00_4079) << 2) | 1)); + } + BgL_auxz00_4076 = (int) (((long) 0)); + ((&(((obj_t) (BgL_v1042z00_998))->vector_t.obj0))[BgL_auxz00_4076] = + BgL_auxz00_4078, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + return BgL_v1042z00_998; + } else { + obj_t BgL_v1043z00_1005; + { + int BgL_auxz00_4085; + BgL_auxz00_4085 = (int) (((long) 3)); + BgL_v1043z00_1005 = create_vector (BgL_auxz00_4085); + } + { + int BgL_auxz00_4088; + BgL_auxz00_4088 = (int) (((long) 2)); + ((&(((obj_t) (BgL_v1043z00_1005))->vector_t.obj0))[BgL_auxz00_4088] = + BgL_bodyz00_40, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + { + int BgL_auxz00_4091; + BgL_auxz00_4091 = (int) (((long) 1)); + ((&(((obj_t) (BgL_v1043z00_1005))->vector_t.obj0))[BgL_auxz00_4091] = + BgL_locz00_43, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + { + obj_t BgL_auxz00_4096; + int BgL_auxz00_4094; + { + long BgL_auxz00_4097; + { + long BgL_auxz00_4098; + BgL_auxz00_4098 = bgl_list_length (BgL_formalsz00_39); + BgL_auxz00_4097 = (BgL_auxz00_4098 + ((long) 42)); + } + BgL_auxz00_4096 = + (obj_t) ((long) (((long) (BgL_auxz00_4097) << 2) | 1)); + } + BgL_auxz00_4094 = (int) (((long) 0)); + ((&(((obj_t) (BgL_v1043z00_1005))->vector_t.obj0))[BgL_auxz00_4094] = + BgL_auxz00_4096, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + return BgL_v1043z00_1005; + } + } else { + if (((((long) BgL_formalsz00_39) & ((1 << 2) - 1)) == 3)) { + if (BGl_equalzf3zf3zz__r4_equivalence_6_2z00 + (((((obj_t) ((long) BgL_formalsz00_39 - 3))->pair_t).cdr), + ((obj_t) (obj_t) ((long) (((long) (0) << 2) | 2))))) { + goto BgL_tagzd21966zd2_943; + } else { + obj_t BgL_cdrzd21979zd2_953; + BgL_cdrzd21979zd2_953 = + ((((obj_t) ((long) BgL_formalsz00_39 - 3))->pair_t).cdr); + if (((((long) BgL_cdrzd21979zd2_953) & ((1 << 2) - 1)) == 3)) { + if (BGl_equalzf3zf3zz__r4_equivalence_6_2z00 + (((((obj_t) ((long) BgL_cdrzd21979zd2_953 - 3))->pair_t).cdr), + ((obj_t) (obj_t) ((long) (((long) (0) << 2) | 2))))) { + goto BgL_tagzd21966zd2_943; + } else { + obj_t BgL_cdrzd21986zd2_956; + BgL_cdrzd21986zd2_956 = + ((((obj_t) ((long) BgL_cdrzd21979zd2_953 - 3))->pair_t).cdr); + if (((((long) BgL_cdrzd21986zd2_956) & ((1 << 2) - 1)) == 3)) { + if (BGl_equalzf3zf3zz__r4_equivalence_6_2z00 + (((((obj_t) ((long) BgL_cdrzd21986zd2_956 - 3))->pair_t). + cdr), + ((obj_t) (obj_t) ((long) (((long) (0) << 2) | 2))))) { + goto BgL_tagzd21966zd2_943; + } else { + obj_t BgL_cdrzd21994zd2_959; + { + obj_t BgL_auxz00_4120; + BgL_auxz00_4120 = + ((((obj_t) ((long) BgL_cdrzd21979zd2_953 - 3))->pair_t). + cdr); + BgL_cdrzd21994zd2_959 = + ((((obj_t) ((long) BgL_auxz00_4120 - 3))->pair_t).cdr); + } + if (((((long) BgL_cdrzd21994zd2_959) & ((1 << 2) - 1)) == 3)) { + if (BGl_equalzf3zf3zz__r4_equivalence_6_2z00 + (((((obj_t) ((long) BgL_cdrzd21994zd2_959 - 3))-> + pair_t).cdr), + ((obj_t) (obj_t) ((long) (((long) (0) << 2) | 2))))) { + goto BgL_tagzd21966zd2_943; + } else { + int BgL_testz00_4128; + { + obj_t BgL_auxz00_4129; + BgL_auxz00_4129 = + ((((obj_t) ((long) BgL_formalsz00_39 - 3))->pair_t). + car); + BgL_testz00_4128 = + ((((long) BgL_auxz00_4129) & ((1 << 2) - 1)) == 3); + } + if (BgL_testz00_4128) { + BgL_tagzd21971zd2_948: + if ((BgL_namedzf3zf3_42 != + ((obj_t) (obj_t) + ((long) (((long) (1) << 2) | 2))))) { + obj_t BgL_v1052z00_1026; + { + int BgL_auxz00_4134; + BgL_auxz00_4134 = (int) (((long) 3)); + BgL_v1052z00_1026 = create_vector (BgL_auxz00_4134); + } + { + obj_t BgL_arg1606z00_1028; + { + obj_t BgL_v1053z00_1029; + { + int BgL_auxz00_4137; + BgL_auxz00_4137 = (int) (((long) 3)); + BgL_v1053z00_1029 = + create_vector (BgL_auxz00_4137); + } + { + int BgL_auxz00_4140; + BgL_auxz00_4140 = (int) (((long) 2)); + ((& + (((obj_t) (BgL_v1053z00_1029))->vector_t. + obj0))[BgL_auxz00_4140] = + BgL_formalsz00_39, + ((obj_t) (obj_t) + ((long) (((long) (3) << 2) | 2)))); + } + { + int BgL_auxz00_4143; + BgL_auxz00_4143 = (int) (((long) 1)); + ((& + (((obj_t) (BgL_v1053z00_1029))->vector_t. + obj0))[BgL_auxz00_4143] = + BgL_bodyz00_40, + ((obj_t) (obj_t) + ((long) (((long) (3) << 2) | 2)))); + } + { + int BgL_auxz00_4146; + BgL_auxz00_4146 = (int) (((long) 0)); + ((& + (((obj_t) (BgL_v1053z00_1029))->vector_t. + obj0))[BgL_auxz00_4146] = + BgL_wherez00_41, + ((obj_t) (obj_t) + ((long) (((long) (3) << 2) | 2)))); + } + BgL_arg1606z00_1028 = BgL_v1053z00_1029; + } + { + int BgL_auxz00_4149; + BgL_auxz00_4149 = (int) (((long) 2)); + ((&(((obj_t) (BgL_v1052z00_1026))->vector_t.obj0)) + [BgL_auxz00_4149] = + BgL_arg1606z00_1028, + ((obj_t) (obj_t) + ((long) (((long) (3) << 2) | 2)))); + } + } + { + int BgL_auxz00_4152; + BgL_auxz00_4152 = (int) (((long) 1)); + ((&(((obj_t) (BgL_v1052z00_1026))->vector_t.obj0)) + [BgL_auxz00_4152] = + BgL_locz00_43, + ((obj_t) (obj_t) + ((long) (((long) (3) << 2) | 2)))); + } + { + obj_t BgL_auxz00_4157; + int BgL_auxz00_4155; + BgL_auxz00_4157 = + (obj_t) ((long) + (((long) (((long) 55)) << 2) | 1)); + BgL_auxz00_4155 = (int) (((long) 0)); + ((&(((obj_t) (BgL_v1052z00_1026))->vector_t.obj0)) + [BgL_auxz00_4155] = + BgL_auxz00_4157, + ((obj_t) (obj_t) + ((long) (((long) (3) << 2) | 2)))); + } + return BgL_v1052z00_1026; + } else { + obj_t BgL_v1054z00_1030; + { + int BgL_auxz00_4160; + BgL_auxz00_4160 = (int) (((long) 3)); + BgL_v1054z00_1030 = create_vector (BgL_auxz00_4160); + } + { + obj_t BgL_arg1608z00_1032; + BgL_arg1608z00_1032 = + make_pair (BgL_bodyz00_40, BgL_formalsz00_39); + { + int BgL_auxz00_4164; + BgL_auxz00_4164 = (int) (((long) 2)); + ((&(((obj_t) (BgL_v1054z00_1030))->vector_t.obj0)) + [BgL_auxz00_4164] = + BgL_arg1608z00_1032, + ((obj_t) (obj_t) + ((long) (((long) (3) << 2) | 2)))); + } + } + { + int BgL_auxz00_4167; + BgL_auxz00_4167 = (int) (((long) 1)); + ((&(((obj_t) (BgL_v1054z00_1030))->vector_t.obj0)) + [BgL_auxz00_4167] = + BgL_locz00_43, + ((obj_t) (obj_t) + ((long) (((long) (3) << 2) | 2)))); + } + { + obj_t BgL_auxz00_4172; + int BgL_auxz00_4170; + BgL_auxz00_4172 = + (obj_t) ((long) + (((long) (((long) 56)) << 2) | 1)); + BgL_auxz00_4170 = (int) (((long) 0)); + ((&(((obj_t) (BgL_v1054z00_1030))->vector_t.obj0)) + [BgL_auxz00_4170] = + BgL_auxz00_4172, + ((obj_t) (obj_t) + ((long) (((long) (3) << 2) | 2)))); + } + return BgL_v1054z00_1030; + } + } else { + int BgL_testz00_4175; + { + obj_t BgL_auxz00_4176; + { + obj_t BgL_auxz00_4177; + BgL_auxz00_4177 = + ((((obj_t) ((long) BgL_formalsz00_39 - 3))-> + pair_t).cdr); + BgL_auxz00_4176 = + ((((obj_t) ((long) BgL_auxz00_4177 - 3))->pair_t). + car); + } + BgL_testz00_4175 = + ((((long) BgL_auxz00_4176) & ((1 << 2) - 1)) == 3); + } + if (BgL_testz00_4175) { + goto BgL_tagzd21971zd2_948; + } else { + int BgL_testz00_4181; + { + obj_t BgL_auxz00_4182; + { + obj_t BgL_auxz00_4183; + { + obj_t BgL_auxz00_4184; + BgL_auxz00_4184 = + ((((obj_t) ((long) BgL_formalsz00_39 - 3))-> + pair_t).cdr); + BgL_auxz00_4183 = + ((((obj_t) ((long) BgL_auxz00_4184 - 3))-> + pair_t).cdr); + } + BgL_auxz00_4182 = + ((((obj_t) ((long) BgL_auxz00_4183 - 3))-> + pair_t).car); + } + BgL_testz00_4181 = + ((((long) BgL_auxz00_4182) & ((1 << 2) - 1)) == + 3); + } + if (BgL_testz00_4181) { + goto BgL_tagzd21971zd2_948; + } else { + goto BgL_tagzd21971zd2_948; + } + } + } + } + } else { + int BgL_testz00_4189; + { + obj_t BgL_auxz00_4190; + BgL_auxz00_4190 = + ((((obj_t) ((long) BgL_formalsz00_39 - 3))->pair_t). + car); + BgL_testz00_4189 = + ((((long) BgL_auxz00_4190) & ((1 << 2) - 1)) == 3); + } + if (BgL_testz00_4189) { + goto BgL_tagzd21971zd2_948; + } else { + int BgL_testz00_4193; + { + obj_t BgL_auxz00_4194; + { + obj_t BgL_auxz00_4195; + BgL_auxz00_4195 = + ((((obj_t) ((long) BgL_formalsz00_39 - 3))->pair_t). + cdr); + BgL_auxz00_4194 = + ((((obj_t) ((long) BgL_auxz00_4195 - 3))->pair_t). + car); + } + BgL_testz00_4193 = + ((((long) BgL_auxz00_4194) & ((1 << 2) - 1)) == 3); + } + if (BgL_testz00_4193) { + goto BgL_tagzd21971zd2_948; + } else { + int BgL_testz00_4199; + { + obj_t BgL_auxz00_4200; + { + obj_t BgL_auxz00_4201; + { + obj_t BgL_auxz00_4202; + BgL_auxz00_4202 = + ((((obj_t) ((long) BgL_formalsz00_39 - 3))-> + pair_t).cdr); + BgL_auxz00_4201 = + ((((obj_t) ((long) BgL_auxz00_4202 - 3))-> + pair_t).cdr); + } + BgL_auxz00_4200 = + ((((obj_t) ((long) BgL_auxz00_4201 - 3))->pair_t). + car); + } + BgL_testz00_4199 = + ((((long) BgL_auxz00_4200) & ((1 << 2) - 1)) == 3); + } + if (BgL_testz00_4199) { + goto BgL_tagzd21971zd2_948; + } else { + if ((BgL_namedzf3zf3_42 != + ((obj_t) (obj_t) + ((long) (((long) (1) << 2) | 2))))) { + obj_t BgL_v1050z00_1022; + { + int BgL_auxz00_4209; + BgL_auxz00_4209 = (int) (((long) 3)); + BgL_v1050z00_1022 = + create_vector (BgL_auxz00_4209); + } + { + obj_t BgL_arg1604z00_1024; + BgL_arg1604z00_1024 = + make_pair (BgL_wherez00_41, BgL_bodyz00_40); + { + int BgL_auxz00_4213; + BgL_auxz00_4213 = (int) (((long) 2)); + ((& + (((obj_t) (BgL_v1050z00_1022))->vector_t. + obj0))[BgL_auxz00_4213] = + BgL_arg1604z00_1024, + ((obj_t) (obj_t) + ((long) (((long) (3) << 2) | 2)))); + } + } + { + int BgL_auxz00_4216; + BgL_auxz00_4216 = (int) (((long) 1)); + ((&(((obj_t) (BgL_v1050z00_1022))->vector_t.obj0)) + [BgL_auxz00_4216] = + BgL_locz00_43, + ((obj_t) (obj_t) + ((long) (((long) (3) << 2) | 2)))); + } + { + obj_t BgL_auxz00_4221; + int BgL_auxz00_4219; + BgL_auxz00_4221 = + (obj_t) ((long) + (((long) (((long) 50)) << 2) | 1)); + BgL_auxz00_4219 = (int) (((long) 0)); + ((&(((obj_t) (BgL_v1050z00_1022))->vector_t.obj0)) + [BgL_auxz00_4219] = + BgL_auxz00_4221, + ((obj_t) (obj_t) + ((long) (((long) (3) << 2) | 2)))); + } + return BgL_v1050z00_1022; + } else { + obj_t BgL_v1051z00_1025; + { + int BgL_auxz00_4224; + BgL_auxz00_4224 = (int) (((long) 3)); + BgL_v1051z00_1025 = + create_vector (BgL_auxz00_4224); + } + { + int BgL_auxz00_4227; + BgL_auxz00_4227 = (int) (((long) 2)); + ((&(((obj_t) (BgL_v1051z00_1025))->vector_t.obj0)) + [BgL_auxz00_4227] = + BgL_bodyz00_40, + ((obj_t) (obj_t) + ((long) (((long) (3) << 2) | 2)))); + } + { + int BgL_auxz00_4230; + BgL_auxz00_4230 = (int) (((long) 1)); + ((&(((obj_t) (BgL_v1051z00_1025))->vector_t.obj0)) + [BgL_auxz00_4230] = + BgL_locz00_43, + ((obj_t) (obj_t) + ((long) (((long) (3) << 2) | 2)))); + } + { + obj_t BgL_auxz00_4235; + int BgL_auxz00_4233; + BgL_auxz00_4235 = + (obj_t) ((long) + (((long) (((long) 54)) << 2) | 1)); + BgL_auxz00_4233 = (int) (((long) 0)); + ((&(((obj_t) (BgL_v1051z00_1025))->vector_t.obj0)) + [BgL_auxz00_4233] = + BgL_auxz00_4235, + ((obj_t) (obj_t) + ((long) (((long) (3) << 2) | 2)))); + } + return BgL_v1051z00_1025; + } + } + } + } + } + } + } else { + int BgL_testz00_4238; + { + obj_t BgL_auxz00_4239; + BgL_auxz00_4239 = + ((((obj_t) ((long) BgL_formalsz00_39 - 3))->pair_t).car); + BgL_testz00_4238 = + ((((long) BgL_auxz00_4239) & ((1 << 2) - 1)) == 3); + } + if (BgL_testz00_4238) { + goto BgL_tagzd21971zd2_948; + } else { + int BgL_testz00_4242; + { + obj_t BgL_auxz00_4243; + BgL_auxz00_4243 = + ((((obj_t) ((long) BgL_cdrzd21979zd2_953 - 3))->pair_t). + car); + BgL_testz00_4242 = + ((((long) BgL_auxz00_4243) & ((1 << 2) - 1)) == 3); + } + if (BgL_testz00_4242) { + goto BgL_tagzd21971zd2_948; + } else { + if ((BgL_namedzf3zf3_42 != + ((obj_t) (obj_t) ((long) (((long) (1) << 2) | 2))))) { + obj_t BgL_v1048z00_1018; + { + int BgL_auxz00_4248; + BgL_auxz00_4248 = (int) (((long) 3)); + BgL_v1048z00_1018 = create_vector (BgL_auxz00_4248); + } + { + obj_t BgL_arg1602z00_1020; + BgL_arg1602z00_1020 = + make_pair (BgL_wherez00_41, BgL_bodyz00_40); + { + int BgL_auxz00_4252; + BgL_auxz00_4252 = (int) (((long) 2)); + ((&(((obj_t) (BgL_v1048z00_1018))->vector_t.obj0)) + [BgL_auxz00_4252] = + BgL_arg1602z00_1020, + ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + } + { + int BgL_auxz00_4255; + BgL_auxz00_4255 = (int) (((long) 1)); + ((&(((obj_t) (BgL_v1048z00_1018))->vector_t.obj0)) + [BgL_auxz00_4255] = + BgL_locz00_43, + ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + { + obj_t BgL_auxz00_4260; + int BgL_auxz00_4258; + BgL_auxz00_4260 = + (obj_t) ((long) (((long) (((long) 49)) << 2) | 1)); + BgL_auxz00_4258 = (int) (((long) 0)); + ((&(((obj_t) (BgL_v1048z00_1018))->vector_t.obj0)) + [BgL_auxz00_4258] = + BgL_auxz00_4260, + ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + return BgL_v1048z00_1018; + } else { + obj_t BgL_v1049z00_1021; + { + int BgL_auxz00_4263; + BgL_auxz00_4263 = (int) (((long) 3)); + BgL_v1049z00_1021 = create_vector (BgL_auxz00_4263); + } + { + int BgL_auxz00_4266; + BgL_auxz00_4266 = (int) (((long) 2)); + ((&(((obj_t) (BgL_v1049z00_1021))->vector_t.obj0)) + [BgL_auxz00_4266] = + BgL_bodyz00_40, + ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + { + int BgL_auxz00_4269; + BgL_auxz00_4269 = (int) (((long) 1)); + ((&(((obj_t) (BgL_v1049z00_1021))->vector_t.obj0)) + [BgL_auxz00_4269] = + BgL_locz00_43, + ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + { + obj_t BgL_auxz00_4274; + int BgL_auxz00_4272; + BgL_auxz00_4274 = + (obj_t) ((long) (((long) (((long) 53)) << 2) | 1)); + BgL_auxz00_4272 = (int) (((long) 0)); + ((&(((obj_t) (BgL_v1049z00_1021))->vector_t.obj0)) + [BgL_auxz00_4272] = + BgL_auxz00_4274, + ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + return BgL_v1049z00_1021; + } + } + } + } + } + } else { + int BgL_testz00_4277; + { + obj_t BgL_auxz00_4278; + BgL_auxz00_4278 = + ((((obj_t) ((long) BgL_formalsz00_39 - 3))->pair_t).car); + BgL_testz00_4277 = + ((((long) BgL_auxz00_4278) & ((1 << 2) - 1)) == 3); + } + if (BgL_testz00_4277) { + goto BgL_tagzd21971zd2_948; + } else { + if ((BgL_namedzf3zf3_42 != + ((obj_t) (obj_t) ((long) (((long) (1) << 2) | 2))))) { + obj_t BgL_v1046z00_1014; + { + int BgL_auxz00_4283; + BgL_auxz00_4283 = (int) (((long) 3)); + BgL_v1046z00_1014 = create_vector (BgL_auxz00_4283); + } + { + obj_t BgL_arg1600z00_1016; + BgL_arg1600z00_1016 = + make_pair (BgL_wherez00_41, BgL_bodyz00_40); + { + int BgL_auxz00_4287; + BgL_auxz00_4287 = (int) (((long) 2)); + ((&(((obj_t) (BgL_v1046z00_1014))->vector_t.obj0)) + [BgL_auxz00_4287] = + BgL_arg1600z00_1016, + ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + } + { + int BgL_auxz00_4290; + BgL_auxz00_4290 = (int) (((long) 1)); + ((&(((obj_t) (BgL_v1046z00_1014))->vector_t.obj0)) + [BgL_auxz00_4290] = + BgL_locz00_43, + ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + { + obj_t BgL_auxz00_4295; + int BgL_auxz00_4293; + BgL_auxz00_4295 = + (obj_t) ((long) (((long) (((long) 48)) << 2) | 1)); + BgL_auxz00_4293 = (int) (((long) 0)); + ((&(((obj_t) (BgL_v1046z00_1014))->vector_t.obj0)) + [BgL_auxz00_4293] = + BgL_auxz00_4295, + ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + return BgL_v1046z00_1014; + } else { + obj_t BgL_v1047z00_1017; + { + int BgL_auxz00_4298; + BgL_auxz00_4298 = (int) (((long) 3)); + BgL_v1047z00_1017 = create_vector (BgL_auxz00_4298); + } + { + int BgL_auxz00_4301; + BgL_auxz00_4301 = (int) (((long) 2)); + ((&(((obj_t) (BgL_v1047z00_1017))->vector_t.obj0)) + [BgL_auxz00_4301] = + BgL_bodyz00_40, + ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + { + int BgL_auxz00_4304; + BgL_auxz00_4304 = (int) (((long) 1)); + ((&(((obj_t) (BgL_v1047z00_1017))->vector_t.obj0)) + [BgL_auxz00_4304] = + BgL_locz00_43, + ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + { + obj_t BgL_auxz00_4309; + int BgL_auxz00_4307; + BgL_auxz00_4309 = + (obj_t) ((long) (((long) (((long) 52)) << 2) | 1)); + BgL_auxz00_4307 = (int) (((long) 0)); + ((&(((obj_t) (BgL_v1047z00_1017))->vector_t.obj0)) + [BgL_auxz00_4307] = + BgL_auxz00_4309, + ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + return BgL_v1047z00_1017; + } + } + } + } + } else { + if ((BgL_namedzf3zf3_42 != + ((obj_t) (obj_t) ((long) (((long) (1) << 2) | 2))))) { + obj_t BgL_v1044z00_1010; + { + int BgL_auxz00_4314; + BgL_auxz00_4314 = (int) (((long) 3)); + BgL_v1044z00_1010 = create_vector (BgL_auxz00_4314); + } + { + obj_t BgL_arg1598z00_1012; + BgL_arg1598z00_1012 = make_pair (BgL_wherez00_41, BgL_bodyz00_40); + { + int BgL_auxz00_4318; + BgL_auxz00_4318 = (int) (((long) 2)); + ((&(((obj_t) (BgL_v1044z00_1010))->vector_t.obj0)) + [BgL_auxz00_4318] = + BgL_arg1598z00_1012, + ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + } + { + int BgL_auxz00_4321; + BgL_auxz00_4321 = (int) (((long) 1)); + ((&(((obj_t) (BgL_v1044z00_1010))->vector_t.obj0))[BgL_auxz00_4321] + = + BgL_locz00_43, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + { + obj_t BgL_auxz00_4326; + int BgL_auxz00_4324; + BgL_auxz00_4326 = + (obj_t) ((long) (((long) (((long) 47)) << 2) | 1)); + BgL_auxz00_4324 = (int) (((long) 0)); + ((&(((obj_t) (BgL_v1044z00_1010))->vector_t.obj0))[BgL_auxz00_4324] + = + BgL_auxz00_4326, + ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + return BgL_v1044z00_1010; + } else { + obj_t BgL_v1045z00_1013; + { + int BgL_auxz00_4329; + BgL_auxz00_4329 = (int) (((long) 3)); + BgL_v1045z00_1013 = create_vector (BgL_auxz00_4329); + } + { + int BgL_auxz00_4332; + BgL_auxz00_4332 = (int) (((long) 2)); + ((&(((obj_t) (BgL_v1045z00_1013))->vector_t.obj0))[BgL_auxz00_4332] + = + BgL_bodyz00_40, + ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + { + int BgL_auxz00_4335; + BgL_auxz00_4335 = (int) (((long) 1)); + ((&(((obj_t) (BgL_v1045z00_1013))->vector_t.obj0))[BgL_auxz00_4335] + = + BgL_locz00_43, ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + { + obj_t BgL_auxz00_4340; + int BgL_auxz00_4338; + BgL_auxz00_4340 = + (obj_t) ((long) (((long) (((long) 51)) << 2) | 1)); + BgL_auxz00_4338 = (int) (((long) 0)); + ((&(((obj_t) (BgL_v1045z00_1013))->vector_t.obj0))[BgL_auxz00_4338] + = + BgL_auxz00_4340, + ((obj_t) (obj_t) ((long) (((long) (3) << 2) | 2)))); + } + return BgL_v1045z00_1013; + } + } + } +}
20020304-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010503-1.c =================================================================== --- 20010503-1.c (nonexistent) +++ 20010503-1.c (revision 154) @@ -0,0 +1,17 @@ +void f1 (double); +void f2 (int); + +void +foo (int type, double xx) +{ + if (type) + f1 (xx); + else + f2 (type); +} + +void +bar (int type) +{ + foo (type, 1.0); +}
20010503-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20021015-2.c =================================================================== --- 20021015-2.c (nonexistent) +++ 20021015-2.c (revision 154) @@ -0,0 +1,7 @@ +/* PR target/8232. */ + +int f (char *p, char *q, int i) +{ + return bcmp (p, q, i); +} +
20021015-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: memcpy-2.c =================================================================== --- memcpy-2.c (nonexistent) +++ memcpy-2.c (revision 154) @@ -0,0 +1,10 @@ +static const char OggFLAC__MAPPING_VERSION_MAJOR = 1; +void f(void) +{ + char synthetic_first_packet_body[10]; + char *b = synthetic_first_packet_body; + b+=4u; + __builtin_memcpy (b, &OggFLAC__MAPPING_VERSION_MAJOR, (1u)); +} + +
memcpy-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040621-1.c =================================================================== --- 20040621-1.c (nonexistent) +++ 20040621-1.c (revision 154) @@ -0,0 +1,17 @@ +/* This test woudl cause partial redundancies too complex for PRE + to insert using a single temporary due to them not being GIMPLE + expressions. */ +int ssbgst (int c, int k) +{ + int a, i, j; + + a = 0; + i = 1; + j = k; + while (j) + { + a += (j + i) * (k + i + c) + (j + i + c); + j = j - 1; + } + return a; +}
20040621-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030704-1.c =================================================================== --- 20030704-1.c (nonexistent) +++ 20030704-1.c (revision 154) @@ -0,0 +1,17 @@ +/* PR c/11428. */ + +/* fold_single_bit_test() failed to return a tree of the type that the + outer expression was looking for. Specifically, it returned a tree + whose type corresponded to QImode for !p->m, but the desired result + type was int, which corresponded to SImode. emit_move_insn() later + tried to copy a reg:QI to reg:SI, causing an ICE. */ + +struct s { + int m : 1; +}; + +int +foo (struct s *p) +{ + return !p->m; +}
20030704-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010824-1.c =================================================================== --- 20010824-1.c (nonexistent) +++ 20010824-1.c (revision 154) @@ -0,0 +1,7 @@ +void f(int n) +{ +bugcauser: + if (n != 0) + f(n-1); + return; +}
20010824-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020706-1.c =================================================================== --- 20020706-1.c (nonexistent) +++ 20020706-1.c (revision 154) @@ -0,0 +1,50 @@ +// Contributed by Alexandre Oliva +// From Red Hat case 106165. + +typedef struct s1 +{ + unsigned short v1; + unsigned char *v2; +} S1; + +extern void bar(const struct s1 *const hdb); +extern unsigned char* foo (); + +unsigned int sn; +S1 *hdb; +S1 *pb; +unsigned short len; + +unsigned int crashIt() +{ + unsigned char *p; + unsigned int nsn; + unsigned short cnt; + + if (sn != 0) return 1; + + if ((len < 12) || ((p = (((pb->v1) >= 8) ? pb->v2 : foo() )) == 0)) + return 1; + + nsn = ( + (((*(unsigned int*)p) & 0x000000ff) << 24) | + (((*(unsigned int*)p) & 0x0000ff00) << 8) | + (((*(unsigned int*)p) & 0x00ff0000) >> 8) | + (((*(unsigned int*)p) & 0xff000000) >> 24) ); + p += 4; + + cnt = (unsigned short) (( + (((*(unsigned int*)p) & 0x000000ff) << 24) | + (((*(unsigned int*)p) & 0x0000ff00) << 8) | + (((*(unsigned int*)p) & 0x00ff0000) >> 8) | + (((*(unsigned int*)p) & 0xff000000) >> 24) ) & + 0xffff); + + if ((len != 12 + (cnt * 56)) || (nsn == 0)) + { + bar(hdb); + return 1; + } + + return 0; +}
20020706-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000629-1.c =================================================================== --- 20000629-1.c (nonexistent) +++ 20000629-1.c (revision 154) @@ -0,0 +1,28 @@ +struct a +{ + struct a * x; +}; + +void +foo (struct a * b) +{ + int i; + + for (i = 0; i < 1000; i++) + { + b->x = b; + b++; + } +} + +void +bar (struct a * b) +{ + int i; + + for (i = 0; i < 1000; i++) + { + b->x = b; + b--; + } +}
20000629-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 961031-1.c =================================================================== --- 961031-1.c (nonexistent) +++ 961031-1.c (revision 154) @@ -0,0 +1,16 @@ +struct s { + double d; +} sd; + +struct s g () __attribute__ ((const)); + +struct s +g () +{ + return sd; +} + +f () +{ + g (); +}
961031-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 960221-1.c =================================================================== --- 960221-1.c (nonexistent) +++ 960221-1.c (revision 154) @@ -0,0 +1,11 @@ +struct s1 { int f1; }; + +struct s2 { + struct s1 a; + int f2; +}; + +foo (struct s2 *ptr) +{ + *ptr = (struct s2) {{}, 0}; +}
960221-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930702-1.c =================================================================== --- 930702-1.c (nonexistent) +++ 930702-1.c (revision 154) @@ -0,0 +1,5 @@ +f () +{ + {({});} + return 1; +}
930702-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20060625-1.c =================================================================== --- 20060625-1.c (nonexistent) +++ 20060625-1.c (revision 154) @@ -0,0 +1,10 @@ +/* PR middle-end/28151 */ +/* Testcase by Steven Bosscher */ + +_Complex float b; + +void foo (void) +{ + _Complex float a = __FLT_MAX__; + b = __FLT_MAX__ + a; +}
20060625-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920820-1.c =================================================================== --- 920820-1.c (nonexistent) +++ 920820-1.c (revision 154) @@ -0,0 +1 @@ +long long f(double y){return y;}
920820-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930621-1.c =================================================================== --- 930621-1.c (nonexistent) +++ 930621-1.c (revision 154) @@ -0,0 +1,38 @@ +#if defined(STACK_SIZE) && (STACK_SIZE < 65536) +# define BYTEMEM_SIZE 10000L +#endif + +#ifndef BYTEMEM_SIZE +# define BYTEMEM_SIZE 45000L +#endif + +int bytestart[5000 + 1]; +unsigned char modtext[400 + 1]; +unsigned char bytemem[2][BYTEMEM_SIZE + 1]; + +long +modlookup (int l) +{ + signed char c; + long j; + long k; + signed char w; + long p; + while (p != 0) + { + while ((k < bytestart[p + 2]) && (j <= l) && (modtext[j] == bytemem[w][k])) + { + k = k + 1; + j = j + 1; + } + if (k == bytestart[p + 2]) + if (j > l) + c = 1; + else c = 4; + else if (j > l) + c = 3; + else if (modtext[j] < bytemem[w][k]) + c = 0; + else c = 2; + } +}
930621-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040907-1.c =================================================================== --- 20040907-1.c (nonexistent) +++ 20040907-1.c (revision 154) @@ -0,0 +1,13 @@ +void ProdWord_bla ( gtL, gtRes, lnL ) + int *gtL, *gtRes; + int lnL; +{ + while ( 1 < lnL ) + { + *gtRes++ = *gtL++; + --lnL; + } + if ( 0 < lnL ) + if ( gtL[0] == gtL[1] ) + *gtRes++ = 0; +}
20040907-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920623-1.c =================================================================== --- 920623-1.c (nonexistent) +++ 920623-1.c (revision 154) @@ -0,0 +1,2 @@ +int f(int c){return f(c--);} +g(){}
920623-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 960704-1.c =================================================================== --- 960704-1.c (nonexistent) +++ 960704-1.c (revision 154) @@ -0,0 +1,10 @@ +struct A { + double d; +}; + +struct A f (); + +main () +{ + struct A a = f(); +}
960704-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 990107-1.c =================================================================== --- 990107-1.c (nonexistent) +++ 990107-1.c (revision 154) @@ -0,0 +1,7 @@ +static int +java_double_finite (d) + double d; +{ + long long *ip = (long long *) &d; + return (*ip & 0x7ff0000000000000LL ) != 0x7ff0000000000000LL ; +}
990107-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920828-1.c =================================================================== --- 920828-1.c (nonexistent) +++ 920828-1.c (revision 154) @@ -0,0 +1 @@ +char a[]={4,5};f(n){return a[n<2?n:0];}
920828-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920909-1.c =================================================================== --- 920909-1.c (nonexistent) +++ 920909-1.c (revision 154) @@ -0,0 +1 @@ +long long f(long long a,long long b){return a<
920909-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr25310.c =================================================================== --- pr25310.c (nonexistent) +++ pr25310.c (revision 154) @@ -0,0 +1,22 @@ + +/* Prevent spurious test failures on 16-bit targets. */ +#if __INT_MAX__ >= 2147483647L + +extern int f (char *, int); + +void test (void) +{ + char buffer[65536]; + char *bufptr; + char *bufend; + int bytes; + + bufptr = buffer; + bufend = buffer + sizeof(buffer) - 1; + + while ((bytes = f (bufptr, bufend - bufptr)) > 0) + bufptr += bytes; +} + +#endif +
pr25310.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 990625-1.c =================================================================== --- 990625-1.c (nonexistent) +++ 990625-1.c (revision 154) @@ -0,0 +1,12 @@ +#define __USE_STRING_INLINES +#include + +void test() +{ + char *p, *a; + const char *s; + + while ( (s = a) ) + p = strcpy(strcpy(p,"/"), s); +} +
990625-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: zero-strct-4.c =================================================================== --- zero-strct-4.c (nonexistent) +++ zero-strct-4.c (revision 154) @@ -0,0 +1,14 @@ +typedef struct {} raw_spinlock_t; +typedef struct { + raw_spinlock_t raw_lock; +} spinlock_t; +struct sk_buff_head { + int i; + spinlock_t lock; +}; +struct sk_buff_head audit_skb_queue; +void audit_init(void) +{ + struct sk_buff_head *list = &audit_skb_queue; + audit_skb_queue.lock = (spinlock_t) { .raw_lock = { } }; +}
zero-strct-4.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr26626.c =================================================================== --- pr26626.c (nonexistent) +++ pr26626.c (revision 154) @@ -0,0 +1,13 @@ +typedef union { + int d; +} U; + +int rv; +void breakme() +{ + U *rv0; + U *pretmp = (U*)&rv; + rv0 = pretmp; + rv0->d = 42; +} +
pr26626.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr16808.c =================================================================== --- pr16808.c (nonexistent) +++ pr16808.c (revision 154) @@ -0,0 +1,38 @@ +/* We used to ICE as we did not mark a Vop for rename as + we changed a function call to a normal modify statement + while folding exp(0.0); */ + +double exp(double); +void f0(void); +void f(double); +typedef struct Parser { + int x; + char *s; +} Parser; +static double pop(Parser *p) { + if (p->s[0] <= 0) { + f0(); + return 0; + } + --p->x; + return 0; +} +static void evalFactor(Parser *p) { + while (p->x) + f(exp(pop(p))); +} +static void evalTerm(Parser *p) { + while (p->s[0]) + evalFactor(p); +} +static void evalExpression(Parser *p) { + evalTerm(p); + while (p->s[0]) + evalTerm(p); +} +void evalPrimary(Parser *p) { + if (p->s) + return; + evalExpression(p); +} +
pr16808.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20021204-1.c =================================================================== --- 20021204-1.c (nonexistent) +++ 20021204-1.c (revision 154) @@ -0,0 +1,16 @@ +/* PR c/7622 */ + +/* Verify that GCC can handle the mix of + extern inline and nested functions. */ + +extern inline int t() +{ + int q() { return 0; } + + return q(); +} + +int foo() +{ + return t(); +}
20021204-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020116-1.c =================================================================== --- 20020116-1.c (nonexistent) +++ 20020116-1.c (revision 154) @@ -0,0 +1,28 @@ +void noret (void) __attribute__ ((noreturn)); +int foo (int, char **); +char *a, *b; +int d; + +int +main (int argc, char **argv) +{ + register int c; + + d = 1; + while ((c = foo (argc, argv)) != -1) + switch (c) { + case 's': + case 'c': + case 'f': + a = b; + break; + case 'v': + d = 1; + break; + case 'V': + d = 0; + break; + } + noret (); + return 0; +}
20020116-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20021007-1.c =================================================================== --- 20021007-1.c (nonexistent) +++ 20021007-1.c (revision 154) @@ -0,0 +1,11 @@ +/* PR c/7411 */ +/* Verify that GCC simplifies the null addition to i before + virtual register substitution tries it and winds up with + a memory to memory move. */ + +void foo () +{ + int i = 0,j; + + i+=j=0; +}
20021007-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010118-1.c =================================================================== --- 20010118-1.c (nonexistent) +++ 20010118-1.c (revision 154) @@ -0,0 +1,21 @@ +static unsigned int bar(void *h, unsigned int n) +{ + static int i; + return i++; +} + +static void baz(unsigned int *x) +{ + (*x)++; +} + +long +foo(void *h, unsigned int l) +{ + unsigned int n; + long m; + n = bar(h, 0); + n = bar(h, n); + m = ({ baz(&n); 21; }); + return m; +}
20010118-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20001109-2.c =================================================================== --- 20001109-2.c (nonexistent) +++ 20001109-2.c (revision 154) @@ -0,0 +1,8 @@ +/* This does not work on NetWare, which has a default of 1-byte alignment. */ +/* { dg-xfail-if "" { "*-*-netware*" } { "*" } { "" } } */ +extern struct foo bar; +struct foo { + int a; +}; + +int tst[__alignof__ (bar) >= __alignof__ (int) ? 1 : -1];
20001109-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030910-1.c =================================================================== --- 20030910-1.c (nonexistent) +++ 20030910-1.c (revision 154) @@ -0,0 +1,11 @@ +/* The gimplifier was getting confused when taking the real or + imaginary component of a complex rvalue. */ + +void test() +{ + __complex double dc; + double d; + + d = __real (dc * dc); +} +
20030910-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 931003-1.c =================================================================== --- 931003-1.c (nonexistent) +++ 931003-1.c (revision 154) @@ -0,0 +1,15 @@ +f (n, a) + int n; + double a[]; +{ + double b[51]; + int i, j; + + i = 0; + + for (j = n - 1; j > 0; j--) + b[i++] = 0; + + if (b[0] > b[i - 1]) + a[i] = b[i - 1]; +}
931003-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 921202-1.c =================================================================== --- 921202-1.c (nonexistent) +++ 921202-1.c (revision 154) @@ -0,0 +1,22 @@ +f () +{ + long dx[2055]; + long dy[2055]; + long s1[2055]; + int x, y; + int i; + long s; + + for (;;) + { + s = 2055; + g (s1, s); + for (i = 0; i < 1; i++); + dy[s] = 0x12345; + for (i = 0; i < 1; i++); + if (x != y || h (dx, dy, s) || dx[s] != 0x12345) + { + j (y);k (dy); + } + } +}
921202-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040317-1.c =================================================================== --- 20040317-1.c (nonexistent) +++ 20040317-1.c (revision 154) @@ -0,0 +1,4 @@ +int String2Array(int len, char strarr[][len]) +{ + strarr[0]; +}
20040317-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020715-1.c =================================================================== --- 20020715-1.c (nonexistent) +++ 20020715-1.c (revision 154) @@ -0,0 +1,22 @@ +/* PR optimization/7153 */ +/* Verify that GCC doesn't promote a register when its + lifetime is not limited to one basic block. */ + +void f(char); +void g(void); + +void scale(void) +{ + int width; + char bytes; + char *src; + + if (width) + { + bytes = *src; + g(); + width *= bytes; + } + + f(bytes); +}
20020715-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: calls.c =================================================================== --- calls.c (nonexistent) +++ calls.c (revision 154) @@ -0,0 +1,22 @@ +typedef void *(*T)(void); +f1 () +{ + ((T) 0)(); +} +f2 () +{ + ((T) 1000)(); +} +f3 () +{ + ((T) 10000000)(); +} +f4 (r) +{ + ((T) r)(); +} +f5 () +{ + int (*r)() = f3; + ((T) r)(); +}
calls.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040415-2.c =================================================================== --- 20040415-2.c (nonexistent) +++ 20040415-2.c (revision 154) @@ -0,0 +1,7 @@ +int isascii (int); + +int f1 (const char *type) +{ + return isascii ((unsigned char) *type++); +} +
20040415-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030319-1.c =================================================================== --- 20030319-1.c (nonexistent) +++ 20030319-1.c (revision 154) @@ -0,0 +1,14 @@ +/* PR 10073 */ +typedef struct +{ + unsigned short digits[4]; +} INT_64; + +INT_64 int_64_com (INT_64 a) +{ + a.digits[0] ^= 0xFFFF; + a.digits[1] ^= 0xFFFF; + a.digits[2] ^= 0xFFFF; + a.digits[3] ^= 0xFFFF; + return a; +}
20030319-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 981001-1.c =================================================================== --- 981001-1.c (nonexistent) +++ 981001-1.c (revision 154) @@ -0,0 +1,18 @@ +unsigned short code = 0x0000; +unsigned short low = 0x4000; +unsigned short high = 0xb000; + +int main (void) +{ + if ( + (high & 0x8000) != (low & 0x8000) + && ( low & 0x4000) == 0x4000 + && (high & 0x4000) == 0 + ) + { + code ^= 0x4000; + low |= 0x4000; + } + + exit (0); +}
981001-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040916-1.c =================================================================== --- 20040916-1.c (nonexistent) +++ 20040916-1.c (revision 154) @@ -0,0 +1,12 @@ +/* PR tree-optimization/17512 + + We used to try to fold "(char) (X ^ Y)", where '^' is + TRUTH_XOR_EXPR into ((char) X ^ (char) Y), creating TRUTH_XOR_EXPR + with its operands being of type char, which is invalid. */ + +char +foo (int p) +{ + int q = p; + return (p != 0) == (p == q); +}
20040916-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930513-3.c =================================================================== --- 930513-3.c (nonexistent) +++ 930513-3.c (revision 154) @@ -0,0 +1,9 @@ +test () +{ + short *p, q[3]; + int x; + + p = q; + for (x = 0; x < 3; x++) + *p++ = 0; +}
930513-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: complex-1.c =================================================================== --- complex-1.c (nonexistent) +++ complex-1.c (revision 154) @@ -0,0 +1,12 @@ +extern void u (int, int); +extern void v (float, float); + +void f (__complex__ int x) +{ + u (0, x); +} + +void g (__complex__ float x) +{ + v (0, x); +}
complex-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 960319-1.c =================================================================== --- 960319-1.c (nonexistent) +++ 960319-1.c (revision 154) @@ -0,0 +1,10 @@ +static void +f() +{ + long long a[2]; + int i; + if (g()) + if (h()) + ; + *a |= (long long)i << 65 ; +}
960319-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 991229-2.c =================================================================== --- 991229-2.c (nonexistent) +++ 991229-2.c (revision 154) @@ -0,0 +1,10 @@ +void foo (); + +void update (double* r) +{ + foo (); + { + register double y1; + y1 = r[ 4] - r[11]; + } +}
991229-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr22531.c =================================================================== --- pr22531.c (nonexistent) +++ pr22531.c (revision 154) @@ -0,0 +1,7 @@ +typedef struct dw_cfi_oprnd_struct { + unsigned long reg; +} dw_cfa_location; +void def_cfa_1 (void) { + dw_cfa_location loc; + loc.reg = loc.reg; +}
pr22531.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr21380.c =================================================================== --- pr21380.c (nonexistent) +++ pr21380.c (revision 154) @@ -0,0 +1,42 @@ +void bar (void); + +void +foo (int *diff) +{ + double deltay = 0.0; + int Stangent = 0; + int mindiff; + int Sflipped = 0; + int i; + int Sturn, Snofit; + + Sturn = 1; + if (Sturn) + Stangent = 1; + if (Sturn) + { + Sflipped = 0; + Snofit = 1; + while (Snofit) + { + Snofit = 0; + mindiff = 0; + for (i = 0; i < 4; i++) + mindiff = diff[i]; + while (!Snofit && (mindiff < 0.0)) + { + deltay = (Stangent ? deltay : 0.0); + if (deltay < 0.0) + Snofit = 1; + for (i = 0; i < 4; i++) + { + } + } + if (Snofit) + if (Sflipped) + break; + } + if (Snofit) + bar (); + } +}
pr21380.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr12517.c =================================================================== --- pr12517.c (nonexistent) +++ pr12517.c (revision 154) @@ -0,0 +1,19 @@ +/* PR tree-optimization/12517 */ + +int f(void); +void g(int); +void h(int a, int b, int c) +{ + int i = f(); + + if (b && (i & 4)) + g(i & 8 ? 0 : 1); + if (a) { + do { + if (i & 8) + g(0); + if (i & 4) + g(i ? 0 : 1); + } while (--c); + } +}
pr12517.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20011010-1.c =================================================================== --- 20011010-1.c (nonexistent) +++ 20011010-1.c (revision 154) @@ -0,0 +1,10 @@ +extern int used (void); + + +int foo () +{ + int i; + for (; used (); ({while (1) if (used ()) return 0;})) + i++; + return i; +}
20011010-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920501-23.c =================================================================== --- 920501-23.c (nonexistent) +++ 920501-23.c (revision 154) @@ -0,0 +1,16 @@ +typedef unsigned char qi; +typedef unsigned short hi; +typedef unsigned long si; +typedef unsigned long long di; +subi(a){return 100-a;} +add(a,b){return a+b;} +mul(a){return 85*a;} +memshift(p)unsigned*p;{unsigned x;for(;;){x=*p++>>16;if(x)return x;}} +ldw(xp)si*xp;{return xp[4];} +ldws_m(xp)si*xp;{si x;do{x=xp[3];xp+=3;}while(x);} +postinc_si(p)si*p;{si x;for(;;){x=*p++;if(x)return x;}} +preinc_si(p)si*p;{si x;for(;;){x=*++p;if(x)return x;}} +postinc_di(p)di*p;{di x;for(;;){x=*p++;if(x)return x;}} +preinc_di(p)di*p;{di x;for(;;){x=*++p;if(x)return x;}} +inc_overlap(p,a)di*p;{do{p=*(di**)p;p=(di*)((int)p+4);}while(*p);} +di move_di(p,p2)di*p,*p2;{di x=p;p2=((di*)x)[1];return p2[1];}
920501-23.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: iftrap-3.c =================================================================== --- iftrap-3.c (nonexistent) +++ iftrap-3.c (revision 154) @@ -0,0 +1,4 @@ +/* Check that the conditional_trap pattern handles floating-point + comparisons correctly. */ +void f1 (float x, float y) { if (x == y) __builtin_trap (); } +void f2 (double x, double y) { if (x == y) __builtin_trap (); }
iftrap-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040202-1.c =================================================================== --- 20040202-1.c (nonexistent) +++ 20040202-1.c (revision 154) @@ -0,0 +1,8 @@ +/* PR target/13789 */ +/* Failed on SPARC due to a bug in store_expr. */ + +void *foo (void *c) +{ + void *a = __builtin_extract_return_addr (c); + return a; +}
20040202-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040121-1.c =================================================================== --- 20040121-1.c (nonexistent) +++ 20040121-1.c (revision 154) @@ -0,0 +1,41 @@ +/* PR target/12898 + 0x8000 needs multiple instructions to be emitted on Alpha; the + fluff around it causes it to be emitted in a no_new_pseudos + context, which triggered a problem in alpha.c. */ + +void f (const char *, ...); +int g (void); +void *p (void); + +int isymBase, ilineBase, sym_hdr, want_line, proc_desc; +char *lines; + +void print_file_desc (int *fdp) +{ + char *str_base = p (); + int symi, pdi = g (); + + for (symi = 0; isymBase;) + { + int proc_ptr = proc_desc + pdi; + f("1", isymBase, proc_ptr + *fdp, str_base); + if (want_line && *fdp) + { + int delta; + long cur_line = proc_ptr; + char *line_ptr = lines + proc_ptr; + char *line_end = p (); + + f("2", sym_hdr); + while (line_ptr < line_end) + { + delta = *line_ptr; + if (delta) + line_ptr++; + else + delta = line_ptr[1] ^ 0x8000; + f("3", cur_line, delta); + } + } + } +}
20040121-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030320-1.c =================================================================== --- 20030320-1.c (nonexistent) +++ 20030320-1.c (revision 154) @@ -0,0 +1,44 @@ +/* Failed on powerpc64-linux with a segfault due to ifcvt generating + conditional returns without updating dominance info. + Extracted from glibc's dl-load.c. */ + +typedef unsigned long size_t; + +static size_t +is_dst (const char *start, const char *name, const char *str, + int is_path, int secure) +{ + size_t len; + _Bool is_curly = 0; + + if (name[0] == '{') + { + is_curly = 1; + ++name; + } + + len = 0; + while (name[len] == str[len] && name[len] != '\0') + ++len; + + if (is_curly) + { + if (name[len] != '}') + return 0; + + + --name; + + len += 2; + } + else if (name[len] != '\0' && name[len] != '/' + && (!is_path || name[len] != ':')) + return 0; + + if (__builtin_expect (secure, 0) + && ((name[len] != '\0' && (!is_path || name[len] != ':')) + || (name != start + 1 && (!is_path || name[-2] != ':')))) + return 0; + + return len; +}
20030320-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031031-2.c =================================================================== --- 20031031-2.c (nonexistent) +++ 20031031-2.c (revision 154) @@ -0,0 +1,36 @@ +/* PR/10239 */ + +enum node_type +{ + INITIAL = 0, FREE, + PRECOLORED, + SIMPLIFY, SIMPLIFY_SPILL, SIMPLIFY_FAT, FREEZE, SPILL, + SELECT, + SPILLED, COALESCED, COLORED, + LAST_NODE_TYPE +}; + +inline void +put_web (enum node_type type) +{ + switch (type) + { + case INITIAL: + case FREE: + case FREEZE: + case SPILL: + foo (); + break; + case PRECOLORED: + bar (); + break; + default: + baz (); + } +} + +void +reset_lists () +{ + put_web (INITIAL); +}
20031031-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000523-1.c =================================================================== --- 20000523-1.c (nonexistent) +++ 20000523-1.c (revision 154) @@ -0,0 +1,5 @@ +/* Copyright (C) 2000 Free Software Foundation */ +/* Contributed by Alexandre Oliva */ + +enum { foo = sizeof(void *) }; +int i = sizeof(void *);
20000523-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr27087.c =================================================================== --- pr27087.c (nonexistent) +++ pr27087.c (revision 154) @@ -0,0 +1,23 @@ +extern int ptbl[4]; +extern int ctbl[4]; + +void doViews(void) { + int *c = ctbl, *p = ptbl; + while (1) + { + p++; + c++; + if (*p) + { + if (c == p) + { + if (*c) + return; + } + else + return; + } + } + + g(); +}
pr27087.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr17529.c =================================================================== --- pr17529.c (nonexistent) +++ pr17529.c (revision 154) @@ -0,0 +1,14 @@ + +static inline void +bar (const int * const x) +{ + __asm__ __volatile__ (""::"m" (*x)); +} + +static const int y[1]; + +void +foo (void) +{ + bar (y); +}
pr17529.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020206-1.c =================================================================== --- 20020206-1.c (nonexistent) +++ 20020206-1.c (revision 154) @@ -0,0 +1,18 @@ +/* Origin: PR optimization/5429 from Philipp Thomas . */ +/* This testcase caused ICE on IA-32 -O2 -march=i686 due to rtl sharing + problem in noce_process_if_block. Fixed by + http://gcc.gnu.org/ml/gcc-patches/2002-01/msg02146.html. */ + +typedef struct { + unsigned char a; +} A; + +unsigned int foo (A *x) +{ + unsigned char b[2] = { 0, 0 }; + unsigned char c = 0; + + c = (x->a) ? b[1] : b[0]; + + return (unsigned int) c; +}
20020206-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020304-2.c =================================================================== --- 20020304-2.c (nonexistent) +++ 20020304-2.c (revision 154) @@ -0,0 +1,10 @@ +/* This testcase ICEd because a SUBREG of MEM/v was never + simplified. */ +volatile unsigned long long *a; + +unsigned char +foo (void) +{ + unsigned char b = (*a != 0); + return b; +}
20020304-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000326-1.c =================================================================== --- 20000326-1.c (nonexistent) +++ 20000326-1.c (revision 154) @@ -0,0 +1,23 @@ +long sys_reboot(int magic1, int magic2, int cmd, void * arg) +{ + switch (cmd) { + case 0x89ABCDEF: + break; + + case 0x00000000: + break; + + case 0xCDEF0123: + break; + + case 0x4321FEDC: + break; + + case 0xA1B2C3D4: + break; + + default: + break; + }; + return 0; +}
20000326-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020706-2.c =================================================================== --- 20020706-2.c (nonexistent) +++ 20020706-2.c (revision 154) @@ -0,0 +1,26 @@ +// Contributed by Alexandre Oliva +// From Red Hat case 106165. + +typedef unsigned short (FUNC_P) (void *, unsigned char *, unsigned short); + +void crashIt(int id, FUNC_P *func, unsigned char *funcparm) +{ + unsigned char buff[5], reverse[4]; + unsigned char *bp = buff; + unsigned char *rp = reverse; + unsigned short int count = 0; + unsigned short cnt; + while (id > 0) + { + *rp++ = (unsigned char) (id & 0x7F); + id >>= 7; + count++; + } + cnt = count + 1; + while ((count--) > 1) + { + *bp++ = (unsigned char)(*(--rp) | 0x80); + } + *bp++ = *(--rp); + (void)(*func)(funcparm, buff, cnt); +}
20020706-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000728-1.c =================================================================== --- 20000728-1.c (nonexistent) +++ 20000728-1.c (revision 154) @@ -0,0 +1,16 @@ +struct clock { + long sec; long usec; +}; + +int foo(void) +{ + struct clock clock_old = {0, 0}; + + for (;;) { + long foo; + + if (foo == clock_old.sec && 0 == clock_old.usec); + } + return 0; +} +
20000728-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: libcall-1.c =================================================================== --- libcall-1.c (nonexistent) +++ libcall-1.c (revision 154) @@ -0,0 +1,14 @@ +/* Failed on ARM because rtx_varies_p didn't like the REG_EQUAL notes + generated for libcalls. + http://gcc.gnu.org/ml/gcc-patches/2004-02/msg01518.html */ +static const char digs[] = "0123456789ABCDEF"; +int __attribute__((pure)) bar(); + +int foo (int i) +{ + int len; + if (i) + return 0; + len = bar(); + return digs[len]; +}
libcall-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930523-1.c =================================================================== --- 930523-1.c (nonexistent) +++ 930523-1.c (revision 154) @@ -0,0 +1,54 @@ +int v; + +f () +{ + unsigned long *a1, *a2; + int vertex2; + int c, x1, x2, dx1, dx2, dy1, dy2, e1, e2, s2; + unsigned long m, b; + int n; + unsigned long r; + int aba; + + do + { + if (dx2 >= dy2) + dx2 = dx2 % dy2; + + if (dx2 >= dy2) + { + s2 = - (dx2 / dy2); + dx2 = dx2 % dy2; + } + } + while (vertex2 / 65536); + + for (;;) + { + c = x2; + a2 = a1; + if (v) + a2 = 0; + + if (c + n) + { + m = b << (c * 8); + *a2 = (*a2 & ~m) | (r & m); + n += c; + + while (--n) + { + { + } + } + } + + a1 = 0; + x1 += 0; + if (e1 += dx1) + e1 -= dy1; + x2 += s2; + if (e2 += dx2) + e2 -= dy2; + } +}
930523-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930326-1.c =================================================================== --- 930326-1.c (nonexistent) +++ 930326-1.c (revision 154) @@ -0,0 +1,6 @@ +struct +{ + char a, b, f[3]; +} s; + +long i = s.f-&s.b;
930326-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920409-1.c =================================================================== --- 920409-1.c (nonexistent) +++ 920409-1.c (revision 154) @@ -0,0 +1 @@ +x(){int y;y>0.0?y:y-1;}
920409-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 991213-1.c =================================================================== --- 991213-1.c (nonexistent) +++ 991213-1.c (revision 154) @@ -0,0 +1,13 @@ +typedef __complex__ double double_complex; + + + +void +p (const double_complex *t, int n) +{ + int i; + double s = ({ typeof ( t[n/2] ) arg = ( t[n/2] ); (__imag__ arg); }) ; + for (i = 1; i < n/2; i++) + s += 2* ({ typeof ( t[i] ) arg = ( t[i] ); (__imag__ arg); }) ; +} +
991213-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 950921-1.c =================================================================== --- 950921-1.c (nonexistent) +++ 950921-1.c (revision 154) @@ -0,0 +1,12 @@ +f () +{ + union + { + signed char c; + double d; + } u; + + u.c = 1; + u.c = 1; + return u.c; +}
950921-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 980726-1.c =================================================================== --- 980726-1.c (nonexistent) +++ 980726-1.c (revision 154) @@ -0,0 +1,10 @@ +static __inline__ unsigned char BCD(unsigned char binval) +{ + if (binval > 99) return 0x99; + return (((binval/10) << 4) | (binval%10)); +} + +void int1a(unsigned char i) +{ + (*((unsigned char *)1)) = BCD(i); +}
980726-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr25311.c =================================================================== --- pr25311.c (nonexistent) +++ pr25311.c (revision 154) @@ -0,0 +1,47 @@ + +struct w +{ + int top; + int left; + int height; + int width; + struct w *next; + struct w *parent; + struct w *child; +}; + +extern struct w *Qnil; + +void +set_size (struct w *w, int new_size, int nodelete, int set_height) +{ + int old_size = set_height? w->height : w->width; + + if (nodelete || w->parent == Qnil) + { + int last_pos, last_old_pos, pos, old_pos, first; + int div_val = old_size << 1; + struct w *c; + + last_pos = first = set_height? w->top : w->left; + last_old_pos = 0; + + for (c = w->child; c != Qnil; c = c->next) + { + if (set_height) + old_pos = last_old_pos + c->height; + else + old_pos = last_old_pos + c->width; + + pos = (((old_pos * new_size) << 1) + old_size) / div_val; + set_size (c, pos + first - last_pos, 1, set_height); + last_pos = pos + first; + last_old_pos = old_pos; + } + + if (!nodelete) + for (c = w->child; c != Qnil; c = c->next) + use (c); + } +} +
pr25311.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr31710.c =================================================================== --- pr31710.c (nonexistent) +++ pr31710.c (revision 154) @@ -0,0 +1,6 @@ +typedef short SHORT; +struct v { SHORT i; }; +void f(struct v *pin, struct v *pout) { + if (pin->i == (-0x7fff)-1) + pout->i = -pin->i; +}
pr31710.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 990625-2.c =================================================================== --- 990625-2.c (nonexistent) +++ 990625-2.c (revision 154) @@ -0,0 +1,12 @@ +void +broken030599(int *n) +{ + int i, x; + for (i = 0; i < 32; i++) { + x=0; + x++; + if (i & 4) + x++; + x++; + } +}
990625-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 990527-1.c =================================================================== --- 990527-1.c (nonexistent) +++ 990527-1.c (revision 154) @@ -0,0 +1,37 @@ +typedef struct { + int dummy; + int width, height; +} XWindowAttributes; + +typedef struct { + short x, y; +} XPoint; + +extern unsigned int ya_random (void); +extern int XDrawPoints(XPoint*, int); + +static int iterations, offset; +static int xsym, ysym; + +static void +hurm (void) +{ + XWindowAttributes xgwa; + int xlim, ylim, x, y, i; + XPoint points [4]; + + + for (i = 0; i < iterations; i++) + { + int j = 0; + j++; + if (xsym) + { + points [j].x = xlim - x; + j++; + } + points [j].x = x; + j++; + } +} +
990527-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: zero-strct-5.c =================================================================== --- zero-strct-5.c (nonexistent) +++ zero-strct-5.c (revision 154) @@ -0,0 +1,14 @@ +/* Check that the inliner does not crash for this testcase. + gimple_expr can change the expr to NULL meaning that we + should not add any statement. */ +struct f {}; +struct g1 {struct f l;}; + +static inline void g(struct f a, int i){} + +void h(void) +{ + struct g1 t; + g(t.l , 1); +} +
zero-strct-5.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000211-1.c =================================================================== --- 20000211-1.c (nonexistent) +++ 20000211-1.c (revision 154) @@ -0,0 +1,98 @@ +typedef long unsigned int size_t; +typedef unsigned char Bufbyte; +typedef int Bytecount; +typedef int Charcount; +typedef struct lstream Lstream; +typedef int Lisp_Object; +extern Lisp_Object Qnil; +extern inline int +TRUE_LIST_P (Lisp_Object object) +{ + return (( object ) == ( Qnil )) ; +} +struct Lisp_String +{ + Bytecount _size; + Bufbyte *_data; +}; +typedef enum lstream_buffering +{ + LSTREAM_LINE_BUFFERED, +} Lstream_buffering; +struct lstream +{ + Lstream_buffering buffering; + unsigned char *out_buffer; + size_t out_buffer_size; + size_t out_buffer_ind; + size_t byte_count; + long flags; + char data[1]; +}; +typedef struct printf_spec printf_spec; +struct printf_spec +{ +}; +typedef union printf_arg printf_arg; +union printf_arg +{ +}; +typedef struct +{ + int cur; +} printf_spec_dynarr; +typedef struct +{ +} printf_arg_dynarr; +static void +doprnt_1 (Lisp_Object stream, const Bufbyte *string, Bytecount len, + Charcount minlen, Charcount maxlen, int minus_flag, int zero_flag) +{ + Charcount cclen; + Bufbyte pad; + Lstream *lstr = (( struct lstream *) ((void *)(((( stream ) & ((1UL << ((4 * 8 ) - 4 ) ) - 1UL) ) ) | 0x40000000 )) ) ; + cclen = ( len ) ; + if (zero_flag) + pad = '0'; + pad = ' '; +#if 0 + if (minlen > cclen && !minus_flag) +#endif + { + int to_add = minlen - cclen; + while (to_add > 0) + { + (( lstr )->out_buffer_ind >= ( lstr )->out_buffer_size ? Lstream_fputc ( lstr , pad ) : (( lstr )->out_buffer[( lstr )->out_buffer_ind++] = (unsigned char) ( pad ), ( lstr )->byte_count++, ( lstr )->buffering == LSTREAM_LINE_BUFFERED && ( lstr )->out_buffer[( lstr )->out_buffer_ind - 1] == '\n' ? Lstream_flush_out ( lstr ) : 0)) ; + to_add--; + } + } + if (maxlen >= 0) + len = ( ((( maxlen ) <= ( cclen )) ? ( maxlen ) : ( cclen )) ) ; + Lstream_write (lstr, string, len); + if (minlen > cclen && minus_flag) + { + int to_add = minlen - cclen; + while (to_add > 0) + { + (( lstr )->out_buffer_ind >= ( lstr )->out_buffer_size ? Lstream_fputc ( lstr , pad ) : (( lstr )->out_buffer[( lstr )->out_buffer_ind++] = (unsigned char) ( pad ), ( lstr )->byte_count++, ( lstr )->buffering == LSTREAM_LINE_BUFFERED && ( lstr )->out_buffer[( lstr )->out_buffer_ind - 1] == '\n' ? Lstream_flush_out ( lstr ) : 0)) ; + to_add--; + } + } +} +static Bytecount +emacs_doprnt_1 (Lisp_Object stream, const Bufbyte *format_nonreloc, + Lisp_Object format_reloc, Bytecount format_length, + int nargs, + const Lisp_Object *largs) +{ + int i; + printf_spec_dynarr *specs = 0; + format_nonreloc = (( (( struct Lisp_String *) ((void *)(((( format_reloc ) & ((1UL << ((4 * 8 ) - 4 ) ) - 1UL) ) ) | 0x40000000 )) ) )->_data + 0) ; + format_length = (( (( struct Lisp_String *) ((void *)(((( format_reloc ) & ((1UL << ((4 * 8 ) - 4 ) ) - 1UL) ) ) | 0x40000000 )) ) )->_size) ; + specs = parse_doprnt_spec (format_nonreloc, format_length); + for (i = 0; i < (( specs )->cur) ; i++) + { + char ch; + doprnt_1 (stream, (Bufbyte *) &ch, 1, 0, -1, 0, 0); + } +}
20000211-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920501-15.c =================================================================== --- 920501-15.c (nonexistent) +++ 920501-15.c (revision 154) @@ -0,0 +1 @@ +x(a)double a;{int i;return i>a?i:i+1;}
920501-15.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr26840.c =================================================================== --- pr26840.c (nonexistent) +++ pr26840.c (revision 154) @@ -0,0 +1,42 @@ +extern int f1 (void **); +extern void f2 (void *); + +struct s +{ + unsigned char field1; + int field2; +}; + +static inline struct s * +get_globals (void) +{ + struct s * r; + void * rr; + + if (f1 (&rr)) + return 0; + r = rr; + if (! r) + { + extern struct s t; + r = &t; + } + r->field1 = 1; + return r; +} + +void +atexit_common (const void *dso) +{ + struct s *g = get_globals (); + + if (! g) + return; + if (g->field1) + { + g->field2 = 0; + f2 (g); + } + else + f2 (g); +}
pr26840.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr17913.c =================================================================== --- pr17913.c (nonexistent) +++ pr17913.c (revision 154) @@ -0,0 +1,7 @@ +/* Test for computed jump into cond_expr: bug 17913. */ +void f (void) +{ + void *p = &&a; + 1 ? 1 : ({ a : 1; }); + goto *p; +}
pr17913.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr26725.c =================================================================== --- pr26725.c (nonexistent) +++ pr26725.c (revision 154) @@ -0,0 +1,15 @@ +struct { unsigned int num; } *numptr; +void notice (int); +void doit (unsigned int *); + +void +rewrite_finalize_block (int x) +{ + unsigned int *tmp; + while (tmp = (numptr ? &numptr->num : 0), (tmp ? *tmp : 0) > 0) + { + tmp = (numptr ? &numptr->num : 0); + (void) (*tmp ? 0 : notice (x)); + doit (tmp); + } +}
pr26725.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr27373.c =================================================================== --- pr27373.c (nonexistent) +++ pr27373.c (revision 154) @@ -0,0 +1,40 @@ +typedef struct atype +{ + float bg[1], cg[1]; + _Bool ant; +}atype; + + +void cp_assert(_Bool*, float*, int*, _Bool*); + +void f(atype **rng_stream, int *error, float u) +{ + _Bool t = *rng_stream != 0; + float routinep; + _Bool failure; + cp_assert ( &t, &routinep, error, &failure); + if (failure == 0) + { + typedef float ty[1]; + ty *tt = &((*rng_stream)->bg); + int i = 1; + + do + { + (*tt)[i - 1] = u; + i ++; + }while (i > 1); + { + ty *tt = &(*rng_stream)->cg; + int i = 1; + + do + { + (*tt)[i - 1] = u; + i ++; + }while (i > 1); + } + } +} + +
pr27373.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr16566-1.c =================================================================== --- pr16566-1.c (nonexistent) +++ pr16566-1.c (revision 154) @@ -0,0 +1,15 @@ +/* ICE with flexible arrays in non-lvalue structures. Bug 16566 + (comment #3). */ + +struct S; + +struct C { + int i; + struct S *tab[]; +}; + +struct S { struct C c; }; + +void foo (struct S *x) { + foo(((void)1, x->c).tab[0]); +}
pr16566-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030410-1.c =================================================================== --- 20030410-1.c (nonexistent) +++ 20030410-1.c (revision 154) @@ -0,0 +1,27 @@ +/* PR 10201 */ + +extern struct _zend_compiler_globals compiler_globals; +typedef struct _zend_executor_globals zend_executor_globals; +extern zend_executor_globals executor_globals; + +typedef struct _zend_ptr_stack { + int top; + void **top_element; +} zend_ptr_stack; +struct _zend_compiler_globals { +}; +struct _zend_executor_globals { + int *uninitialized_zval_ptr; + zend_ptr_stack argument_stack; +}; + +static inline void safe_free_zval_ptr(int *p) +{ + if (p!=(executor_globals.uninitialized_zval_ptr)) { + } +} +zend_executor_globals executor_globals; +static inline void zend_ptr_stack_clear_multiple(void) +{ + executor_globals.argument_stack.top -= 2; +}
20030410-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031220-1.c =================================================================== --- 20031220-1.c (nonexistent) +++ 20031220-1.c (revision 154) @@ -0,0 +1,21 @@ +/* PR optimization/13031 */ +/* The following code used to ICE on alphaev67-*-* at -O2 with an + unrecognizable instruction, caused by local register allocation + substituting a register for a constant in a conditional branch. */ + +void emit(int, int); +int f(void); +static int signals[5]; + +static inline void select(int sel, void *klass) +{ + emit(klass ? 0 : f(), signals[sel ? 0 : 1]); +} + +void all(void *gil, void *l, void *icon) +{ + while (l) + if (icon) + select(0, gil); +} +
20031220-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040130-1.c =================================================================== --- 20040130-1.c (nonexistent) +++ 20040130-1.c (revision 154) @@ -0,0 +1,28 @@ +/* PR target/11475 */ +/* Origin: */ + +/* This used to fail on SPARC because of a broken pattern. */ + +#pragma pack(2) + +struct +{ + unsigned char G936:7; + unsigned short G937:6; + unsigned int :4; + unsigned short :14; + unsigned int G938:8; +#if __INT_MAX__ >= 2147483647L + unsigned int :30; +#endif + unsigned short :16; +#if __INT_MAX__ >= 2147483647L + unsigned int :18; +#endif + unsigned short G939:9; +} G928b; + +void TestG928(void) +{ + G928b.G936 |= G928b.G939; +}
20040130-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010611-1.c =================================================================== --- 20010611-1.c (nonexistent) +++ 20010611-1.c (revision 154) @@ -0,0 +1,24 @@ +/* Origin: PR c/3116 from Andreas Jaeger . */ +/* When determining type compatibility of function types, we must remove + qualifiers from argument types. We used to fail to do this properly + in store_parm_decls when comparing prototype and non-prototype + declarations. */ +struct _IO_FILE { + int _flags; +}; + +typedef struct _IO_FILE __FILE; +typedef struct _IO_FILE _IO_FILE; +typedef long int wchar_t; + +extern wchar_t *fgetws (wchar_t *__restrict __ws, int __n, + __FILE *__restrict __stream); + +wchar_t * +fgetws (buf, n, fp) + wchar_t *buf; + int n; + _IO_FILE *fp; +{ + return (wchar_t *)0; +}
20010611-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031023-1.c =================================================================== --- 20031023-1.c (nonexistent) +++ 20031023-1.c (revision 154) @@ -0,0 +1,66 @@ +#ifndef ASIZE +# define ASIZE 0x10000000000UL +#endif + +#include + +#if LONG_MAX < 8 * ASIZE +# undef ASIZE +# define ASIZE 4096 +#endif + +extern void abort (void); + +int __attribute__((noinline)) +foo (const char *s) +{ + if (!s) + return 1; + if (s[0] != 'a') + abort (); + s += ASIZE - 1; + if (s[0] != 'b') + abort (); + return 0; +} + +int (*fn) (const char *) = foo; + +int __attribute__((noinline)) +bar (void) +{ + char s[ASIZE]; + s[0] = 'a'; + s[ASIZE - 1] = 'b'; + foo (s); + foo (s); + return 0; +} + +int __attribute__((noinline)) +baz (long i) +{ + if (i) + return fn (0); + else + { + char s[ASIZE]; + s[0] = 'a'; + s[ASIZE - 1] = 'b'; + foo (s); + foo (s); + return fn (0); + } +} + +int +main (void) +{ + if (bar ()) + abort (); + if (baz (0) != 1) + abort (); + if (baz (1) != 1) + abort (); + return 0; +}
20031023-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr30984.c =================================================================== --- pr30984.c (nonexistent) +++ pr30984.c (revision 154) @@ -0,0 +1,7 @@ +int fs_exec(int ino) +{ + void *src = 0; + if (ino) + src = (void*)0xe000; + goto *src; +}
pr30984.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20001226-1.c =================================================================== --- 20001226-1.c (nonexistent) +++ 20001226-1.c (revision 154) @@ -0,0 +1,32 @@ +/* This does not assemble on m68hc11 because the function is larger + than 64K. */ +/* { dg-do assemble { xfail m6811-*-* m6812-*-* } } */ +/* { dg-xfail-if "jump beyond 128K not supported" "xtensa-*-*" "-O0" "" } */ +/* { dg-skip-if "" { m32c-*-* } { "*" } { "" } } */ + +/* This testcase exposed two branch shortening bugs on powerpc. */ + +#define C(a,b) \ + if (a > b) goto gt; \ + if (a < b) goto lt; + +#define C4(x,b) C((x)[0], b) C((x)[1],b) C((x)[2],b) C((x)[3],b) +#define C16(x,y) C4(x, (y)[0]) C4(x, (y)[1]) C4(x, (y)[2]) C4(x, (y)[3]) + +#define C64(x,y) C16(x,y) C16(x+4,y) C16(x+8,y) C16(x+12,y) +#define C256(x,y) C64(x,y) C64(x,y+4) C64(x,y+8) C64(x,y+12) + +#define C1024(x,y) C256(x,y) C256(x+16,y) C256(x+32,y) C256(x+48,y) +#define C4096(x,y) C1024(x,y) C1024(x,y+16) C1024(x,y+32) C1024(x,y+48) + +unsigned foo(int x[64], int y[64]) +{ + C4096(x,y); + + return 0x01234567; + gt: + return 0x12345678; + lt: + return 0xF0123456; +} +
20001226-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020930-1.c =================================================================== --- 20020930-1.c (nonexistent) +++ 20020930-1.c (revision 154) @@ -0,0 +1,10 @@ +/* PR c/8002 */ + +float expm1f(float x) { + union { + float value; + unsigned word; + } sf_u; + sf_u.word = (unsigned) x * 2; + return x + sf_u.value; +}
20020930-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920410-1.c =================================================================== --- 920410-1.c (nonexistent) +++ 920410-1.c (revision 154) @@ -0,0 +1,30 @@ +int alloc_float(f) + float f; +{ union + { + float f; + int i; + } + u; + u.f=f; + return u.i&~1; +} + +float c_float(int obj) +{ union + { + float f; + int i; + } u; + + u.i=obj; + return u.f; +} + +main() +{ int x=alloc_float(1.2); + int y=alloc_float(5.7); + int z=alloc_float(c_float(x)*c_float(y)); + + printf("%g\n",(double)c_float(z)); +}
920410-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20060215-1.c =================================================================== --- 20060215-1.c (nonexistent) +++ 20060215-1.c (revision 154) @@ -0,0 +1,42 @@ +/* PR middle-end/26300 */ + +struct S +{ + char c; + struct S *d; + struct S *e; +}; +extern struct S *u, *v; +extern void fn1 (struct S *) __attribute__ ((noreturn)); +void fn2 (struct S *); + +static inline struct S * +fn3 (struct S *x) +{ + if (x->c != 6) + fn1 (0); + return (struct S *) x; +} + +static inline int +fn4 (struct S *x) +{ + if (x != u) + return 3; + fn2 (x); + return 0; +} + +int +test (struct S *x) +{ + struct S *r; + int m = 0; + + for (r = x; r != v; r = (fn3 (r)->d)) + if (r->c != 6) + fn1 (x); + else + m |= 1 << (fn4 (fn3 (r)->e) - 1); + return m; +}
20060215-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 931102-1.c =================================================================== --- 931102-1.c (nonexistent) +++ 931102-1.c (revision 154) @@ -0,0 +1,111 @@ +char *e (); + +#define SET \ + if (d > *b++) d |= a; \ + if (b) b = e(b); + +xxx() +{ + int a, d; + char *b, *c; + + while (1) { + while (1) { + while (1) { + if (a) { + switch (a) { + case 1: + while (1) { + SET + do { + SET + } while (1); + } + case 2: + while (1) { + if (d) { + do { + SET + } while (1); + } + else { + do { + SET + } while (1); + } + } + case 3: + while (1) { + if (d) { + do { + SET + } while (1); + } + else { + do { + SET + } while (1); + } + } + case 4: + while (1) { + if (d) { + do { + SET + } while (1); + } + else { + do { + SET + } while (1); + } + } + } + } + else { + switch (a) { + case 2: + while (1) { + if (d) { + do { + SET + } while (1); + } + else { + do { + SET + } while (1); + } + } + case 3: + while (1) { + if (d) { + do { + SET + } while (1); + } + else { + do { + SET + } while (1); + } + } + case 4: + while (1) { + if (d) { + do { + SET + } while (1); + } + else { + do { + SET + } while (1); + } + } + } + } + } + } + } +}
931102-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 921202-2.c =================================================================== --- 921202-2.c (nonexistent) +++ 921202-2.c (revision 154) @@ -0,0 +1,8 @@ +f(x, c) +{ + for (;;) + { + if (x << c) break; + x++; + } +}
921202-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050217-1.c =================================================================== --- 20050217-1.c (nonexistent) +++ 20050217-1.c (revision 154) @@ -0,0 +1,14 @@ +/* PR c++/20023 */ + +void f (void); +typedef __SIZE_TYPE__ size_t; +void g (void *a) +{ + size_t b = (size_t) a; + switch (b) + { + case 1: + f (); + break; + } +}
20050217-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030418-1.c =================================================================== --- 20030418-1.c (nonexistent) +++ 20030418-1.c (revision 154) @@ -0,0 +1,16 @@ +/* PR optimization/7675 */ +/* Contributed by Volker Reichelt */ + +/* Verify that we don't put automatic variables + in registers too early. */ + +extern int dummy (int *); + +void foo(int i) +{ + int j=i; + + void bar() { int x=j, y=i; } + + dummy(&i); +}
20030418-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040219-1.c =================================================================== --- 20040219-1.c (nonexistent) +++ 20040219-1.c (revision 154) @@ -0,0 +1 @@ +double foo() { return __builtin_isgreater(0.,0.); }
20040219-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040317-2.c =================================================================== --- 20040317-2.c (nonexistent) +++ 20040317-2.c (revision 154) @@ -0,0 +1,25 @@ +typedef struct _ScaleRec *ScaleWidget; +typedef struct +{ + short *x; + unsigned short *width; +} Table; +typedef struct +{ + Table table; +} ScalePart; +typedef struct _ScaleRec +{ + ScalePart scale; +} ScaleRec; +static int +FindPixel (ScaleWidget sw, short x, short y, + short * img_x, short * img_y, unsigned long * img_pixel) +{ + if (sw->scale.table.x[(int) *img_x] + + (short) sw->scale.table.width[(int) *img_x] < x) + { + ++*img_x; + return FindPixel (sw, x, y, img_x, img_y, img_pixel); + } +}
20040317-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000818-1.c =================================================================== --- 20000818-1.c (nonexistent) +++ 20000818-1.c (revision 154) @@ -0,0 +1,6 @@ +void +foo (long double x) +{ + struct {long double t;} y = {x}; +} +
20000818-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 981001-2.c =================================================================== --- 981001-2.c (nonexistent) +++ 981001-2.c (revision 154) @@ -0,0 +1,14 @@ +/* { dg-require-weak "" } */ +/* { dg-require-alias "" } */ +#define weak_alias(func, aliasname) \ + extern __typeof (func) aliasname __attribute__ ((weak, alias (#func))); + +#define add3(d, m, c) ((d) + (m) + (c)) + +int +__add3(int d, int m, int c) +{ + return d + m + c; +} + +weak_alias (__add3, add3)
981001-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 940611-1.c =================================================================== --- 940611-1.c (nonexistent) +++ 940611-1.c (revision 154) @@ -0,0 +1,10 @@ +f () +{ + do +L:; + while (0); + do + ; + while (0); + goto L; +}
940611-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 951222-1.c =================================================================== --- 951222-1.c (nonexistent) +++ 951222-1.c (revision 154) @@ -0,0 +1,15 @@ +extern long long foo (); + +long long +sub1 () +{ + char junk[10000]; + register long long a, b, c; + + b = foo (); + + setjmp (); + a = foo (); + c = a - b; + return c; +}
951222-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 951106-1.c =================================================================== --- 951106-1.c (nonexistent) +++ 951106-1.c (revision 154) @@ -0,0 +1,4 @@ +f (double a, double b) +{ + g (a, 0, b); +}
951106-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920615-1.c =================================================================== --- 920615-1.c (nonexistent) +++ 920615-1.c (revision 154) @@ -0,0 +1,4 @@ +f() +{ + int x[20] = {[0] = 5, [10] = 12}; +}
920615-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: complex-2.c =================================================================== --- complex-2.c (nonexistent) +++ complex-2.c (revision 154) @@ -0,0 +1,16 @@ +/* PR 22103 */ + +_Complex float f(void); +void *a; + +_Complex float g(void) +{ + _Complex float x = f(); + __imag__ x = 1.0; + if (__imag__ x != 1.0) + { + a = &x; + } + return x; +} +
complex-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 980816-1.c =================================================================== --- 980816-1.c (nonexistent) +++ 980816-1.c (revision 154) @@ -0,0 +1,51 @@ +typedef unsigned int size_t; +typedef void *XtPointer; + +typedef struct _WidgetRec *Widget; +typedef struct _WidgetClassRec *WidgetClass; + +extern WidgetClass commandWidgetClass; + +typedef void (*XtCallbackProc)( + Widget , + XtPointer , + XtPointer +); + +extern const char XtStrings[]; + + +typedef struct +{ + char *Name, + *Label; + XtCallbackProc Callback; + XtPointer ClientData; + Widget W; +} DialogButtonType, *DialogButtonTypePtr; + + +Widget AddButtons(Widget Parent, Widget Top, + DialogButtonTypePtr Buttons, size_t Count) +{ + int i; + + for (i = 0; i < Count; i++) + { + if (!Buttons[i].Label) + continue; + Buttons[i].W = XtVaCreateManagedWidget(Buttons[i].Name, + commandWidgetClass, + Parent, + ((char*)&XtStrings[429]) , Buttons[i].Label, + "fromHoriz" , i ? Buttons[i-1].W : ((void *)0) , + "fromVert" , Top, + "resizable" , 1 , + ((void *)0) ); + + XtAddCallback(((char*)&XtStrings[136]), + Buttons[i].Callback, Buttons[i].ClientData); + } + return(Buttons[Count-1].W); +} +
980816-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 990617-1.c =================================================================== --- 990617-1.c (nonexistent) +++ 990617-1.c (revision 154) @@ -0,0 +1,20 @@ +/* 0x70000000 is too large a constant to become a pointer on + xstormy16. */ +/* { dg-do assemble { xfail xstormy16-*-* } } */ + +int main() +{ + do { + long l; + long *p = &l; + + *p = 0x0000000070000000L; + p += 2; + { + unsigned int *addr = (unsigned int *)0x70000000; + printf("%d, %d\n", addr[1], addr[0]); + } + + } while (1); +} +
990617-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 991229-3.c =================================================================== --- 991229-3.c (nonexistent) +++ 991229-3.c (revision 154) @@ -0,0 +1,17 @@ +int m[8],b[8]; + +int main(){ + int i; + + for(;;){ + m[0] = rand(); + if(m[0] == 0){ + for(i=0;i<8;i++){ + m[i] = b[i]; + } + break; + } + } +} + +
991229-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010102-1.c =================================================================== --- 20010102-1.c (nonexistent) +++ 20010102-1.c (revision 154) @@ -0,0 +1,101 @@ +/* This testcase derives from gnu obstack.c/obstack.h and failed with + -O3 -funroll-all-loops, or -O1 -frename-registers -funroll-loops on + sparc-sun-solaris2.7. + + Copyright (C) 2001 Free Software Foundation. */ + +# define PTR_INT_TYPE __PTRDIFF_TYPE__ + +struct _obstack_chunk +{ + char *limit; + struct _obstack_chunk *prev; + char contents[4]; +}; + +struct obstack +{ + long chunk_size; + struct _obstack_chunk *chunk; + char *object_base; + char *next_free; + char *chunk_limit; + PTR_INT_TYPE temp; + int alignment_mask; + struct _obstack_chunk *(*chunkfun) (void *, long); + void (*freefun) (void *, struct _obstack_chunk *); + void *extra_arg; + unsigned use_extra_arg:1; + unsigned maybe_empty_object:1; + unsigned alloc_failed:1; +}; + +extern void _obstack_newchunk (struct obstack *, int); + +struct fooalign {char x; double d;}; +#define DEFAULT_ALIGNMENT \ + ((PTR_INT_TYPE) ((char *) &((struct fooalign *) 0)->d - (char *) 0)) +union fooround {long x; double d;}; +#define DEFAULT_ROUNDING (sizeof (union fooround)) + +#ifndef COPYING_UNIT +#define COPYING_UNIT int +#endif + +#define CALL_CHUNKFUN(h, size) \ + (((h) -> use_extra_arg) \ + ? (*(h)->chunkfun) ((h)->extra_arg, (size)) \ + : (*(struct _obstack_chunk *(*) (long)) (h)->chunkfun) ((size))) + +#define CALL_FREEFUN(h, old_chunk) \ + do { \ + if ((h) -> use_extra_arg) \ + (*(h)->freefun) ((h)->extra_arg, (old_chunk)); \ + else \ + (*(void (*) (void *)) (h)->freefun) ((old_chunk)); \ + } while (0) + +void +_obstack_newchunk (h, length) + struct obstack *h; + int length; +{ + register struct _obstack_chunk *old_chunk = h->chunk; + register struct _obstack_chunk *new_chunk; + register long new_size; + register long obj_size = h->next_free - h->object_base; + register long i; + long already; + + new_size = (obj_size + length) + (obj_size >> 3) + 100; + if (new_size < h->chunk_size) + new_size = h->chunk_size; + + new_chunk = CALL_CHUNKFUN (h, new_size); + h->chunk = new_chunk; + new_chunk->prev = old_chunk; + new_chunk->limit = h->chunk_limit = (char *) new_chunk + new_size; + + if (h->alignment_mask + 1 >= DEFAULT_ALIGNMENT) + { + for (i = obj_size / sizeof (COPYING_UNIT) - 1; + i >= 0; i--) + ((COPYING_UNIT *)new_chunk->contents)[i] + = ((COPYING_UNIT *)h->object_base)[i]; + already = obj_size / sizeof (COPYING_UNIT) * sizeof (COPYING_UNIT); + } + else + already = 0; + for (i = already; i < obj_size; i++) + new_chunk->contents[i] = h->object_base[i]; + + if (h->object_base == old_chunk->contents && ! h->maybe_empty_object) + { + new_chunk->prev = old_chunk->prev; + CALL_FREEFUN (h, old_chunk); + } + + h->object_base = new_chunk->contents; + h->next_free = h->object_base + obj_size; + h->maybe_empty_object = 0; +}
20010102-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr25860.c =================================================================== --- pr25860.c (nonexistent) +++ pr25860.c (revision 154) @@ -0,0 +1,20 @@ +/* We used to ICE because PRE would try to PRE the load of *Note from the + loop. */ + +struct g +{ + int i; +}; +struct f +{ + struct g i; +}; +int GSM_RingNoteGetFullDuration(struct g)__attribute__((const)); +void savewav(struct f *gg) +{ + struct g *Note; + long i = 0,j,length=0; + Note = &gg->i; + for (j=0;j
pr25860.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040220-1.c =================================================================== --- 20040220-1.c (nonexistent) +++ 20040220-1.c (revision 154) @@ -0,0 +1,16 @@ +/* PR 14194 */ + +int irqs; + +static inline __attribute__((always_inline)) +int kstat_irqs (void) { + int i, sum = 0; + for (i = 0; i < 1; i++) + if (__builtin_expect(i, 0)) + sum += irqs; + return sum; +} + +int show_interrupts (void) { + return kstat_irqs (); +}
20040220-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010701-1.c =================================================================== --- 20010701-1.c (nonexistent) +++ 20010701-1.c (revision 154) @@ -0,0 +1,5 @@ +/* Test that postfix attributes only apply to a single declared object. + (decl_attributes used to chain them onto the end of the prefix attributes, + which caused them to apply to other declarations as well.) */ +/* Origin: Joseph Myers . */ +void __attribute__((__noreturn__)) foo (const char *, ...) __attribute__((__format__(__printf__, 1, 2))), bar (void);
20010701-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031113-1.c =================================================================== --- 20031113-1.c (nonexistent) +++ 20031113-1.c (revision 154) @@ -0,0 +1,21 @@ +/* On Darwin, the stub for simple_cst_equal was not being emitted at all + causing the as to die and not create an object file. */ + +int +attribute_list_contained () +{ + return (simple_cst_equal ()); +} +int +simple_cst_list_equal () +{ + return (simple_cst_equal ()); +} + + +int __attribute__((noinline)) +simple_cst_equal () +{ + return simple_cst_list_equal (); +} +
20031113-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010423-1.c =================================================================== --- 20010423-1.c (nonexistent) +++ 20010423-1.c (revision 154) @@ -0,0 +1,16 @@ +/* Origin: PR c/2618 from Cesar Eduardo Barros , + adapted to a testcase by Joseph Myers . + + Boolean conversions were causing infinite recursion between convert + and fold in certain cases. */ + +#include + +bool x; +unsigned char y; + +void +fn (void) +{ + x = y & 0x1 ? 1 : 0; +}
20010423-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr23946.c =================================================================== --- pr23946.c (nonexistent) +++ pr23946.c (revision 154) @@ -0,0 +1,72 @@ + +extern int foo (void); + +int +avi_parse_comments (int fd, char *buf, int space_left) +{ + int len = 0, readlen = 0, k; + char *data, *c, *d; + + if (fd <= 0 || !buf || space_left <= 0) + return -1; + + memset (buf, 0, space_left); + + readlen = foo (); + if (!(data = malloc (readlen * sizeof (char) + 1))) + return -1; + + c = data; + space_left--; + + while (len < space_left) + { + if (!c || *c == '\0') + break; + else if (*c == 'I') + { + d = c + 4; + + k = 0; + while (d[k] != '\r' && d[k] != '\n' && d[k] != '\0') + ++k; + if (k >= space_left) + return len; + + + memcpy (buf + len, c, 4); + len += 4; + + + long2str (buf + len, k + 1); + len += 4; + + + memcpy (buf + len, d, k); + + *(buf + len + k + 1) = '\0'; + + + if ((k + 1) & 1) + { + k++; + *(buf + len + k + 1) = '\0'; + } + len += k + 1; + + + while (*c != '\n' && *c != '\0') + ++c; + if (*c != '\0') + ++c; + else + break; + + } + } + free (data); + + return len; +} + +
pr23946.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr23929.c =================================================================== --- pr23929.c (nonexistent) +++ pr23929.c (revision 154) @@ -0,0 +1,21 @@ +/* PR tree-optimization/23929 */ + +extern void bar (char *); + +void +foo (int n, char *z) +{ + char b[2048]; + int x, y; + + bar (b); + for (y = 0; y < 60; y++) + if (n == 600) + for (x = 0; x < 320;) + { + *z++ = b[x]; + x += 1; + *z++ = b[x]; + x += 1; + } +}
pr23929.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010226-1.c =================================================================== --- 20010226-1.c (nonexistent) +++ 20010226-1.c (revision 154) @@ -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; +}
20010226-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000326-2.c =================================================================== --- 20000326-2.c (nonexistent) +++ 20000326-2.c (revision 154) @@ -0,0 +1,13 @@ +#ifndef NO_LABEL_VALUES +extern int printk(const char *fmt, ...); + +void foo (int x, int y) +{ + __label__ here; + here: + printk ("", &&here); +} + +#else +int x; +#endif
20000326-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20060421-1.c =================================================================== --- 20060421-1.c (nonexistent) +++ 20060421-1.c (revision 154) @@ -0,0 +1,9 @@ +/* This test used to ICE on ARM with -mcpu=iwmmxt. */ +void +foo (void) +{ + long long int a; + unsigned long b[249]; /* >= 249 causes failure */ + register unsigned int c; + b[c] = (a & (1ULL << c)) ? 1 : 0; +}
20060421-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030902-1.c =================================================================== --- 20030902-1.c (nonexistent) +++ 20030902-1.c (revision 154) @@ -0,0 +1,37 @@ +typedef unsigned int size_t; +typedef unsigned long int reg_syntax_t; +struct re_pattern_buffer +{ + unsigned char *buffer; +}; +typedef enum +{ + jump, + jump_n, +} re_opcode_t; +static int +foo (bufp) + struct re_pattern_buffer *bufp; +{ + int mcnt; + unsigned char *p = bufp->buffer; + switch (((re_opcode_t) * p++)) + { + unconditional_jump: + ; + /* This test case caused an ICE because the statement insertion + routines were failing to update basic block boundaries. */ + case jump: + do + { + (mcnt) = *(p) & 0377; + } + while (0); + (p) += 2; + p += mcnt; + case jump_n: + (mcnt) = *(p + 2) & 0377; + if (mcnt) + goto unconditional_jump; + } +}
20030902-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030821-1.c =================================================================== --- 20030821-1.c (nonexistent) +++ 20030821-1.c (revision 154) @@ -0,0 +1,24 @@ +/* PR target/11805. */ + +/* Consider the following sequence. + + (set (cc0) + (and:HI (reg:HI 0) + (const_int 1))) + + (set (pc) + (if_then_else (le (cc0) + (const_int 0)) + (label_ref 17) + (pc))) + + On h8300, the first insn does not set the overflow flag, but the + second requires the overflow flag. As a result, when the final + wants to output the jump insn, it cannot find a test insn that + gives appropriate condition flags. */ + +unsigned char +foo (unsigned char a) +{ + return (a & 1) > 0; +}
20030821-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050423-1.c =================================================================== --- 20050423-1.c (nonexistent) +++ 20050423-1.c (revision 154) @@ -0,0 +1,16 @@ +/* PR tree-optimization/20742 */ + +int +foo (int x, int y) +{ + register int a = y + 57; + register int b = y + 31; + + while (x-- > 0) + { + #define TEN(x) x x x x x x x x x x + TEN (TEN (a += b; b -= a;)) + TEN (TEN (a += b; b -= a;)) + } + return a + b; +}
20050423-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030624-1.c =================================================================== --- 20030624-1.c (nonexistent) +++ 20030624-1.c (revision 154) @@ -0,0 +1,6 @@ +/* Derived from PR optimization/11311 */ + +double pow(double, double); + +double foo(double x) { return pow(x,261); } +
20030624-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20041119-1.c =================================================================== --- 20041119-1.c (nonexistent) +++ 20041119-1.c (revision 154) @@ -0,0 +1,30 @@ +/* PR rtl-optimization/17825 */ +#ifdef __i386__ +register unsigned int reg __asm ("esi"); +#elif defined __x86_64__ +register unsigned int reg __asm ("r14"); +#else +unsigned int reg; +#endif + +struct S +{ + unsigned int h[8]; +} *b; +unsigned int c; +void foo (int); + +void +bar (void) +{ + unsigned int j, k, l, m; + + j = (reg & 0xffff) | ((b->h[2] & 0xffff) << 16); + k = c & 0xffff; + if (k == 0) + foo (0); + l = (j / k) & 0xffff; + m = (j % k) & 0xffff; + reg = (reg & 0xffff0000) | l; + b->h[2] = (b->h[2] & 0xffff0000) | m; +}
20041119-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040309-1.c =================================================================== --- 20040309-1.c (nonexistent) +++ 20040309-1.c (revision 154) @@ -0,0 +1,20 @@ +static const char default_tupleseps[] = ", \t"; + + +fubar (tupleseps) + const char *tupleseps; +{ + char *kp, *sp; + const char *septmp; + const char *tseplist; + tseplist = (tupleseps) ? tupleseps : default_tupleseps; + while (kp) + { + if (*tseplist) + septmp = tseplist; + bar (*septmp); + if (*tseplist) + if (*kp) + ; + } +}
20040309-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000827-1.c =================================================================== --- 20000827-1.c (nonexistent) +++ 20000827-1.c (revision 154) @@ -0,0 +1,17 @@ +/* Copyright (C) 2000 Free Software Foundation */ +/* Contributed by Alexandre Oliva */ + +int +foo () +{ + while (1) + { + int a; + char b; + /* gcse should not merge these asm statements, since their + output operands have different modes. */ + __asm__("":"=r" (a)); __asm__("":"=r" (b)); + if (b) + return a; + } +}
20000827-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20060904-1.c =================================================================== --- 20060904-1.c (nonexistent) +++ 20060904-1.c (revision 154) @@ -0,0 +1,27 @@ +/* PR rtl-optimization/27616 */ +/* Reported by Lee Ji Hwan */ +/* Testcase by Andrew Pinski */ + +struct chunk_s +{ + unsigned int size; + int offset_next; +}; + +typedef struct chunk_s chunk_t; + +void foo(chunk_t *first) +{ + chunk_t *cur; + char *first0; + + do { + first0 = (char *) first; + cur = (chunk_t *) (first0 + first->offset_next); + if ((chunk_t *) (first0 + cur->offset_next) != first) + return ; + + first->offset_next = 0; + + } while (cur->size != 0); +}
20060904-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20060823-1.c =================================================================== --- 20060823-1.c (nonexistent) +++ 20060823-1.c (revision 154) @@ -0,0 +1,18 @@ +/* PR middle-end/28683 */ + +extern void foo (int *); + +struct A +{ + int f; +}; + +struct A * +test (struct A *r) +{ + int *f = &r->f; + static int i = 0; + if (!i && !((void *) f == (void *) r)) + foo (&i); + return r; +}
20060823-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920821-1.c =================================================================== --- 920821-1.c (nonexistent) +++ 920821-1.c (revision 154) @@ -0,0 +1 @@ +/* empty */
920821-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920902-1.c =================================================================== --- 920902-1.c (nonexistent) +++ 920902-1.c (revision 154) @@ -0,0 +1,2 @@ +void f(int); +void f(x)unsigned char x;{}
920902-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 960106-1.c =================================================================== --- 960106-1.c (nonexistent) +++ 960106-1.c (revision 154) @@ -0,0 +1,4 @@ +f (a) +{ + return (a & 1) && !(a & 2 & 4); +}
960106-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040908-1.c =================================================================== --- 20040908-1.c (nonexistent) +++ 20040908-1.c (revision 154) @@ -0,0 +1,12 @@ +/* PR 17186 */ + +double foo() +{ + int i; + double d; + + if (i) + bar(); + else + if (d) return 0; +}
20040908-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920624-1.c =================================================================== --- 920624-1.c (nonexistent) +++ 920624-1.c (revision 154) @@ -0,0 +1,2 @@ +int B[],Q[]; +f(){int s;for(s=0;s<=1;s++)switch(s){case 2:case 3:++B[s];case 4:case 5:++Q[s];}}
920624-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930506-1.c =================================================================== --- 930506-1.c (nonexistent) +++ 930506-1.c (revision 154) @@ -0,0 +1,12 @@ +long long +f (a) + double a; +{ + double b; + unsigned long long v; + + b = a / 2.0; + v = (unsigned) b; + a -= (double) v; + return v; +}
930506-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: goto-1.c =================================================================== --- goto-1.c (nonexistent) +++ goto-1.c (revision 154) @@ -0,0 +1,16 @@ +f () +{ + do + { + if (0) + { + L1:; + } + else + goto L2; + L2:; + } + while (0); + + goto L1; +}
goto-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 980701-1.c =================================================================== --- 980701-1.c (nonexistent) +++ 980701-1.c (revision 154) @@ -0,0 +1,9 @@ + +short +func(void) +{ + unsigned char x, y; + + return y | x << 8; +} +
980701-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920409-2.c =================================================================== --- 920409-2.c (nonexistent) +++ 920409-2.c (revision 154) @@ -0,0 +1,2 @@ +double x(){int x1,x2;double v; +if(((long)(x1-x2))<1)return -1.0;v=t(v);v=y(1,v>0.0?(int)v:((int)v-1));}
920409-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 991213-2.c =================================================================== --- 991213-2.c (nonexistent) +++ 991213-2.c (revision 154) @@ -0,0 +1,15 @@ +typedef long __kernel_time_t; +typedef __kernel_time_t time_t; +time2( + void (* const (funcp)(time_t)), + const long offset, int * const okayp) +{ + register int bits; + time_t t; + for (bits = 0, t = 1; t > 0; ++bits, t <<= 1) + ; + t = (t < 0) ? 0 : ((time_t) 1 << bits); + for ( ; ; ) { + (*funcp)((time_t)&t); + } +}
991213-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 980504-1.c =================================================================== --- 980504-1.c (nonexistent) +++ 980504-1.c (revision 154) @@ -0,0 +1,28 @@ +typedef struct _geom_elem { + double coeffs[6]; +} pGeomDefRec, *pGeomDefPtr; +typedef struct _mpgeombanddef { + int yOut; + int in_width; +} mpGeometryBandRec, *mpGeometryBandPtr; +typedef void *pointer; +typedef unsigned char CARD8; +typedef CARD8 BytePixel; +void BiGL_B (OUTP,srcimg,width,sline,pedpvt,pvtband) pointer OUTP; +pointer *srcimg; +register int width; +int sline; +pGeomDefPtr pedpvt; mpGeometryBandPtr pvtband; +{ + register float s, t, st; + register int isrcline,isrcpix; + register int srcwidth = pvtband->in_width - 1; + register BytePixel val; + register BytePixel *ptrIn, *ptrJn; + register double a = pedpvt->coeffs[0]; + register double c = pedpvt->coeffs[2]; + register double srcpix = a * ((double)(0.0000)) + pedpvt->coeffs[1] * (pvtband->yOut + ((double)(0.0000)) ) + pedpvt->coeffs[4]; + register double srcline = c * ((double)(0.0000)) + pedpvt->coeffs[3] * (pvtband->yOut + ((double)(0.0000)) ) + pedpvt->coeffs[5]; + if ( (isrcpix >= 0) && (isrcpix < srcwidth) ) + val = ptrIn[isrcpix] * ((float)1. - s - t + st) + ptrIn[isrcpix+1] * (s - st) + ptrJn[isrcpix] * (t - st) + ptrJn[isrcpix+1] * (st) + (float)0.5 ; +}
980504-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920829-1.c =================================================================== --- 920829-1.c (nonexistent) +++ 920829-1.c (revision 154) @@ -0,0 +1 @@ +f(double x){double y;y=x/0.5;if(y<0.1)y=1.0;}
920829-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: inline-1.c =================================================================== --- inline-1.c (nonexistent) +++ inline-1.c (revision 154) @@ -0,0 +1,21 @@ +typedef __builtin_va_list va_list; + +extern void foo (va_list); + +static void +build_message_string (const char *msg, ...) +{ + va_list ap; + + __builtin_va_start (ap, msg); + foo (ap); + __builtin_va_end (ap); +} + +void +file_name_as_prefix (f) + const char *f; +{ + build_message_string ("%s: ", f); +} +
inline-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 980825-1.c =================================================================== --- 980825-1.c (nonexistent) +++ 980825-1.c (revision 154) @@ -0,0 +1,30 @@ +typedef enum { FALSE, TRUE } boolean; +enum _errorTypes { FATAL = 1, WARNING = 2, PERROR = 4 }; +typedef struct _optionValues { + struct _include { + boolean classNames; + boolean defines; + boolean enumerators; + } include; +} optionValues; +extern optionValues Option; +static void applyTagInclusionList( list ) + const char *const list; +{ + boolean mode = TRUE; + const char *p; + for (p = list ; *p != '\0' ; ++p) + switch (*p) + { + case '=': + clearTagList(); + mode = TRUE; + break; + case '+': mode = TRUE; break; + case '-': mode = FALSE; break; + case 'c': Option.include.classNames = mode; break; + case 'd': Option.include.defines = mode; break; + case 'e': Option.include.enumerators = mode; break; + default: error(FATAL, "-i: Invalid tag option '%c'", *p); break; + } +}
980825-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 960829-1.c =================================================================== --- 960829-1.c (nonexistent) +++ 960829-1.c (revision 154) @@ -0,0 +1,4 @@ +f () +{ + g (0, 0.0, 0.0, 0.0, 0.0); +}
960829-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr21356.c =================================================================== --- pr21356.c (nonexistent) +++ pr21356.c (revision 154) @@ -0,0 +1,13 @@ +int a; +void* p; + +void foo (void) +{ + switch (a) + { + a0: case 0: p = &&a1; + a1: case 1: p = &&a2; + a2: default: p = &&a1; + } + goto *p; +}
pr21356.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920501-16.c =================================================================== --- 920501-16.c (nonexistent) +++ 920501-16.c (revision 154) @@ -0,0 +1 @@ +f(n){struct z{int a,b[n],c[n];};}
920501-16.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr18903.c =================================================================== --- pr18903.c (nonexistent) +++ pr18903.c (revision 154) @@ -0,0 +1,17 @@ +/* We were ICEing in bsi_after_labels because + we had a BB which did not have a lablel. + PR middle-end/18903 */ + +#ifndef NO_LABEL_VALUES +void g (int s, int f) +{ + &&ff; + s = f; + ff: + goto end; + f = s; + end:; +} +#else +int g; +#endif
pr18903.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040310-1.c =================================================================== --- 20040310-1.c (nonexistent) +++ 20040310-1.c (revision 154) @@ -0,0 +1,10 @@ +void I_wacom () +{ + char buffer[50], *p; + int RequestData (char *cmd) + { + p = buffer; + foo (buffer); + } + RequestData (0); +}
20040310-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr16566-2.c =================================================================== --- pr16566-2.c (nonexistent) +++ pr16566-2.c (revision 154) @@ -0,0 +1,13 @@ +/* ICE with flexible arrays in non-lvalue structures. Bug 16566 + (comment #5). */ + +struct A +{ + int i; + int x[]; +}; + +int foo(struct A a) +{ + return (a,a).x[0]; +}
pr16566-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031203-1.c =================================================================== --- 20031203-1.c (nonexistent) +++ 20031203-1.c (revision 154) @@ -0,0 +1,22 @@ +/* { dg-do compile } */ +/* { dg-options "-O2" } */ +void make_file_symbol_completion_list (char *); +/* This tests to make sure PRE doesn't choose the wrong name when + inserting phi nodes. Otherwise, we get uses that aren't dominated + by defs. + PR 13177. */ +void location_completer (char *text) +{ + char *p, *symbol_start = text; + for (p = text; *p != '\0'; ++p) { + if (*p == '\\' && p[1] == '\'') + p++; + else if (*p == ':') + symbol_start = p + 1; + else + symbol_start = p + 1; + make_file_symbol_completion_list(symbol_start); + } +} + +
20031203-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031220-2.c =================================================================== --- 20031220-2.c (nonexistent) +++ 20031220-2.c (revision 154) @@ -0,0 +1,44 @@ +/* PR target/12749 + Orgin: Matt Thomas + This used to cause GCC to write out an instruction for i386 when using a L64 host + which gas could not handle because GCC would write a full 64bit hex string out. */ + + +float fabsf (float); +typedef int __int32_t; +typedef unsigned int __uint32_t; +typedef union +{ + float value; + __uint32_t word; +} ieee_float_shape_type; +extern float __ieee754_expf (float); +extern float __ieee754_sinhf (float); +static const float one = 1.0, shuge = 1.0e37; +float +__ieee754_sinhf(float x) +{ + float t,w,h; + __int32_t ix,jx; + do { ieee_float_shape_type gf_u; gf_u.value = (x); (jx) = gf_u.word; } while (0); + ix = jx&0x7fffffff; + if(ix>=0x7f800000) return x+x; + h = 0.5; + if (jx<0) h = -h; + if (ix < 0x41b00000) { + if (ix<0x31800000) + if(shuge+x>one) return x; + t = expm1f(fabsf(x)); + if(ix<0x3f800000) return h*((float)2.0*t-t*t/(t+one)); + return h*(t+t/(t+one)); + } + if (ix < 0x42b17180) return h*__ieee754_expf(fabsf(x)); + if (ix<=0x42b2d4fc) { + w = __ieee754_expf((float)0.5*fabsf(x)); + t = h*w; + return t*w; + } + return x*shuge; +} + +
20031220-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20021205-1.c =================================================================== --- 20021205-1.c (nonexistent) +++ 20021205-1.c (revision 154) @@ -0,0 +1,9 @@ +typedef struct x x; +extern void *baz(char *); +struct x { char * (*bar) (int); }; +static x **foo() { return ((x**)baz(0)); } +int xyzzy() +{ + baz((*foo())->bar(0)); + return 3; +}
20021205-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20021124-1.c =================================================================== --- 20021124-1.c (nonexistent) +++ 20021124-1.c (revision 154) @@ -0,0 +1,7 @@ +/* PR optimization/8275 */ +/* Contributed by Volker Reichelt. */ + +unsigned int foo (unsigned int u) +{ + return (u >> 32) & 0xffff; +}
20021124-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020314-1.c =================================================================== --- 20020314-1.c (nonexistent) +++ 20020314-1.c (revision 154) @@ -0,0 +1,26 @@ +typedef struct tux_req_struct tux_req_t; +struct tux_req_struct +{ + struct socket *sock; + char usermode; + char *userbuf; + unsigned int userlen; + char error; + void *private; +}; +void user_send_buffer (tux_req_t *req, int cachemiss) +{ + int ret; +repeat: + switch (ret) { + case -11: + if (add_output_space_event(req, req->sock)) { + del_tux_atom(req); + goto repeat; + } + do { } while (0); + break; + default: + add_req_to_workqueue(req); + } +}
20020314-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031023-2.c =================================================================== --- 20031023-2.c (nonexistent) +++ 20031023-2.c (revision 154) @@ -0,0 +1,2 @@ +#define ASIZE 0x1000000000UL +#include "20031023-1.c"
20031023-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr22589-1.c =================================================================== --- pr22589-1.c (nonexistent) +++ pr22589-1.c (revision 154) @@ -0,0 +1,4 @@ +int bar (char *foo) +{ + return (long long) ((int) foo + 0) < 0; +}
pr22589-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: simd-1.c =================================================================== --- simd-1.c (nonexistent) +++ simd-1.c (revision 154) @@ -0,0 +1,7 @@ +typedef int v2si __attribute__ ((vector_size (8))); +typedef unsigned di __attribute__ ((mode(DI))); +void foo(unsigned long); +void bar() { + v2si x = { 1, 2 }; + foo((di) x); +}
simd-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20021008-1.c =================================================================== --- 20021008-1.c (nonexistent) +++ 20021008-1.c (revision 154) @@ -0,0 +1,11 @@ +/* Origin: PR target/7434 Gwenole Beauchesne */ + +int main(void) +{ + static const int align_g[] = { 1, 2, 4, 8, 16 }; + char * buf; + int i = 0; + volatile long double val = 0; + val = *((long double *)(buf + align_g[i])); + return 0; +}
20021008-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 931102-2.c =================================================================== --- 931102-2.c (nonexistent) +++ 931102-2.c (revision 154) @@ -0,0 +1,21 @@ +typedef struct { + int a; +} VCR; + +typedef struct { + VCR vcr[8]; +} VCRC; + +typedef struct { + char vcr; +} OWN; + +OWN Own[16]; + +f (x, own) + VCRC *x; + OWN *own; +{ + x[own->vcr / 8].vcr[own->vcr % 8].a--; + x[own->vcr / 8].vcr[own->vcr % 8].a = x[own->vcr / 8].vcr[own->vcr % 8].a; +}
931102-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20051207-1.c =================================================================== --- 20051207-1.c (nonexistent) +++ 20051207-1.c (revision 154) @@ -0,0 +1,7 @@ +/* PR target/25268 */ + +long long +foo (long long x, int y) +{ + return x << ((y + 1) & 63); +}
20051207-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 921203-1.c =================================================================== --- 921203-1.c (nonexistent) +++ 921203-1.c (revision 154) @@ -0,0 +1,5 @@ +char dispstr[]; +f() +{ + strcpy(dispstr,"xxxxxxxxxxx"); +}
921203-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920410-2.c =================================================================== --- 920410-2.c (nonexistent) +++ 920410-2.c (revision 154) @@ -0,0 +1,12 @@ +joe() +{ + int j; + + while( 1 ) + { + for( j = 0; j < 4; j++ ) + ; + for( j = 0; j < 4; j++ ) + ; + } +}
920410-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 931004-1.c =================================================================== --- 931004-1.c (nonexistent) +++ 931004-1.c (revision 154) @@ -0,0 +1,8 @@ +#define A "This is a long test that tests the structure initialization" +#define B A,A +#define C B,B,B,B +#define D C,C,C,C +int main() +{ + char *subs[]={ D, D, D, D, D, D, D, D, D, D, D, D, D, D, D}; +}
931004-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050119-1.c =================================================================== --- 20050119-1.c (nonexistent) +++ 20050119-1.c (revision 154) @@ -0,0 +1,25 @@ +void write_char(char); +int len(char*); +void f(char *a) +{ + int col = 0; + int i; + void wchar(char c) + { + if (c == '\t') + { + do { + wchar(' '); + } while ((col%8)!=0); + } + else + { + write_char (c); + col++; + } + } + for(i =0;i
20050119-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040317-3.c =================================================================== --- 20040317-3.c (nonexistent) +++ 20040317-3.c (revision 154) @@ -0,0 +1,11 @@ +I_wacom () +{ + char buffer[50], *p; + int RequestData (char *cmd) + { + p = buffer; + foo (buffer); + } + RequestData (0); +} +
20040317-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 961203-1.c =================================================================== --- 961203-1.c (nonexistent) +++ 961203-1.c (revision 154) @@ -0,0 +1,22 @@ +/* The structure is too large for the xstormy16 - won't fit in 16 + bits. */ +/* { dg-do assemble } */ + +#if __INT_MAX__ >= 2147483647L +struct s { + char a[0x32100000]; + int x:30, y:30; +}; + +int +main () +{ + struct s* p; + + p = (struct s*) 0; + if (p->x == p->y) + exit (1); +} +#else +int g; +#endif
961203-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 981001-3.c =================================================================== --- 981001-3.c (nonexistent) +++ 981001-3.c (revision 154) @@ -0,0 +1,14 @@ +#define P(a, b) P1(a,b) +#define P1(a,b) a##b + +#define FLT_MIN_EXP (-125) +#define DBL_MIN_EXP (-1021) + +#define MIN_EXP P(FLT,_MIN_EXP) + +#define FLT FLT +int f1 = MIN_EXP; + +#undef FLT +#define FLT DBL +int f2 = MIN_EXP;
981001-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr21021.c =================================================================== --- pr21021.c (nonexistent) +++ pr21021.c (revision 154) @@ -0,0 +1,19 @@ +/* PR tree-optimization/21021 + + The front end produces a comparison of mismatched types, namely an + integer and a pointer, causing VRP to compute TYPE_MAX_VALUE for a + pointer, which we cannot. */ + +extern void *bar (void); + +int +foo (unsigned int *p, unsigned int *q) +{ + const void *r = bar (); + + if (r >= (const void *) *p + && r < (const void *) *q) + return 1; + + return 0; +}
pr21021.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: complex-3.c =================================================================== --- complex-3.c (nonexistent) +++ complex-3.c (revision 154) @@ -0,0 +1,17 @@ +/* PR 22116 */ + +void g(_Complex float); +_Complex float f(int data, _Complex float x, _Complex float y) +{ + _Complex float i, t; + if (data) + { + i = x + __imag__ y; + g(i); + } + else + i = 5; + t = x + __imag__ y; + g(t); + return t * i; +}
complex-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 990117-1.c =================================================================== --- 990117-1.c (nonexistent) +++ 990117-1.c (revision 154) @@ -0,0 +1,13 @@ +static void +__bb_init_prg () +{ + const char *p; + + { + unsigned long l; + + (__extension__ (__builtin_constant_p (p) && __builtin_constant_p (l) + ? 5 : 2)); + } + +}
990117-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 991008-1.c =================================================================== --- 991008-1.c (nonexistent) +++ 991008-1.c (revision 154) @@ -0,0 +1,23 @@ +typedef struct { + int x; +} FILE; +extern void fputs (const char *, FILE *); + +int mView; +void foo (FILE * out, int aIndent) +{ + if (0 != mView) { + aIndent++; + aIndent--; + { + int __t = aIndent; + while (--__t >= 0) + fputs (" ", out); + } + + } { + int __t = aIndent; + while (--__t >= 0) + fputs (" ", out); + } +}
991008-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 940718-1.c =================================================================== --- 940718-1.c (nonexistent) +++ 940718-1.c (revision 154) @@ -0,0 +1,7 @@ +extern double log (double) __attribute__ ((const)); + +f (double x) +{ + for (;;) + exp(log(x)); +}
940718-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 990913-1.c =================================================================== --- 990913-1.c (nonexistent) +++ 990913-1.c (revision 154) @@ -0,0 +1,10 @@ + +int f() +{ + unsigned char hrs, min; + + min = ((min / 10) << 4) + min % 10; + hrs = ((hrs / 10) << 4) + hrs % 10; + + return hrs + min; +}
990913-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 990519-1.c =================================================================== --- 990519-1.c (nonexistent) +++ 990519-1.c (revision 154) @@ -0,0 +1,10 @@ + typedef int gboolean; + + typedef struct{ + gboolean names : 1; + gboolean types : 1; + } ParamOptions; + + int p_param(ParamOptions* o){ + return o->types && o->names; + }
990519-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr26833.c =================================================================== --- pr26833.c (nonexistent) +++ pr26833.c (revision 154) @@ -0,0 +1,19 @@ +void yasm_lc3b__parse_insn( int num_info, int *num_operands + , int *operands, int op) +{ + int found = 0; + int i; + for (; num_info>0 && !found; num_info--) + { + int mismatch = 0; + for(i = 0;op && (i<*num_operands)&& !mismatch; i++) + { + if (!(int)(operands[i] & 0x1)) + mismatch = 1; + if (mismatch) + break; + } + if (!mismatch) + found = 1; + } +}
pr26833.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr25861.c =================================================================== --- pr25861.c (nonexistent) +++ pr25861.c (revision 154) @@ -0,0 +1,4 @@ +int f(void *a) +{ + return !(&a); +}
pr25861.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr17906.c =================================================================== --- pr17906.c (nonexistent) +++ pr17906.c (revision 154) @@ -0,0 +1,7 @@ +struct usc_bigstack_t {}; + +void +usc_recressive_func(int cnt, int max, struct usc_bigstack_t bstack) +{ + usc_recressive_func(cnt+1, max, bstack); +}
pr17906.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000802-1.c =================================================================== --- 20000802-1.c (nonexistent) +++ 20000802-1.c (revision 154) @@ -0,0 +1,15 @@ +struct foo { + char a[3]; + char b; + char c; +}; + +struct foo bs; +int x; +char y[3]; + +void bar(void) +{ + memcpy(bs.a, y, 3); + bs.a[1] = ((x ? &bs.b : &bs.c) - (char *)&bs) - 2; +}
20000802-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr27528.c =================================================================== --- pr27528.c (nonexistent) +++ pr27528.c (revision 154) @@ -0,0 +1,40 @@ +/* Check that constant constraints like "i", "n" and "s" can be used in + cases where the operand is an initializer constant. */ +/* { dg-options "-fno-pic" } */ + +int x[2] = { 1, 2 }; + +#ifdef __OPTIMIZE__ +static inline void __attribute__((__always_inline__)) +insn1 (int x) +{ + asm volatile ("" :: "n" (x), "i" (x)); +} + +static inline void __attribute__((__always_inline__)) +insn2 (const void *x) +{ + asm volatile ("" :: "s" (x), "i" (x)); +} +#endif + +void +foo (void) +{ +#ifdef __OPTIMIZE__ + insn1 (2); + insn1 (2); + insn1 (400); + insn1 (__LINE__); + insn2 (x); + insn2 (x); + insn2 (&x[1]); + insn2 ("string"); +#endif + asm volatile ("" :: "s" (x), "i" (x)); + /* At the time of writing, &x[1] is decomposed before reaching expand + when compiling with -O0. */ + asm volatile ("" :: "s" ("string"), "i" ("string")); + asm volatile ("" :: "s" (__FILE__), "i" (__FILE__)); + asm volatile ("" :: "s" (__FUNCTION__), "i" (__FUNCTION__)); +}
pr27528.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020323-1.c =================================================================== --- 20020323-1.c (nonexistent) +++ 20020323-1.c (revision 154) @@ -0,0 +1,26 @@ +/* This testcase caused ICE on powerpc at -O3, because regrename did + not handle match_dup of match_operator if the RTLs were not shared. */ + +struct A +{ + unsigned char *a0, *a1; + int a2; +}; + +void bar (struct A *); + +unsigned int +foo (int x) +{ + struct A a; + unsigned int b; + + if (x < -128 || x > 255 || x == -1) + return 26; + + a.a0 = (unsigned char *) &b; + a.a1 = a.a0 + sizeof (unsigned int); + a.a2 = 0; + bar (&a); + return b; +}
20020323-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000605-1.c =================================================================== --- 20000605-1.c (nonexistent) +++ 20000605-1.c (revision 154) @@ -0,0 +1,22 @@ +/* Copyright (C) 2000 Free Software Foundation */ + +/* make sure we don't get confused by various flavors of void */ + +/* Origin: Jakub Jelinek + * Joel Sherrill + */ + +typedef void foo; +foo bar(void); +void baz(void) +{ + bar(); +} + +void volatile f(); + +int x() +{ + f(); +} +
20000605-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010209-1.c =================================================================== --- 20010209-1.c (nonexistent) +++ 20010209-1.c (revision 154) @@ -0,0 +1,7 @@ +short int a; + +int main (void) +{ + a = 65535.0; + return 0; +}
20010209-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030804-1.c =================================================================== --- 20030804-1.c (nonexistent) +++ 20030804-1.c (revision 154) @@ -0,0 +1,9 @@ +/* Extracted from PR middle-end/11771. */ +/* The following testcase used to ICE without -ffast-math from unbounded + recursion in fold. This was due to the logic in negate_expr_p not + matching that in negate_expr. */ + +double f(double x) { + return -(1 - x) + (x ? -(1 - x) : 0); +} +
20030804-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 931013-1.c =================================================================== --- 931013-1.c (nonexistent) +++ 931013-1.c (revision 154) @@ -0,0 +1,10 @@ +g (); + +f () +{ + long ldata[2]; + int seed; + + seed = (ldata[0]) + (ldata[1] << 16); + g (seed); +}
931013-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20051216-1.c =================================================================== --- 20051216-1.c (nonexistent) +++ 20051216-1.c (revision 154) @@ -0,0 +1,131 @@ +/* PR rtl-optimization/25432 */ + +void *malloc (__SIZE_TYPE__); +void *realloc (void *, __SIZE_TYPE__); + +struct A { double x, y; }; +struct B { double x0, y0, x1, y1; }; +struct C { int n_points; int dir; struct B bbox; struct A *points; }; +struct D { int n_segs; struct C segs[1]; }; + +void foo (int, int, int *, int, int *, struct A **, int *, int *, + struct D *, int *, struct D **, int *, int **); +int baz (struct A, struct A, struct A, struct A); + +static void +bar (struct D *svp, int *n_points_max, + struct A p, int *seg_map, int *active_segs, int i) +{ + int asi, n_points; + struct C *seg; + + asi = seg_map[active_segs[i]]; + seg = &svp->segs[asi]; + n_points = seg->n_points; + seg->points = ((struct A *) + realloc (seg->points, (n_points_max[asi] <<= 1) * sizeof (struct A))); + seg->points[n_points] = p; + seg->bbox.y1 = p.y; + seg->n_points++; +} + +struct D * +test (struct D *vp) +{ + int *active_segs, n_active_segs, *cursor, seg_idx; + double y, share_x; + int tmp1, tmp2, asi, i, j, *n_ips, *n_ips_max, n_segs_max; + struct A **ips, p_curs, *pts; + struct D *new_vp; + int *n_points_max, *seg_map, first_share; + + n_segs_max = 16; + new_vp = (struct D *) malloc (sizeof (struct D) + + (n_segs_max - 1) * sizeof (struct C)); + new_vp->n_segs = 0; + + if (vp->n_segs == 0) + return new_vp; + + active_segs = ((int *) malloc ((vp->n_segs) * sizeof (int))); + cursor = ((int *) malloc ((vp->n_segs) * sizeof (int))); + + seg_map = ((int *) malloc ((vp->n_segs) * sizeof (int))); + n_ips = ((int *) malloc ((vp->n_segs) * sizeof (int))); + n_ips_max = ((int *) malloc ((vp->n_segs) * sizeof (int))); + ips = ((struct A * *) malloc ((vp->n_segs) * sizeof (struct A *))); + + n_points_max = ((int *) malloc ((n_segs_max) * sizeof (int))); + + n_active_segs = 0; + seg_idx = 0; + y = vp->segs[0].points[0].y; + while (seg_idx < vp->n_segs || n_active_segs > 0) + { + for (i = 0; i < n_active_segs; i++) + { + asi = active_segs[i]; + if (vp->segs[asi].n_points - 1 == cursor[asi] && + vp->segs[asi].points[cursor[asi]].y == y) + i--; + } + + while (seg_idx < vp->n_segs && y == vp->segs[seg_idx].points[0].y) + { + cursor[seg_idx] = 0; + n_ips[seg_idx] = 1; + n_ips_max[seg_idx] = 2; + ips[seg_idx] = + ((struct A *) malloc ((n_ips_max[seg_idx]) * sizeof (struct A))); + ips[seg_idx][0] = vp->segs[seg_idx].points[0]; + pts = ((struct A *) malloc ((16) * sizeof (struct A))); + pts[0] = vp->segs[seg_idx].points[0]; + tmp1 = seg_idx; + for (j = i; j < n_active_segs; j++) + { + tmp2 = active_segs[j]; + active_segs[j] = tmp1; + tmp1 = tmp2; + } + active_segs[n_active_segs] = tmp1; + n_active_segs++; + seg_idx++; + } + first_share = -1; + share_x = 0; + + for (i = 0; i < n_active_segs; i++) + { + asi = active_segs[i]; + p_curs = ips[asi][1]; + if (p_curs.y == y) + { + bar (new_vp, n_points_max, + p_curs, seg_map, active_segs, i); + + n_ips[asi]--; + for (j = 0; j < n_ips[asi]; j++) + ips[asi][j] = ips[asi][j + 1]; + + if (first_share < 0 || p_curs.x != share_x) + { + foo (first_share, i, + active_segs, n_active_segs, + cursor, ips, n_ips, n_ips_max, vp, seg_map, + &new_vp, &n_segs_max, &n_points_max); + first_share = i; + share_x = p_curs.x; + } + } + else + { + foo (first_share, i, + active_segs, n_active_segs, + cursor, ips, n_ips, n_ips_max, vp, seg_map, + &new_vp, &n_segs_max, &n_points_max); + first_share = -1; + } + } + } + return new_vp; +}
20051216-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr27889.c =================================================================== --- pr27889.c (nonexistent) +++ pr27889.c (revision 154) @@ -0,0 +1,11 @@ +void h(void (*)(void)); +_Complex int g (void) +{ + _Complex int x; + void f(void) + { + x = x + x; + } + h(f); + return x; +}
pr27889.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920723-1.c =================================================================== --- 920723-1.c (nonexistent) +++ 920723-1.c (revision 154) @@ -0,0 +1,31 @@ +#if defined(STACK_SIZE) && STACK_SIZE < 65536 +# define GITT_SIZE 75 +#endif + +#ifndef GITT_SIZE +# define GITT_SIZE 150 +#endif + +typedef struct { + double x, y; +} vector_t; +double sqrt(); +f(int count,vector_t*pos,double r,double *rho) +{ + int i, j, miny, maxy, hy; + float help, d; + int gitt[GITT_SIZE][GITT_SIZE]; + int *data = (int *)malloc(count*sizeof(int)); + for (i = 0; i < count; i++) + rho[i] = 0; + for (i = 1; i < count; i++) + for (hy = miny; hy<= maxy; hy++) + while(j >=0) { + d = pos[i].y - pos[j].y; + if ( d <= r) { + d = sqrt(d); + rho[i] += help; + } + } +} +
920723-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20060609-1.c =================================================================== --- 20060609-1.c (nonexistent) +++ 20060609-1.c (revision 154) @@ -0,0 +1,7 @@ +/* This test used to ICE on IA64. */ +int __strspn_c2 (__const char *__s, int __accept1, int __accept2) +{ + register long unsigned int __result = 0; + while (__s[__result] == __accept1 || __s[__result] == __accept2) + return __result; +}
20060609-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920821-2.c =================================================================== --- 920821-2.c (nonexistent) +++ 920821-2.c (revision 154) @@ -0,0 +1,4 @@ +typedef struct{int p[25];}t1; +struct{t1 x,y;}y; +t1 x[1]; +f(){y.x=*x;y.y=*x;}
920821-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930506-2.c =================================================================== --- 930506-2.c (nonexistent) +++ 930506-2.c (revision 154) @@ -0,0 +1,15 @@ +#ifndef NO_TRAMPOLINES +int f1() +{ + { int ___() { foo(1); } bar(___); } + return( { int ___() { foo(2); } bar(___);} ); +} + +int f2(int j) +{ + { int ___() { foo(j); } bar(___); } + return( { int ___() { foo(j); } bar(___);} ); +} +#else +int x; +#endif
930506-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 941019-1.c =================================================================== --- 941019-1.c (nonexistent) +++ 941019-1.c (revision 154) @@ -0,0 +1 @@ +__complex__ long double sub (__complex__ long double cld) { return cld; }
941019-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 991214-1.c =================================================================== --- 991214-1.c (nonexistent) +++ 991214-1.c (revision 154) @@ -0,0 +1,11 @@ +void foo(double bar[], double *zp, int n) +{ + int i, j; + + i = 0; + for(j = 0; j < n; j++) + { + i += j+1; + bar[i] *= (1.0 + *zp); + } +}
991214-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr21030.c =================================================================== --- pr21030.c (nonexistent) +++ pr21030.c (revision 154) @@ -0,0 +1,19 @@ +/* PR tree-optimization/21030 + VRP used to create invalid ranges where VR->MIN is greater than + VR->MAX. */ + +void +foo (int unit) +{ + int i; + + for (i = 0; unit; i++, unit--) + { + if (i >= 0) + { + int j = i; + while (j) + j--; + } + } +}
pr21030.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: acc1.c =================================================================== --- acc1.c (nonexistent) +++ acc1.c (revision 154) @@ -0,0 +1,21 @@ +/* { dg-options "-O2 -ffast-math" } */ + +/* Fast maths allows tail recursion to be turned into iteration. */ + +double +foo (int n, double f) +{ + if (n == 0) + return f; + else + return f + foo (n - 1, f); +} + +double +bar (int n, double f) +{ + if (n == 0) + return f; + else + return f * bar (n - 1, f); +}
acc1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 950922-1.c =================================================================== --- 950922-1.c (nonexistent) +++ 950922-1.c (revision 154) @@ -0,0 +1,68 @@ +struct sw { + const void *x; + int r; +}; +struct sq { + struct sw *q_w; + int t; + int z; +}; + +int +f (int ch, char *fp, char *ap) +{ + register int n; + register char *cp; + register struct sw *p; + register int f; + int prec; + double _double; + int expt; + int ndig; + char expstr[7]; + unsigned long long _uquad; + struct sq q; + struct sw w[8]; + static char zeroes[16]; + + for (;;) { + switch (ch) { + case 'd': + _double = (double) (ap += 8, *((double *) (ap - 8))); + break; + case 'o': + goto nosign; + case 'u': + _uquad = (f & 0x020 ? (ap += 8, *((long long *) (ap - 8))) : f & 0x010 ? (ap += 4, *((long *) (ap - 4))) : f & 0x040 ? (long)(short)(ap += 4, *((int *) (ap - 4))) : (long)(ap += 4, *((int *) (ap - 4)))); + goto nosign; + case 'x': + _uquad = (f & 0x020 ? (ap += 8, *((long long *) (ap - 8))) : f & 0x010 ? (ap += 4, *((long *) (ap - 4))) : f & 0x040 ? (long)(unsigned short)(ap += 4, *((int *) (ap - 4))) : (long)(ap += 4, *((int *) (ap - 4)))); + nosign: + if (_uquad != 0 || prec != 0); + break; + default:; + } + if ((f & 0x100) == 0) { + } else { + if (ch >= 'f') { + if (_double == 0) { + if (expt < ndig || (f & 0x001) != 0) { + { if ((n = (ndig - 1)) > 0) { while (n > 16) {{ p->x = (zeroes); p->r = 16; q.z += 16; p++; if (++q.t >= 8) { if (g(fp, &q)) goto error; p = w; }} n -= 16; }{ p->x = (zeroes); p->r = n; q.z += n; p++; if (++q.t >= 8) { if (g(fp, &q)) goto error; p = w; }}}} + } + } else if (expt <= 0) { + { p->x = ("0"); p->r = 1; q.z += 1; p++; if (++q.t >= 8) { if (g(fp, &q)) goto error; p = w; }} + { p->x = 0; p->r = 1; q.z += 1; p++; if (++q.t >= 8) { if (g(fp, &q)) goto error; p = w; }} + { if ((n = (-expt)) > 0) { while (n > 16) {{ p->x = (zeroes); p->r = 16; q.z += 16; p++; if (++q.t >= 8) { if (g(fp, &q)) goto error; p = w; }} n -= 16; }{ p->x = (zeroes); p->r = n; q.z += n; p++; if (++q.t >= 8) { if (g(fp, &q)) goto error; p = w; }} }} + { p->x = cp; p->r = ndig; q.z += ndig; p++; if (++q.t >= 8) { if (g(fp, &q)) goto error; p = w; }} + } else { + { p->x = cp; p->r = expt; q.z += expt; p++; if (++q.t >= 8) { if (g(fp, &q)) goto error; p = w; }} + cp += expt; + { p->x = ("."); p->r = 1; q.z += 1; p++; if (++q.t >= 8) { if (g(fp, &q)) goto error; p = w; }} + { p->x = cp; p->r = (ndig-expt); q.z += (ndig-expt); p++; if (++q.t >= 8) { if (g(fp, &q)) goto error; p = w; }} + } + } + } + } + + error:; +}
950922-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 991213-3.c =================================================================== --- 991213-3.c (nonexistent) +++ 991213-3.c (revision 154) @@ -0,0 +1,2 @@ +int jump () { goto * (int (*) ()) 0xbabebec0; } +
991213-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr20203.c =================================================================== --- pr20203.c (nonexistent) +++ pr20203.c (revision 154) @@ -0,0 +1,16 @@ +void *memset (void *, int, unsigned long); + +typedef struct bfd_section +{ + unsigned long size; + unsigned char *contents; +} asection; + +int +_bfd_mips_elf_finish_dynamic_sections (asection *s) +{ + long long dummy_offset; + dummy_offset = s->size - 16; + memset (s->contents + dummy_offset, 0, 16); + return 1; +}
pr20203.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930926-1.c =================================================================== --- 930926-1.c (nonexistent) +++ 930926-1.c (revision 154) @@ -0,0 +1,7 @@ +int f () { return 0; } + +void +test () +{ + int j = { f() }; +}
930926-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: sync-1.c =================================================================== --- sync-1.c (nonexistent) +++ sync-1.c (revision 154) @@ -0,0 +1,276 @@ +/* Validate that each of the __sync builtins compiles. This won't + necessarily link, since the target might not support the builtin, + so this may result in external library calls. */ + +signed char sc; +unsigned char uc; +signed short ss; +unsigned short us; +signed int si; +unsigned int ui; +signed long sl; +unsigned long ul; +signed long long sll; +unsigned long long ull; +void *vp; +int *ip; +struct S { struct S *next; int x; } *sp; + +void test_op_ignore (void) +{ + (void) __sync_fetch_and_add (&sc, 1); + (void) __sync_fetch_and_add (&uc, 1); + (void) __sync_fetch_and_add (&ss, 1); + (void) __sync_fetch_and_add (&us, 1); + (void) __sync_fetch_and_add (&si, 1); + (void) __sync_fetch_and_add (&ui, 1); + (void) __sync_fetch_and_add (&sl, 1); + (void) __sync_fetch_and_add (&ul, 1); + (void) __sync_fetch_and_add (&sll, 1); + (void) __sync_fetch_and_add (&ull, 1); + + (void) __sync_fetch_and_sub (&sc, 1); + (void) __sync_fetch_and_sub (&uc, 1); + (void) __sync_fetch_and_sub (&ss, 1); + (void) __sync_fetch_and_sub (&us, 1); + (void) __sync_fetch_and_sub (&si, 1); + (void) __sync_fetch_and_sub (&ui, 1); + (void) __sync_fetch_and_sub (&sl, 1); + (void) __sync_fetch_and_sub (&ul, 1); + (void) __sync_fetch_and_sub (&sll, 1); + (void) __sync_fetch_and_sub (&ull, 1); + + (void) __sync_fetch_and_or (&sc, 1); + (void) __sync_fetch_and_or (&uc, 1); + (void) __sync_fetch_and_or (&ss, 1); + (void) __sync_fetch_and_or (&us, 1); + (void) __sync_fetch_and_or (&si, 1); + (void) __sync_fetch_and_or (&ui, 1); + (void) __sync_fetch_and_or (&sl, 1); + (void) __sync_fetch_and_or (&ul, 1); + (void) __sync_fetch_and_or (&sll, 1); + (void) __sync_fetch_and_or (&ull, 1); + + (void) __sync_fetch_and_xor (&sc, 1); + (void) __sync_fetch_and_xor (&uc, 1); + (void) __sync_fetch_and_xor (&ss, 1); + (void) __sync_fetch_and_xor (&us, 1); + (void) __sync_fetch_and_xor (&si, 1); + (void) __sync_fetch_and_xor (&ui, 1); + (void) __sync_fetch_and_xor (&sl, 1); + (void) __sync_fetch_and_xor (&ul, 1); + (void) __sync_fetch_and_xor (&sll, 1); + (void) __sync_fetch_and_xor (&ull, 1); + + (void) __sync_fetch_and_and (&sc, 1); + (void) __sync_fetch_and_and (&uc, 1); + (void) __sync_fetch_and_and (&ss, 1); + (void) __sync_fetch_and_and (&us, 1); + (void) __sync_fetch_and_and (&si, 1); + (void) __sync_fetch_and_and (&ui, 1); + (void) __sync_fetch_and_and (&sl, 1); + (void) __sync_fetch_and_and (&ul, 1); + (void) __sync_fetch_and_and (&sll, 1); + (void) __sync_fetch_and_and (&ull, 1); + + (void) __sync_fetch_and_nand (&sc, 1); + (void) __sync_fetch_and_nand (&uc, 1); + (void) __sync_fetch_and_nand (&ss, 1); + (void) __sync_fetch_and_nand (&us, 1); + (void) __sync_fetch_and_nand (&si, 1); + (void) __sync_fetch_and_nand (&ui, 1); + (void) __sync_fetch_and_nand (&sl, 1); + (void) __sync_fetch_and_nand (&ul, 1); + (void) __sync_fetch_and_nand (&sll, 1); + (void) __sync_fetch_and_nand (&ull, 1); +} + +void test_fetch_and_op (void) +{ + sc = __sync_fetch_and_add (&sc, 11); + uc = __sync_fetch_and_add (&uc, 11); + ss = __sync_fetch_and_add (&ss, 11); + us = __sync_fetch_and_add (&us, 11); + si = __sync_fetch_and_add (&si, 11); + ui = __sync_fetch_and_add (&ui, 11); + sl = __sync_fetch_and_add (&sl, 11); + ul = __sync_fetch_and_add (&ul, 11); + sll = __sync_fetch_and_add (&sll, 11); + ull = __sync_fetch_and_add (&ull, 11); + + sc = __sync_fetch_and_sub (&sc, 11); + uc = __sync_fetch_and_sub (&uc, 11); + ss = __sync_fetch_and_sub (&ss, 11); + us = __sync_fetch_and_sub (&us, 11); + si = __sync_fetch_and_sub (&si, 11); + ui = __sync_fetch_and_sub (&ui, 11); + sl = __sync_fetch_and_sub (&sl, 11); + ul = __sync_fetch_and_sub (&ul, 11); + sll = __sync_fetch_and_sub (&sll, 11); + ull = __sync_fetch_and_sub (&ull, 11); + + sc = __sync_fetch_and_or (&sc, 11); + uc = __sync_fetch_and_or (&uc, 11); + ss = __sync_fetch_and_or (&ss, 11); + us = __sync_fetch_and_or (&us, 11); + si = __sync_fetch_and_or (&si, 11); + ui = __sync_fetch_and_or (&ui, 11); + sl = __sync_fetch_and_or (&sl, 11); + ul = __sync_fetch_and_or (&ul, 11); + sll = __sync_fetch_and_or (&sll, 11); + ull = __sync_fetch_and_or (&ull, 11); + + sc = __sync_fetch_and_xor (&sc, 11); + uc = __sync_fetch_and_xor (&uc, 11); + ss = __sync_fetch_and_xor (&ss, 11); + us = __sync_fetch_and_xor (&us, 11); + si = __sync_fetch_and_xor (&si, 11); + ui = __sync_fetch_and_xor (&ui, 11); + sl = __sync_fetch_and_xor (&sl, 11); + ul = __sync_fetch_and_xor (&ul, 11); + sll = __sync_fetch_and_xor (&sll, 11); + ull = __sync_fetch_and_xor (&ull, 11); + + sc = __sync_fetch_and_and (&sc, 11); + uc = __sync_fetch_and_and (&uc, 11); + ss = __sync_fetch_and_and (&ss, 11); + us = __sync_fetch_and_and (&us, 11); + si = __sync_fetch_and_and (&si, 11); + ui = __sync_fetch_and_and (&ui, 11); + sl = __sync_fetch_and_and (&sl, 11); + ul = __sync_fetch_and_and (&ul, 11); + sll = __sync_fetch_and_and (&sll, 11); + ull = __sync_fetch_and_and (&ull, 11); + + sc = __sync_fetch_and_nand (&sc, 11); + uc = __sync_fetch_and_nand (&uc, 11); + ss = __sync_fetch_and_nand (&ss, 11); + us = __sync_fetch_and_nand (&us, 11); + si = __sync_fetch_and_nand (&si, 11); + ui = __sync_fetch_and_nand (&ui, 11); + sl = __sync_fetch_and_nand (&sl, 11); + ul = __sync_fetch_and_nand (&ul, 11); + sll = __sync_fetch_and_nand (&sll, 11); + ull = __sync_fetch_and_nand (&ull, 11); +} + +void test_op_and_fetch (void) +{ + sc = __sync_add_and_fetch (&sc, uc); + uc = __sync_add_and_fetch (&uc, uc); + ss = __sync_add_and_fetch (&ss, uc); + us = __sync_add_and_fetch (&us, uc); + si = __sync_add_and_fetch (&si, uc); + ui = __sync_add_and_fetch (&ui, uc); + sl = __sync_add_and_fetch (&sl, uc); + ul = __sync_add_and_fetch (&ul, uc); + sll = __sync_add_and_fetch (&sll, uc); + ull = __sync_add_and_fetch (&ull, uc); + + sc = __sync_sub_and_fetch (&sc, uc); + uc = __sync_sub_and_fetch (&uc, uc); + ss = __sync_sub_and_fetch (&ss, uc); + us = __sync_sub_and_fetch (&us, uc); + si = __sync_sub_and_fetch (&si, uc); + ui = __sync_sub_and_fetch (&ui, uc); + sl = __sync_sub_and_fetch (&sl, uc); + ul = __sync_sub_and_fetch (&ul, uc); + sll = __sync_sub_and_fetch (&sll, uc); + ull = __sync_sub_and_fetch (&ull, uc); + + sc = __sync_or_and_fetch (&sc, uc); + uc = __sync_or_and_fetch (&uc, uc); + ss = __sync_or_and_fetch (&ss, uc); + us = __sync_or_and_fetch (&us, uc); + si = __sync_or_and_fetch (&si, uc); + ui = __sync_or_and_fetch (&ui, uc); + sl = __sync_or_and_fetch (&sl, uc); + ul = __sync_or_and_fetch (&ul, uc); + sll = __sync_or_and_fetch (&sll, uc); + ull = __sync_or_and_fetch (&ull, uc); + + sc = __sync_xor_and_fetch (&sc, uc); + uc = __sync_xor_and_fetch (&uc, uc); + ss = __sync_xor_and_fetch (&ss, uc); + us = __sync_xor_and_fetch (&us, uc); + si = __sync_xor_and_fetch (&si, uc); + ui = __sync_xor_and_fetch (&ui, uc); + sl = __sync_xor_and_fetch (&sl, uc); + ul = __sync_xor_and_fetch (&ul, uc); + sll = __sync_xor_and_fetch (&sll, uc); + ull = __sync_xor_and_fetch (&ull, uc); + + sc = __sync_and_and_fetch (&sc, uc); + uc = __sync_and_and_fetch (&uc, uc); + ss = __sync_and_and_fetch (&ss, uc); + us = __sync_and_and_fetch (&us, uc); + si = __sync_and_and_fetch (&si, uc); + ui = __sync_and_and_fetch (&ui, uc); + sl = __sync_and_and_fetch (&sl, uc); + ul = __sync_and_and_fetch (&ul, uc); + sll = __sync_and_and_fetch (&sll, uc); + ull = __sync_and_and_fetch (&ull, uc); + + sc = __sync_nand_and_fetch (&sc, uc); + uc = __sync_nand_and_fetch (&uc, uc); + ss = __sync_nand_and_fetch (&ss, uc); + us = __sync_nand_and_fetch (&us, uc); + si = __sync_nand_and_fetch (&si, uc); + ui = __sync_nand_and_fetch (&ui, uc); + sl = __sync_nand_and_fetch (&sl, uc); + ul = __sync_nand_and_fetch (&ul, uc); + sll = __sync_nand_and_fetch (&sll, uc); + ull = __sync_nand_and_fetch (&ull, uc); +} + +void test_compare_and_swap (void) +{ + sc = __sync_val_compare_and_swap (&sc, uc, sc); + uc = __sync_val_compare_and_swap (&uc, uc, sc); + ss = __sync_val_compare_and_swap (&ss, uc, sc); + us = __sync_val_compare_and_swap (&us, uc, sc); + si = __sync_val_compare_and_swap (&si, uc, sc); + ui = __sync_val_compare_and_swap (&ui, uc, sc); + sl = __sync_val_compare_and_swap (&sl, uc, sc); + ul = __sync_val_compare_and_swap (&ul, uc, sc); + sll = __sync_val_compare_and_swap (&sll, uc, sc); + ull = __sync_val_compare_and_swap (&ull, uc, sc); + + ui = __sync_bool_compare_and_swap (&sc, uc, sc); + ui = __sync_bool_compare_and_swap (&uc, uc, sc); + ui = __sync_bool_compare_and_swap (&ss, uc, sc); + ui = __sync_bool_compare_and_swap (&us, uc, sc); + ui = __sync_bool_compare_and_swap (&si, uc, sc); + ui = __sync_bool_compare_and_swap (&ui, uc, sc); + ui = __sync_bool_compare_and_swap (&sl, uc, sc); + ui = __sync_bool_compare_and_swap (&ul, uc, sc); + ui = __sync_bool_compare_and_swap (&sll, uc, sc); + ui = __sync_bool_compare_and_swap (&ull, uc, sc); +} + +void test_lock (void) +{ + sc = __sync_lock_test_and_set (&sc, 1); + uc = __sync_lock_test_and_set (&uc, 1); + ss = __sync_lock_test_and_set (&ss, 1); + us = __sync_lock_test_and_set (&us, 1); + si = __sync_lock_test_and_set (&si, 1); + ui = __sync_lock_test_and_set (&ui, 1); + sl = __sync_lock_test_and_set (&sl, 1); + ul = __sync_lock_test_and_set (&ul, 1); + sll = __sync_lock_test_and_set (&sll, 1); + ull = __sync_lock_test_and_set (&ull, 1); + + __sync_synchronize (); + + __sync_lock_release (&sc); + __sync_lock_release (&uc); + __sync_lock_release (&ss); + __sync_lock_release (&us); + __sync_lock_release (&si); + __sync_lock_release (&ui); + __sync_lock_release (&sl); + __sync_lock_release (&ul); + __sync_lock_release (&sll); + __sync_lock_release (&ull); +}
sync-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920928-1.c =================================================================== --- 920928-1.c (nonexistent) +++ 920928-1.c (revision 154) @@ -0,0 +1,2 @@ +struct{int c;}v; +static long i=((char*)&(v.c)-(char*)&v);
920928-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr23237.c =================================================================== --- pr23237.c (nonexistent) +++ pr23237.c (revision 154) @@ -0,0 +1,16 @@ +/* Don't assemble, as this section syntax may not be valid on all platforms + (e.g., Darwin). */ +/* { dg-do compile } */ + +/* { dg-require-effective-target named_sections } */ + +static __attribute__ ((__section__ (".init.data"))) char *message; +static __attribute__ ((__section__ (".init.data"))) int (*actions[])(void) = {}; +void unpack_to_rootfs(void) +{ + while (!message) + { + if(!actions[0]) + return; + } +}
pr23237.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr21293.c =================================================================== --- pr21293.c (nonexistent) +++ pr21293.c (revision 154) @@ -0,0 +1,12 @@ +/* Testcase from Dale Johannesen . */ +struct { +double x[1]; +} g; +void k( double *, double*); +void h(int Tmp8) +{ + int i; + for(i = 1;i <= Tmp8;i++) + k(&g.x[ + -1],&g.x[ Tmp8 + -1]); +} +
pr21293.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920501-17.c =================================================================== --- 920501-17.c (nonexistent) +++ 920501-17.c (revision 154) @@ -0,0 +1 @@ +x(){static const char x[]="x";char y[2];y[0]=x[1];}
920501-17.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000211-3.c =================================================================== --- 20000211-3.c (nonexistent) +++ 20000211-3.c (revision 154) @@ -0,0 +1,10 @@ +void f_clos(int x) + +{ + switch(x) { + default: + mumble:; + } +} + +
20000211-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr27571.c =================================================================== --- pr27571.c (nonexistent) +++ pr27571.c (revision 154) @@ -0,0 +1,27 @@ +/* PR target/27571 + alpha_does_function_need_gp did not properly skip jump table insns */ + +int r3isseparator(int); +void r3isdigit(int); +void r3decimalvalue(int); + +void r7todouble(int *storage, int *count) { + int i = 0; + int state = 0; + int cc = 0; + while (i > *count) { + cc = *storage; + switch (state) { + case 0: + if (r3isseparator(cc)) + state = 1; + case 1: + r3isdigit(cc); + case 2: + case 5: + case 6: + r3decimalvalue(cc); + } + i++; + } +}
pr27571.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050210-1.c =================================================================== --- 20050210-1.c (nonexistent) +++ 20050210-1.c (revision 154) @@ -0,0 +1,8 @@ +/* PR middle-end/19858 */ + +typedef __SIZE_TYPE__ size_t; +union U { int c; } foo; +int bar (void) +{ + return !(((size_t) &foo & 3) == 0 && !((size_t) &foo & 1)); +}
20050210-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030330-1.c =================================================================== --- 20030330-1.c (nonexistent) +++ 20030330-1.c (revision 154) @@ -0,0 +1,7 @@ +/* PR c/10083 */ +/* This will result in a very small constant for umul_highpart, which + uncovered a bug in the Alpha machine description. */ + +unsigned long f(unsigned long x) { + return x % 0x3fffffffffffffff; +}
20030330-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr16566-3.c =================================================================== --- pr16566-3.c (nonexistent) +++ pr16566-3.c (revision 154) @@ -0,0 +1,12 @@ +/* ICE with flexible arrays in non-lvalue structures. Bug 16566 + (testcase from duplicate bug 16575). */ + +struct S; +struct C { + int i; + struct S *tab[]; +}; +struct S { struct C c; }; +void foo (struct S *x) { + ((void)1, x->c).tab[0] = 0; +}
pr16566-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031203-2.c =================================================================== --- 20031203-2.c (nonexistent) +++ 20031203-2.c (revision 154) @@ -0,0 +1,6 @@ +/* Don't ICE on stupid user tricks. */ + +int foo(int bar) +{ + return (&bar)[-1]; +}
20031203-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: cmpdi-1.c =================================================================== --- cmpdi-1.c (nonexistent) +++ cmpdi-1.c (revision 154) @@ -0,0 +1,15 @@ +f (long long d) +{ + int i = 0; + if (d == 1) + i = 1; + return i; +} + +g (long long d) +{ + int i = 0; + if (d <= 0) + i = 1; + return i; +}
cmpdi-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031023-3.c =================================================================== --- 20031023-3.c (nonexistent) +++ 20031023-3.c (revision 154) @@ -0,0 +1,2 @@ +#define ASIZE 0x100000000UL +#include "20031023-1.c"
20031023-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: simd-2.c =================================================================== --- simd-2.c (nonexistent) +++ simd-2.c (revision 154) @@ -0,0 +1,17 @@ +typedef float floatvect2 __attribute__((vector_size (8))); + +typedef union +{ + floatvect2 vector; + float f[2]; +}resfloatvect2; + +void tempf(float *x, float *y) +{ + floatvect2 temp={x[0],x[1]}; + floatvect2 temp1={y[0],y[1]}; + resfloatvect2 temp2; + temp2.vector=temp+temp1; + x[0]=temp2.f[0]; + x[1]=temp2.f[1]; +}
simd-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20011109-1.c =================================================================== --- 20011109-1.c (nonexistent) +++ 20011109-1.c (revision 154) @@ -0,0 +1,51 @@ +typedef struct { short x[4]; } S; +typedef struct { unsigned int a, b, c; S *d; } T; + +S *(*foo) (T *, int, int, int, int); +unsigned short *(*bar)(const T *); +unsigned short baz(T *,const int); + +T *die (void) +{ + typedef struct { unsigned int a, b, e; double f, g; } U; + + char h[8], i[2053], j[2053]; + double k, l, m; + U n; + T *o; + unsigned short p; + int q, r; + long s; + unsigned short *t; + S *u; + unsigned char *v, *w; + unsigned int x; + + o = 0; + for (x = 0; x < n.e; x++) + { + l = 1.0; + if (n.g - n.f <= 1.0) + l = ((1 << o->c) - 1) / (n.g - n.f); + v = w; + for (r = o->b - 1; r >= 0; r--) + { + u = foo (o, 0, r, o->a, 1); + if (!u) + break; + t = bar (o); + for (q = 0; q < (int) o->a; q++) + { + h[0] = *v; + s = *v++; + k = (double) s; + m = l*k; + p = m < 0 ? 0 : m > (1 << o->c) - 1 ? (1 << o->c) - 1 : m + 0.5; + p = baz (o,p); + t[q] = p; + *u++ = o->d[p]; + } + } + } + return o; +}
20011109-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040730-1.c =================================================================== --- 20040730-1.c (nonexistent) +++ 20040730-1.c (revision 154) @@ -0,0 +1,17 @@ +/* PR tree-opt/16827 + This used to ICE in tree-ssa-loop-im.c */ + +extern unsigned short dev_roles[]; +void super_1_sync(int *rdev2) +{ + int i; + int max_dev = 0; + + for (i =0;i<20;i++) + if (rdev2[i] > max_dev) + max_dev = rdev2[i]; + + for (i=0; i
20040730-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040614-1.c =================================================================== --- 20040614-1.c (nonexistent) +++ 20040614-1.c (revision 154) @@ -0,0 +1,20 @@ +#ifndef NO_LABEL_VALUES +void f(int r1, int *fp) +{ + void *hlbl_tbl[] = { &&label1 }; + goto *hlbl_tbl[r1]; + *fp = 0; + label0: + fp += 8; + label1: + *fp = 0; + if (r1) + goto label2; + if (r1) + goto label0; + label2: + ; +} +#else +int x; +#endif
20040614-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 921024-1.c =================================================================== --- 921024-1.c (nonexistent) +++ 921024-1.c (revision 154) @@ -0,0 +1,9 @@ +long long f(s,r) +{ + return *(long long*)(s+r); +} + +g(s,r) +{ + *(long long*)(s+r)=0; +}
921024-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 921203-2.c =================================================================== --- 921203-2.c (nonexistent) +++ 921203-2.c (revision 154) @@ -0,0 +1,13 @@ +typedef struct +{ + char x; +} s1; + +s1 f (int arg0,...) +{ + int args; + s1 back; + va_start (args, arg0); + va_end (args); + return back; +}
921203-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: labels-1.c =================================================================== --- labels-1.c (nonexistent) +++ labels-1.c (revision 154) @@ -0,0 +1,13 @@ +#ifndef NO_LABEL_VALUES +f () +{ + void *x = &&L2; + if (&&L3 - &&L1 > 1) + abort(); + L1: return 1; + L2: abort (); + L3:; +} +#else +int x; +#endif
labels-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 950610-1.c =================================================================== --- 950610-1.c (nonexistent) +++ 950610-1.c (revision 154) @@ -0,0 +1 @@ +f (int n, int a[2][n]) {}
950610-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 981001-4.c =================================================================== --- 981001-4.c (nonexistent) +++ 981001-4.c (revision 154) @@ -0,0 +1,14 @@ +#define P(a,b) P1(a,b) +#define P1(a,b) a##b + +#define ONCE(x, y) (x ?: (x = y())) +#define PREFIX + +extern int P(PREFIX, init) (void); + +int +fun(void) +{ + static int memo; + return ONCE(memo, P(PREFIX, init)); +}
981001-4.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20070419-1.c =================================================================== --- 20070419-1.c (nonexistent) +++ 20070419-1.c (revision 154) @@ -0,0 +1,17 @@ +/* PR tree-optimization/31632 */ + +struct S +{ + long int l; + void *m; +}; + +int +foo (struct S *x) +{ + unsigned long a; + a = x->l; + if (a <= ((void *) 0)) + x->m = 0; + return 0; +}
20070419-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 991026-1.c =================================================================== --- 991026-1.c (nonexistent) +++ 991026-1.c (revision 154) @@ -0,0 +1,13 @@ +void something_f(float); + +int foo(void) +{ + union + { + float f; + double d; + } u, *pu = &u; + + u.f = 1.0; + something_f(u.f); +}
991026-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 950618-1.c =================================================================== --- 950618-1.c (nonexistent) +++ 950618-1.c (revision 154) @@ -0,0 +1,2 @@ +static __inline__ int f () { return g (); } +int g () { return f (); }
950618-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr26213.c =================================================================== --- pr26213.c (nonexistent) +++ pr26213.c (revision 154) @@ -0,0 +1,15 @@ +void +xnanosleep (_Bool overflow) +{ + struct { int tv_nsec; } ts_sleep; + if (0 <= ts_sleep.tv_nsec) + overflow |= 1; + + for (;;) + { + if (overflow) + ts_sleep.tv_nsec = 0; + if (foo (ts_sleep)) + break; + } +}
pr26213.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr27341-1.c =================================================================== --- pr27341-1.c (nonexistent) +++ pr27341-1.c (revision 154) @@ -0,0 +1,7 @@ +extern double R_NaReal; +void z_atan2 (double _Complex * r, double _Complex * ccs) +{ + if (*ccs == 0) + __imag__ *r = R_NaReal; +} +
pr27341-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr25224.c =================================================================== --- pr25224.c (nonexistent) +++ pr25224.c (revision 154) @@ -0,0 +1,20 @@ +/* { dg-options "-funswitch-loops" } */ +static float rgam; +extern void *jmp(void *); + +void drotmg(float d1) { +void *labels[] = { &&L170, &&L180, 0 }; + + for(;;) { + goto *jmp(labels); + if (d1 <= rgam) + goto L170; + +L170: + if (d1 <= rgam) + goto L170; + } + +L180: + goto L170; +}
pr25224.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr21562.c =================================================================== --- pr21562.c (nonexistent) +++ pr21562.c (revision 154) @@ -0,0 +1,25 @@ +/* { dg-options "-O3 -fno-inline" } */ +struct foo { int a, b, c; }; +void abort(void); +void exit(int); + +void +brother (int a, int b, int c) +{ + if (a) + abort (); +} + +void +sister (struct foo f, int b, int c) +{ + brother ((f.b == b), b, c); +} + +int +main () +{ + struct foo f = { 7, 8, 9 }; + sister (f, 1, 2); + exit (0); +}
pr21562.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000105-1.c =================================================================== --- 20000105-1.c (nonexistent) +++ 20000105-1.c (revision 154) @@ -0,0 +1,27 @@ +main(int na, char* argv[]) +{ + int wflg = 0, tflg = 0; + int dflg = 0; + exit(0); + while(1) + { + switch(argv[1][0]) + { + help: + exit(0); + case 'w': + case 'W': + wflg = 1; + break; + case 't': + case 'T': + tflg = 1; + break; + case 'd': + dflg = 1; + break; + } + } +} + +
20000105-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: fix-trunc-mem-1.c =================================================================== --- fix-trunc-mem-1.c (nonexistent) +++ fix-trunc-mem-1.c (revision 154) @@ -0,0 +1,12 @@ +/* PR target/14201 */ +/* Excercise float -> integer in memory patterns. */ +/* { dg-options "-mieee" { target alpha*-*-* } } */ + +void f1 (float v, int *p) { *p = v; } +void f2 (float v, unsigned int*p) { *p = v; } +void f3 (float v, long long *p) { *p = v; } +void f4 (float v, unsigned long long *p) { *p = v; } +void f5 (double v, int *p) { *p = v; } +void f6 (double v, unsigned int *p) { *p = v; } +void f7 (double v, long long *p) { *p = v; } +void f8 (double v, unsigned long long *p) { *p = v; }
fix-trunc-mem-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010227-1.c =================================================================== --- 20010227-1.c (nonexistent) +++ 20010227-1.c (revision 154) @@ -0,0 +1,6 @@ +void foo (void) +{ + double a = 0.0; + double b = a; + if (&b != &a); +}
20010227-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020109-1.c =================================================================== --- 20020109-1.c (nonexistent) +++ 20020109-1.c (revision 154) @@ -0,0 +1,23 @@ +/* This testcase ICEd when 2 different successors of a basic block + were successfully threaded and try_forward_edges was not expecting + that. */ + +typedef struct A +{ + struct A *s, *t; + unsigned int u; +} A; + +void bar (A *); + +void +foo (A *x, A *y, A *z) +{ + while (y + && (((y && y->t && y->t->u) ? y : z)->t + == ((x && x->t && x->t->u) ? x : z)->t)) + y = y->s; + + if (y) + bar (y); +}
20020109-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040901-1.c =================================================================== --- 20040901-1.c (nonexistent) +++ 20040901-1.c (revision 154) @@ -0,0 +1,2 @@ +typedef enum {a, b} __attribute__((__mode__(__QI__))) x; +x foo;
20040901-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920501-1.c =================================================================== --- 920501-1.c (nonexistent) +++ 920501-1.c (revision 154) @@ -0,0 +1,5 @@ +#ifndef NO_LABEL_VALUES +a(){int**b[]={&&c};c:;} +#else +int x; +#endif
920501-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 931031-1.c =================================================================== --- 931031-1.c (nonexistent) +++ 931031-1.c (revision 154) @@ -0,0 +1,9 @@ +struct s +{ + int pad:1, no:1; +}; + +f (struct s *b, int c) +{ + char d = b->no && c; +}
931031-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030903-1.c =================================================================== --- 20030903-1.c (nonexistent) +++ 20030903-1.c (revision 154) @@ -0,0 +1,33 @@ +/* Derived from PR optimization/11700. */ +/* The compiler used to ICE during reload for m68k targets. */ + +void check_complex (__complex__ double, __complex__ double, + __complex__ double, __complex__ int); +void check_float (double, double, double, int); +extern double _Complex conj (double _Complex); +extern double carg (double _Complex __z); + +static double minus_zero; + +void +conj_test (void) +{ + check_complex (conj (({ __complex__ double __retval; + __real__ __retval = (0.0); + __imag__ __retval = (0.0); + __retval; })), + ({ __complex__ double __retval; + __real__ __retval = (0.0); + __imag__ __retval = (minus_zero); + __retval; }), 0, 0); +} + +void +carg_test (void) +{ + check_float (carg (({ __complex__ double __retval; + __real__ __retval = (2.0); + __imag__ __retval = (0); + __retval; })), 0, 0, 0); +} +
20030903-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 931013-2.c =================================================================== --- 931013-2.c (nonexistent) +++ 931013-2.c (revision 154) @@ -0,0 +1,20 @@ +f (unsigned short Z[48]) +{ + int j; + unsigned short t1, t2, t3, T[48]; + unsigned short *p = T + 48; + + for (j = 1; j < 8; j++) + { + t1 = *Z++; + *--p = *Z++; + *--p = t1; + t1 = inv(*Z++); + t2 = -*Z++; + t3 = -*Z++; + *--p = inv(*Z++); + *--p = t2; + *--p = t3; + *--p = t1; + } +}
931013-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20060109-1.c =================================================================== --- 20060109-1.c (nonexistent) +++ 20060109-1.c (revision 154) @@ -0,0 +1,36 @@ +/* This test exposed a bug in combine where it was improperly changing + the mode of a register. The bug appeared to be latent until web + was moved after combine. This is the reduced test that fails + by crashing in reload. */ + + +typedef struct cpp_reader cpp_reader; +typedef struct cpp_string cpp_string; +struct cpp_string +{ + unsigned int len; + const unsigned char *text; +}; +struct cpp_callbacks +{ + void (*ident) (cpp_reader *, unsigned int, const cpp_string *); +}; +static void cb_ident (cpp_reader *, unsigned int, const cpp_string *); +init_c_lex (void) +{ + struct cpp_callbacks *cb; + cb->ident = cb_ident; +} +cb_ident (cpp_reader * pfile __attribute__ ((__unused__)), unsigned int +line + __attribute__ ((__unused__)), const cpp_string * str + __attribute__ ((__unused__))) +{ + { + cpp_string cstr = { + }; + if (cpp_interpret_string (pfile, str, 1, &cstr, 0)) + { + } + } +}
20060109-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930623-1.c =================================================================== --- 930623-1.c (nonexistent) +++ 930623-1.c (revision 154) @@ -0,0 +1,7 @@ +g (a, b) {} + +f (xx) + void* xx; +{ + __builtin_apply ((void*)g, xx, 200); +}
930623-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 951116-1.c =================================================================== --- 951116-1.c (nonexistent) +++ 951116-1.c (revision 154) @@ -0,0 +1,9 @@ +f () +{ + long long i; + int j; + long long k = i = j; + + int inner () {return j + i;} + return k; +}
951116-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920625-1.c =================================================================== --- 920625-1.c (nonexistent) +++ 920625-1.c (revision 154) @@ -0,0 +1,298 @@ +/* The problem on IA-64 is that if-conversion creates a sequence + + (p17) cmp.geu p6, p7 = r48, r15 + (p16) cmp.gtu p6, p7 = r48, r15 + + where p16 and p17 are complemenary, but the assembler DV validation + code doesn't recognize that p6 and p7 are complimentary, and so + we end up warning for a later use + + (p6) addl r14 = 1, r0 + (p7) mov r14 = r0 + + that appears to be a WAW violation. */ + +/* { dg-prune-output "Assembler messages" } */ +/* { dg-prune-output "violate\[^\n\]*dependency" } */ +/* { dg-prune-output "first path encountering" } */ +/* { dg-prune-output "location of the conflicting" } */ + +typedef unsigned long int unsigned_word; +typedef signed long int signed_word; +typedef unsigned_word word; + +typedef enum { ADD, ADD_CI, ADD_CO, ADD_CIO, SUB, SUB_CI, SUB_CO, +SUB_CIO, ADC_CI, ADC_CO, ADC_CIO, AND, IOR, XOR, ANDC, IORC, EQV, +NAND, NOR, AND_RC, IOR_RC, XOR_RC, ANDC_RC, IORC_RC, EQV_RC, NAND_RC, +NOR_RC, AND_CC, IOR_CC, XOR_CC, ANDC_CC, IORC_CC, EQV_CC, NAND_CC, +NOR_CC, LSHIFTR, ASHIFTR, SHIFTL, LSHIFTR_CO, ASHIFTR_CO, SHIFTL_CO, +ROTATEL, ROTATEL_CO, ROTATEXL_CIO, ASHIFTR_CON, EXTS1, EXTS2, EXTU1, +EXTU2, CLZ, CTZ, FF1, FF0, ABSVAL, NABSVAL, CMP, CPEQ, CPGE, CPGEU, +CPGT, CPGTU, CPLE, CPLEU, CPLT, CPLTU, CPNEQ, CMPPAR, DOZ, COPY, +EXCHANGE, COMCY, } opcode_t; + +typedef struct +{ + opcode_t opcode:8; + unsigned int s1:8; + unsigned int s2:8; + unsigned int d:8; +} insn_t; + +enum prune_flags +{ + NO_PRUNE = 0, + CY_0 = 1, + CY_1 = 2, + CY_JUST_SET = 4, +}; + +int flag_use_carry = 1; + +inline +recurse(opcode_t opcode, + int d, + int s1, + int s2, + word v, + int cost, + insn_t *sequence, + int n_insns, + word *values, + int n_values, + const word goal_value, + int allowed_cost, + int cy, + int prune_flags) +{ + insn_t insn; + + allowed_cost -= cost; + + if (allowed_cost > 0) + { + word old_d; + + old_d = values[d]; + values[d] = v; + + insn.opcode = opcode; + insn.s1 = s1; + insn.s2 = s2; + insn.d = d; + sequence[n_insns] = insn; + + synth(sequence, n_insns + 1, values, n_values, + goal_value, allowed_cost, cy, prune_flags); + + values[d] = old_d; + } + else if (goal_value == v) + { + insn.opcode = opcode; + insn.s1 = s1; + insn.s2 = s2; + insn.d = d; + sequence[n_insns] = insn; + test_sequence(sequence, n_insns + 1); + } +} + +synth(insn_t *sequence, + int n_insns, + word *values, + int n_values, + word goal_value, + int allowed_cost, + int ci, + int prune_hint) +{ + int s1, s2; + word v, r1, r2; + int co; + int last_dest; + + if (n_insns > 0) + last_dest = sequence[n_insns - 1].d; + else + last_dest = -1; + if (ci >= 0 && flag_use_carry) + { + for (s1 = n_values - 1; s1 >= 0; s1--) + { + r1 = values[s1]; + for (s2 = s1 - 1; s2 >= 0; s2--) + { + r2 = values[s2]; + + if (allowed_cost <= 1 && (prune_hint & CY_JUST_SET) == 0) + { + if (last_dest >= 0 && s1 != last_dest && s2 != last_dest) + continue; + } + do { word __d = ( r1) + ( r2) + (( ci)); ( co) = ( ci) ? __d <= ( r1) : __d < ( r1); (v) = __d; } while (0); + recurse(ADD_CIO, n_values, s1, s2, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, CY_JUST_SET); + do { word __d = ( r1) + ( r2) + (( ci)); ( co) = ( ci); (v) = __d; } while (0); + recurse(ADD_CI, n_values, s1, s2, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + + do { word __d = ( r1) - ( r2) - (( ci)); ( co) = ( ci) ? __d >= ( r1) : __d > ( r1); (v) = __d; } while (0); + recurse(SUB_CIO, n_values, s1, s2, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, CY_JUST_SET); + do { word __d = ( r2) - ( r1) - (( ci)); ( co) = ( ci) ? __d >= ( r2) : __d > ( r2); (v) = __d; } while (0); + recurse(SUB_CIO, n_values, s2, s1, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, CY_JUST_SET); + + do { word __d = ( r1) - ( r2) - (( ci)); ( co) = ( ci); (v) = __d; } while (0); + recurse(SUB_CI, n_values, s1, s2, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + do { word __d = ( r2) - ( r1) - (( ci)); ( co) = ( ci); (v) = __d; } while (0); + recurse(SUB_CI, n_values, s2, s1, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + + } + } + } + for (s1 = n_values - 1; s1 >= 0; s1--) + { + r1 = values[s1]; + for (s2 = s1 - 1; s2 >= 0; s2--) + { + r2 = values[s2]; + + if (allowed_cost <= 1) + { + if (last_dest >= 0 && s1 != last_dest && s2 != last_dest) + continue; + } + + do { word __d = ( r1) + ( r2); ( co) = __d < ( r1); (v) = __d; } while (0); + recurse(ADD_CO, n_values, s1, s2, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, CY_JUST_SET); + + ((v) = ( r1) + ( r2), ( co) = ( ci)); + recurse(ADD, n_values, s1, s2, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + + do { word __d = ( r1) - ( r2); ( co) = __d > ( r1); (v) = __d; } while (0); + recurse(SUB_CO, n_values, s1, s2, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, CY_JUST_SET); + do { word __d = ( r2) - ( r1); ( co) = __d > ( r2); (v) = __d; } while (0); + recurse(SUB_CO, n_values, s2, s1, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, CY_JUST_SET); + ((v) = ( r1) - ( r2), ( co) = ( ci)); + recurse(SUB, n_values, s1, s2, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + ((v) = ( r2) - ( r1), ( co) = ( ci)); + recurse(SUB, n_values, s2, s1, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + + ((v) = ( r1) & ( r2), ( co) = ( ci)); + recurse(AND, n_values, s1, s2, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + + ((v) = ( r1) | ( r2), ( co) = ( ci)); + recurse(IOR, n_values, s1, s2, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + + ((v) = ( r1) ^ ( r2), ( co) = ( ci)); + recurse(XOR, n_values, s1, s2, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + + ((v) = ( r1) & ~( r2), ( co) = ( ci)); + recurse(ANDC, n_values, s1, s2, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + ((v) = ( r2) & ~( r1), ( co) = ( ci)); + recurse(ANDC, n_values, s2, s1, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + ((v) = ( r1) | ~( r2), ( co) = ( ci)); + recurse(IORC, n_values, s1, s2, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + ((v) = ( r2) | ~( r1), ( co) = ( ci)); + recurse(IORC, n_values, s2, s1, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + ((v) = ( r1) ^ ~( r2), ( co) = ( ci)); + recurse(EQV, n_values, s1, s2, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + + } + } + if (ci >= 0 && flag_use_carry) + { + for (s1 = n_values - 1; s1 >= 0; s1--) + { + r1 = values[s1]; + + if (allowed_cost <= 1 && (prune_hint & CY_JUST_SET) == 0) + { + + if (last_dest >= 0 && s1 != last_dest) + continue; + } + + do { word __d = ( r1) + ( r1) + (( ci)); ( co) = ( ci) ? __d <= ( r1) : __d < ( r1); (v) = __d; } while (0); + recurse(ADD_CIO, n_values, s1, s1, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, CY_JUST_SET); + + do { word __d = ( r1) + ( r1) + (( ci)); ( co) = ( ci); (v) = __d; } while (0); + recurse(ADD_CI, n_values, s1, s1, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + + do { word __d = ( r1) + ( -1 ) + (( ci)); ( co) = ( ci) ? __d <= ( r1) : __d < ( r1); (v) = __d; } while (0); + recurse(ADD_CIO, n_values, s1, (0x20 + -1) , v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, CY_JUST_SET); + + do { word __d = ( r1) + ( 0 ) + (( ci)); ( co) = ( ci) ? __d <= ( r1) : __d < ( r1); (v) = __d; } while (0); + recurse(ADD_CIO, n_values, s1, (0x20 + 0) , v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, CY_JUST_SET); + do { word __d = ( 0 ) - ( r1) - (( ci)); ( co) = ( ci) ? __d >= ( 0 ) : __d > ( 0 ); (v) = __d; } while (0); + recurse(SUB_CIO, n_values, (0x20 + 0) , s1, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, CY_JUST_SET); + + } + } + for (s1 = n_values - 1; s1 >= 0; s1--) + { + r1 = values[s1]; + + if (allowed_cost <= 1) + { + if (last_dest >= 0 && s1 != last_dest) + continue; + } + do { word __d = ( r1) + ( r1); ( co) = __d < ( r1); (v) = __d; } while (0); + recurse(ADD_CO, n_values, s1, s1, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, CY_JUST_SET); + + ((v) = ( r1) & ( 1 ), ( co) = ( ci)); + recurse(AND, n_values, s1, (0x20 + 1) , v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + + ((v) = ( r1) ^ ( 1 ), ( co) = ( ci)); + recurse(XOR, n_values, s1, (0x20 + 1) , v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + + ((v) = ( -1 ) - ( r1), ( co) = ( ci)); + recurse(SUB, n_values, (0x20 + -1) , s1, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + do { word __d = ( r1) + ( 1 ); ( co) = __d < ( r1); (v) = __d; } while (0); + recurse(ADD_CO, n_values, s1, (0x20 + 1) , v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, CY_JUST_SET); + ((v) = ( r1) + ( 1 ), ( co) = ( ci)); + recurse(ADD, n_values, s1, (0x20 + 1) , v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + do { word __d = ( r1) + ( -1 ); ( co) = __d < ( r1); (v) = __d; } while (0); + recurse(ADD_CO, n_values, s1, (0x20 + -1) , v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, CY_JUST_SET); + do { word __d = ( r1) - ( 1 ); ( co) = __d > ( r1); (v) = __d; } while (0); + recurse(SUB_CO, n_values, s1, (0x20 + 1) , v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, CY_JUST_SET); + do { word __d = ( 0 ) - ( r1); ( co) = __d > ( 0 ); (v) = __d; } while (0); + recurse(SUB_CO, n_values, (0x20 + 0) , s1, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, CY_JUST_SET); + ((v) = ( 0 ) - ( r1), ( co) = ( ci)); + recurse(SUB, n_values, (0x20 + 0) , s1, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + ((v) = ((unsigned_word) ( r1) >> (( 1 ) & (32 - 1)) ), ( co) = ( ci)); + recurse(LSHIFTR, n_values, s1, (0x20 + 1) , v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + ((v) = ((signed_word) ( r1) >> (( 1 ) & (32 - 1)) ), ( co) = ( ci)); + recurse(ASHIFTR, n_values, s1, (0x20 + 1) , v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + ((v) = ((signed_word) ( r1) << (( 1 ) & (32 - 1)) ), ( co) = ( ci)); + recurse(SHIFTL, n_values, s1, (0x20 + 1) , v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + ((v) = ((unsigned_word) ( r1) >> (( 32 -1 ) & (32 - 1)) ), ( co) = ( ci)); + recurse(LSHIFTR, n_values, s1, (0x20 + 32 -1) , v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + ((v) = ((signed_word) ( r1) >> (( 32 -1 ) & (32 - 1)) ), ( co) = ( ci)); + recurse(ASHIFTR, n_values, s1, (0x20 + 32 -1) , v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + } + if (ci >= 0 && flag_use_carry + && (allowed_cost <= 1 ? ((prune_hint & CY_JUST_SET) != 0) : 1)) + { + do { word __d = ( 0 ) + ( 0 ) + (( ci)); ( co) = ( ci) ? __d <= ( 0 ) : __d < ( 0 ); (v) = __d; } while (0); + recurse(ADD_CIO, n_values, (0x20 + 0) , (0x20 + 0) , v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, CY_JUST_SET | CY_0); + do { word __d = ( 0 ) - ( 0 ) - (( ci)); ( co) = ( ci) ? __d >= ( 0 ) : __d > ( 0 ); (v) = __d; } while (0); + recurse(SUB_CIO, n_values, (0x20 + 0) , (0x20 + 0) , v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + do { word __d = ( 0 ) - ( -1 ) - (( ci)); ( co) = ( ci) ? __d >= ( 0 ) : __d > ( 0 ); (v) = __d; } while (0); + recurse(SUB_CIO, n_values, (0x20 + 0) , (0x20 + -1) , v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, CY_JUST_SET | CY_1); + do { word __d = ( 0 ) + ( -1 ) + (( ci)); ( co) = ( ci) ? __d <= ( 0 ) : __d < ( 0 ); (v) = __d; } while (0); + recurse(ADD_CIO, n_values, (0x20 + 0) , (0x20 + -1) , v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + + } + + if (allowed_cost > 1) + { + ((v) = ( 0x80000000 ), ( co) = ( ci)); + recurse(COPY, n_values, (0x20 - 2) , 0, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + + ((v) = ( -1 ), ( co) = ( ci)); + recurse(COPY, n_values, (0x20 + -1) , 0, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + + ((v) = ( 1 ), ( co) = ( ci)); + recurse(COPY, n_values, (0x20 + 1) , 0, v, 1, sequence, n_insns, values, n_values + 1, goal_value, allowed_cost, co, prune_hint & ~CY_JUST_SET); + } +}
920625-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920706-1.c =================================================================== --- 920706-1.c (nonexistent) +++ 920706-1.c (revision 154) @@ -0,0 +1 @@ +f(){float i[2],o[1];g(o);return*o;}
920706-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040909-1.c =================================================================== --- 20040909-1.c (nonexistent) +++ 20040909-1.c (revision 154) @@ -0,0 +1,13 @@ +static __inline__ int +one_utf8_to_utf16 () { } + +static __inline__ unsigned char +conversion_loop (int (*const one_conversion)()) +{ +return one_conversion (); +} +static unsigned char +convert_utf8_utf16 () +{ + return conversion_loop (one_utf8_to_utf16); +}
20040909-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920428-1.c =================================================================== --- 920428-1.c (nonexistent) +++ 920428-1.c (revision 154) @@ -0,0 +1 @@ +x(){char*q;return(long)q>>8&0xff;}
920428-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 991214-2.c =================================================================== --- 991214-2.c (nonexistent) +++ 991214-2.c (revision 154) @@ -0,0 +1,28 @@ +#if defined(STACK_SIZE) && (STACK_SIZE < 65536) +# define HISTO_SIZE 9 +#else +# define HISTO_SIZE 36 +#endif + +extern int N; +extern int nrows; +extern int or_num_angles; + +typedef struct +{ + double value; + int count; +}Histo; + +Histo add_histo[10][2][HISTO_SIZE][HISTO_SIZE]; + +void cmd_connection_statistics( ) +{ + int i,j,k,m; + + for(i=0; i
991214-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: sync-2.c =================================================================== --- sync-2.c (nonexistent) +++ sync-2.c (revision 154) @@ -0,0 +1,166 @@ +/* Validate that each of the __sync builtins compiles. This won't + necessarily link, since the target might not support the builtin, + so this may result in external library calls. */ + +signed char sc; +unsigned char uc; +signed short ss; +unsigned short us; +signed int si; +unsigned int ui; +signed long sl; +unsigned long ul; +signed long long sll; +unsigned long long ull; + +void test_op_ignore (void) +{ + (void) __sync_fetch_and_add (&sc, -1); + (void) __sync_fetch_and_add (&uc, -1); + (void) __sync_fetch_and_add (&ss, -1); + (void) __sync_fetch_and_add (&us, -1); + (void) __sync_fetch_and_add (&si, -1); + (void) __sync_fetch_and_add (&ui, -1); + (void) __sync_fetch_and_add (&sl, -1); + (void) __sync_fetch_and_add (&ul, -1); + (void) __sync_fetch_and_add (&sll, -1); + (void) __sync_fetch_and_add (&ull, -1); + + (void) __sync_fetch_and_sub (&sc, -1); + (void) __sync_fetch_and_sub (&uc, -1); + (void) __sync_fetch_and_sub (&ss, -1); + (void) __sync_fetch_and_sub (&us, -1); + (void) __sync_fetch_and_sub (&si, -1); + (void) __sync_fetch_and_sub (&ui, -1); + (void) __sync_fetch_and_sub (&sl, -1); + (void) __sync_fetch_and_sub (&ul, -1); + (void) __sync_fetch_and_sub (&sll, -1); + (void) __sync_fetch_and_sub (&ull, -1); + + (void) __sync_fetch_and_or (&sc, -1); + (void) __sync_fetch_and_or (&uc, -1); + (void) __sync_fetch_and_or (&ss, -1); + (void) __sync_fetch_and_or (&us, -1); + (void) __sync_fetch_and_or (&si, -1); + (void) __sync_fetch_and_or (&ui, -1); + (void) __sync_fetch_and_or (&sl, -1); + (void) __sync_fetch_and_or (&ul, -1); + (void) __sync_fetch_and_or (&sll, -1); + (void) __sync_fetch_and_or (&ull, -1); + + (void) __sync_fetch_and_xor (&sc, -1); + (void) __sync_fetch_and_xor (&uc, -1); + (void) __sync_fetch_and_xor (&ss, -1); + (void) __sync_fetch_and_xor (&us, -1); + (void) __sync_fetch_and_xor (&si, -1); + (void) __sync_fetch_and_xor (&ui, -1); + (void) __sync_fetch_and_xor (&sl, -1); + (void) __sync_fetch_and_xor (&ul, -1); + (void) __sync_fetch_and_xor (&sll, -1); + (void) __sync_fetch_and_xor (&ull, -1); + + (void) __sync_fetch_and_and (&sc, -1); + (void) __sync_fetch_and_and (&uc, -1); + (void) __sync_fetch_and_and (&ss, -1); + (void) __sync_fetch_and_and (&us, -1); + (void) __sync_fetch_and_and (&si, -1); + (void) __sync_fetch_and_and (&ui, -1); + (void) __sync_fetch_and_and (&sl, -1); + (void) __sync_fetch_and_and (&ul, -1); + (void) __sync_fetch_and_and (&sll, -1); + (void) __sync_fetch_and_and (&ull, -1); + + (void) __sync_fetch_and_nand (&sc, -1); + (void) __sync_fetch_and_nand (&uc, -1); + (void) __sync_fetch_and_nand (&ss, -1); + (void) __sync_fetch_and_nand (&us, -1); + (void) __sync_fetch_and_nand (&si, -1); + (void) __sync_fetch_and_nand (&ui, -1); + (void) __sync_fetch_and_nand (&sl, -1); + (void) __sync_fetch_and_nand (&ul, -1); + (void) __sync_fetch_and_nand (&sll, -1); + (void) __sync_fetch_and_nand (&ull, -1); +} + +void test_fetch_and_op (void) +{ + sc = __sync_fetch_and_add (&sc, -11); + uc = __sync_fetch_and_add (&uc, -11); + ss = __sync_fetch_and_add (&ss, -11); + us = __sync_fetch_and_add (&us, -11); + si = __sync_fetch_and_add (&si, -11); + ui = __sync_fetch_and_add (&ui, -11); + sl = __sync_fetch_and_add (&sl, -11); + ul = __sync_fetch_and_add (&ul, -11); + sll = __sync_fetch_and_add (&sll, -11); + ull = __sync_fetch_and_add (&ull, -11); + + sc = __sync_fetch_and_sub (&sc, -11); + uc = __sync_fetch_and_sub (&uc, -11); + ss = __sync_fetch_and_sub (&ss, -11); + us = __sync_fetch_and_sub (&us, -11); + si = __sync_fetch_and_sub (&si, -11); + ui = __sync_fetch_and_sub (&ui, -11); + sl = __sync_fetch_and_sub (&sl, -11); + ul = __sync_fetch_and_sub (&ul, -11); + sll = __sync_fetch_and_sub (&sll, -11); + ull = __sync_fetch_and_sub (&ull, -11); + + sc = __sync_fetch_and_or (&sc, -11); + uc = __sync_fetch_and_or (&uc, -11); + ss = __sync_fetch_and_or (&ss, -11); + us = __sync_fetch_and_or (&us, -11); + si = __sync_fetch_and_or (&si, -11); + ui = __sync_fetch_and_or (&ui, -11); + sl = __sync_fetch_and_or (&sl, -11); + ul = __sync_fetch_and_or (&ul, -11); + sll = __sync_fetch_and_or (&sll, -11); + ull = __sync_fetch_and_or (&ull, -11); + + sc = __sync_fetch_and_xor (&sc, -11); + uc = __sync_fetch_and_xor (&uc, -11); + ss = __sync_fetch_and_xor (&ss, -11); + us = __sync_fetch_and_xor (&us, -11); + si = __sync_fetch_and_xor (&si, -11); + ui = __sync_fetch_and_xor (&ui, -11); + sl = __sync_fetch_and_xor (&sl, -11); + ul = __sync_fetch_and_xor (&ul, -11); + sll = __sync_fetch_and_xor (&sll, -11); + ull = __sync_fetch_and_xor (&ull, -11); + + sc = __sync_fetch_and_and (&sc, -11); + uc = __sync_fetch_and_and (&uc, -11); + ss = __sync_fetch_and_and (&ss, -11); + us = __sync_fetch_and_and (&us, -11); + si = __sync_fetch_and_and (&si, -11); + ui = __sync_fetch_and_and (&ui, -11); + sl = __sync_fetch_and_and (&sl, -11); + ul = __sync_fetch_and_and (&ul, -11); + sll = __sync_fetch_and_and (&sll, -11); + ull = __sync_fetch_and_and (&ull, -11); + + sc = __sync_fetch_and_nand (&sc, -11); + uc = __sync_fetch_and_nand (&uc, -11); + ss = __sync_fetch_and_nand (&ss, -11); + us = __sync_fetch_and_nand (&us, -11); + si = __sync_fetch_and_nand (&si, -11); + ui = __sync_fetch_and_nand (&ui, -11); + sl = __sync_fetch_and_nand (&sl, -11); + ul = __sync_fetch_and_nand (&ul, -11); + sll = __sync_fetch_and_nand (&sll, -11); + ull = __sync_fetch_and_nand (&ull, -11); +} + +void test_lock (void) +{ + sc = __sync_lock_test_and_set (&sc, -1); + uc = __sync_lock_test_and_set (&uc, -1); + ss = __sync_lock_test_and_set (&ss, -1); + us = __sync_lock_test_and_set (&us, -1); + si = __sync_lock_test_and_set (&si, -1); + ui = __sync_lock_test_and_set (&ui, -1); + sl = __sync_lock_test_and_set (&sl, -1); + ul = __sync_lock_test_and_set (&ul, -1); + sll = __sync_lock_test_and_set (&sll, -1); + ull = __sync_lock_test_and_set (&ull, -1); +}
sync-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr23233-1.c =================================================================== --- pr23233-1.c (nonexistent) +++ pr23233-1.c (revision 154) @@ -0,0 +1,8 @@ +void foo (volatile long long *x) +{ + while (*x) + { + *x = 0; + *((volatile char *) 0) = 0; + } +}
pr23233-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920928-2.c =================================================================== --- 920928-2.c (nonexistent) +++ 920928-2.c (revision 154) @@ -0,0 +1,19 @@ +typedef struct{struct{char*d;int b;}*i;}*t; +double f(); +g(p)t p; +{ + short x,y,delta,s,w,h,fx,fy,tx,ty; + int q1,q2,q3,q4; + h=f((ty-fy)/2.0+0.5); + s=(((int)((short)(tx-fx))<(int)((short)(ty-fy)))?((short)(tx-fx)):((short)(ty-fy)))%2; + delta=(((int)(w)<(int)(h))?(w):(h))-s; + for(x=0;x<=delta;x++) + for(y=1-s;y<=delta;y++){ + q1=((int)((*(p->i->d+(fx+w+x)/8+(fy+h+y)*p->i->b)&(1<<((fx+w+x)%8)))?1:0)); + q2=((int)((*(p->i->d+(fx+w+y)/8+(fy+h-s-x)*p->i->b)&(1<<((fx+w+y)%8)))?1:0)); + q3=((int)((*(p->i->d+(fx+w-s-x)/8+(fy+h-s-y)*p->i->b)&(1<<((fx+w-s-x)%8)))?1:0)); + q4=((int)((*(p->i->d+(fx+w-s-y)/8+(fy+h+x)*p->i->b)&(1<<((fx+w-s-y)%8)))?1:0)); + if(q4!=q1) + ff(p,fx+w-s-y,fy+h+x); + } +}
920928-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr24227.c =================================================================== --- pr24227.c (nonexistent) +++ pr24227.c (revision 154) @@ -0,0 +1,6 @@ +int Fdisplay_buffer (int buffer) +{ + if (((struct buffer *) ((unsigned int) buffer)) == + (0,(struct buffer *) ((unsigned int) ((buffer) & 1)))) + return 1; +}
pr24227.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20021001-1.c =================================================================== --- 20021001-1.c (nonexistent) +++ 20021001-1.c (revision 154) @@ -0,0 +1,4 @@ +int foo (double x, double y) +{ + return !__builtin_isunordered (x, y); +}
20021001-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010112-1.c =================================================================== --- 20010112-1.c (nonexistent) +++ 20010112-1.c (revision 154) @@ -0,0 +1,14 @@ +/* Test that putting an initialized variable in a register works. */ + +#ifdef __i386__ +#define REGISTER asm ("eax") +#elif defined (__arm__) +#define REGISTER asm ("r0") +#else +/* Put examples for other architectures here. */ +#define REGISTER +#endif + +void f() { + register int i REGISTER = 3; +}
20010112-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20001121-1.c =================================================================== --- 20001121-1.c (nonexistent) +++ 20001121-1.c (revision 154) @@ -0,0 +1,21 @@ +extern int bar(int); + +int foo(int x) +{ + return 1 + bar( + ({ + int y; + switch (x) + { + case 0: y = 1; break; + case 1: y = 2; break; + case 2: y = 3; break; + case 3: y = 4; break; + case 4: y = 5; break; + case 5: y = 6; break; + default: y = 7; break; + } + y; + }) + ); +}
20001121-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920501-18.c =================================================================== --- 920501-18.c (nonexistent) +++ 920501-18.c (revision 154) @@ -0,0 +1,2 @@ +union u{int i;float f;}; +x(p)int p;{union u x;for(x.i=0;x.i(float)3.0)break;}
920501-18.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20041005-1.c =================================================================== --- 20041005-1.c (nonexistent) +++ 20041005-1.c (revision 154) @@ -0,0 +1,6 @@ +/* This wrongly caused duplicate definitions of x in the assembler + output. */ +/* Origin: Joseph Myers */ + +static int x = 1; +void f (void) { extern int x; }
20041005-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010711-1.c =================================================================== --- 20010711-1.c (nonexistent) +++ 20010711-1.c (revision 154) @@ -0,0 +1,11 @@ +typedef unsigned long long value; + +void foo (value *v) {} + +void test () +{ + value v; + foo (&v); + if (v-- > 0) + foo (&v); +}
20010711-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr17656.c =================================================================== --- pr17656.c (nonexistent) +++ pr17656.c (revision 154) @@ -0,0 +1,18 @@ +int sprintf (char *s, const char *format, ...); + +int foo(int i, int j) +{ + char *buf, *str; + + if (i) + str = ""; + else if (j) + str = ""; + else + return 1; + + /* We were propagating &""[0] here and not calling fold_stmt with a + proper statement pointer. */ + sprintf(buf, str); + return 0; +}
pr17656.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr19357.c =================================================================== --- pr19357.c (nonexistent) +++ pr19357.c (revision 154) @@ -0,0 +1,8 @@ +/* This generated an ICE for an ia64-linux target. */ +struct f { + float f[8]; +}; + +long double ftest(struct f arg1, long double arg2) { + return arg2; +}
pr19357.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031203-3.c =================================================================== --- 20031203-3.c (nonexistent) +++ 20031203-3.c (revision 154) @@ -0,0 +1,7 @@ +/* Don't ICE on user silliness. GCC 3.4 and before accepts this without + comment; 3.5 warns. Perhaps eventually we'll declare this an error. */ + +void bar (void) +{ + ({}); +}
20031203-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020315-1.c =================================================================== --- 20020315-1.c (nonexistent) +++ 20020315-1.c (revision 154) @@ -0,0 +1,34 @@ +/* PR bootstrap/4128 */ + +extern int bar (char *, char *, int, int); +extern long baz (char *, char *, int, int); + +int sgt (char *a, char *b, int c, int d) +{ + return bar (a, b, c, d) > 0; +} + +long dgt (char *a, char *b, int c, int d) +{ + return baz (a, b, c, d) > 0; +} + +int sne (char *a, char *b, int c, int d) +{ + return bar (a, b, c, d) != 0; +} + +long dne (char *a, char *b, int c, int d) +{ + return baz (a, b, c, d) != 0; +} + +int seq (char *a, char *b, int c, int d) +{ + return bar (a, b, c, d) == 0; +} + +long deq (char *a, char *b, int c, int d) +{ + return baz (a, b, c, d) == 0; +}
20020315-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031023-4.c =================================================================== --- 20031023-4.c (nonexistent) +++ 20031023-4.c (revision 154) @@ -0,0 +1,2 @@ +#define ASIZE 0x80000000UL +#include "20031023-1.c"
20031023-4.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr17558.c =================================================================== --- pr17558.c (nonexistent) +++ pr17558.c (revision 154) @@ -0,0 +1,10 @@ +struct xobject { + char type; +}; +extern struct xobject *t1_Xform ( struct xobject *obj); +struct xobject * +t1_Xform(struct xobject *obj) +{ + register struct font *F = (struct font *) obj; + return((struct xobject*)F); +}
pr17558.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: simd-3.c =================================================================== --- simd-3.c (nonexistent) +++ simd-3.c (revision 154) @@ -0,0 +1,23 @@ +#include + +/* If double is not wider than float, we probably don't have DFmode, + or at least it's not as wide as double. */ +#if DBL_MANT_DIG > FLT_MANT_DIG +typedef double floatvect2 __attribute__((vector_size (16))); + +typedef union +{ + floatvect2 vector; + double f[2]; +}resfloatvect2; + +void tempf(double *x, double *y) +{ + floatvect2 temp={x[0],x[1]}; + floatvect2 temp1={y[0],y[1]}; + resfloatvect2 temp2; + temp2.vector=temp+temp1; + x[0]=temp2.f[0]; + x[1]=temp2.f[1]; +} +#endif
simd-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr31797.c =================================================================== --- pr31797.c (nonexistent) +++ pr31797.c (revision 154) @@ -0,0 +1,31 @@ +struct GTeth_desc +{ + unsigned ed_cmdsts; +}; +struct GTeth_softc +{ + struct GTeth_desc txq_desc[32]; + unsigned int txq_fi; + unsigned int txq_nactive; +}; + +void +GTeth_txq_free (struct GTeth_softc *sc) +{ + struct GTeth_desc *txd = &sc->txq_desc[0]; + txd->ed_cmdsts &= ~(1U << (31)); +} +void +GTeth_txq_done (struct GTeth_softc *sc) +{ + while (sc->txq_nactive > 0) + { + volatile struct GTeth_desc *txd = &sc->txq_desc[sc->txq_fi]; + if (txd->ed_cmdsts) + { + if (sc->txq_nactive == 1) + return; + } + GTeth_txq_free (sc); + } +}
pr31797.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000319-1.c =================================================================== --- 20000319-1.c (nonexistent) +++ 20000319-1.c (revision 154) @@ -0,0 +1,6 @@ +struct foo +{ + long x; + char y; + long boom[0]; +};
20000319-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920411-2.c =================================================================== --- 920411-2.c (nonexistent) +++ 920411-2.c (revision 154) @@ -0,0 +1 @@ +x(){int n;double x;n=x<1?n:n+1;}
920411-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: switch-1.c =================================================================== --- switch-1.c (nonexistent) +++ switch-1.c (revision 154) @@ -0,0 +1,9 @@ +/* PR middle-end/26557. */ +const int struct_test[1] = {1}; +void g(); +void f() { + switch(struct_test[0]) { + case 1: g(); + } +} +
switch-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030518-1.c =================================================================== --- 20030518-1.c (nonexistent) +++ 20030518-1.c (revision 154) @@ -0,0 +1,14 @@ +/* Test case from PR middle-end/10472 */ + +extern void f (char *); + +void foo (char *s) +{ + f (__builtin_stpcpy (s, "hi")); +} + +void bar (char *s) +{ + f (__builtin_mempcpy (s, "hi", 3)); +} +
20030518-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: labels-2.c =================================================================== --- labels-2.c (nonexistent) +++ labels-2.c (revision 154) @@ -0,0 +1,10 @@ +struct bp { void *v, *b, *e; }; +f () +{ + struct bp x = { &&L2 }; + if (&&L3 - &&L1 > 1) + abort (); +L1:return 1; +L2:abort (); +L3:; +}
labels-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: init-1.c =================================================================== --- init-1.c (nonexistent) +++ init-1.c (revision 154) @@ -0,0 +1,19 @@ +typedef struct +{ + char *key; + char *value; +} T1; + +typedef struct +{ + long type; + char *value; +} T3; + +T1 a[] = +{ + { + "", + ((char *)&((T3) {1, (char *) 1})) + } +};
init-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 950512-1.c =================================================================== --- 950512-1.c (nonexistent) +++ 950512-1.c (revision 154) @@ -0,0 +1,6 @@ +typedef unsigned short uint16; +f (unsigned char *w) +{ + w[2] = (uint16) ((((g (0) % 10000 + 42) & 0xFF) << 8) | (((g (0) % 10000 + 42) >> 8) & 0xFF)) & 0xFF, + w[3] = (uint16) ((((g (0) % 10000 + 42) & 0xFF) << 8) | (((g (0) % 10000 + 42) >> 8) & 0xFF)) >> 8; +}
950512-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920831-1.c =================================================================== --- 920831-1.c (nonexistent) +++ 920831-1.c (revision 154) @@ -0,0 +1 @@ +f(x){goto*(char)x;}
920831-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 991026-2.c =================================================================== --- 991026-2.c (nonexistent) +++ 991026-2.c (revision 154) @@ -0,0 +1,33 @@ +typedef int __pid_t; +extern __pid_t fork (void) ; +extern int printf (__const char *__restrict __format, ...) ; +extern char *strerror (int __errnum) ; +extern int errno; +extern int *__errno_location (void) __attribute__ ((__const__)); +extern void _exit (int __status) __attribute__ ((__noreturn__)); +extern void exit (int __status) __attribute__ ((__noreturn__)); +extern int close (int __fd) ; +extern int dup (int __fd) ; +extern int open (__const char *__file, int __oflag, ...) ; + + +char myname[]="foo"; + +detach() +{ + switch(fork()) { + case -1: + printf("%s: Error: fork - %s\n",myname, strerror((*__errno_location ()) )); + exit(255); + case 0: + + close(0); + close(1); + close(2); + dup(dup(open("/dev/null", 02 ))); + return; + default: + + _exit(0); + } +}
991026-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr21840.c =================================================================== --- pr21840.c (nonexistent) +++ pr21840.c (revision 154) @@ -0,0 +1,11 @@ +void fn_show_state(void); +typedef void (*fn_handler_fn)(void); +static fn_handler_fn fn_handler[1]; + +void k_spec(unsigned char value) +{ + void *func = fn_handler[value]; + if (func == fn_show_state ) + return; + fn_handler[value](); +}
pr21840.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr27341-2.c =================================================================== --- pr27341-2.c (nonexistent) +++ pr27341-2.c (revision 154) @@ -0,0 +1,8 @@ +void zgemm_ (const int*, const double*); +extern void matmul_c8 (_Complex double * dest) +{ + const int ldc = 0; + const double zero = 0; + zgemm_ ( &zero, &ldc); + dest[1] += 1 ; +}
pr27341-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr15245.c =================================================================== --- pr15245.c (nonexistent) +++ pr15245.c (revision 154) @@ -0,0 +1,21 @@ +/* Testcase from + PR optimization/15245 + This used to ICE as convert was used + in tree-ssa-phiopt which created non gimple + code. */ + +char *f(char *x, int flag) +{ + char *ret = (char*)0; + + + if( x > (char*)1 ) { + if(x) + return (char*)0; + } else { + if( flag & 1 ) + ret = (char*)1; + flag |= 2; + } + return ret; +}
pr15245.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010202-1.c =================================================================== --- 20010202-1.c (nonexistent) +++ 20010202-1.c (revision 154) @@ -0,0 +1,6 @@ +int foo (int n, char m[1][n]); + +int foo (int n, char m[1][n]) +{ +} +
20010202-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000105-2.c =================================================================== --- 20000105-2.c (nonexistent) +++ 20000105-2.c (revision 154) @@ -0,0 +1,5 @@ +foo () +{ + long long int i = (int) ""; +} +
20000105-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050202-1.c =================================================================== --- 20050202-1.c (nonexistent) +++ 20050202-1.c (revision 154) @@ -0,0 +1,10 @@ +/* From PR 19578. */ +extern void foo (void) __attribute__((noreturn)); + +void +g (void) +{ + void (*f) (void) = foo; + f (); + f (); +}
20050202-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040401-1.c =================================================================== --- 20040401-1.c (nonexistent) +++ 20040401-1.c (revision 154) @@ -0,0 +1,6 @@ +int __atomic_readv_replacement(unsigned char iov_len, int count, int i) { + unsigned char bytes = 0; + if ((unsigned char)((char)127 - bytes) < iov_len) + return 22; + return 0; +}
20040401-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20041211-1.c =================================================================== --- 20041211-1.c (nonexistent) +++ 20041211-1.c (revision 154) @@ -0,0 +1,13 @@ +/* PR tree-optimization/16951 */ + +void dummy_use(const char *p); + +__inline void f(const char *const p) { + const char q; + dummy_use(p); + f(&q); +} + +void crash() { + f(0); +}
20041211-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030125-1.c =================================================================== --- 20030125-1.c (nonexistent) +++ 20030125-1.c (revision 154) @@ -0,0 +1,24 @@ + int count; + + int func(int *valp) { + int val, locked = 0; + + while ((val = *valp) != 0) { + if (count) { + if (count) + locked = 1; + else + locked = 1; + + if (!locked) + continue; + } + + if (!count) + count--; + + break; + } + + return val; + }
20030125-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030206-1.c =================================================================== --- 20030206-1.c (nonexistent) +++ 20030206-1.c (revision 154) @@ -0,0 +1,14 @@ +/* PR c/9530 */ +/* Contributed by Volker Reichelt. */ + +/* Verify that the call to 'foo' is not turned + into a sibling call. */ + +void foo(float d); + +float bar(float d); + +float baz(float d) +{ + foo(bar(d)); +}
20030206-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000803-1.c =================================================================== --- 20000803-1.c (nonexistent) +++ 20000803-1.c (revision 154) @@ -0,0 +1,11 @@ +static int gl_cnt = 0; +static char gl_buf[1024]; + +void +gl_yank() +{ + int i; + + for (i=gl_cnt; i >= 0; i--) + gl_buf[i+10] = gl_buf[i]; +}
20000803-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20011217-1.c =================================================================== --- 20011217-1.c (nonexistent) +++ 20011217-1.c (revision 154) @@ -0,0 +1,20 @@ +/* Test that the initializer of a compound literal is properly walked + when tree inlining. */ +/* Origin: PR c/5105 from . */ + +typedef struct { long p; } pt; + +inline pt f (pt _p) +{ + long p = _p.p; + + return (pt) { (p) }; +} + +static int mmap_mem (void) +{ + pt p; + p = f (p); + + return 0; +}
20011217-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010326-1.c =================================================================== --- 20010326-1.c (nonexistent) +++ 20010326-1.c (revision 154) @@ -0,0 +1,16 @@ +float d; +int e, f; + +void foo (void) +{ + struct { float u, v; } a = {0.0, 0.0}; + float b; + int c; + + c = e; + if (c == 0) + c = f; + b = d; + if (a.v < b) + a.v = b; +}
20010326-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000606-1.c =================================================================== --- 20000606-1.c (nonexistent) +++ 20000606-1.c (revision 154) @@ -0,0 +1,10 @@ +typedef struct _foo foo; +extern foo bar; +struct _foo { + int a; +}; + +void baz(void) +{ + bar.a = 0; +}
20000606-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020109-2.c =================================================================== --- 20020109-2.c (nonexistent) +++ 20020109-2.c (revision 154) @@ -0,0 +1,30 @@ +typedef union +{ + unsigned char member3; + signed short member4; + unsigned int member5; +} +UNI02; + +struct srt_dat_t +{ + UNI02 un2; + unsigned long member1; + signed short member2; +}; + +struct srt_dat_t exsrt1; +void +extern_test (struct srt_dat_t arg1) +{ + arg1.un2.member3++; + arg1.member1++; + arg1.member2++; +} + +int +main (void) +{ + extern_test (exsrt1); + return (0); +}
20020109-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050801-1.c =================================================================== --- 20050801-1.c (nonexistent) +++ 20050801-1.c (revision 154) @@ -0,0 +1,8 @@ +__inline void libc_name_p (void) +{ + enum { A = 1 }; +} +void nothrow_libfn_p (void) +{ + libc_name_p (); +}
20050801-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr28776-1.c =================================================================== --- pr28776-1.c (nonexistent) +++ pr28776-1.c (revision 154) @@ -0,0 +1,16 @@ +typedef struct dw_fde_struct +{ + int decl; +} *dw_fde_ref; +dw_fde_ref fde_table; +unsigned fde_table_in_use; +void output_call_frame_info (void) +{ + unsigned int i; + dw_fde_ref fde; + for (i = 0; i < fde_table_in_use; i++) + { + fde = &fde_table[i]; + tree_contains_struct_check_failed (fde_table[i].decl); + } +}
pr28776-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr12899.c =================================================================== --- pr12899.c (nonexistent) +++ pr12899.c (revision 154) @@ -0,0 +1,11 @@ +/* PR tree-optimization/12899 */ + +void +bb_getopt_ulflags (char *s) +{ + for (;;) + if (s[1]) + do + s++; + while (*s); +}
pr12899.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030921-1.c =================================================================== --- 20030921-1.c (nonexistent) +++ 20030921-1.c (revision 154) @@ -0,0 +1,10 @@ +/* PR 12281 The darwin back-end was causing the function + f is not being emitted. TREE_SYMBOL_REFERENCED was being set + instead of calling mark_referenced. */ + + +static void f(void); +void g(void (*x) (void)){x();} +static inline void f(void){} +void h(){g(f);} +int main(){h();return 0;}
20030921-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20060208-1.c =================================================================== --- 20060208-1.c (nonexistent) +++ 20060208-1.c (revision 154) @@ -0,0 +1,10 @@ +/* PR middle-end/26092 */ +typedef __SIZE_TYPE__ size_t; +extern void *malloc (size_t); + +void *(*const foo) (size_t) = malloc; + +void *test (void) +{ + return (*foo) (3); +}
20060208-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920501-2.c =================================================================== --- 920501-2.c (nonexistent) +++ 920501-2.c (revision 154) @@ -0,0 +1,11 @@ +extern short distdata[64][64], taxidata[64][64]; +extern short PieceList[2][64]; + +int +ScoreKBNK (short int winner, short int king1, short int king2) +{ + register short s; + + s = taxidata[king1][king2] + distdata[PieceList[winner][1]][king2]; + return s; +}
920501-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 931013-3.c =================================================================== --- 931013-3.c (nonexistent) +++ 931013-3.c (revision 154) @@ -0,0 +1,11 @@ +struct s +{ + int f; +}; + +struct s +f () +{ + int addr; + return *(struct s *) &addr; +}
931013-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020807-1.c =================================================================== --- 20020807-1.c (nonexistent) +++ 20020807-1.c (revision 154) @@ -0,0 +1,33 @@ +int x; + +static int +__attribute__ ((noinline)) +foo (void) +{ + return 0; +} + +static void +__attribute__ ((noinline)) +bar (void) +{ +} + +static inline void +baz (void) +{ + char arr[x]; + +lab: + if (foo () == -1) + { + bar (); + goto lab; + } +} + +void +test (void) +{ + baz (); +}
20020807-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 900407-1.c =================================================================== --- 900407-1.c (nonexistent) +++ 900407-1.c (revision 154) @@ -0,0 +1,10 @@ +foo (a, b, p) + int *p; +{ + int c; + p[1] = a + 0x1000; + c = b + 0xffff0000; + if ((b + 0xffff0000) == 0) + c++; + p[2] = c; +}
900407-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930525-1.c =================================================================== --- 930525-1.c (nonexistent) +++ 930525-1.c (revision 154) @@ -0,0 +1,7 @@ +typedef struct foo foo_t; +foo_t x; +struct foo { + int i; +}; + +foo_t x = { 10 };
930525-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920625-2.c =================================================================== --- 920625-2.c (nonexistent) +++ 920625-2.c (revision 154) @@ -0,0 +1,103 @@ +typedef char * caddr_t; +typedef unsigned Cursor; +typedef char *String; +typedef struct _WidgetRec *Widget; +typedef char Boolean; +typedef unsigned int Cardinal; +typedef struct _XedwListReturnStruct { + String string; + int xedwList_index; + struct _XedwListReturnStruct *next; +} XedwListReturnStruct; +static XedwListReturnStruct *return_list; +static String srcdir, dstdir; +char *strcpy(); + extern void setCursor(Cursor); + extern void query_dialog(String, Boolean); + extern Boolean directoryManagerNewDirectory(String); +trashQueryResult(Widget w, Boolean delete, caddr_t call_data) +{ + int execute(String, String, String, Boolean); + extern void destroy_button_dialog(void); + extern void changestate(Boolean); + + extern Cursor busy, left_ptr; + extern String cwd; + extern void freeReturnStruct(void); + String rmstring; + int status; + XedwListReturnStruct *tmp; + setCursor(busy); + destroy_button_dialog(); + if (delete == 1) { + rmstring = (("rm -fr") != ((void *)0) ? (strcpy((char*)XtMalloc((unsigned)strlen("rm -fr") + 1), "rm -fr")) : ((void *)0)); + tmp = return_list; + while (tmp != ((void *)0)) { + rmstring = (String) XtRealloc (rmstring, sizeof(char) * + (strlen(rmstring) + + strlen(tmp->string) + 5)); + sprintf(rmstring, "%s '%s'", rmstring, tmp->string); + tmp = tmp->next; + } + if ((status = execute(((void *)0), "rm", rmstring, 1)) != 0) { + XBell(XtDisplay(w), 100); + query_dialog("Can't remove file", 0); + } + XtFree(rmstring); + + directoryManagerNewDirectory(cwd); + } else { + changestate(1); + } + setCursor(left_ptr); + freeReturnStruct(); +} + +copyQueryResult(Widget w, Boolean copy, caddr_t call_data) +{ + extern void destroy_button_dialog(); + extern void changestate(Boolean); + extern Cursor busy, left_ptr; + extern void freeReturnStruct(void); + int execute(String, String, String, Boolean); + extern String cwd; + String copystring; + int status; + Cardinal srclen, dstlen; + XedwListReturnStruct *tmp; + destroy_button_dialog(); + setCursor(busy); + if (copy == 1) { + srclen = strlen(srcdir); + dstlen = strlen(dstdir); + copystring = (("cp -r") != ((void *)0) ? (strcpy((char*)XtMalloc((unsigned)strlen("cp -r") + 1), "cp -r")) : ((void *)0)); + tmp = return_list; + while (tmp != ((void *)0)) { + copystring = (String) XtRealloc (copystring, sizeof(char) * + (strlen(copystring) + + strlen(tmp->string) + + srclen + 6)); + sprintf(copystring, "%s '%s/%s'", copystring, srcdir, tmp->string); + tmp = tmp->next; + } + copystring = (String) XtRealloc (copystring, sizeof(char) * + (strlen(copystring) + + dstlen + 5)); + sprintf(copystring, "%s '%s'", copystring, dstdir); + if ((status = execute(((void *)0), "cp", copystring, 1)) != 0) { + XBell(XtDisplay(w), 100); + query_dialog("Can't copy file!", 0); + } + XtFree(copystring); + + directoryManagerNewDirectory(cwd); + } else { + changestate(1); + } + XtFree(srcdir); + XtFree(dstdir); + setCursor(left_ptr); + freeReturnStruct(); +} + +freeReturnStruct(){}
920625-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920608-1.c =================================================================== --- 920608-1.c (nonexistent) +++ 920608-1.c (revision 154) @@ -0,0 +1,25 @@ +foo (p) + int *p; +{ + int x; + int a; + + a = p[0]; + x = a + 5; + a = -1; + p[0] = x - 5; + return a; +} + +bar (p) +{ + short x; + int a; + + x = ((short *) p)[1]; +#if INHIBIT_COMBINE + ((short *) p)[0] = x; +#endif + + return (x < 45); +}
920608-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920428-2.c =================================================================== --- 920428-2.c (nonexistent) +++ 920428-2.c (revision 154) @@ -0,0 +1,531 @@ +double sin(double x); +double cos(double x); +double tan(double x); +double asin(double x); +double acos(double x); +double atan(double x); +double atan2(double y, double x); +double sinh(double x); +double cosh(double x); +double tanh(double x); +double exp(double x); +double expm1(double x); +double log(double x); +double log10(double x); +double log1p(double x); +double pow(double x, double y); +double sqrt(double x); +double cbrt(double x); +double ceil(double x); +double floor(double x); +double fabs(double x); +double frexp(double value, int *eptr); +double ldexp(double value, int exp); +double modf(double value, double *iptr); +double erf(double x); +double erfc(double x); +double atof(const char *nptr); +double hypot(double x, double y); +double lgamma(double x); +double j0(double x); +double j1(double x); +double jn(int n, double x); +double y0(double x); +double y1(double x); +double yn(int n, double x); +extern struct _iobuf { + int _cnt; + char *_ptr; + char *_base; + int _bufsiz; + short _flag; + char _file; +} _iob[]; +typedef unsigned long size_t; +typedef char *va_list; +struct _iobuf *fopen(const char *filename, const char *type); +struct _iobuf *freopen(const char *filename, const char *type, struct _iobuf *stream); +struct _iobuf *fdopen(int fildes, const char *type); +struct _iobuf *popen(const char *command, const char *type); +int pclose(struct _iobuf *stream); +int fflush(struct _iobuf *stream); +int fclose(struct _iobuf *stream); +int remove(const char *path); +int rename(const char *from, const char *to); +struct _iobuf *tmpfile(void); +char *tmpnam(char *s); +int setvbuf(struct _iobuf *iop, char *buf, int type, size_t size); +int setbuf(struct _iobuf *stream, char *buf); +int setbuffer(struct _iobuf *stream, char *buf, size_t size); +int setlinebuf(struct _iobuf *stream); +int fprintf(struct _iobuf *stream, const char *format, ...); +int printf(const char *format, ...); +char *sprintf(char *s, const char *format, ...); +int vfprintf(struct _iobuf *stream, const char *format, va_list arg); +int vprintf(const char *format, va_list arg); +int vsprintf(char *s, const char *format, va_list arg); +int fscanf(struct _iobuf *stream, const char *format, ...); +int scanf(const char *format, ...); +int sscanf(char *s, const char *format, ...); +int fgetc(struct _iobuf *stream); +int getw(struct _iobuf *stream); +char *fgets(char *s, int n, struct _iobuf *stream); +char *gets(char *s); +int fputc(int c, struct _iobuf *stream); +int putw(int w, struct _iobuf *stream); +int fputs(const char *s, struct _iobuf *stream); +int puts(const char *s); +int ungetc(int c, struct _iobuf *stream); +int fread(void *ptr, size_t size, size_t count, struct _iobuf *iop); +int fwrite(const void *ptr, size_t size, size_t count, struct _iobuf *iop); +int fseek(struct _iobuf *stream, long offset, int ptrname); +long ftell(struct _iobuf *stream); +void rewind(struct _iobuf *stream); +int fgetpos(struct _iobuf *stream, long *pos); +int fsetpos(struct _iobuf *stream, const long *pos); +void perror(const char *s); +typedef unsigned char byte; +typedef unsigned char uchar; +typedef unsigned short ushort; +typedef unsigned int uint; +typedef unsigned long ulong; +typedef unsigned char u_char; +typedef unsigned short u_short; +typedef unsigned int u_int; +typedef unsigned long u_long; +typedef unsigned short ushort_; +typedef struct _physadr { int r[1]; } *physadr; +typedef struct label_t { + int val[11]; +} label_t; +typedef struct _quad { long val[2]; } quad; +typedef long daddr_t; +typedef char * caddr_t; +typedef u_long ino_t; +typedef long swblk_t; +typedef long time_t; +typedef short dev_t; +typedef long off_t; +typedef u_short uid_t; +typedef u_short gid_t; +typedef signed char prio_t; +typedef long fd_mask; +typedef struct fd_set { + fd_mask fds_bits[(((256 )+(( (sizeof(fd_mask) * 8 ) )-1))/( (sizeof(fd_mask) * 8 ) )) ]; +} fd_set; +typedef struct qhdr { + struct qhdr *link, *rlink; +} *queue_t; +typedef char *ptr_ord_t; +typedef double floatp; +typedef char *(*proc_alloc_t)(unsigned num_elements, unsigned element_size, const char *client_name ); +typedef void (*proc_free_t)(char *data, unsigned num_elements, unsigned element_size, const char *client_name ); +extern struct _iobuf *gs_out; +typedef struct gs_point_s { + double x, y; +} gs_point; +typedef struct gs_int_point_s { + int x, y; +} gs_int_point; +typedef struct gs_rect_s { + gs_point p, q; +} gs_rect; +typedef struct gs_int_rect_s { + gs_int_point p, q; +} gs_int_rect; +typedef struct gs_state_s gs_state; +typedef struct { + proc_alloc_t alloc; + proc_free_t free; +} gs_memory_procs; +char *gs_malloc(uint, uint, const char * ); +void gs_free(char *, uint, uint, const char * ); +extern char gs_debug[128]; +extern int gs_log_error(int, const char *, int ); +typedef long fixed; +typedef struct gs_fixed_point_s { + fixed x, y; +} gs_fixed_point; +typedef struct gs_fixed_rect_s { + gs_fixed_point p, q; +} gs_fixed_rect; +typedef struct gs_matrix_s { + long _xx; float xx; long _xy; float xy; long _yx; float yx; long _yy; float yy; long _tx; float tx; long _ty; float ty; +} gs_matrix; +void gs_make_identity(gs_matrix * ); +int gs_make_translation(floatp, floatp, gs_matrix * ), + gs_make_scaling(floatp, floatp, gs_matrix * ), + gs_make_rotation(floatp, gs_matrix * ); +int gs_matrix_multiply(const gs_matrix *, const gs_matrix *, gs_matrix * ), + gs_matrix_invert(const gs_matrix *, gs_matrix * ), + gs_matrix_rotate(const gs_matrix *, floatp, gs_matrix * ); +int gs_point_transform(floatp, floatp, const gs_matrix *, gs_point * ), + gs_point_transform_inverse(floatp, floatp, const gs_matrix *, gs_point * ), + gs_distance_transform(floatp, floatp, const gs_matrix *, gs_point * ), + gs_distance_transform_inverse(floatp, floatp, const gs_matrix *, gs_point * ), + gs_bbox_transform_inverse(gs_rect *, gs_matrix *, gs_rect * ); +typedef struct gs_matrix_fixed_s { + long _xx; float xx; long _xy; float xy; long _yx; float yx; long _yy; float yy; long _tx; float tx; long _ty; float ty; + fixed tx_fixed, ty_fixed; +} gs_matrix_fixed; +extern void gs_update_matrix_fixed(gs_matrix_fixed * ); +int gs_point_transform2fixed(gs_matrix_fixed *, floatp, floatp, gs_fixed_point * ), + gs_distance_transform2fixed(gs_matrix_fixed *, floatp, floatp, gs_fixed_point * ); +typedef struct { + long xx, xy, yx, yy; + int skewed; + int shift; + int max_bits; + fixed round; +} fixed_coeff; + +typedef enum { + gs_cap_butt = 0, + gs_cap_round = 1, + gs_cap_square = 2 +} gs_line_cap; +typedef enum { + gs_join_miter = 0, + gs_join_round = 1, + gs_join_bevel = 2 +} gs_line_join; +gs_state *gs_state_alloc(proc_alloc_t, proc_free_t ); +int gs_state_free(gs_state * ); +int gs_gsave(gs_state * ), + gs_grestore(gs_state * ), + gs_grestoreall(gs_state * ); +gs_state *gs_gstate(gs_state * ); +int gs_currentgstate(gs_state * , const gs_state * ), + gs_setgstate(gs_state * , const gs_state * ); +gs_state *gs_state_swap_saved(gs_state *, gs_state * ); +void gs_state_swap(gs_state *, gs_state * ); +int gs_initgraphics(gs_state * ); +typedef struct gx_device_s gx_device; +int gs_flushpage(gs_state * ); +int gs_copypage(gs_state * ); +int gs_output_page(gs_state *, int, int ); +int gs_copyscanlines(gx_device *, int, byte *, uint, int *, uint * ); +gx_device * gs_getdevice(int ); +int gs_copydevice(gx_device **, gx_device *, proc_alloc_t ); +int gs_makeimagedevice(gx_device **, gs_matrix *, uint, uint, byte *, int, proc_alloc_t ); +void gs_nulldevice(gs_state * ); +int gs_setdevice(gs_state *, gx_device * ); +gx_device * gs_currentdevice(gs_state * ); +const char * gs_devicename(gx_device * ); +void gs_deviceinitialmatrix(gx_device *, gs_matrix * ); +int gs_closedevice(gx_device * ); +int gs_setlinewidth(gs_state *, floatp ); +float gs_currentlinewidth(const gs_state * ); +int gs_setlinecap(gs_state *, gs_line_cap ); +gs_line_cap gs_currentlinecap(const gs_state * ); +int gs_setlinejoin(gs_state *, gs_line_join ); +gs_line_join gs_currentlinejoin(const gs_state * ); +int gs_setmiterlimit(gs_state *, floatp ); +float gs_currentmiterlimit(const gs_state * ); +int gs_setdash(gs_state *, const float *, uint, floatp ); +uint gs_currentdash_length(const gs_state * ); +int gs_currentdash_pattern(const gs_state *, float * ); +float gs_currentdash_offset(const gs_state * ); +int gs_setflat(gs_state *, floatp ); +float gs_currentflat(const gs_state * ); +int gs_setstrokeadjust(gs_state *, int ); +int gs_currentstrokeadjust(const gs_state * ); +typedef enum { + gs_color_space_DeviceGray = 0, + gs_color_space_DeviceRGB, + gs_color_space_DeviceCMYK +} gs_color_space; +typedef struct gs_color_s gs_color; +extern const uint gs_color_sizeof; +int gs_setgray(gs_state *, floatp ); +float gs_currentgray(gs_state * ); +int gs_sethsbcolor(gs_state *, floatp, floatp, floatp ), + gs_currenthsbcolor(gs_state *, float [3] ), + gs_setrgbcolor(gs_state *, floatp, floatp, floatp ), + gs_currentrgbcolor(gs_state *, float [3] ); +int gs_currentcolorspace(gs_state *, gs_color_space * ); +typedef float (*gs_transfer_proc)(gs_state *, floatp ); +int gs_settransfer(gs_state *, gs_transfer_proc ), + gs_settransfer_remap(gs_state *, gs_transfer_proc, int ); +gs_transfer_proc gs_currenttransfer(gs_state * ); +int gs_setcolortransfer(gs_state *, gs_transfer_proc , + gs_transfer_proc , gs_transfer_proc , + gs_transfer_proc ), + gs_setcolortransfer_remap(gs_state *, gs_transfer_proc , + gs_transfer_proc , gs_transfer_proc , + gs_transfer_proc , int ); +void gs_currentcolortransfer(gs_state *, gs_transfer_proc [4] ); +int gs_setscreen(gs_state *, floatp, floatp, float (*)(floatp, floatp ) ); +int gs_currentscreen(gs_state *, float *, float *, float (**)(floatp, floatp ) ); +int gs_sethalftonephase(gs_state *, int, int ); +int gs_currenthalftonephase(gs_state *, gs_int_point * ); +typedef struct gs_screen_enum_s gs_screen_enum; +extern const uint gs_screen_enum_sizeof; +int gs_screen_init(gs_screen_enum *, gs_state *, floatp, floatp ); +int gs_screen_currentpoint(gs_screen_enum *, gs_point * ); +int gs_screen_next(gs_screen_enum *, floatp ); +struct gs_state_s { + gs_state *saved; + gs_memory_procs memory_procs; + gs_matrix_fixed ctm; + gs_matrix ctm_inverse; + int inverse_valid; + struct gx_path_s *path; + struct gx_clip_path_s *clip_path; + int clip_rule; + struct line_params_s *line_params; + struct halftone_params_s *halftone; + float (*ht_proc)(floatp, floatp ); + gs_int_point ht_phase; + gs_int_point phase_mod; + struct gs_color_s *color; + struct gx_device_color_s *dev_color; + struct gx_transfer_s *transfer; + struct gs_font_s *font; + gs_matrix char_tm; + int char_tm_valid; + byte in_cachedevice; + byte in_charpath; + + + + + int level; + float flatness; + int stroke_adjust; + struct device_s *device; + int device_is_shared; + +}; +typedef unsigned long gx_bitmap_id; +typedef struct gx_bitmap_s { + byte *data; + int raster; + gs_int_point size; + gx_bitmap_id id; + ushort rep_width, rep_height; +} gx_bitmap; +typedef unsigned long gx_color_index; +typedef unsigned short gx_color_value; +typedef struct gx_device_color_info_s { + int num_components; + + int depth; + gx_color_value max_gray; + gx_color_value max_rgb; + + gx_color_value dither_gray; + gx_color_value dither_rgb; + +} gx_device_color_info; +typedef struct gx_device_procs_s gx_device_procs; +struct gx_device_s { + int params_size; gx_device_procs *procs; const char *dname; int width; int height; float x_pixels_per_inch; float y_pixels_per_inch; float l_margin, b_margin, r_margin, t_margin; gx_device_color_info color_info; int is_open; +}; +typedef struct gs_prop_item_s gs_prop_item; +struct gx_device_procs_s { + int (*open_device)(gx_device *dev ); + void (*get_initial_matrix)(gx_device *dev, gs_matrix *pmat ); + int (*sync_output)(gx_device *dev ); + int (*output_page)(gx_device *dev, int num_copies, int flush ); + int (*close_device)(gx_device *dev ); + gx_color_index (*map_rgb_color)(gx_device *dev, gx_color_value red, gx_color_value green, gx_color_value blue ); + int (*map_color_rgb)(gx_device *dev, gx_color_index color, gx_color_value rgb[3] ); + int (*fill_rectangle)(gx_device *dev, int x, int y, int width, int height, gx_color_index color ); + int (*tile_rectangle)(gx_device *dev, gx_bitmap *tile, int x, int y, int width, int height, gx_color_index color0, gx_color_index color1, int phase_x, int phase_y ); + int (*copy_mono)(gx_device *dev, unsigned char *data, int data_x, int raster, gx_bitmap_id id, int x, int y, int width, int height, gx_color_index color0, gx_color_index color1 ); + int (*copy_color)(gx_device *dev, unsigned char *data, int data_x, int raster, gx_bitmap_id id, int x, int y, int width, int height ); + int (*draw_line)(gx_device *dev, int x0, int y0, int x1, int y1, gx_color_index color ); + int (*get_bits)(gx_device *dev, int y, unsigned char *data, unsigned int size, int pad_to_word ); + int (*get_props)(gx_device *dev, gs_prop_item *plist ); + + int (*put_props)(gx_device *dev, gs_prop_item *plist, int count ); + +}; +extern unsigned int gx_device_bytes_per_scan_line(gx_device *dev, int pad_to_word ); +int gx_default_open_device(gx_device *dev ); +void gx_default_get_initial_matrix(gx_device *dev, gs_matrix *pmat ); +int gx_default_sync_output(gx_device *dev ); +int gx_default_output_page(gx_device *dev, int num_copies, int flush ); +int gx_default_close_device(gx_device *dev ); +gx_color_index gx_default_map_rgb_color(gx_device *dev, gx_color_value red, gx_color_value green, gx_color_value blue ); +int gx_default_map_color_rgb(gx_device *dev, gx_color_index color, gx_color_value rgb[3] ); +int gx_default_tile_rectangle(gx_device *dev, gx_bitmap *tile, int x, int y, int width, int height, gx_color_index color0, gx_color_index color1, int phase_x, int phase_y ); +int gx_default_copy_color(gx_device *dev, unsigned char *data, int data_x, int raster, gx_bitmap_id id, int x, int y, int width, int height ); +int gx_default_draw_line(gx_device *dev, int x0, int y0, int x1, int y1, gx_color_index color ); +int gx_default_get_bits(gx_device *dev, int y, unsigned char *data, unsigned int size, int pad_to_word ); +int gx_default_get_props(gx_device *dev, gs_prop_item *plist ); +int gx_default_put_props(gx_device *dev, gs_prop_item *plist, int count ); +typedef struct device_s { + gx_device *info; + int is_band_device; + gx_color_index white, black; +} device; +int gs_initmatrix(gs_state * ), + gs_defaultmatrix(const gs_state *, gs_matrix * ), + gs_currentmatrix(const gs_state *, gs_matrix * ), + gs_setmatrix(gs_state *, const gs_matrix * ), + gs_translate(gs_state *, floatp, floatp ), + gs_scale(gs_state *, floatp, floatp ), + gs_rotate(gs_state *, floatp ), + gs_concat(gs_state *, const gs_matrix * ); +int gs_transform(gs_state *, floatp, floatp, gs_point * ), + gs_dtransform(gs_state *, floatp, floatp, gs_point * ), + gs_itransform(gs_state *, floatp, floatp, gs_point * ), + gs_idtransform(gs_state *, floatp, floatp, gs_point * ); +static int +ctm_set_inverse(gs_state *pgs) +{ int code = gs_matrix_invert(&*(gs_matrix *)&(pgs)->ctm , &pgs->ctm_inverse); + 0; + if ( code < 0 ) return code; + pgs->inverse_valid = 1; + return 0; +} +void +gs_update_matrix_fixed(gs_matrix_fixed *pmat) +{ (*pmat). tx = ((float)(((*pmat). tx_fixed = ((fixed)(((*pmat). tx)*(float)(1<<12 ) )) )*(1.0/(1<<12 ) ))) , (*pmat). ty = ((float)(((*pmat). ty_fixed = ((fixed)(((*pmat). ty)*(float)(1<<12 ) )) )*(1.0/(1<<12 ) ))); +} +int +gs_initmatrix(gs_state *pgs) +{ gx_device *dev = pgs->device->info; + (*dev->procs->get_initial_matrix)(dev, &*(gs_matrix *)&(pgs)->ctm ); + (pgs->ctm). tx = ((float)(((pgs->ctm). tx_fixed = ((fixed)(((pgs->ctm). tx)*(float)(1<<12 ) )) )*(1.0/(1<<12 ) ))) , (pgs->ctm). ty = ((float)(((pgs->ctm). ty_fixed = ((fixed)(((pgs->ctm). ty)*(float)(1<<12 ) )) )*(1.0/(1<<12 ) ))) , pgs->inverse_valid = 0, pgs->char_tm_valid = 0; + return 0; +} +int +gs_defaultmatrix(const gs_state *pgs, gs_matrix *pmat) +{ gx_device *dev = pgs->device->info; + (*dev->procs->get_initial_matrix)(dev, pmat); + return 0; +} +int +gs_currentmatrix(const gs_state *pgs, gs_matrix *pmat) +{ *pmat = *(gs_matrix *)&(pgs)->ctm; + return 0; +} +int +gs_setmatrix(gs_state *pgs, const gs_matrix *pmat) +{ *(gs_matrix *)&(pgs)->ctm = *pmat; + (pgs->ctm). tx = ((float)(((pgs->ctm). tx_fixed = ((fixed)(((pgs->ctm). tx)*(float)(1<<12 ) )) )*(1.0/(1<<12 ) ))) , (pgs->ctm). ty = ((float)(((pgs->ctm). ty_fixed = ((fixed)(((pgs->ctm). ty)*(float)(1<<12 ) )) )*(1.0/(1<<12 ) ))) , pgs->inverse_valid = 0, pgs->char_tm_valid = 0; + return 0; +} +int +gs_translate(gs_state *pgs, floatp dx, floatp dy) +{ gs_point pt; + int code; + if ( (code = gs_distance_transform(dx, dy, &*(gs_matrix *)&(pgs)->ctm , &pt)) < 0 ) + return code; + pgs->ctm.tx += pt.x; + pgs->ctm.ty += pt.y; + (pgs->ctm). tx = ((float)(((pgs->ctm). tx_fixed = ((fixed)(((pgs->ctm). tx)*(float)(1<<12 ) )) )*(1.0/(1<<12 ) ))) , (pgs->ctm). ty = ((float)(((pgs->ctm). ty_fixed = ((fixed)(((pgs->ctm). ty)*(float)(1<<12 ) )) )*(1.0/(1<<12 ) ))) , pgs->inverse_valid = 0, pgs->char_tm_valid = 0; + return 0; +} +int +gs_scale(gs_state *pgs, floatp sx, floatp sy) +{ pgs->ctm.xx *= sx; + pgs->ctm.xy *= sx; + pgs->ctm.yx *= sy; + pgs->ctm.yy *= sy; + pgs->inverse_valid = 0, pgs->char_tm_valid = 0; + return 0; +} +int +gs_rotate(gs_state *pgs, floatp ang) +{ int code = gs_matrix_rotate(&*(gs_matrix *)&(pgs)->ctm , ang, &*(gs_matrix *)&(pgs)->ctm ); + pgs->inverse_valid = 0, pgs->char_tm_valid = 0; + return code; +} +int +gs_concat(gs_state *pgs, const gs_matrix *pmat) +{ int code = gs_matrix_multiply(pmat, &*(gs_matrix *)&(pgs)->ctm , &*(gs_matrix *)&(pgs)->ctm ); + (pgs->ctm). tx = ((float)(((pgs->ctm). tx_fixed = ((fixed)(((pgs->ctm). tx)*(float)(1<<12 ) )) )*(1.0/(1<<12 ) ))) , (pgs->ctm). ty = ((float)(((pgs->ctm). ty_fixed = ((fixed)(((pgs->ctm). ty)*(float)(1<<12 ) )) )*(1.0/(1<<12 ) ))) , pgs->inverse_valid = 0, pgs->char_tm_valid = 0; + return code; +} +int +gs_transform(gs_state *pgs, floatp x, floatp y, gs_point *pt) +{ return gs_point_transform(x, y, &*(gs_matrix *)&(pgs)->ctm , pt); +} +int +gs_dtransform(gs_state *pgs, floatp dx, floatp dy, gs_point *pt) +{ return gs_distance_transform(dx, dy, &*(gs_matrix *)&(pgs)->ctm , pt); +} +int +gs_itransform(gs_state *pgs, floatp x, floatp y, gs_point *pt) +{ + + if ( !!(((*(long *)(&((&pgs->ctm)->xy)) | *(long *)(&( (&pgs->ctm)->yx)) ) << 1) == 0) ) + { return gs_point_transform_inverse(x, y, &*(gs_matrix *)&(pgs)->ctm , pt); + } + else + { if ( !pgs->inverse_valid ) { int code = ctm_set_inverse(pgs); if ( code < 0 ) return code; }; + return gs_point_transform(x, y, &pgs->ctm_inverse, pt); + } +} +int +gs_idtransform(gs_state *pgs, floatp dx, floatp dy, gs_point *pt) +{ + + if ( !!(((*(long *)(&((&pgs->ctm)->xy)) | *(long *)(&( (&pgs->ctm)->yx)) ) << 1) == 0) ) + { return gs_distance_transform_inverse(dx, dy, + &*(gs_matrix *)&(pgs)->ctm , pt); + } + else + { if ( !pgs->inverse_valid ) { int code = ctm_set_inverse(pgs); if ( code < 0 ) return code; }; + return gs_distance_transform(dx, dy, &pgs->ctm_inverse, pt); + } +} +int +gs_translate_to_fixed(register gs_state *pgs, fixed px, fixed py) +{ pgs->ctm.tx = ((float)((pgs->ctm.tx_fixed = px)*(1.0/(1<<12 ) ))); + pgs->ctm.ty = ((float)((pgs->ctm.ty_fixed = py)*(1.0/(1<<12 ) ))); + pgs->inverse_valid = 0; + pgs->char_tm_valid = 1; + return 0; +} +int +gx_matrix_to_fixed_coeff(const gs_matrix *pmat, register fixed_coeff *pfc, + int max_bits) +{ gs_matrix ctm; + int scale = -10000; + int expt, shift; + ctm = *pmat; + pfc->skewed = 0; + if ( !((*(long *)(&(ctm.xx)) << 1) == 0) ) + { (void)frexp(ctm.xx, &scale); + } + if ( !((*(long *)(&(ctm.xy)) << 1) == 0) ) + { (void)frexp(ctm.xy, &expt); + if ( expt > scale ) scale = expt; + pfc->skewed = 1; + } + if ( !((*(long *)(&(ctm.yx)) << 1) == 0) ) + { (void)frexp(ctm.yx, &expt); + if ( expt > scale ) scale = expt; + pfc->skewed = 1; + } + if ( !((*(long *)(&(ctm.yy)) << 1) == 0) ) + { (void)frexp(ctm.yy, &expt); + if ( expt > scale ) scale = expt; + } + scale = sizeof(long) * 8 - 1 - max_bits - scale; + shift = scale - 12; + if ( shift > 0 ) + { pfc->shift = shift; + pfc->round = (fixed)1 << (shift - 1); + } + else + { pfc->shift = 0; + pfc->round = 0; + scale -= shift; + } + pfc->xx = (((*(long *)(&(ctm.xx)) << 1) == 0) ? 0 : (long)ldexp(ctm.xx, scale)); + pfc->yy = (((*(long *)(&(ctm.yy)) << 1) == 0) ? 0 : (long)ldexp(ctm.yy, scale)); + if ( pfc->skewed ) + { pfc->xy = (((*(long *)(&(ctm.xy)) << 1) == 0) ? 0 : (long)ldexp(ctm.xy, scale)); + pfc->yx = (((*(long *)(&(ctm.yx)) << 1) == 0) ? 0 : (long)ldexp(ctm.yx, scale)); + } + else + pfc->xy = pfc->yx = 0; + pfc->max_bits = max_bits; + return 0; +}
920428-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930927-1.c =================================================================== --- 930927-1.c (nonexistent) +++ 930927-1.c (revision 154) @@ -0,0 +1,3 @@ +#include + +wchar_t s[5] = L"abcd";
930927-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920928-3.c =================================================================== --- 920928-3.c (nonexistent) +++ 920928-3.c (revision 154) @@ -0,0 +1,19 @@ +f (int phaseone) +{ + typedef struct + { + unsigned char *p; + } + FILE; + FILE b[2]; + static unsigned char xchr[2]; + int j; + int for_end; + if (phaseone) + { + if (j <= for_end) + do + *(b[1].p) = xchr[j]; + while (j++ < 10); + } +}
920928-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr23435.c =================================================================== --- pr23435.c (nonexistent) +++ pr23435.c (revision 154) @@ -0,0 +1,11 @@ +/* PR target/23435. + + On m68k-none-elf, this used to cause an unrecognized insn because + zero_extendsidi2 accepted operands that are both memory even though + such a pattern did not exist. */ + +void +foo (unsigned long *a, unsigned long long *p) +{ + *p = *a; +}
pr23435.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr20583.c =================================================================== --- pr20583.c (nonexistent) +++ pr20583.c (revision 154) @@ -0,0 +1,30 @@ +/* PR target/20583 + On m68k-none-elf, CSE used to generate + + (set (reg:HI ...) + (const:HI (truncate:HI (minus:SI (label_ref ...) + (label_ref ...))))) + + which output functions do not know how to handle. Make sure that + such a constant will be rejected. */ + +void bar (unsigned int); + +void +foo (void) +{ + char buf[1] = { 3 }; + const char *p = buf; + const char **q = &p; + unsigned int ch; + switch (**q) + { + case 1: ch = 5; break; + case 2: ch = 4; break; + case 3: ch = 3; break; + case 4: ch = 2; break; + case 5: ch = 1; break; + default: ch = 0; break; + } + bar (ch); +}
pr20583.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920501-19.c =================================================================== --- 920501-19.c (nonexistent) +++ 920501-19.c (revision 154) @@ -0,0 +1 @@ +long long x=0;y(){x=0;}
920501-19.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030331-1.c =================================================================== --- 20030331-1.c (nonexistent) +++ 20030331-1.c (revision 154) @@ -0,0 +1,13 @@ +/* From PR/9301. Fixed by ebotcazou's patch for PR/9493. */ + +void bar (void); + +void foo (int a, int b, int c, int d, int e) +{ + if (a) + bar(); + if (b && c) + ; + if (d && e) + ; +}
20030331-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020530-1.c =================================================================== --- 20020530-1.c (nonexistent) +++ 20020530-1.c (revision 154) @@ -0,0 +1,16 @@ +/* PR optimization/6822 */ + +extern unsigned char foo1 (void); +extern unsigned short foo2 (void); + +int bar1 (void) +{ + unsigned char q = foo1 (); + return (q < 0x80) ? 64 : 0; +} + +int bar2 (void) +{ + unsigned short h = foo2 (); + return (h < 0x8000) ? 64 : 0; +}
20020530-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010711-2.c =================================================================== --- 20010711-2.c (nonexistent) +++ 20010711-2.c (revision 154) @@ -0,0 +1,11 @@ +typedef unsigned long long value; + +void foo (value *v) {} + +void test () +{ + value v; + foo (&v); + if (v-- == 1) + foo (&v); +}
20010711-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr24883.c =================================================================== --- pr24883.c (nonexistent) +++ pr24883.c (revision 154) @@ -0,0 +1,21 @@ +typedef struct _rec_stl rec_stl; +struct _rec_stl { + unsigned char **strs; +}; +orec_str_list(int count) { + rec_stl *stl; + int i, j; + int li, lj; + unsigned char ci, cj; + for (i = 0; i < count; i++) { + for (j = i + 1; j < count; j++) { + cj = lj > 2 ? stl->strs[j][0] : (long)stl->strs[j] & 0xff; + if ((count >= 16 && cj < ci) || (cj == ci && lj > li)) { + stl->strs[j] = stl->strs[i]; + ci ^= cj; + cj ^= ci; + ci ^= cj; + } + } + } +}
pr24883.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20021108-1.c =================================================================== --- 20021108-1.c (nonexistent) +++ 20021108-1.c (revision 154) @@ -0,0 +1,7 @@ +int +main() +{ +l1: + return &&l1-&&l2; +l2:; +}
20021108-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20011029-1.c =================================================================== --- 20011029-1.c (nonexistent) +++ 20011029-1.c (revision 154) @@ -0,0 +1,9 @@ +void foo (void *) __attribute__ ((noreturn)); + +void +bar (void *x) +{ + if (__builtin_setjmp (x)) + return; + foo (x); +}
20011029-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr17397.c =================================================================== --- pr17397.c (nonexistent) +++ pr17397.c (revision 154) @@ -0,0 +1,12 @@ +/* ICE due to invalid GIMPLE created during strlen simplification. */ + +extern unsigned long strlen (__const char *__s); +extern void bar (); +extern int cols; + +void foo (void) +{ + char s[cols + 2]; + if (strlen (s) > 0) + bar (); +}
pr17397.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: simd-4.c =================================================================== --- simd-4.c (nonexistent) +++ simd-4.c (revision 154) @@ -0,0 +1,15 @@ +typedef float floatvect2 __attribute__((vector_size (16))); + +typedef union +{ + floatvect2 vector; + float f[2]; +}resfloatvect2; + +void tempf(floatvect2 *x, floatvect2 *y) +{ + floatvect2 temp= *x; + floatvect2 temp1=*y; + resfloatvect2 temp2; + *x=temp+temp1; +}
simd-4.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20060217-1.c =================================================================== --- 20060217-1.c (nonexistent) +++ 20060217-1.c (revision 154) @@ -0,0 +1,25 @@ +/* PR middle-end/26334 */ + +struct U +{ + unsigned int u[256]; +}; + +struct S +{ + int u, v, w, x; + int s[255]; +}; + +int +foo (struct U *x, struct S *y) +{ + register int i; + for (i = 0; i < 255; i++) + { + unsigned int v; + __asm__ ("" : "=r" (v) : "0" (x->u[i + 1]) : "cc"); + y->s[i] = v; + } + return 0; +}
20060217-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: labels-3.c =================================================================== --- labels-3.c (nonexistent) +++ labels-3.c (revision 154) @@ -0,0 +1,18 @@ +/* This test does not compile on mips-irix6 using the native assembler, + though it does work with gas. See PR6200. Since we cannot (???) + distinguish which assembler is being used, always pass -S for + irix. */ +/* { dg-options "-w -S" { target mips*-*-irix* } } */ + +/* Verify that we can narrow the storage associated with label diffs. */ + +int foo (int a) +{ + static const short ar[] = { &&l1 - &&l1, &&l2 - &&l1 }; + void *p = &&l1 + ar[a]; + goto *p; + l1: + return 1; + l2: + return 2; +}
labels-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: init-2.c =================================================================== --- init-2.c (nonexistent) +++ init-2.c (revision 154) @@ -0,0 +1,4 @@ +struct +{ + int e1, e2; +} v = { e2: 0 };
init-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 950530-1.c =================================================================== --- 950530-1.c (nonexistent) +++ 950530-1.c (revision 154) @@ -0,0 +1,4 @@ +f (int *s, int *t) +{ + return (t - s) / 2; +}
950530-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920617-1.c =================================================================== --- 920617-1.c (nonexistent) +++ 920617-1.c (revision 154) @@ -0,0 +1 @@ +f(){double*xp,y;*xp++=sqrt(y);}
920617-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr22013-1.c =================================================================== --- pr22013-1.c (nonexistent) +++ pr22013-1.c (revision 154) @@ -0,0 +1,11 @@ +typedef unsigned short W; +typedef const W *P; + +extern void g(P); + +void +f () +{ + const P s = (const W []){ 'R' }; + g (s); +}
pr22013-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 950816-1.c =================================================================== --- 950816-1.c (nonexistent) +++ 950816-1.c (revision 154) @@ -0,0 +1,7 @@ +f () +{ + unsigned char b[2]; + float f; + b[0] = (unsigned char) f / 256; + return 0; +}
950816-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr19121.c =================================================================== --- pr19121.c (nonexistent) +++ pr19121.c (revision 154) @@ -0,0 +1,23 @@ +typedef struct interpreter { + char Itokenbuf[256]; +} PerlInterpreter; +static inline void S_missingterm(char *s) +{ + char tmpbuf[3] = ""; + char q; + if (!s) + s = tmpbuf; + q = strchr(s,'"') ? '\'' : '"'; +} +void S_scan_heredoc(PerlInterpreter *my_perl, char *s, int i) +{ + char term; + term = *my_perl->Itokenbuf; + if (i) + { + *s = term; + S_missingterm(my_perl->Itokenbuf); + } + else + S_missingterm(my_perl->Itokenbuf); +}
pr19121.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: nested-1.c =================================================================== --- nested-1.c (nonexistent) +++ nested-1.c (revision 154) @@ -0,0 +1,19 @@ +typedef __SIZE_TYPE__ size_t; +extern int printf (const char *, ...); +extern void *memset (void *, int, size_t); + +int bar (int (*)(), int, void *); + +int +main(int argc, char **argv) +{ + struct s { int a; char b[argc]; }; + int nested (struct s x) { return x.a + sizeof(x); } + struct s t; + memset (&t, 0, sizeof(t)); + t.a = 123; + printf("%d\n", bar (nested, argc, &t)); + return 0; +} + +
nested-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr14730.c =================================================================== --- pr14730.c (nonexistent) +++ pr14730.c (revision 154) @@ -0,0 +1,16 @@ +/* PR middle-end/14730 */ + +int t (char i) +{ + switch (i) + { + case 1: + case 7: + case 10: + case 14: + case 9: + case 256: + return 0; + } + return 1; +}
pr14730.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020701-1.c =================================================================== --- 20020701-1.c (nonexistent) +++ 20020701-1.c (revision 154) @@ -0,0 +1,75 @@ +/* PR target/7177 + Problem with cris-axis-elf: ICE in global. + Origin: hp@axis.com. */ + +typedef __SIZE_TYPE__ size_t; +void f1 (void *); +char *f2 (const char *); +int atoi (const char *); +char *strchr (const char *, int); +int strcmp (const char *, const char *); +size_t strlen (const char *); +typedef enum { A, B, C } t1; +extern const char _v[]; + +static t1 +f (const char* p1, const char* p2, char p3) +{ + char *v1; + char *v2; + char *a; + char *v3; + char *v4; + char *v5; + char *e; + char *v6; + t1 r = C; + + v1 = f2 (p2); + v4 = f2 (p1); + + a = v2 = v1; + e = v5 = v4; + memcpy (&e, &e, sizeof (e)); + + v3 = strchr (v2, ','); + v6 = strchr (v5, ','); + + while ((_v + 1)[(unsigned) *a] & 4) + a++; + while ((_v + 1)[(unsigned) *e] & 4) + e++; + + if (a == v3 && e == v6) + { + if (p3) + r = atoi (v5) < atoi (v2) ? B : A; + else + r = atoi (v5) > atoi (v2) ? B : A; + v2 = ++a; + v5 = ++e; + v3 = strchr (v2, ','); + v6 = strchr (v5, ','); + + while ((_v + 1)[(unsigned) *a] & 4) + a++; + while ((_v + 1)[(unsigned) *e] & 4) + e++; + + if (a == v3 && e == v6) + { + if (r == B) + r = B; + else if (p3) + r = atoi (v5) < atoi (v2) ? B : A; + else + r = atoi (v5) > atoi (v2) ? B : A; + } + else + r = C; + } + + f1 (v1); + f1 (v4); + return r; +}
20020701-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031231-1.c =================================================================== --- 20031231-1.c (nonexistent) +++ 20031231-1.c (revision 154) @@ -0,0 +1,51 @@ +extern int f1 (int, void *); +extern int *f2 (void) __attribute__ ((__const__)); +extern int f3 (int, void *); + +int +test (int x, char *y, int z) +{ + int b = 0; + + if (x < 1024) + { + y[0] = '\0'; + + do + { + switch (f1 (x, y + b)) + { + case -1: + if (b == 0) + return -1; + else + return b; + + default: + b++; + } + } + while (y[b - 1] != '\0' && y[b - 1] != '\n' && b < z); + } + else + { + do + { + switch (f3 (x, y + b)) + { + case -1: + if ((*f2 ()) == 4) + continue; + if (b == 0) + return -1; + else + return b; + + default: + b++; + } + } + while (y[b - 1] != '\0' && y[b - 1] != '\n' && b < z); + } + return b; +}
20031231-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040303-1.c =================================================================== --- 20040303-1.c (nonexistent) +++ 20040303-1.c (revision 154) @@ -0,0 +1,16 @@ +typedef struct input { + struct input *next; +} input_t; +static input_t *inputs = (input_t *)((void *)0); +void +RemoveInput(unsigned long id) +{ + input_t *ip; + input_t *prev; + while (1) + if (ip == (input_t *)id) + break; + if (ip == (input_t *)((void *)0)) + return; + prev->next = ip->next; +}
20040303-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030305-1.c =================================================================== --- 20030305-1.c (nonexistent) +++ 20030305-1.c (revision 154) @@ -0,0 +1,18 @@ +/* PR c/9799 */ +/* Verify that GCC doesn't crash on excess elements + in initializer for a flexible array member. */ + +typedef struct { + int aaa; +} s1_t; + +typedef struct { + int bbb; + s1_t s1_array[]; +} s2_t; + +static s2_t s2_array[]= { + { 1, 4 }, + { 2, 5 }, + { 3, 6 } +};
20030305-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030224-1.c =================================================================== --- 20030224-1.c (nonexistent) +++ 20030224-1.c (revision 154) @@ -0,0 +1,17 @@ +void zzz (char *s1, char *s2, int len, int *q) +{ + int z = 5; + unsigned int i, b; + struct { char a[z]; } x; + + for (i = 0; i < len; i++) + s1[i] = s2[i]; + + b = z & 0x3; + + len += (b == 0 ? 0 : 1) + z; + + *q = len; + + foo (x, x); +}
20030224-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20011217-2.c =================================================================== --- 20011217-2.c (nonexistent) +++ 20011217-2.c (revision 154) @@ -0,0 +1,19 @@ +/* Test that the initializer of a compound literal is properly walked + when tree inlining. */ +/* Origin: glibc (as reported in PR c/5105) from . */ + +inline int +finite (double __x) +{ + return (__extension__ + (((((union { double __d; int __i[2]; }) {__d: __x}).__i[1] + | 0x800fffffu) + 1) >> 31)); +} + +int +main (void) +{ + double x = 1.0; + + return finite (x); +}
20011217-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20011119-1.c =================================================================== --- 20011119-1.c (nonexistent) +++ 20011119-1.c (revision 154) @@ -0,0 +1,10 @@ +/* { dg-require-weak "" } */ +/* { dg-require-alias "" } */ +#define ASMNAME(cname) ASMNAME2 (__USER_LABEL_PREFIX__, cname) +#define ASMNAME2(prefix, cname) STRING (prefix) cname +#define STRING(x) #x + +extern inline int foo (void) { return 23; } +int xxx(void) __asm__(ASMNAME ("xxx")); +int xxx(void) { return 23; } +extern int foo (void) __attribute__ ((weak, alias ("xxx")));
20011119-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000427-1.c =================================================================== --- 20000427-1.c (nonexistent) +++ 20000427-1.c (revision 154) @@ -0,0 +1,9 @@ +int lwidth; +int lheight; +void ConvertFor3dDriver (int requirePO2, int maxAspect) +{ + int oldw = lwidth, oldh = lheight; + + lheight = FindNearestPowerOf2 (lheight); + while (lwidth/lheight > maxAspect) lheight += lheight; +}
20000427-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr13889.c =================================================================== --- pr13889.c (nonexistent) +++ pr13889.c (revision 154) @@ -0,0 +1,7 @@ +/* PR target/13889 */ +struct { long long a; } *p; +void initNetFlowFunct(void) { + unsigned int b = (unsigned int)-1; + p->a = b; +} +
pr13889.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050622-1.c =================================================================== --- 20050622-1.c (nonexistent) +++ 20050622-1.c (revision 154) @@ -0,0 +1,16 @@ +#if __SCHAR_MAX__ == 127 && __INT_MAX__ >= 2147483647 +struct S { char buf[72*1024*1024]; }; +#else +struct S { char buf[64]; }; +#endif + +extern void bar (struct S); + +struct S s; + +int +foo (void) +{ + bar (s); + return 0; +}
20050622-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 941111-1.c =================================================================== --- 941111-1.c (nonexistent) +++ 941111-1.c (revision 154) @@ -0,0 +1,8 @@ +main () +{ + struct S { int i; char c; } obj1, obj2; + + foo (); + if (obj1.c != obj2.c) + bar (); +}
941111-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050801-2.c =================================================================== --- 20050801-2.c (nonexistent) +++ 20050801-2.c (revision 154) @@ -0,0 +1,12 @@ +__inline int f(int i) +{ + struct { + int t[i]; + } t; + return sizeof(t.t[i--]); +} + +int g(int i) +{ + return f(i); +}
20050801-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr28776-2.c =================================================================== --- pr28776-2.c (nonexistent) +++ pr28776-2.c (revision 154) @@ -0,0 +1,26 @@ +typedef struct RangeCoder +{ + unsigned char one_state[256]; +} RangeCoder; +static inline void put_rac(RangeCoder *c, unsigned char* const state) +{ + *state= c->one_state[*state]; +} +typedef struct PlaneContext{ + unsigned (*state)[32]; +} PlaneContext; +static inline void put_symbol(RangeCoder *c, unsigned char *state) +{ + int i; + const int e; + put_rac(c, state); + for(i=e-1; i>=0; i--) + put_rac(c, state+22+i); +} +int encode_line(void) +{ + PlaneContext * const p; + RangeCoder * const c; + int a; + put_symbol(c, p->state[a]); +}
pr28776-2.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 930222-1.c =================================================================== --- 930222-1.c (nonexistent) +++ 930222-1.c (revision 154) @@ -0,0 +1,16 @@ +typedef struct + { + long i; + double f; + } T; + +f (T *n1, T *n2) +{ + if (g (n2)) + return n1->i - n2->i; + else + { + double f = n1->f - n2->i; + return f == 0.0 ? 0 : (f > 0.0 ? 1 : -1); + } +}
930222-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920502-1.c =================================================================== --- 920502-1.c (nonexistent) +++ 920502-1.c (revision 154) @@ -0,0 +1 @@ +extern void*t[];x(i){goto*t[i];}
920502-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040705-1.c =================================================================== --- 20040705-1.c (nonexistent) +++ 20040705-1.c (revision 154) @@ -0,0 +1,2 @@ +extern char foo[], bar[]; +void f (void) { memcpy (foo, bar, 7); }
20040705-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20040624-1.c =================================================================== --- 20040624-1.c (nonexistent) +++ 20040624-1.c (revision 154) @@ -0,0 +1,3 @@ +struct s { float f[1]; }; +struct s foo(); +float bar() { return foo().f[0]; }
20040624-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030904-1.c =================================================================== --- 20030904-1.c (nonexistent) +++ 20030904-1.c (revision 154) @@ -0,0 +1,94 @@ +struct A +{ + long a1; + double *a2; +}; + +struct B +{ + void *b1; + double b2, b3; + struct + { + int d1; + double d2; + } b4; +}; + +struct C +{ + struct A *c1; + void *c2; +}; + +long fn1 (struct A *, double); +void fn2 (void *, const char *); +double fn3 (double); +double fn4 (double); +int fn5 (void *, double, double); + +int +foo (struct B *x) +{ + struct C *e = x->b1; + struct A *f = e->c1; + long g, h, i; + double *j, k; + g = fn1 (f, 0.5 * (x->b2 + x->b3)), h = g + 1, i = f->a1; + j = f->a2, k = x->b4.d2; + fn2 (x, "something"); + if (g <= 0) + { + double l = j[2] - j[1]; + if (l > 0.0 && l <= 0.02) + k = (x->b4.d1 == 1 + ? ((1.0 / l) < 25 ? 25 : (1.0 / l)) + : fn3 ((1.0 / l) < 25 ? 25 : (1.0 / l))); + } + else + { + double m = j[h] - j[g], n = 0.0, l = 0.0; + if (g > 1) + n = j[g] - j[g - 1]; + if (h < i) + l = j[h + 1] - j[h]; + if (n > 0.02) + n = 0; + if (m > 0.02) + m = 0; + if (l > 0.02) + l = 0; + if (m < n) + { + double o = m; + m = n; + n = o; + } + if (l < n) + { + double o = l; + l = n; + n = o; + } + if (l < m) + { + double o = l; + l = m; + m = o; + } + if (n != 0.0) + k = (x->b4.d1 == 1 + ? ((1 / m) < 25 ? 25 : (1 / m)) + : fn3 ((1 / m) < 25 ? 25 : (1 / m))); + else if (m != 0.0) + k = (x->b4.d1 == 1 + ? ((2 / (m + l)) < 25 ? 25 : (2 / (m + l))) + : fn3 ((2 / (m + l)) < 25 ? 25 : (2 / (m + l)))); + else if (l != 0.0) + k = (x->b4.d1 == 1 + ? ((1 / l) < 25 ? 25 : (1 / l)) + : fn3 ((1 / l) < 25 ? 25 : (1 / l))); + } + fn5 (e->c2, 0.5 * (x->b2 + x->b3), (x->b4.d1 == 1 ? k : fn4 (k))); + return 1; +}
20030904-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030823-1.c =================================================================== --- 20030823-1.c (nonexistent) +++ 20030823-1.c (revision 154) @@ -0,0 +1,18 @@ +struct A +{ + int a; +}; + +int foo (struct A *a) +{ + static int c = 30; + int x; + + a->a = c; + /* Dominator optimizations will replace the use of 'a->a' with 'c', but + they won't copy the virtual operands for 'c' from its originating + statement. This exposes symbol 'c' without a correct SSA version + number. */ + x = a->a; + return x; +}
20030823-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030707-1.c =================================================================== --- 20030707-1.c (nonexistent) +++ 20030707-1.c (revision 154) @@ -0,0 +1,13 @@ +/* PR c/11449. */ + +/* sign_bit_p() in fold-const.c failed to notice that (int) 0x80000000 + was the sign bit of m. As a result, fold_single_bit_test() + returned ((unsigned int) m >> 31), and that was eventually passed + to invert_truthvalue(), which did not know how to handle + RROTATE_EXPR, causing an ICE. */ + +int +foo (int m) +{ + return !(m & ((int) 0x80000000)); +}
20030707-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920501-3.c =================================================================== --- 920501-3.c (nonexistent) +++ 920501-3.c (revision 154) @@ -0,0 +1,2 @@ +struct{long long x:24,y:40;}v; +x(){v.y=0;}
920501-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020709-1.c =================================================================== --- 20020709-1.c (nonexistent) +++ 20020709-1.c (revision 154) @@ -0,0 +1,7 @@ +extern double atof (__const char *__nptr) __attribute__ ((__pure__)); + +void bar (char *s) +{ + union {double val; unsigned int a, b;} u; + u.val = atof (s); +}
20020709-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920626-1.c =================================================================== --- 920626-1.c (nonexistent) +++ 920626-1.c (revision 154) @@ -0,0 +1 @@ +f(x)unsigned x;{return x>>-5;}
920626-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920428-3.c =================================================================== --- 920428-3.c (nonexistent) +++ 920428-3.c (revision 154) @@ -0,0 +1,5 @@ +#ifndef NO_LABEL_VALUES +x(a){static void*j[]={&&l1,&&l2};goto*j[a];l1:return 0;l2:return 1;} +#else +main(){ exit (0); } +#endif
920428-3.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 980506-1.c =================================================================== --- 980506-1.c (nonexistent) +++ 980506-1.c (revision 154) @@ -0,0 +1,68 @@ +/* The arrays are too large for the xstormy16 - won't fit in 16 bits. */ +/* { dg-xfail-if "The array too big" { "h8300-*-*" } { "-mno-h" "-mn" } { "" } } */ +/* { dg-do assemble { xfail xstormy16-*-* m6811-*-* m6812-*-* } } */ +/* { dg-require-effective-target size32plus } */ + +unsigned char TIFFFax2DMode[20][256]; +unsigned char TIFFFax2DNextState[20][256]; +unsigned char TIFFFaxUncompAction[20][256]; +unsigned char TIFFFaxUncompNextState[20][256]; +unsigned char TIFFFax1DAction[230][256]; +unsigned char TIFFFax1DNextState[230][256]; + +typedef struct tableentry { + unsigned short length; + unsigned short code; + short runlen; +} tableentry; + +extern tableentry TIFFFaxWhiteCodes[]; +extern tableentry TIFFFaxBlackCodes[]; + +static short sp_data, sp_bit; + +static unsigned char +fetchByte (inbuf) + +unsigned char **inbuf; + +{ + unsigned char byte = **inbuf; + (*inbuf)++; + return (byte); +} + +static int +decode_white_run (inbuf) + +unsigned char **inbuf; + +{ + short state = sp_bit; + short action; + int runlen = 0; + + for (;;) + { + if (sp_bit == 0) + { + nextbyte: + sp_data = fetchByte (inbuf); + } + + action = TIFFFax1DAction[state][sp_data]; + state = TIFFFax1DNextState[state][sp_data]; + if (action == 0 ) + goto nextbyte; + if (action == 1 ) + return (-1 ); + if (action == 210 ) + return (-3 ); + sp_bit = state; + action = (TIFFFaxWhiteCodes[ action - 2 ].runlen) ; + runlen += action; + if (action < 64) + return (runlen); + } +} +
980506-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: compound-literal-1.c =================================================================== --- compound-literal-1.c (nonexistent) +++ compound-literal-1.c (revision 154) @@ -0,0 +1,9 @@ +/* ICE incrementing compound literal: bug 28418 from Volker Reichelt + . */ + +struct A { int i; }; + +void foo() +{ + ((struct A) { 0 }).i += 1; +}
compound-literal-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 920928-4.c =================================================================== --- 920928-4.c (nonexistent) +++ 920928-4.c (revision 154) @@ -0,0 +1,113 @@ +typedef unsigned char unsigned8; +typedef unsigned short int unsigned16; +typedef unsigned long int unsigned32; +typedef char signed8; +typedef short int signed16; +typedef long int signed32; +typedef unsigned32 boolean32; +typedef unsigned long int error_status_t; +typedef struct { + unsigned32 time_low; + unsigned16 time_mid; + unsigned16 time_hi_and_version; + unsigned8 clock_seq_hi_and_reserved; + unsigned8 clock_seq_low; + unsigned char node[6]; +} uuid_t; + +typedef unsigned32 bitset; +typedef signed32 sec_timeval_sec_t; +typedef struct { + signed32 sec; + signed32 usec; +} sec_timeval_t; +typedef signed32 sec_timeval_period_t; +typedef signed32 sec_rgy_acct_key_t; + +typedef struct { + uuid_t source; + signed32 handle; + boolean32 valid; +} sec_rgy_cursor_t; +typedef unsigned char sec_rgy_pname_t[257]; +typedef unsigned char sec_rgy_name_t[1025]; + +typedef signed32 sec_rgy_override_t; +typedef signed32 sec_rgy_mode_resolve_t; +typedef unsigned char sec_rgy_unix_gecos_t[292]; +typedef unsigned char sec_rgy_unix_login_name_t[1025]; +typedef unsigned char sec_rgy_member_t[1025]; +typedef unsigned char sec_rgy_unix_passwd_buf_t[16]; +typedef struct sec_rgy_sid_t { + uuid_t person; + uuid_t group; + uuid_t org; +} sec_rgy_sid_t; +typedef struct { + signed32 person; + signed32 group; + signed32 org; +} sec_rgy_unix_sid_t; +typedef struct { + sec_rgy_unix_login_name_t name; + sec_rgy_unix_passwd_buf_t passwd; + signed32 uid; + signed32 gid; + signed32 oid; + sec_rgy_unix_gecos_t gecos; + sec_rgy_pname_t homedir; + sec_rgy_pname_t shell; +} sec_rgy_unix_passwd_t; +typedef unsigned char sec_rgy_member_buf_t[10250]; +typedef struct { + sec_rgy_name_t name; + signed32 gid; + sec_rgy_member_buf_t members; +} sec_rgy_unix_group_t; + +typedef struct { + uuid_t site_id; + sec_timeval_sec_t person_dtm; + sec_timeval_sec_t group_dtm; + sec_timeval_sec_t org_dtm; +} rs_cache_data_t; + +typedef enum { + rs_unix_query_name, + rs_unix_query_unix_num, + rs_unix_query_none +} rs_unix_query_t; + +typedef struct { + rs_unix_query_t query; + union { + struct { + long int name_len; + sec_rgy_name_t name; + } name; + long int unix_num; + } tagged_union; +} rs_unix_query_key_t; + +static unsigned long int IDL_offset_vec[] = +{ + 0, + sizeof(sec_rgy_unix_group_t), + (unsigned long int) ((unsigned char *) &((sec_rgy_unix_group_t *) 0)->name - (unsigned char *) 0), + (unsigned long int) ((unsigned char *) &((sec_rgy_unix_group_t *) 0)->gid - (unsigned char *) 0), + (unsigned long int) ((unsigned char *) &((sec_rgy_unix_group_t *) 0)->members - (unsigned char *) 0), + sizeof(rs_cache_data_t), + (unsigned long int) ((unsigned char *) &((rs_cache_data_t *) 0)->site_id.time_low - (unsigned char *) 0), + (unsigned long int) ((unsigned char *) &((rs_cache_data_t *) 0)->site_id.time_mid - (unsigned char *) 0), + (unsigned long int) ((unsigned char *) &((rs_cache_data_t *) 0)->site_id.time_hi_and_version - (unsigned char *) 0), + sizeof(sec_rgy_unix_passwd_t), + (unsigned long int) ((unsigned char *) &((sec_rgy_cursor_t *) 0)->source.clock_seq_hi_and_reserved - (unsigned char *) 0), + (unsigned long int) ((unsigned char *) &((sec_rgy_cursor_t *) 0)->source.clock_seq_low - (unsigned char *) 0), + (unsigned long int) ((unsigned char *) &((sec_rgy_cursor_t *) 0)->source.node - (unsigned char *) 0), + (unsigned long int) ((unsigned char *) &((sec_rgy_cursor_t *) 0)->handle - (unsigned char *) 0), + (unsigned long int) ((unsigned char *) &((sec_rgy_cursor_t *) 0)->valid - (unsigned char *) 0), + sizeof(struct {long int name_len; sec_rgy_name_t name;}), + (unsigned long int) ((unsigned char *) &((struct {long int name_len; sec_rgy_name_t name;} *)0)->name_len + - (unsigned char *) 0), + (unsigned long int) ((unsigned char *) &((struct {long int name_len; sec_rgy_name_t name;} *)0)->name - (unsigned char *) 0), +};
920928-4.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20010113-1.c =================================================================== --- 20010113-1.c (nonexistent) +++ 20010113-1.c (revision 154) @@ -0,0 +1,15 @@ +/* Origin: PR c/364 from and@genesyslab.com, very much reduced to a + testcase by Joseph Myers . + + The initializer of z is a valid address constant, and GCC 2.95.2 + accepts it as such. CVS GCC as of 2001-01-13 rejects it, but accepts + it if y is changed to x in the initializer. */ + +struct { + struct { + int x; + int y; + } p; +} v; + +int *z = &((&(v.p))->y);
20010113-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: pr26781-1.c =================================================================== --- pr26781-1.c (nonexistent) +++ pr26781-1.c (revision 154) @@ -0,0 +1,11 @@ +void zconfdump(void) +{ + char *p, *p2; + for (p2 = p; p2; ) + { + char __a0, __a1, __a2; + __a0 = ((__const char *) ("\"\\"))[0]; + if (__a0) + return; + } +}
pr26781-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20050113-1.c =================================================================== --- 20050113-1.c (nonexistent) +++ 20050113-1.c (revision 154) @@ -0,0 +1,16 @@ +/* PR c/17297 */ + +typedef float V2SF __attribute__ ((vector_size (8))); + +int test0 (V2SF, V2SF); + +int +main (void) +{ + V2SF a = (V2SF) {1.0f/0.0f - 1.0f/0.0f, 1.0f/0.0f - 1.0f/0.0f}; + V2SF b = (V2SF) {567.345, 1984.0}; + int i; + + i = test0 (a, b); + return i; +}
20050113-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20020710-1.c =================================================================== --- 20020710-1.c (nonexistent) +++ 20020710-1.c (revision 154) @@ -0,0 +1,12 @@ +/* Red Hat bugzilla #68395 + PR middle-end/7245 + This testcase ICEd on IA-32 because shift & compare patterns + predicates allowed any immediate, but constraints allowed only + numbers from 1 to 31. */ + +void foo (int *x, unsigned int y) +{ + int a = y >> -13; + if (a) + *x = a; +}
20020710-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20031124-1.c =================================================================== --- 20031124-1.c (nonexistent) +++ 20031124-1.c (revision 154) @@ -0,0 +1,8 @@ +/* PR 13143 */ + +int f (void *ptr) +{ + extern char const stop[]; + return ptr >= (void *) &stop; +} +
20031124-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20030314-1.c =================================================================== --- 20030314-1.c (nonexistent) +++ 20030314-1.c (revision 154) @@ -0,0 +1,18 @@ +/* PR optimization/8396 */ +/* Originator: */ + +/* Verify that the tree inliner doesn't mess up the types + when passing the value of read-only constant arguments. */ + +static inline bar(const short int xs, const short int xe) +{ + if (xe && (xs < xe)) + ; +} + +void f() +{ + short int xe; + + bar(0, xe); +}
20030314-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: 20000517-1.c =================================================================== --- 20000517-1.c (nonexistent) +++ 20000517-1.c (revision 154) @@ -0,0 +1,9 @@ +void test2 (int*, int, int, int); + +void test () +{ + int l; + + test2 (0, 0, 0, 0); + test2 (&l, 0, 0, 0); +}
20000517-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property Index: debugvlafunction-1.c =================================================================== --- debugvlafunction-1.c (nonexistent) +++ debugvlafunction-1.c (revision 154) @@ -0,0 +1,11 @@ +extern void dynreplace_trampoline(void); +extern void dynreplace_trampoline_endlabel(void); +int dynreplace_add_trampoline(void) +{ + unsigned long trampoline_code[(((unsigned long) +(&(dynreplace_trampoline_endlabel)) +-(unsigned long) (&dynreplace_trampoline))) +]; +} + +
debugvlafunction-1.c Property changes : Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:keywords ## -0,0 +1 ## +Id \ No newline at end of property

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.