aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2016-01-14 00:47:45 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2016-01-13 23:47:45 +0000
commit92763e9ac7700f6152c2c223b065b2e40b4e6743 (patch)
tree1ab75ac0b8881886d59a6fd4a76627b9e95bb1d1
parent13431f304ae979a3d1f4e1b44f7e4881f7e69f6e (diff)
downloadgcc-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/ChangeLog7
-rw-r--r--gcc/ipa-polymorphic-call.c4
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)