diff --git a/gcc/ChangeLog b/gcc/ChangeLog index ea7fced53d6..5c4d210611b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2010-10-09 Richard Guenther + + PR lto/45947 + * tree.c (free_lang_data_in_cgraph): Properly walk the varpool. + 2010-10-09 Nathan Froyd * config/mmix/mmix-protos.h (mmix_function_arg): Delete. diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 3641bf61858..9c16eed597a 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-10-09 Richard Guenther + + PR lto/45947 + * g++.dg/lto/20101009-1_0.C: New testcase. + 2010-10-09 Richard Guenther PR tree-optimization/45945 diff --git a/gcc/testsuite/g++.dg/lto/20101009-1_0.C b/gcc/testsuite/g++.dg/lto/20101009-1_0.C new file mode 100644 index 00000000000..b7cc5bc478f --- /dev/null +++ b/gcc/testsuite/g++.dg/lto/20101009-1_0.C @@ -0,0 +1,14 @@ +// { dg-lto-do link } + +template < typename > struct X +{ + template < typename > static int test (); + static const int i = sizeof (test < int >()); +}; + +template struct X < int >; + +int main() +{ + return 0; +} diff --git a/gcc/tree.c b/gcc/tree.c index d068a7e109e..cf5881a73b6 100644 --- a/gcc/tree.c +++ b/gcc/tree.c @@ -4982,7 +4982,7 @@ free_lang_data_in_cgraph (void) find_decls_types (p->decl, &fld); /* Find decls and types in every varpool symbol. */ - for (v = varpool_nodes_queue; v; v = v->next_needed) + for (v = varpool_nodes; v; v = v->next) find_decls_types_in_var (v, &fld); /* Set the assembler name on every decl found. We need to do this