Commit e47aebb3 by Jakub Jelinek Committed by Jakub Jelinek

re PR debug/84252 (ICE in get_tracked_reg_offset when building libvpx for aarch64)

	PR debug/84252
	* var-tracking.c (vt_add_function_parameter): Punt for non-onepart
	PARALLEL incoming that failed vt_get_decl_and_offset check.

	* gcc.target/aarch64/pr84252.c: New test.

From-SVN: r257514
parent ebd06e5c
2018-02-09 Jakub Jelinek <jakub@redhat.com>
PR debug/84252
* var-tracking.c (vt_add_function_parameter): Punt for non-onepart
PARALLEL incoming that failed vt_get_decl_and_offset check.
PR middle-end/84237
* output.h (bss_initializer_p): Add NAMED argument, defaulted to false.
* varasm.c (bss_initializer_p): Add NAMED argument, if true, ignore
......
2018-02-09 Jakub Jelinek <jakub@redhat.com>
PR debug/84252
* gcc.target/aarch64/pr84252.c: New test.
PR middle-end/84237
* gcc.dg/pr84237.c: New test.
......
/* PR debug/84252 */
/* { dg-do compile } */
/* { dg-options "-g -O2" } */
struct S { __Int32x4_t b[2]; };
void
foo (struct S x)
{
}
......@@ -9653,6 +9653,7 @@ vt_add_function_parameter (tree parm)
poly_int64 offset;
dataflow_set *out;
decl_or_value dv;
bool incoming_ok = true;
if (TREE_CODE (parm) != PARM_DECL)
return;
......@@ -9743,6 +9744,7 @@ vt_add_function_parameter (tree parm)
if (!vt_get_decl_and_offset (incoming, &decl, &offset))
{
incoming_ok = false;
if (MEM_P (incoming))
{
/* This means argument is passed by invisible reference. */
......@@ -9861,6 +9863,10 @@ vt_add_function_parameter (tree parm)
{
int i;
/* The following code relies on vt_get_decl_and_offset returning true for
incoming, which might not be always the case. */
if (!incoming_ok)
return;
for (i = 0; i < XVECLEN (incoming, 0); i++)
{
rtx reg = XEXP (XVECEXP (incoming, 0, i), 0);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment