aboutsummaryrefslogtreecommitdiff
path: root/gcc/cp
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2023-05-10 13:20:39 +0200
committerJakub Jelinek <jakub@redhat.com>2023-05-10 13:20:39 +0200
commit395a75593ef87a68a04111bb08243b5d9a811f45 (patch)
tree883ed48e02f0eaa8c4cce3d760ca16b44ae06cec /gcc/cp
parent5a7dda68000dcbe6c54735313521228812b10893 (diff)
downloadgcc-395a75593ef87a68a04111bb08243b5d9a811f45.zip
gcc-395a75593ef87a68a04111bb08243b5d9a811f45.tar.gz
gcc-395a75593ef87a68a04111bb08243b5d9a811f45.tar.bz2
ipa-prop: Fix ipa_get_callee_param_type for calls with argument type mismatches
The PR contains a testcase where the Fortran FE creates FUNCTION_TYPE which doesn't really match the passed in arguments (FUNCTION_TYPE has 5 arguments, call has 6). Now, I think that is a Fortran FE bug that should be fixed there, but I think with function pointers one can create something similar (of course invalid) in C/C++ too,so IMHO IPA should be also more careful. The ipa_get_callee_param_type function can return NULL if something goes wrong and it does e.g. if asked for 7th argument type on a function with just 5 arguments and similar. But, if a function isn't varargs, when asked for 6th argument type on a function with just 5 arguments it actually returns void_type_node because the argument list is in that case terminated with void_list_node. The following patch makes sure we don't treat void_list_node as something holding another argument. 2023-05-10 Jakub Jelinek <jakub@redhat.com> PR fortran/109788 * ipa-prop.cc (ipa_get_callee_param_type): Don't return TREE_VALUE (t) if t is void_list_node.
Diffstat (limited to 'gcc/cp')
0 files changed, 0 insertions, 0 deletions