首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

57个让C编译器崩溃的代码 10

57个让C编译器崩溃的代码 10

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;  
  • }
返回列表