diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2016-01-14 00:47:45 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2016-01-13 23:47:45 +0000 |
commit | 92763e9ac7700f6152c2c223b065b2e40b4e6743 (patch) | |
tree | 1ab75ac0b8881886d59a6fd4a76627b9e95bb1d1 | |
parent | 13431f304ae979a3d1f4e1b44f7e4881f7e69f6e (diff) | |
download | gcc-92763e9ac7700f6152c2c223b065b2e40b4e6743.zip gcc-92763e9ac7700f6152c2c223b065b2e40b4e6743.tar.gz gcc-92763e9ac7700f6152c2c223b065b2e40b4e6743.tar.bz2 |
re PR c++/66487 (sanitizer/warnings for lifetime DSE)
PR ipa/66487
* ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p):
use block_ultimate_origin
(noncall-stmt_may_be_vtbl_ptr_store): Likewise.
From-SVN: r232356
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/ipa-polymorphic-call.c | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 555a442..dc13621 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2016-01-13 Jan Hubicka <hubicka@ucw.cz> + + PR ipa/66487 + * ipa-polymorphic-call.c (inlined_polymorphic_ctor_dtor_block_p): + use block_ultimate_origin + (noncall-stmt_may_be_vtbl_ptr_store): Likewise. + 2016-01-13 Sandra Loosemore <sandra@codesourcery.com> * doc/invoke.texi (Submodel Options): Rename section to diff --git a/gcc/ipa-polymorphic-call.c b/gcc/ipa-polymorphic-call.c index 336d2a2..91c41f9 100644 --- a/gcc/ipa-polymorphic-call.c +++ b/gcc/ipa-polymorphic-call.c @@ -484,7 +484,7 @@ contains_type_p (tree outer_type, HOST_WIDE_INT offset, tree inlined_polymorphic_ctor_dtor_block_p (tree block, bool check_clones) { - tree fn = BLOCK_ABSTRACT_ORIGIN (block); + tree fn = block_ultimate_origin (block); if (fn == NULL || TREE_CODE (fn) != FUNCTION_DECL) return NULL_TREE; @@ -1143,7 +1143,7 @@ noncall_stmt_may_be_vtbl_ptr_store (gimple *stmt) for (tree block = gimple_block (stmt); block && TREE_CODE (block) == BLOCK; block = BLOCK_SUPERCONTEXT (block)) if (BLOCK_ABSTRACT_ORIGIN (block) - && TREE_CODE (BLOCK_ABSTRACT_ORIGIN (block)) == FUNCTION_DECL) + && TREE_CODE (block_ultimate_origin (block)) == FUNCTION_DECL) return inlined_polymorphic_ctor_dtor_block_p (block, false); return (TREE_CODE (TREE_TYPE (current_function_decl)) == METHOD_TYPE && (DECL_CXX_CONSTRUCTOR_P (current_function_decl) |