aboutsummaryrefslogtreecommitdiff
path: root/gcc/calls.c
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2017-12-20 10:12:09 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2017-12-20 10:12:09 +0100
commit5b8b4a883d74dc74ecf64643e7d3a060db489318 (patch)
tree0f7dc6983cc7ca27a77491a258d9d7b182306c39 /gcc/calls.c
parentee050a6e44bf73f876cba57f85aeb39cca8ae952 (diff)
downloadgcc-5b8b4a883d74dc74ecf64643e7d3a060db489318.zip
gcc-5b8b4a883d74dc74ecf64643e7d3a060db489318.tar.gz
gcc-5b8b4a883d74dc74ecf64643e7d3a060db489318.tar.bz2
re PR c++/83490 (ICE in find_call_stack_args, at dce.c:392)
PR c++/83490 * calls.c (compute_argument_addresses): Ignore TYPE_EMPTY_P arguments. * g++.dg/abi/empty29.C: New test. From-SVN: r255852
Diffstat (limited to 'gcc/calls.c')
-rw-r--r--gcc/calls.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/calls.c b/gcc/calls.c
index 6057aa6..166c152 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -2365,6 +2365,9 @@ compute_argument_addresses (struct arg_data *args, rtx argblock, int num_actuals
&& args[i].partial == 0)
continue;
+ if (TYPE_EMPTY_P (TREE_TYPE (args[i].tree_value)))
+ continue;
+
/* Pointer Bounds are never passed on the stack. */
if (POINTER_BOUNDS_P (args[i].tree_value))
continue;