GCC has problems with 64-bit multiplication

Graham Stott graham.stott@btinternet.com
Thu Feb 8 15:03:00 GMT 2007


All,

Not a bug in GCC the result is correct as you've only asked for a 32-bit
multiply.

--- Hans Petter Selasky <hselasky@c2i.net> wrote:

> Test program:
> 
> #include <stdio.h>
> #include <sys/types.h>      
> 
> int main() {
> 
>         int32_t a = 0x40000000;
>         int16_t b = 0x4000;
>         int64_t c = a * b;
                      ^^^^^ this is a 32-bit multiply with the result widened
to 64-bit,
>         printf("0x%016llx\n", c);
> 
>         return 0;
> }
> 



More information about the Gcc-bugs mailing list