OSDN Git Service

* decl.c (start_decl): Don't just complain about a mismatched
authorjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 20 Nov 1997 04:43:53 +0000 (04:43 +0000)
committerjason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 20 Nov 1997 04:43:53 +0000 (04:43 +0000)
scope, fix it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@16591 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/cp/ChangeLog
gcc/cp/decl.c

index f10aea4..b123b92 100644 (file)
@@ -1,5 +1,8 @@
 Wed Nov 19 18:24:14 1997  Jason Merrill  <jason@yorick.cygnus.com>
 
+       * decl.c (start_decl): Don't just complain about a mismatched 
+       scope, fix it.
+
        * decl.c (make_implicit_typename): Handle case where t is not
        actually from context.
        * tree.c (get_type_decl): Lose identifier case.
index 3aa8201..5cda56a 100644 (file)
@@ -6009,7 +6009,12 @@ start_decl (declarator, declspecs, initialized)
          else
            {
              if (DECL_CONTEXT (field) != context)
-               cp_pedwarn ("ANSI C++ does not permit `%T::%D' to be defined as `%T::%D'", DECL_CONTEXT (field), DECL_NAME (decl), context, DECL_NAME (decl));
+               {
+                 cp_pedwarn ("ANSI C++ does not permit `%T::%D' to be defined as `%T::%D'",
+                             DECL_CONTEXT (field), DECL_NAME (decl),
+                             context, DECL_NAME (decl));
+                 DECL_CONTEXT (decl) = DECL_CONTEXT (field);
+               }
              if (duplicate_decls (decl, field))
                decl = field;
            }