------- 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