Silent gcc 4.2.0 loop optimization bug with -O2
Alexander Kabaev
kabaev at gmail.com
Mon Jun 25 15:22:21 UTC 2007
On 6/25/07, Andrey Chernov <ache at nagual.pp.ru> wrote:
> On Mon, Jun 25, 2007 at 09:59:21AM -0400, Alexander Kabaev wrote:
> > It is trivial to extract a sample for miscompiltations. Just use
> > -save-temps and cut down the code until you have a simple case. If you
> > cannot be bothered to do that, nobody else would either,
>
> Well... Is this small enough?
>
> cc -O2 a.c
> ./a.out
> cc -O a.c
> ./a.out
> ------------------------------------------------------------------
> #include <stdio.h>
>
> const char *szElem[4];
>
> void main()
> {
> float power1[80], total2;
> int i, j;
> char sz[80];
>
> for (i = 1; i <= 12; i++) {
> if (i <= 4) {
> sprintf(sz, " -%9.7s:", szElem[i-1]);
> for (j = 1; j < 12; j += 4)
> total2 += power1[i-1+j];
> } else if (i == 6) {
> } else if (i >= 7 && i <= 9) {
> printf("MUST BE HERE!!! %d\n", i);
> }
> }
> }
> -------------------------------------------------------------------
>
> --
> http://ache.pp.ru/
>
This one is almost perfect.
--
Alexander Kabaev
More information about the freebsd-current
mailing list