diff options
author | Martin Jambor <mjambor@suse.cz> | 2017-03-30 15:51:02 +0200 |
---|---|---|
committer | Martin Jambor <jamborm@gcc.gnu.org> | 2017-03-30 15:51:02 +0200 |
commit | b0fd4d7e328f0b967d61fdfe44b5e01b26cf3c30 (patch) | |
tree | 0d0aa00b6327fc3693098541fb8b4b3c966bfa64 /gcc/cgraphclones.c | |
parent | de008ec4d69a5f7e9b75b25dc9e1fa937d65ff80 (diff) | |
download | gcc-b0fd4d7e328f0b967d61fdfe44b5e01b26cf3c30.zip gcc-b0fd4d7e328f0b967d61fdfe44b5e01b26cf3c30.tar.gz gcc-b0fd4d7e328f0b967d61fdfe44b5e01b26cf3c30.tar.bz2 |
[PR 77333] Fixup fntypes of gimple calls of clones
2017-03-30 Martin Jambor <mjambor@suse.cz>
PR ipa/77333
* cgraph.h (cgraph_build_function_type_skip_args): Declare.
* cgraph.c (redirect_call_stmt_to_callee): Set gimple fntype so that
it reflects the signature changes performed at the callee side.
* cgraphclones.c (build_function_type_skip_args): Make public, renamed
to cgraph_build_function_type_skip_args.
(build_function_decl_skip_args): Adjust call to the above function.
testsuite/
* g++.dg/ipa/pr77333.C: New test.
From-SVN: r246589
Diffstat (limited to 'gcc/cgraphclones.c')
-rw-r--r-- | gcc/cgraphclones.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/cgraphclones.c b/gcc/cgraphclones.c index c2337e8..69572b9 100644 --- a/gcc/cgraphclones.c +++ b/gcc/cgraphclones.c @@ -152,9 +152,9 @@ cgraph_edge::clone (cgraph_node *n, gcall *call_stmt, unsigned stmt_uid, /* Build variant of function type ORIG_TYPE skipping ARGS_TO_SKIP and the return value if SKIP_RETURN is true. */ -static tree -build_function_type_skip_args (tree orig_type, bitmap args_to_skip, - bool skip_return) +tree +cgraph_build_function_type_skip_args (tree orig_type, bitmap args_to_skip, + bool skip_return) { tree new_type = NULL; tree args, new_args = NULL; @@ -219,7 +219,8 @@ build_function_decl_skip_args (tree orig_decl, bitmap args_to_skip, if (prototype_p (new_type) || (skip_return && !VOID_TYPE_P (TREE_TYPE (new_type)))) new_type - = build_function_type_skip_args (new_type, args_to_skip, skip_return); + = cgraph_build_function_type_skip_args (new_type, args_to_skip, + skip_return); TREE_TYPE (new_decl) = new_type; /* For declarations setting DECL_VINDEX (i.e. methods) |