diff options
author | Kai Tietz <kai.tietz@onevision.com> | 2010-11-25 12:30:07 +0000 |
---|---|---|
committer | Kai Tietz <ktietz@gcc.gnu.org> | 2010-11-25 13:30:07 +0100 |
commit | 9d602c5900c50a7cda00695c00e1945badc184cf (patch) | |
tree | 53c658f06750cdef237c8cdb0035bc208fccf85b /gcc/ipa.c | |
parent | c8230704c44609131a832307f2eee04df3206eb8 (diff) | |
download | gcc-9d602c5900c50a7cda00695c00e1945badc184cf.tar.gz |
cgraphunit.c (process_function_and_variable_attributes): Mark dllexport-ed function/variables as needed.
2010-11-25 Kai Tietz <kai.tietz@onevision.com>
* cgraphunit.c (process_function_and_variable_attributes):
Mark dllexport-ed function/variables as needed.
* ipa.c (cgraph_externally_visible_p): Make dllexport-ed
as externally visible.
2010-11-25 Kai Tietz <kai.tietz@onevision.com>
* gcc.dg/dll-8.c: New.
From-SVN: r167144
Diffstat (limited to 'gcc/ipa.c')
-rw-r--r-- | gcc/ipa.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ipa.c b/gcc/ipa.c index 28e6872ef7f..0b6518bf449 100644 --- a/gcc/ipa.c +++ b/gcc/ipa.c @@ -662,7 +662,9 @@ cgraph_externally_visible_p (struct cgraph_node *node, bool whole_program, bool return true; if (lookup_attribute ("externally_visible", DECL_ATTRIBUTES (node->decl))) return true; - + if (TARGET_DLLIMPORT_DECL_ATTRIBUTES + && lookup_attribute ("dllexport", DECL_ATTRIBUTES (node->decl))) + return true; /* When doing LTO or whole program, we can bring COMDAT functoins static. This improves code quality and we know we will duplicate them at most twice (in the case that we are not using plugin and link with object file @@ -724,6 +726,10 @@ varpool_externally_visible_p (struct varpool_node *vnode, bool aliased) if (lookup_attribute ("externally_visible", DECL_ATTRIBUTES (vnode->decl))) return true; + if (TARGET_DLLIMPORT_DECL_ATTRIBUTES + && lookup_attribute ("dllexport", + DECL_ATTRIBUTES (vnode->decl))) + return true; /* See if we have linker information about symbol not being used or if we need to make guess based on the declaration. |