------- Comment #2 from pinskia at gcc dot gnu dot org 2007-07-02 00:52 ------- Here is a more reduced testcase (without the inline-asm):
struct list_head { struct list_head *next, *prev; }; struct ib_fmr { int *device; struct list_head list; }; static inline struct mthca_fmr *to_mfmr(struct ib_fmr *ibmr) { const struct ib_fmr *__mptr = (ibmr); return (struct mthca_fmr *)( (char *)__mptr ); } void mthca_unmap_fmr(struct list_head *fmr_list) { struct ib_fmr *fmr; if (mthca_is_memfree()) { for (fmr = ({ const struct list_head *__mptr = ((fmr_list)->next); (struct ib_fmr *)( (char *)__mptr - 8 );}); &fmr->list != (fmr_list); fmr = ({ const struct list_head *__mptr = (fmr->list.next); (struct ib_fmr *)( (char *)__mptr - 8);}) ) mthca_arbel_fmr_unmap(to_mfmr(fmr)); } else for (fmr = ({ const struct list_head *__mptr = ((fmr_list)->next); (struct ib_fmr *)( (char *)__mptr - 8);}); &fmr->list != (fmr_list); fmr = ({ const struct list_head *__mptr = (fmr->list.next); (struct ib_fmr *)( (char *)__mptr - 8);}) ) mthca_tavor_fmr_unmap(to_mfmr(fmr)); } -- pinskia at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Last reconfirmed|0000-00-00 00:00:00 |2007-07-02 00:52:04 date| | http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32571