Description of problem: Attached is an extremely simple program which prints some numbers with formatting of "%d", "%ld", and "%lld" On x86_64, I am getting the expected results but on i386 I am getting garbage when I run it on i386 Fedora 9. see below Version-Release number of selected component (if applicable): Fedora 9 plus (more or less) recent updates How reproducible: yes ------------------------------------------- x86_64: short = 2 bytes int = 4 bytes long = 8 bytes long long 8 bytes pointer = 8 bytes testing d: 12345, 5890123, 6901234, 448989898 testing ld: 12345, 5890123, 6901234, 448989898 testing lld: 12345, 5890123, 6901234, 448989898 ---------------------------------------------------------- On i386: short = 2 bytes int = 4 bytes long = 4 bytes long long 8 bytes pointer = 4 bytes testing d: 12345, 5890123, 6901234, 448989898 testing ld: 12345, 5890123, 6901234, 448989898 testing lld: 25297885654429753, 1928396928151277042, 0, 134514269
Created attachment 311622 [details] error demo c program
And what do you expect? The program is clearly invalid. You are passing vars to ... which don't match the expected types from the format string. POSIX says: "If any argument is not the correct type for the corresponding conversion specification, the behavior is undefined." and that's exactly what happened.