GCC 3.1 bug? - looks like it miscompiles optimize_mode_switching()

tm tm@mail.kloo.net
Wed May 29 16:03:00 GMT 2002


On Wed, 29 May 2002, tm wrote:

>       int no_mode = num_modes[e];
>       struct bb_info *info = bb_info[j];
>     15f4:       8b 54 15 a4             mov
> 0xffffffa4(%ebp,%edx,1),%edx
>     15f8:       8b 04 85 00 00 00 00    mov    0x0(,%eax,4),%eax
>     15ff:       89 95 70 ff ff ff       mov    %edx,0xffffff70(%ebp)
>     1605:       89 85 74 ff ff ff       mov    %eax,0xffffff74(%ebp)
> 
>                                                     ^ info allocated at
>                                                       0xffffff74(%ebp)

Ooops

> ...
>           info[bb->index].computing = last_mode;
>     16e2:       8b 55 98                mov    0xffffff98(%ebp),%edx
>     16e5:       8b b5 6c ff ff ff       mov    0xffffff6c(%ebp),%esi
>     16eb:       8b 8d 70 ff ff ff       mov    0xffffff70(%ebp),%ecx
> 
>                                                ^ info referenced at 
>                                                  0xffffff70(%ebp)
>                                                  looks wrong!

This is correct. My mistake - sorry about the false alarm. 

Will investigate further.

Toshi




More information about the Gcc-bugs mailing list