On Saturday 21 March 2009 20:11, shinichiro.h wrote: > I'm sorry to know the archive was gone. I've found bugs around macro > and the bug was already reported. > > http://www.mail-archive.com/[email protected]/msg01798.html > > Feng said that there was a fix for this bug in Rob's list. I > checked Rob's repository but this patch seemed to be not applied. > I'm happy if anyone has this patch in their inbox and posts it again. > Latest ruby cannot be compiled due to this bug. At first, I tried to > fix this by myself, but it seemed that this bug isn't easy for me...
I think you mean this post: > Date: Wed, 26 Dec 2007 14:17:35 +0800 > From: ShangHongzhang 62185 <[email protected]> > Message-id: <[email protected]> > Subject: Re: [Tinycc] [Tinycc-devel] macro substitution bug [..] > I have fixed the bug by adding a "*nested_list = (*nested_list)->prev;" > in "if (s->type.t == MACRO_FUNC) {...}" > But I don't know if it is the best way to do. > int macro_subst_tok (TokenString *tok_str, Sym **nested_list, Sym *s, > struct macro_level **can_read_stream) > { > if (tok == TOK___LINE__) { > } > else if (tok == TOK___FILE__) { > } > else if (tok == TOK___DATE__ || tok == TOK___TIME__) { > } > else { > if (s->type.t == MACRO_FUNC) { > if (macro_ptr) { > t = *macro_ptr; > if (t == 0 && can_read_stream) { > struct macro_level *ml = *can_read_stream; > macro_ptr = NULL; > if (ml) { > macro_ptr = ml->p; > ml->p = NULL; > *can_read_stream = ml->prev; > if (nested_list) // <<<<<<<<<<<<<<<<<<<<<<< > *nested_list = (*nested_list)->prev; //<<<<<<<< > } > goto redo; > } > } > else { > } > } > sym_push2 (nested_list, s->v, 0, 0); > macro_subst (tok_str, nested_list, mstr, can_read_stream); > > sa1 = *nested_list; // <<<<<<<<<<<<<<<<<<<<<<< > if (sa1) { // <<<<<<<<<<<<<<<<<<<<<<< > *nested_list = sa1->prev; // <<<<<<<<<<<<<<<<<<<<<<< > sym_free (sa1); // <<<<<<<<<<<<<<<<<<<<<<< > } > ... > } > return 0; >} > > Regards! > > Jack Shang _______________________________________________ Tinycc-devel mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/tinycc-devel
