diff options
Diffstat (limited to 'gcc/ipa-visibility.c')
-rw-r--r-- | gcc/ipa-visibility.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/ipa-visibility.c b/gcc/ipa-visibility.c index 13cf2a3a1cf..3033f20e3f1 100644 --- a/gcc/ipa-visibility.c +++ b/gcc/ipa-visibility.c @@ -92,10 +92,11 @@ non_local_p (struct cgraph_node *node, void *data ATTRIBUTE_UNUSED) { return !(node->only_called_directly_or_aliased_p () /* i386 would need update to output thunk with local calling - convetions. */ + conventions. */ && !node->thunk.thunk_p && node->definition && !DECL_EXTERNAL (node->decl) + && !lookup_attribute ("noipa", DECL_ATTRIBUTES (node->decl)) && !node->externally_visible && !node->used_from_other_partition && !node->in_other_partition @@ -211,6 +212,8 @@ cgraph_externally_visible_p (struct cgraph_node *node, if (lookup_attribute ("externally_visible", DECL_ATTRIBUTES (node->decl))) return true; + if (lookup_attribute ("noipa", DECL_ATTRIBUTES (node->decl))) + return true; if (TARGET_DLLIMPORT_DECL_ATTRIBUTES && lookup_attribute ("dllexport", DECL_ATTRIBUTES (node->decl))) |