[Bug tree-optimization/46302] [4.6 Regression] Program with virtual public inheritance crashes at O3
jamborm at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Wed Dec 22 12:57:00 GMT 2010
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46302
--- Comment #7 from Martin Jambor <jamborm at gcc dot gnu.org> 2010-12-22 12:57:00 UTC ---
Author: jamborm
Date: Wed Dec 22 12:56:54 2010
New Revision: 168168
URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=168168
Log:
2010-12-22 Martin Jambor <mjambor@suse.cz>
PR tree-optimization/45934
PR tree-optimization/46302
PR tree-optimization/46987
* gimple-fold.c (get_base_binfo_for_type): Removed.
(gimple_get_relevant_ref_binfo): Likewise.
(gimple_fold_obj_type_ref_call): Dumb down to 4.5 functionality,
removed parameter inplace, updated the caller.
* gimple.h (gimple_get_relevant_ref_binfo): Remove declaration.
* ipa-cp.c (ipcp_propagate_types): Do not derive types from constants.
(ipcp_discover_new_direct_edges): Do not do devirtualization based on
constants.
* ipa-prop.c (compute_known_type_jump_func): Use
get_ref_base_and_extent and get_binfo_at_offset instead of
gimple_get_relevant_ref_binfo.
(compute_known_type_jump_func): Likewise.
(update_jump_functions_after_inlining): Do not derive types from
constants.
(try_make_edge_direct_virtual_call): Likewise.
* tree.c (get_binfo_at_offset): Get type from non-artificial fields.
* testsuite/g++.dg/ipa/ipcp-ivi-1.C: Removed.
* testsuite/g++.dg/ipa/ivinline-6.C: Likewise.
* testsuite/g++.dg/otr-fold-1.C: Likewise.
* testsuite/g++.dg/otr-fold-2.C: Likewise.
* testsuite/g++.dg/tree-ssa/pr43411.C: Xfail dump scan.
* testsuite/g++.dg/tree-ssa/pr45605.C: Likewise.
* testsuite/g++.dg/tree-ssa/pr46987.C: New test.
Added:
trunk/gcc/testsuite/g++.dg/tree-ssa/pr46987.C
Removed:
trunk/gcc/testsuite/g++.dg/ipa/ipcp-ivi-1.C
trunk/gcc/testsuite/g++.dg/ipa/ivinline-6.C
trunk/gcc/testsuite/g++.dg/otr-fold-1.C
trunk/gcc/testsuite/g++.dg/otr-fold-2.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/gimple-fold.c
trunk/gcc/gimple.h
trunk/gcc/ipa-cp.c
trunk/gcc/ipa-prop.c
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/g++.dg/tree-ssa/pr43411.C
trunk/gcc/testsuite/g++.dg/tree-ssa/pr45605.C
trunk/gcc/tree.c
More information about the Gcc-bugs
mailing list