modernc.org/ccgo/v3@v3.16.14/lib/testdata/gcc-9.1.0/gcc/testsuite/gcc.c-torture/compile/pr32571.c (about) 1 2 struct list_head { 3 struct list_head *next, *prev; 4 }; 5 struct ib_fmr { 6 int *device; 7 struct list_head list; 8 }; 9 static inline 10 struct mthca_fmr *to_mfmr(struct ib_fmr *ibmr) 11 { 12 const struct ib_fmr *__mptr = (ibmr); 13 return (struct mthca_fmr *)( (char *)__mptr ); 14 } 15 void mthca_unmap_fmr(struct list_head *fmr_list) 16 { 17 struct ib_fmr *fmr; 18 if (mthca_is_memfree()) 19 { 20 for (fmr = 21 ({ const struct list_head *__mptr = ((fmr_list)->next); (struct ib_fmr *)( 22 (char *)__mptr - 8 );}); 23 &fmr->list != (fmr_list); 24 fmr = ({ const struct list_head *__mptr = (fmr->list.next); (struct ib_fmr 25 *)( (char *)__mptr - 8);}) 26 ) 27 mthca_arbel_fmr_unmap(to_mfmr(fmr)); 28 } 29 else 30 for (fmr = 31 ({ const struct list_head *__mptr = ((fmr_list)->next); (struct ib_fmr *)( 32 (char *)__mptr - 8);}); 33 &fmr->list != (fmr_list); 34 fmr = ({ const struct list_head *__mptr = (fmr->list.next); (struct ib_fmr 35 *)( (char *)__mptr - 8);}) 36 ) 37 mthca_tavor_fmr_unmap(to_mfmr(fmr)); 38 }