------- Comment #1 from jakub at gcc dot gnu dot org 2010-02-23 13:49 ------- Created an attachment (id=19940) --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=19940&action=view) gcc45-pr43150.patch
Patch with a testcase. Before the patch the testcase fails: unix/-m32 FAIL: gcc.dg/guality/vla-1.c -O0 line 17 sizeof (a) == 6 FAIL: gcc.dg/guality/vla-1.c -O0 line 24 sizeof (a) == 17 * sizeof (short) FAIL: gcc.dg/guality/vla-1.c -O1 line 17 sizeof (a) == 6 FAIL: gcc.dg/guality/vla-1.c -O1 line 24 sizeof (a) == 17 * sizeof (short) FAIL: gcc.dg/guality/vla-1.c -O2 line 17 sizeof (a) == 6 FAIL: gcc.dg/guality/vla-1.c -O2 line 24 sizeof (a) == 17 * sizeof (short) FAIL: gcc.dg/guality/vla-1.c -O3 -fomit-frame-pointer line 17 sizeof (a) == 6 FAIL: gcc.dg/guality/vla-1.c -O3 -fomit-frame-pointer line 24 sizeof (a) == 17 * sizeof (short) FAIL: gcc.dg/guality/vla-1.c -O3 -g line 17 sizeof (a) == 6 FAIL: gcc.dg/guality/vla-1.c -O3 -g line 24 sizeof (a) == 17 * sizeof (short) FAIL: gcc.dg/guality/vla-1.c -Os line 17 sizeof (a) == 6 FAIL: gcc.dg/guality/vla-1.c -Os line 24 sizeof (a) == 17 * sizeof (short) unix/-m64 FAIL: gcc.dg/guality/vla-1.c -O0 line 17 sizeof (a) == 6 FAIL: gcc.dg/guality/vla-1.c -O0 line 24 sizeof (a) == 17 * sizeof (short) FAIL: gcc.dg/guality/vla-1.c -O1 line 17 sizeof (a) == 6 FAIL: gcc.dg/guality/vla-1.c -O1 line 24 sizeof (a) == 17 * sizeof (short) FAIL: gcc.dg/guality/vla-1.c -O2 line 17 i == 5 FAIL: gcc.dg/guality/vla-1.c -O2 line 17 sizeof (a) == 6 FAIL: gcc.dg/guality/vla-1.c -O2 line 24 sizeof (a) == 17 * sizeof (short) FAIL: gcc.dg/guality/vla-1.c -O3 -fomit-frame-pointer line 17 i == 5 FAIL: gcc.dg/guality/vla-1.c -O3 -fomit-frame-pointer line 17 sizeof (a) == 6 FAIL: gcc.dg/guality/vla-1.c -O3 -fomit-frame-pointer line 24 sizeof (a) == 17 * sizeof (short) FAIL: gcc.dg/guality/vla-1.c -O3 -g line 17 i == 5 FAIL: gcc.dg/guality/vla-1.c -O3 -g line 17 sizeof (a) == 6 FAIL: gcc.dg/guality/vla-1.c -O3 -g line 24 sizeof (a) == 17 * sizeof (short) FAIL: gcc.dg/guality/vla-1.c -Os line 17 i == 5 FAIL: gcc.dg/guality/vla-1.c -Os line 17 sizeof (a) == 6 FAIL: gcc.dg/guality/vla-1.c -Os line 24 sizeof (a) == 17 * sizeof (short) (-O0 failures are PR42800). With this patch, PR43077 and PR42800 fix in: unix/-m32 FAIL: gcc.dg/guality/vla-1.c -O1 line 17 sizeof (a) == 6 FAIL: gcc.dg/guality/vla-1.c -O2 line 17 sizeof (a) == 6 FAIL: gcc.dg/guality/vla-1.c -O3 -fomit-frame-pointer line 17 sizeof (a) == 6 FAIL: gcc.dg/guality/vla-1.c -O3 -g line 17 sizeof (a) == 6 FAIL: gcc.dg/guality/vla-1.c -Os line 17 sizeof (a) == 6 unix/-m64 FAIL: gcc.dg/guality/vla-1.c -O2 line 17 i == 5 FAIL: gcc.dg/guality/vla-1.c -O2 line 17 sizeof (a) == 6 FAIL: gcc.dg/guality/vla-1.c -O2 line 24 sizeof (a) == 17 * sizeof (short) FAIL: gcc.dg/guality/vla-1.c -O3 -fomit-frame-pointer line 17 i == 5 FAIL: gcc.dg/guality/vla-1.c -O3 -fomit-frame-pointer line 17 sizeof (a) == 6 FAIL: gcc.dg/guality/vla-1.c -O3 -fomit-frame-pointer line 24 sizeof (a) == 17 * sizeof (short) FAIL: gcc.dg/guality/vla-1.c -O3 -g line 17 i == 5 FAIL: gcc.dg/guality/vla-1.c -O3 -g line 17 sizeof (a) == 6 FAIL: gcc.dg/guality/vla-1.c -O3 -g line 24 sizeof (a) == 17 * sizeof (short) FAIL: gcc.dg/guality/vla-1.c -Os line 17 i == 5 FAIL: gcc.dg/guality/vla-1.c -Os line 17 sizeof (a) == 6 FAIL: gcc.dg/guality/vla-1.c -Os line 24 sizeof (a) == 17 * sizeof (short) -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43150