1 /* { dg-do compile } */ 2 3 typedef unsigned short __u16; 4 #if __SIZEOF_INT__ < 4 5 __extension__ typedef __UINT32_TYPE__ __u32; 6 __extension__ typedef __UINT32_TYPE__ u32; 7 #else 8 typedef unsigned int __u32; 9 typedef unsigned int u32; 10 #endif 11 typedef unsigned char u8; 12 typedef __u16 __le16; 13 typedef __u32 __le32; 14 typedef u32 secno; 15 struct bplus_internal_node { 16 __le32 file_secno; 17 __le32 down; 18 }; 19 struct bplus_header { 20 u8 n_used_nodes; 21 __le16 first_free; 22 union { 23 struct bplus_internal_node internal[0]; 24 } 25 u; 26 }; 27 28 __u16 __fswab16(__u16 val); 29 __u32 __fswab32(__u32 val); 30 void hpfs_ea_remove (__u32); 31 hpfs_truncate_btree(secno f,int fno,unsigned secs,struct bplus_header * btree)32void hpfs_truncate_btree(secno f, int fno, unsigned secs, struct bplus_header *btree) 33 { 34 int i, j; 35 for (i = 0; i < btree->n_used_nodes; i++) 36 if ((__builtin_constant_p((__u32)(( __u32)(__le32)(btree->u.internal[i].file_secno))) ? ((__u32)( (((__u32)(( __u32)(__le32)(btree->u.internal[i].file_secno)) & (__u32)0x000000ffUL) << 24) | (((__u32)(( __u32)(__le32)(btree->u.internal[i].file_secno)) & (__u32)0x0000ff00UL) << 8) | (((__u32)(( __u32)(__le32)(btree->u.internal[i].file_secno)) & (__u32)0x00ff0000UL) >> 8) | (((__u32)(( __u32)(__le32)(btree->u.internal[i].file_secno)) & (__u32)0xff000000UL) >> 24))) : __fswab32(( __u32)(__le32)(btree->u.internal[i].file_secno))) >= secs) goto f; 37 return; 38 f: 39 for (j = i + 1; j < btree->n_used_nodes; j++) 40 hpfs_ea_remove((__builtin_constant_p((__u32)(( __u32)(__le32)(btree->u.internal[j].down))) ? ((__u32)( (((__u32)(( __u32)(__le32)(btree->u.internal[j].down)) & (__u32)0x000000ffUL) << 24) | (((__u32)(( __u32)(__le32)(btree->u.internal[j].down)) & (__u32)0x0000ff00UL) << 8) | (((__u32)(( __u32)(__le32)(btree->u.internal[j].down)) & (__u32)0x00ff0000UL) >> 8) | (((__u32)(( __u32)(__le32)(btree->u.internal[j].down)) & (__u32)0xff000000UL) >> 24))) : __fswab32(( __u32)(__le32)(btree->u.internal[j].down)))); 41 btree->n_used_nodes = i + 1; 42 btree->first_free = (( __le16)(__builtin_constant_p((__u16)((8 + 8 * btree->n_used_nodes))) ? ((__u16)( (((__u16)((8 + 8 * btree->n_used_nodes)) & (__u16)0x00ffU) << 8) | (((__u16)((8 + 8 * btree->n_used_nodes)) & (__u16)0xff00U) >> 8))) : __fswab16((8 + 8 * btree->n_used_nodes)))); 43 } 44