Using the MinGW packaged version of GCC 3.4.2 on WinXP SP2, compiling and running the following code displays the value of b as zero, regardless of its actual value.
There are similar (and presumably related) issues with mixing anything at all With %llu/%lld formats in all fooprintf() code. I'm guessing it's a buffer overflow Thing. int main() { long long a, b; a = 0x1234; b = 0x5678; printf ( "a = %lld, b = %lld\n", a, b ); exit(0); } -- Summary: long longs incorrectly handled by fooprintf() Product: gcc Version: 3.4.2 Status: UNCONFIRMED Severity: normal Priority: P2 Component: c AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: that_james at hotmail dot com CC: gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=22349