aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/i386
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2017-12-22 00:10:45 +0100
committerJakub Jelinek <jakub@gcc.gnu.org>2017-12-22 00:10:45 +0100
commit604aac48157176b932b5a8772db4d4919199c300 (patch)
treeb5d4bdc392365b4e9bd0c05520f364bc8a855a9f /gcc/config/i386
parent36367d1f19e2a61bd05b292df8f27aab4c03ba72 (diff)
downloadgcc-604aac48157176b932b5a8772db4d4919199c300.zip
gcc-604aac48157176b932b5a8772db4d4919199c300.tar.gz
gcc-604aac48157176b932b5a8772db4d4919199c300.tar.bz2
re PR middle-end/83487 (ICE in expand_call, at calls.c:4098)
PR middle-end/83487 * config/i386/i386.c (ix86_function_arg_boundary): Return PARM_BOUNDARY for TYPE_EMPTY_P types. * gcc.c-torture/compile/pr83487.c: New test. * gcc.dg/compat/pr83487-1.h: New file. * gcc.dg/compat/pr83487-1_main.c: New test. * gcc.dg/compat/pr83487-1_x.c: New file. * gcc.dg/compat/pr83487-1_y.c: New file. * gcc.dg/compat/pr83487-2_main.c: New test. * gcc.dg/compat/pr83487-2_x.c: New file. * gcc.dg/compat/pr83487-2_y.c: New file. * g++.dg/abi/pr83487.C: New test. * g++.dg/compat/abi/pr83487-1_main.C: New test. * g++.dg/compat/abi/pr83487-1_x.C: New file. * g++.dg/compat/abi/pr83487-1_y.C: New file. * g++.dg/compat/abi/pr83487-2_main.C: New test. * g++.dg/compat/abi/pr83487-2_x.C: New file. * g++.dg/compat/abi/pr83487-2_y.C: New file. From-SVN: r255961
Diffstat (limited to 'gcc/config/i386')
-rw-r--r--gcc/config/i386/i386.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index beeabff..8d02eb2 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -8973,6 +8973,8 @@ ix86_function_arg_boundary (machine_mode mode, const_tree type)
the main variant type. */
type = TYPE_MAIN_VARIANT (type);
align = TYPE_ALIGN (type);
+ if (TYPE_EMPTY_P (type))
+ return PARM_BOUNDARY;
}
else
align = GET_MODE_ALIGNMENT (mode);