------- Comment #2 from jonathan dot leffler at gmail dot com 2008-03-11 03:48 ------- I tried the following close-to-minimal reproduction - using the same compile command as for the original symtab.c problem - and did not get the error.
struct symtab; struct linetable; extern int find_line_common(struct linetable *, int, int *); extern struct linetable *LINETABLE(struct symtab *); extern void do_something(void); struct symtab * find_line_symtab (struct symtab *symtab, int line, int *index, int *exact_match) { int exact /* = 0 */; /* BEST_INDEX and BEST_LINETABLE identify the smallest linenumber > LINE so far seen. */ int best_index; struct linetable *best_linetable; struct symtab *best_symtab; /* First try looking it up in the given symtab. */ best_linetable = LINETABLE (symtab); best_symtab = symtab; best_index = find_line_common (best_linetable, line, &exact); if (best_index < 0 || !exact) { do_something(); } return(best_symtab); } -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35534