From: Jakub Jelinek Date: Fri, 12 Nov 2010 11:30:27 +0000 (+0100) Subject: backport: re PR middle-end/43690 (Internal compiler error detected by avr-gcc.) X-Git-Tag: releases/gcc-4.4.6~269 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ed56217b797ee7b8bd66be0ba2fdbf371dad1828;p=thirdparty%2Fgcc.git backport: re PR middle-end/43690 (Internal compiler error detected by avr-gcc.) Backport from mainline 2010-11-05 Jakub Jelinek 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bd022e95b4ae..4f2a16a01d4b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,6 +1,12 @@ 2010-11-12 Jakub Jelinek Backport from mainline + 2010-11-05 Jakub Jelinek + + 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 PR tree-optimization/46107 diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index be2b2c0ea0a4..08b992446d26 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,6 +1,11 @@ 2010-11-12 Jakub Jelinek Backport from mainline + 2010-11-05 Jakub Jelinek + + PR middle-end/43690 + * c-c++-common/pr43690.c: New test. + 2010-11-03 Jakub Jelinek PR tree-optimization/46107 diff --git a/gcc/testsuite/c-c++-common/pr43690.c b/gcc/testsuite/c-c++-common/pr43690.c new file mode 100644 index 000000000000..67c6cb0f88cd --- /dev/null +++ b/gcc/testsuite/c-c++-common/pr43690.c @@ -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" } */ +}