From: Jan Hubicka Date: Wed, 13 Jan 2016 23:47:45 +0000 (+0100) Subject: re PR c++/66487 (sanitizer/warnings for lifetime DSE) X-Git-Tag: basepoints/gcc-7~1652 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=92763e9ac7700f6152c2c223b065b2e40b4e6743;p=thirdparty%2Fgcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 555a44296b33..dc136214089f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2016-01-13 Jan Hubicka + + 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 * doc/invoke.texi (Submodel Options): Rename section to diff --git a/gcc/ipa-polymorphic-call.c b/gcc/ipa-polymorphic-call.c index 336d2a2e1aef..91c41f99f2c4 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)