All, Not a bug in GCC the result is correct as you've only asked for a 32-bit multiply.
--- Hans Petter Selasky <[EMAIL PROTECTED]> 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;
> }
>
