Commit ca66a6cd by Jakub Jelinek Committed by Jakub Jelinek

re PR middle-end/87647 (ICE on valid code in decode_addr_const, at varasm.c:2958)

	PR middle-end/87647
	* varasm.c (decode_addr_const): Handle COMPOUND_LITERAL_EXPR.

	* gcc.c-torture/compile/pr87647.c: New test.

From-SVN: r265341
parent 79e61dc2
2018-10-20 Jakub Jelinek <jakub@redhat.com>
PR middle-end/87647
* varasm.c (decode_addr_const): Handle COMPOUND_LITERAL_EXPR.
2018-10-20 Andreas Schwab <schwab@linux-m68k.org>
* doc/ux.texi: Move @section directly after @node.
2018-10-20 Jakub Jelinek <jakub@redhat.com>
PR middle-end/87647
* gcc.c-torture/compile/pr87647.c: New test.
2018-10-19 Jakub Jelinek <jakub@redhat.com>
PR middle-end/85488
......
/* PR middle-end/87647 */
struct A {};
struct A *const b = &(struct A) {};
struct B { char *s; struct A *t; };
void bar (struct B *);
void
foo (void)
{
struct B a[] = { "", b, "", b, "", b, "", b, "", b, "", b, "", b, "", b,
"", b, "", b, "", b, "", b, "", b, "", b, "", b, "", b,
"", b };
bar (a);
}
......@@ -2953,6 +2953,11 @@ decode_addr_const (tree exp, struct addr_const *value)
gen_rtx_SYMBOL_REF (Pmode, "origin of addresses"));
break;
case COMPOUND_LITERAL_EXPR:
gcc_assert (COMPOUND_LITERAL_EXPR_DECL (target));
x = DECL_RTL (COMPOUND_LITERAL_EXPR_DECL (target));
break;
default:
gcc_unreachable ();
}
......
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