This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PR tree-optimization/19337
> On Thu, 2005-01-13 at 08:50 +0100, Jan Hubicka wrote:
> > Hi,
> > the problem here is link pointer being mapped incorrectly during
> > recursive inlining.
> >
> > Honza
> >
> > void write_char(char);
> > int len(char*);
> > void f(char *a)
> > {
> > int col = 0;
> > int i;
> > void wchar(char c)
> > {
> > if (c == '\t')
> > {
> > do {
> > wchar(' ');
> > } while ((col%8)!=0);
> > }
> > else
> > {
> > write_char (c);
> > col++;
> > }
> > }
> > for(i =0;i<len(a);i++)
> > {
> > wchar(*a);
> > }
> > }
> >
> > 2005-01-13 Jan Hubicka <jh@suse.cz>
> >
> > PR tree-optimize/19337
> > * tree-inlie.c (initialize_inlined_parameters): Copy
> > saved_static_chain_decl only.
> Why not this instead?
>
> if (fn == current_function_decl)
> p = DECL_STRUCT_FUNCTION (fn)->saved_static_chain_decl;
>
>
> That seems to work just as well and matches the test used for using
> the saved_args earlier in the same function.
void write_char(char);
int len(char*);
void f(char *a)
{
int col = 0;
int i;
void wchar(char c)
{
if (c == '\t')
{
do {
wchar(' ');
} while ((col%8)!=0);
}
else
{
write_char (c);
col++;
}
}
for(i =0;i<len(a);i++)
{
wchar(*a);
}
}
2005-01-13 Jan Hubicka <jh@suse.cz>
PR tree-optimize/19337
* tree-inlie.c (initialize_inlined_parameters): Copy
saved_static_chain_decl only.
Index: tree-inline.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-inline.c,v
retrieving revision 1.162
diff -c -3 -p -r1.162 tree-inline.c
*** tree-inline.c 4 Jan 2005 01:54:25 -0000 1.162
--- tree-inline.c 13 Jan 2005 00:04:22 -0000
*************** initialize_inlined_parameters (inline_da
*** 808,813 ****
--- 809,816 ----
/* Initialize the static chain. */
p = DECL_STRUCT_FUNCTION (fn)->static_chain_decl;
+ if (fn == current_function_decl)
+ p = DECL_STRUCT_FUNCTION (fn)->saved_static_chain_decl;
if (p)
{
/* No static chain? Seems like a bug in tree-nested.c. */