diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index b37326619153..f8e53540382b 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,9 @@ +2010-08-18 Nathan Froyd + + PR c++/45049 + * name-lookup.c (push_overloaded_decl): Change DECL_CHAIN to + TREE_CHAIN. + 2010-08-17 Kai Tietz * class.c (note_name_declared_in_class): Make in 'extern "C"' blocks, diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c index 01f29e43772a..800e340de95b 100644 --- a/gcc/cp/name-lookup.c +++ b/gcc/cp/name-lookup.c @@ -2157,7 +2157,7 @@ push_overloaded_decl (tree decl, int flags, bool is_friend) for (d = &IDENTIFIER_BINDING (name)->scope->names; *d; - d = &DECL_CHAIN (*d)) + d = &TREE_CHAIN (*d)) if (*d == old || (TREE_CODE (*d) == TREE_LIST && TREE_VALUE (*d) == old)) @@ -2168,7 +2168,7 @@ push_overloaded_decl (tree decl, int flags, bool is_friend) else /* Build a TREE_LIST to wrap the OVERLOAD. */ *d = tree_cons (NULL_TREE, new_binding, - DECL_CHAIN (*d)); + TREE_CHAIN (*d)); /* And update the cxx_binding node. */ IDENTIFIER_BINDING (name)->value = new_binding; diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index e4c980e40626..32f4228df459 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,9 @@ +2010-08-18 Nathan Froyd + + PR c++/45049 + * g++.dg/pr45049-1.C: New test. + * g++.dg/pr45049-2.C: New test. + 2010-08-18 Jie Zhang * gcc.dg/builtin-apply2.c (STACK_ARGUMENTS_SIZE): Define to diff --git a/gcc/testsuite/g++.dg/pr45049-1.C b/gcc/testsuite/g++.dg/pr45049-1.C new file mode 100644 index 000000000000..7b1dcd568ebe --- /dev/null +++ b/gcc/testsuite/g++.dg/pr45049-1.C @@ -0,0 +1,17 @@ +/* { dg-do compile } */ + +namespace n1 { + void modf (); +} + +namespace n2 { + void trunc (); + void modf (); +} + +void max () +{ + using n1::modf; + using n2::trunc; + using n2::modf; +} diff --git a/gcc/testsuite/g++.dg/pr45049-2.C b/gcc/testsuite/g++.dg/pr45049-2.C new file mode 100644 index 000000000000..a9518842edb6 --- /dev/null +++ b/gcc/testsuite/g++.dg/pr45049-2.C @@ -0,0 +1,9 @@ +/* { dg-do compile } */ + +void foo() +{ + void bar(int); + void baz(int); + void baz(void); + void bar(void); +}