winnt.c (ix86_handle_dll_attribute): Set DECL_EXTERN and TREE_PUBLIC for dllimported...
authorJason Merrill <jason@redhat.com>
Mon, 16 Sep 2002 22:17:31 +0000 (18:17 -0400)
committerDanny Smith <dannysmith@gcc.gnu.org>
Mon, 16 Sep 2002 22:17:31 +0000 (22:17 +0000)
* config/i386/winnt.c (ix86_handle_dll_attribute): Set
DECL_EXTERN and TREE_PUBLIC for dllimported variables here...
(i386_pe_mark_dllimport): Not here.

Co-Authored-By: Danny Smith <dannysmith@users.sourceforge.net>
From-SVN: r57215

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

index 7aaf2c76cf263a19a3608a9c1488b8c196849022..10ff912287dba1da37c21ccec05884796964307a 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 f629d35570b6f33a92c8a0d1a25d74126efafcc6..346a635a9dbd1ca38830920177cc6ae4eaf432b4 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);