This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug middle-end/46242] Segmentation fault in ipcp_driver


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46242

--- Comment #4 from Martin Jambor <jamborm at gcc dot gnu.org> 2010-12-15 13:19:51 UTC ---
Author: jamborm
Date: Wed Dec 15 13:19:46 2010
New Revision: 167855

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=167855
Log:
2010-12-15  Martin Jambor  <mjambor@suse.cz>

    PR tree-optimization/46053
    PR middle-end/46287
    PR middle-end/46242
    * cgraph.h (cgraph_indirect_call_info): New field thunk_delta.
    * gimple.h (gimple_fold_obj_type_ref): Declaration removed.
    (gimple_fold_call): Declare.
    (gimple_adjust_this_by_delta): Likewise.
    * cgraph.c (cgraph_make_edge_direct): New parameter delta.  Updated
    all users.
    (cgraph_clone_edge): Create a copy of indirect_info also for direct
    edges.
    * cgraphunit.c (cgraph_redirect_edge_call_stmt_to_callee): Adjust this
    parameters.
    * gimple-fold.c (gimple_fold_obj_type_ref_known_binfo): Renamed to
    gimple_get_virt_mehtod_for_binfo, new parameter delta.  Do not search
    through thunks, in fact bail out if we encounter one, check that
    BINFO_VIRTUALS is not NULL.
    (gimple_adjust_this_by_delta): New function.
    (gimple_fold_obj_type_ref): Removed.
    (gimple_fold_obj_type_ref_call): New function.
    (fold_gimple_call): Renamed to gimple_fold_call, made external.
    Updated users.  Call gimple_fold_obj_type_ref_call instead of
    gimple_fold_obj_type_ref.
    * ipa-cp.c (ipcp_process_devirtualization_opportunities): Process
    thunk deltas.
    (ipcp_discover_new_direct_edges): Likewise.
    * ipa-prop.c (ipa_make_edge_direct_to_target): New parameter delta.
    Updated callers.
    (ipa_write_indirect_edge_info): Stream thunk_delta.
    (ipa_read_indirect_edge_info): Likewise.
    * tree-ssa-ccp.c (ccp_fold_stmt): Use gimple_fold_call instead of
    gimple_fold_obj_type_ref.

    * testsuite/g++.dg/ipa/pr46053.C: New test.
    * testsuite/g++.dg/ipa/pr46287-1.C: Likewise.
    * testsuite/g++.dg/ipa/pr46287-2.C: Likewise.
    * testsuite/g++.dg/ipa/pr46287-3.C: Likewise.
    * testsuite/g++.dg/torture/covariant-1.C: Likewise.
    * testsuite/g++.dg/torture/pr46287.C: Likewise.


Added:
    trunk/gcc/testsuite/g++.dg/ipa/pr46053.C
    trunk/gcc/testsuite/g++.dg/ipa/pr46287-1.C
    trunk/gcc/testsuite/g++.dg/ipa/pr46287-2.C
    trunk/gcc/testsuite/g++.dg/ipa/pr46287-3.C
    trunk/gcc/testsuite/g++.dg/torture/covariant-1.C
    trunk/gcc/testsuite/g++.dg/torture/pr46287.C
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/cgraph.c
    trunk/gcc/cgraph.h
    trunk/gcc/cgraphunit.c
    trunk/gcc/gimple-fold.c
    trunk/gcc/gimple.h
    trunk/gcc/ipa-cp.c
    trunk/gcc/ipa-prop.c
    trunk/gcc/ipa-prop.h
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-ssa-ccp.c


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]