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; > } >