OSDN Git Service

* config/i386/winnt.c (ix86_handle_dll_attribute): Set
authordannysmith <dannysmith@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 16 Sep 2002 22:17:31 +0000 (22:17 +0000)
committerdannysmith <dannysmith@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 16 Sep 2002 22:17:31 +0000 (22:17 +0000)
DECL_EXTERN and TREE_PUBLIC for dllimported variables here...
(i386_pe_mark_dllimport): Not here.

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

gcc/ChangeLog
gcc/config/i386/winnt.c

index 7aaf2c7..10ff912 100644 (file)
@@ -1,3 +1,10 @@
+2002-09-16  Jason Merrill  <jason@redhat.com>
+           Danny Smith  <dannysmith@users.sourceforge.net>
+
+       * config/i386/winnt.c (ix86_handle_dll_attribute): Set
+       DECL_EXTERN and TREE_PUBLIC for dllimported variables here...
+       (i386_pe_mark_dllimport): Not here.
+
 2002-09-16  Nathan Sidwell  <nathan@codesourcery.com>
 
        * c-semantics.c (genrtl_do_stmt): Cope with NULL cond.
index f629d35..346a635 100644 (file)
@@ -78,6 +78,15 @@ ix86_handle_dll_attribute (node, name, args, flags, no_add_attrs)
        }
     }
 
+  /* `extern' needn't be specified with dllimport.
+     Specify `extern' now and hope for the best.  Sigh.  */
+  else if (TREE_CODE (*node) == VAR_DECL
+          && is_attribute_p ("dllimport", name))
+    {
+      DECL_EXTERNAL (*node) = 1;
+      TREE_PUBLIC (*node) = 1;
+    }
+
   return NULL_TREE;
 }
 
@@ -302,16 +311,6 @@ i386_pe_mark_dllimport (decl)
       return;
     }
 
-  /* `extern' needn't be specified with dllimport.
-     Specify `extern' now and hope for the best.  Sigh.  */
-  if (TREE_CODE (decl) == VAR_DECL
-      /* ??? Is this test for vtables needed?  */
-      && !DECL_VIRTUAL_P (decl))
-    {
-      DECL_EXTERNAL (decl) = 1;
-      TREE_PUBLIC (decl) = 1;
-    }
-
   newname = alloca (strlen (oldname) + 11);
   sprintf (newname, "@i._imp__%s", oldname);