From patchwork Tue Jul 20 16:18:06 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: Testcase for the recent vt_expand_*loc max depth change From: Jakub Jelinek X-Patchwork-Id: 59340 Message-Id: <20100720161806.GD19172@tyan-ft48-01.lab.bos.redhat.com> To: Richard Guenther Cc: gcc-patches@gcc.gnu.org Date: Tue, 20 Jul 2010 18:18:06 +0200 Hi! Here is a testcase that failed before the var-tracking.c fix from today and succeeds now (tested on x86_64-linux and i686-linux). Ok for trunk? 2010-07-20 Jakub Jelinek * gcc.dg/guality/asm-1.c: New test. Jakub --- gcc/testsuite/gcc.dg/guality/asm-1.c.jj 2010-07-20 16:42:34.000000000 +0200 +++ gcc/testsuite/gcc.dg/guality/asm-1.c 2010-07-20 16:49:09.000000000 +0200 @@ -0,0 +1,25 @@ +/* { dg-do run } */ +/* { dg-options "-g" } */ + +struct A { int x; unsigned short y; char z[64]; }; + +void __attribute__((noinline)) +foo (struct A *p, char *q) +{ + int f = &p->z[p->y] - q; + asm volatile ("nop"); + asm volatile ("nop" : : "g" (f)); /* { dg-final { gdb-test 12 "f" "14" } } */ + asm volatile ("" : : "g" (p), "g" (q)); +} + +int +main () +{ + struct A a; + __builtin_memset (&a, 0, sizeof a); + a.y = 26; + a.x = 12; + asm volatile ("" : : "r" (&a) : "memory"); + foo (&a, &a.z[a.x]); + return 0; +}