cp:
authornathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Jan 2001 13:34:00 +0000 (13:34 +0000)
committernathan <nathan@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 11 Jan 2001 13:34:00 +0000 (13:34 +0000)
* decl2.c (get_guard): Set linkage from guarded decl.

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

gcc/cp/ChangeLog
gcc/cp/decl2.c

index 0981c7e..995f49e 100644 (file)
@@ -1,5 +1,9 @@
 2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
 
+       * decl2.c (get_guard): Set linkage from guarded decl.
+
+2001-01-11  Nathan Sidwell  <nathan@codesourcery.com>
+
        * call.c (convert_default_arg): Check for unprocessed
        DEFAULT_ARG.
        * cp-tree.h (replace_defarg): Move to spew.c.
index e099056..3f15b38 100644 (file)
@@ -2856,11 +2856,17 @@ get_guard (decl)
        guard_type = integer_type_node;
 
       guard = build_decl (VAR_DECL, sname, guard_type);
-      TREE_PUBLIC (guard) = 1;
+      
+      /* The guard should have the same linkage as what it guards. */
+      TREE_PUBLIC (guard) = TREE_PUBLIC (decl);
+      TREE_STATIC (guard) = TREE_STATIC (decl);
+      DECL_COMMON (guard) = DECL_COMMON (decl);
+      DECL_ONE_ONLY (guard) = DECL_ONE_ONLY (decl);
+      if (TREE_PUBLIC (decl))
+        DECL_WEAK (guard) = DECL_WEAK (decl);
+      
       DECL_ARTIFICIAL (guard) = 1;
-      TREE_STATIC (guard) = 1;
       TREE_USED (guard) = 1;
-      DECL_COMMON (guard) = 1;
       pushdecl_top_level (guard);
       cp_finish_decl (guard, NULL_TREE, NULL_TREE, 0);
     }