From: Jakub Jelinek Date: Mon, 25 Jun 2018 17:37:40 +0000 (+0200) Subject: backport: re PR inline-asm/85022 (internal compiler error: in write_dependence_p... X-Git-Tag: releases/gcc-6.5.0~201 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6ccc2a321896d78dcdbe2876d5726a6644552a3a;p=thirdparty%2Fgcc.git backport: re PR inline-asm/85022 (internal compiler error: in write_dependence_p, at alias.c:3003) Backported from mainline 2018-03-23 Jakub Jelinek PR inline-asm/85022 * alias.c (write_dependence_p): Don't require for x_canonicalized non-VOIDmode if x has VOIDmode. * c-c++-common/torture/pr85022.c: New test. From-SVN: r262083 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 922d742f05a6..0475fb013a04 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,6 +1,12 @@ 2018-06-25 Jakub Jelinek Backported from mainline + 2018-03-23 Jakub Jelinek + + PR inline-asm/85022 + * alias.c (write_dependence_p): Don't require for x_canonicalized + non-VOIDmode if x has VOIDmode. + 2018-03-22 Jakub Jelinek PR inline-asm/84941 diff --git a/gcc/alias.c b/gcc/alias.c index c581732d3a51..9a2b91dd603d 100644 --- a/gcc/alias.c +++ b/gcc/alias.c @@ -2978,7 +2978,8 @@ write_dependence_p (const_rtx mem, int ret; gcc_checking_assert (x_canonicalized - ? (x_addr != NULL_RTX && x_mode != VOIDmode) + ? (x_addr != NULL_RTX + && (x_mode != VOIDmode || GET_MODE (x) == VOIDmode)) : (x_addr == NULL_RTX && x_mode == VOIDmode)); if (MEM_VOLATILE_P (x) && MEM_VOLATILE_P (mem)) diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 6249ab542433..810edf050d09 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,6 +1,11 @@ 2018-06-25 Jakub Jelinek Backported from mainline + 2018-03-23 Jakub Jelinek + + PR inline-asm/85022 + * c-c++-common/torture/pr85022.c: New test. + 2018-03-22 Jakub Jelinek PR inline-asm/84941 diff --git a/gcc/testsuite/c-c++-common/torture/pr85022.c b/gcc/testsuite/c-c++-common/torture/pr85022.c new file mode 100644 index 000000000000..3ec2c781aa1e --- /dev/null +++ b/gcc/testsuite/c-c++-common/torture/pr85022.c @@ -0,0 +1,9 @@ +/* PR inline-asm/85022 */ + +extern struct B b; + +void +foo () +{ + __asm ("" : "+m" (b)); +}