- 论坛徽章:
- 0
|
[ 本帖最后由 weishigoname 于 2013-04-15 15:59 编辑 ]
C17 : Crashes GCC 3.2.0 at -O2:
union U1 {
int f0;
char f1
};
void
fn1 (union U1 p1) {
p1.f1 = 0;
for (; p1.f1;) {
}
}
C18 : Crashes GCC 3.2.0 at -O1:
int a, b;
void
fn1 () {
b = 4294967290UL <= a | b;
}
C19 : Crashes GCC 3.2.0 at -O3:
int a, b, c;
int
fn1 (int p1, int p2) {
return p1 - p2;
}
void
fn2 () {
int d;
int **e;
int ***f = &e;
d = a && b ? a : a % 0;
if (fn1 (f == 0, 2) )
c = ***f;
}
C20 : Crashes GCC 3.3.0 at -O3:
int a, b, d;
struct S0 {
int f3
};
int *volatile c;
void fn1 (struct S0);
void
fn2 () {
int e;
struct S0 **f;
struct S0 ***g = &f;
(a && b && b ? 0 : b) > (&c && 0);
e = 0 == g;
d = e >> 1;
for (;;)
fn1 (***g);
}
C21 : Crashes GCC 3.4.0 at -O3:
int a, b;
struct U0 {
char f0;
int f2
};
void
fn1 () {
struct U0 c;
for (; c.f0 != 1; c.f0 = c.f0 + a)
b -= 1;
}
C22 : Crashes GCC 3.4.0 at -O3:
int a, b, d, e;
struct S0 {
int f3
};
int *c;
void fn1 (struct S0);
void
fn2 () {
struct S0 **f;
struct S0 ***g = &f;
(a && b && b ? 0 : b) > (&c == d);
e = 1 < (0 == g);
for (;;)
fn1 (***g);
}
C23 : Crashes GCC 4.0.0 at -O2:
int ***a;
int b;
int *c;
void
main () {
if (&c == a)
b = 0 == *a;
}
C24 : Crashes GCC 4.0.0 at -O2:
int a[][0];
int *const b = &a[0][1];
int
fn1 () {
return *b;
}
C25 : Crashes GCC 4.0.0 at -O0:
int a, b;
unsigned char c;
void
fn1 () {
(0 >= a & (0 || b) ) > c;
}
C26 : Crashes GCC 4.0.0 at -O1:
struct {
int f9:1
}
a;
const int b[] = { 0 };
void fn1 ();
void
main () {
for (;;) {
a.f9 = b[0];
fn1 ();
}
}
C27 : Crashes GCC 4.0.0 at -O0:
int a, c;
unsigned char b;
void
fn1 () {
b > (c > 0 & 0 < a);
}
C28 : Crashes GCC 4.0.0 at -O2:
int **a[][0];
static int ***const b = &a[0][1];
void fn1 ();
int
fn2 () {
return ***b;
fn1 ();
}
void
fn1 () {
**b;
}
C29 : Crashes GCC 4.1.0 at -O1:
volatile int ***a;
int b;
int **c;
void
fn1 () {
if (&c == a)
b = 0 == *a;
}
C30 : Crashes GCC 4.1.0 at -O1:
struct {
int f0;
int f2
}
a;
int b;
void
fn1 () {
a.f2 = 0;
int *c[] = { 0, 0, 0, 0, &a.f0, 0, 0, 0, &a.f0 };
b = *c[4];
}
C31 : Crashes GCC 4.1.0 at -O2:
int a, b;
unsigned c;
void
fn1 () {
for (; c <= 0;)
if (b < c)
a = 1 && c;
}
C32 : Crashes GCC 4.1.0 at -O1:
unsigned a;
int b;
void
main () {
unsigned c = 4294967295;
int d = c;
b = a <= d || a;
}
C33 : Crashes GCC 4.1.0 at -O1:
const volatile long a;
void
main () {
printf ("%d\n", (int) a);
}
C34 : Crashes GCC 4.1.0 at -O3:
int a, b;
union U1 {
int f0;
int f1
};
void
fn1 () {
union U1 c = { 1 };
int d = 1;
if ( (c.f1 & a ? c.f1 : 1 - a) ^ d) {
} else
b = 0;
}
C35 : Crashes GCC 4.2.0 at -O1:
volatile int ***a;
int b;
int **c;
void
fn1 () {
if (&c == a)
b = 0 == *a;
}
C36 : Crashes GCC 4.2.0 at -O1:
struct S2 {
volatile int f5:1;
int f6
};
static struct S2 a;
void
main () {
printf ("%d\n", a.f5);
}
C37 : Crashes GCC 4.3.0 at -O1:
long long *a;
int b;
void
fn1 () {
long long **c = &a;
int d = 7;
lbl_2890: {
long long **e = &a;
b = (e == c) < d;
d = 0;
goto lbl_2890;
}
}
C38 : Crashes GCC 4.3.0 at -O2:
struct S2 {
volatile int f5:1;
int f6
};
static struct S2 a;
void
main () {
printf ("%d\n", a.f5);
}
C39 : Crashes GCC 4.3.0 at -O3:
int a;
short b;
void
fn1 () {
int c[0];
for (;;) {
a = c[0];
b = 0;
for (; b < 7; b += 1)
c[b] = 0;
}
}
C40 : Crashes GCC 4.3.0 at -O1:
volatile int **a;
int *b;
void
fn1 () {
if (a == &b)
**a;
}
C41 : Crashes GCC 4.3.0 at -O3:
int a, b, c, d, e, f;
void
fn1 () {
char g;
lbl_120:
if (b || e >= 0 & d >= 0 || a)
return;
g = f < 0 ? 1 : f;
d = g == 0 || (char) f == 0 && g == 1 ? 0 : 0 % 0;
if (c)
goto lbl_120;
}
C42 : Crashes Intel CC 12.0.5 at -O1:
struct U0 {
int f0
}
a;
struct U0
fn1 () {
return a;
}
void
main () {
0 > a.f0;
fn1 ();
}
C43 : Crashes Open64 4.2.4 at -O3:
int a;
int *b;
unsigned c;
void
fn1 () {
for (; a; a--)
if (*b) {
c = 0;
for (; c >= 5; c++) {
}
}
}
C44 : Crashes Open64 4.2.4 at -O3:
short a;
void
fn1 () {
long b;
b = 44067713550;
a |= b;
}
C45 : Crashes Open64 4.2.4 at -O3:
volatile int a;
void
fn1 () {
int b = 1;
a || b--;
}
C46 : Crashes Open64 4.2.4 at -O2:
int a, b;
void fn1 ();
void fn2 ();
void
fn3 () {
fn2 ();
fn1 ();
}
void
fn2 () {
if (1) {
} else
for (;; b++) {
int c = 0;
int *d = &a;
int **e = &d;
*e = &c;
*d = 0;
*d |= 0;
}
}
C47 : Crashes Open64 4.2.4 at -O3:
struct S0 {
int f1:1
};
int a, b;
void
fn1 () {
for (; b;) {
struct S0 c = { };
if (1) {
c = c;
a = c.f1;
}
}
}
C48 : Crashes Open64 4.2.4 at -O3:
int a, b;
int
fn1 () {
int *c = &b;
a = 0;
for (; a >= -26; --a) {
unsigned d = 18446744073709551615;
int *e = &b;
*e &= d;
}
return *c;
}
C49 : Crashes Open64 4.2.4 at -O3:
static int a, c, d;
int b;
int *e;
void
fn1 () {
for (; a; a += 1) {
b = 0;
for (; b > -16; --b)
for (; c;) {
int *f = &d;
*f = 0;
} *e = 0;
}
}
C50 : Crashes Sun CC 5.11 at -xO4:
unsigned char a, d;
struct {
int f2
}
b;
int c, e;
void
fn1 (p1) {
}
void
fn2 () {
c = 0;
for (; c <= 0;)
e = b.f2;
fn1 (0);
b = b;
d = -a;
}
C51 : Crashes Sun CC 5.11 at -fast:
int a, c;
int b[1];
void
fn1 () {
short d;
for (; a; a -= 1) {
d = b1 = b1;
b[0] = 0;
}
}
C52 : Crashes Sun CC 5.11 at -xO4:
int a, b, d;
short c;
int
fn1 (p1) {
return a ? 0 : p1;
}
void
fn2 () {
int e = 0;
for (;;) {
c = 0;
d = fn1 (e ^ ~~c);
d && b;
}
}
C53 : Crashes Sun CC 5.11 at -fast:
long a;
int b, d;
int *c;
void
fn1 () {
int *e;
for (;; b--)
for (; d;) {
*c = 0;
*c &= (&e != 1) / a;
}
}
C54 : Crashes Sun CC 5.11 at -xO0:
#pragma pack(1)
struct {
int f3:1;
int f4:16
}
a = { 1, 0 };
C55 : Crashes Sun CC 5.11 at -xO3:
int a, c;
static int b = 1;
void fn1 ();
void
fn2 () {
for (; a; a--) {
c = 0;
for (; c != 1;) {
if (b)
break;
fn1 ();
}
}
}
C56 : Crashes Sun CC 5.11 at -xO4:
#pragma pack(1)
struct S0 {
int f1;
int f3:1
}
a;
void
fn1 (struct S0 p1) {
p1.f3 = 0;
}
void
fn2 () {
fn1 (a);
}
C57 : Crashes Sun CC 5.11 at -fast:
int a, c, d, e, f, g, h, i, j, k;
volatile int b;
int
fn1 () {
for (; d; d = a) {
int *l = &c;
c = -3;
for (; c > -23; --c)
if (k) {
if (*l)
continue;
return b;
}
for (; i; ++i) {
j = 0;
g = h;
for (; f <= 1; f += 1) {
}
}
}
return e;
}
英文原文:John Regehr 编译:伯乐在线 – 黄利民[/b] |
|