diff options
author | Jan Hubicka <jh@suse.cz> | 2011-06-14 16:25:57 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2011-06-14 14:25:57 +0000 |
commit | d2640c430fcce5cd42c60f361eb3f0ac1a048a48 (patch) | |
tree | 882b8fec1b53f7cb64f5d16e4abf1b4e868cfcfa /gcc | |
parent | de38eefaa72cbf065d501f7548471c42621c4e73 (diff) | |
download | gcc-d2640c430fcce5cd42c60f361eb3f0ac1a048a48.zip gcc-d2640c430fcce5cd42c60f361eb3f0ac1a048a48.tar.gz gcc-d2640c430fcce5cd42c60f361eb3f0ac1a048a48.tar.bz2 |
* ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type.
From-SVN: r175021
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/ipa.c | 17 |
2 files changed, 13 insertions, 8 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0f06b43..80b7b1e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2011-06-13 Jan Hubicka <jh@suse.cz> + + * ipa.c (cgraph_address_taken_from_non_vtable_p): Check the ref type. + 2011-06-14 Richard Henderson <rth@redhat.com> PR debug/48459 @@ -543,14 +543,15 @@ cgraph_address_taken_from_non_vtable_p (struct cgraph_node *node) int i; struct ipa_ref *ref; for (i = 0; ipa_ref_list_reference_iterate (&node->ref_list, i, ref); i++) - { - struct varpool_node *node; - if (ref->refered_type == IPA_REF_CGRAPH) - return true; - node = ipa_ref_varpool_node (ref); - if (!DECL_VIRTUAL_P (node->decl)) - return true; - } + if (ref->use == IPA_REF_ADDR) + { + struct varpool_node *node; + if (ref->refered_type == IPA_REF_CGRAPH) + return true; + node = ipa_ref_varpool_node (ref); + if (!DECL_VIRTUAL_P (node->decl)) + return true; + } return false; } |