------- Comment #4 from rguenth at gcc dot gnu dot org 2006-05-24 17:15 ------- Unfortunately it ICEs during bootstrap compiling mf-runtime.c with
mf-runtime.8.i: In function '__mfu_check': mf-runtime.8.i:8: internal compiler error: in find_or_generate_expression, at tree-ssa-pre.c:2279 testcase: typedef unsigned long int uintptr_t; unsigned mudflap_mode; typedef struct __mf_object { uintptr_t low, high; } __mf_object_t; void __mfu_check (void *ptr, unsigned obj_count, uintptr_t ptr_lower, uintptr_t ptr_higher, __mf_object_t** all_ovr_obj) { int judgement = 0; uintptr_t ptr_low = (uintptr_t) ptr; uintptr_t ptr_high = (uintptr_t) ptr; switch (mudflap_mode) { case 0: while (judgement == 0) { unsigned i; unsigned uncovered = 0; for (i = 0; i < obj_count; i++) { __mf_object_t *obj = all_ovr_obj[i]; int j, uncovered_low_p, uncovered_high_p; uncovered_low_p = ptr_low < obj->low; uncovered_high_p = ptr_high > obj->high; for (j = 0; j < obj_count; j++) { __mf_object_t *obj2 = all_ovr_obj[j]; if (ptr_lower >= obj2->low && ptr_lower <= obj2->high) uncovered_low_p = 0; if (ptr_high >= obj2->low && ptr_higher <= obj2->high) uncovered_high_p = 0; } if (uncovered_low_p || uncovered_high_p) uncovered++; } if (uncovered == 0) judgement = 1; } } } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27755