]> git.ipfire.org Git - thirdparty/gcc.git/commit
re PR ipa/60640 (ICE edge points to wrong declaration / verify_cgraph_node failed)
authorMartin Jambor <mjambor@suse.cz>
Fri, 4 Apr 2014 14:11:06 +0000 (16:11 +0200)
committerMartin Jambor <jamborm@gcc.gnu.org>
Fri, 4 Apr 2014 14:11:06 +0000 (16:11 +0200)
commit610c8ef0a420e5267cbccd5a4509f0ce3095e14c
treea981c037f8ae40dbdb770ab5dcc5d5474cb95903
parent57ef133bab005d4a7eb1cb189b632fd2dd7fd95c
re PR ipa/60640 (ICE edge points to wrong declaration / verify_cgraph_node failed)

2014-04-04  Martin Jambor  <mjambor@suse.cz>

PR ipa/60640
        * cgraph.h (cgraph_clone_node): New parameter added to declaration.
        Adjust all callers.
* cgraph.c (clone_of_p): Also return true if thunks match.
(verify_edge_corresponds_to_fndecl): Removed extraneous call to
cgraph_function_or_thunk_node and an obsolete comment.
        * cgraphclones.c (build_function_type_skip_args): Moved upwards in the
        file.
        (build_function_decl_skip_args): Likewise.
(set_new_clone_decl_and_node_flags): New function.
        (duplicate_thunk_for_node): Likewise.
        (redirect_edge_duplicating_thunks): Likewise.
        (cgraph_clone_node): New parameter args_to_skip, pass it to
        redirect_edge_duplicating_thunks which is called instead of
        cgraph_redirect_edge_callee.
        (cgraph_create_virtual_clone): Pass args_to_skip to cgraph_clone_node,
moved setting of a lot of flags to set_new_clone_decl_and_node_flags.

testsuite/
        * g++.dg/ipa/pr60640-1.C: New test.
        * g++.dg/ipa/pr60640-2.C: Likewise.
        * g++.dg/ipa/pr60640-3.C: Likewise.
        * g++.dg/ipa/pr60640-4.C: Likewise.

From-SVN: r209097
12 files changed:
gcc/ChangeLog
gcc/cgraph.c
gcc/cgraph.h
gcc/cgraphclones.c
gcc/ipa-inline-transform.c
gcc/ipa-inline.c
gcc/lto-cgraph.c
gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/ipa/pr60640-1.C [new file with mode: 0644]
gcc/testsuite/g++.dg/ipa/pr60640-2.C [new file with mode: 0644]
gcc/testsuite/g++.dg/ipa/pr60640-3.C [new file with mode: 0644]
gcc/testsuite/g++.dg/ipa/pr60640-4.C [new file with mode: 0644]