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