modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/20090907-1.c (about)

     1  struct platform_device;
     2  typedef unsigned long __kernel_size_t;
     3  typedef unsigned short __u16;
     4  typedef unsigned int __u32;
     5  typedef unsigned char u8;
     6  typedef unsigned short u16;
     7  typedef __kernel_size_t size_t;
     8  typedef __u32 uint32_t;
     9  static inline __attribute__ ((always_inline))
    10  uint32_t __attribute__ ((pure)) bfin_dspid (void)
    11  {
    12      return ( {
    13  	    uint32_t __v; __v;}
    14      );
    15  }
    16  struct list_head {
    17      struct list_head *next, *prev;
    18  };
    19  struct page {
    20      union {
    21      };
    22      struct list_head lru;
    23  };
    24  struct device_driver {
    25      const char *name;
    26      struct module *owner;
    27  };
    28  struct fb_info {
    29      struct device *dev;
    30  };
    31  struct platform_driver {
    32      int (*probe) (struct platform_device *);
    33      int (*remove) (struct platform_device *);
    34      struct device_driver driver;
    35  };
    36  struct firmware {
    37      size_t size;
    38      const u8 *data;
    39  };
    40  struct metronomefb_par {
    41      struct fb_info *info;
    42  };
    43  struct waveform_hdr {
    44      u8 trc;
    45  };
    46  static u8 calc_cksum (int start, int end, u8 * mem)
    47  {
    48      u8 tmp = 0;
    49      int i;
    50      for (i = start; i < end; i++)
    51  	tmp += mem[i];
    52      return tmp;
    53  }
    54  extern struct waveform_hdr *wfm_hdr;
    55  extern int wmta;
    56  
    57  static int
    58  load_waveform (u8 * mem, size_t size, int m, int t, struct metronomefb_par *par)
    59  {
    60      int tta;
    61      int trn = 0;
    62      int i;
    63      u8 cksum;
    64      int cksum_idx;
    65      struct device *dev = par->info->dev;
    66      for (i = 0; i <= sizeof (*wfm_hdr) + wfm_hdr->trc; i++) {
    67  	if (mem[i] > t) {
    68  	    trn = i - sizeof (*wfm_hdr) - 1;
    69  	}
    70      }
    71      tta = * (mem + wmta + m * 4) & 0x00FFFFFF;
    72      cksum_idx = tta + trn * 4 + 3;
    73      cksum = calc_cksum (cksum_idx - 3, cksum_idx, mem);
    74      if (cksum != mem[cksum_idx]) {
    75  	abort();
    76      }
    77  }
    78  extern struct firmware *fw_entry;
    79  extern struct metronomefb_par *par;
    80  
    81  int metronomefb_probe (struct platform_device *dev)
    82  {
    83  	return load_waveform ((u8 *) fw_entry->data, fw_entry->size, 3, 31, par);
    84  }