backport: re PR middle-end/43690 (Internal compiler error detected by avr-gcc.)

Backport from mainline
	2010-11-05  Jakub Jelinek  <jakub@redhat.com>

	PR middle-end/43690
	* gimplify.c (gimplify_asm_expr): If a "m" input is a
	{pre,post}{in,de}crement, fail.

	* c-c++-common/pr43690.c: New test.

From-SVN: r166650
This commit is contained in:
Jakub Jelinek 2010-11-12 12:30:27 +01:00 committed by Jakub Jelinek
parent bc1345169a
commit ed56217b79
3 changed files with 24 additions and 0 deletions

View File

@ -1,6 +1,12 @@
2010-11-12 Jakub Jelinek <jakub@redhat.com>
Backport from mainline
2010-11-05 Jakub Jelinek <jakub@redhat.com>
PR middle-end/43690
* gimplify.c (gimplify_asm_expr): If a "m" input is a
{pre,post}{in,de}crement, fail.
2010-11-03 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/46107

View File

@ -1,6 +1,11 @@
2010-11-12 Jakub Jelinek <jakub@redhat.com>
Backport from mainline
2010-11-05 Jakub Jelinek <jakub@redhat.com>
PR middle-end/43690
* c-c++-common/pr43690.c: New test.
2010-11-03 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/46107

View File

@ -0,0 +1,13 @@
/* PR middle-end/43690 */
/* { dg-do compile } */
/* { dg-options "-O2" } */
void
foo (char *x)
{
asm ("" : : "m" (x++)); /* { dg-error "is not directly addressable" } */
asm ("" : : "m" (++x)); /* { dg-error "is not directly addressable" } */
asm ("" : : "m" (x--)); /* { dg-error "is not directly addressable" } */
asm ("" : : "m" (--x)); /* { dg-error "is not directly addressable" } */
asm ("" : : "m" (x + 1)); /* { dg-error "is not directly addressable" } */
}