Anonymous | Login | Signup for a new account | 11-10-2008 10:52 PST |
Main | My View | View Issues | Change Log | Docs |
Viewing Issue Simple Details [ Jump to Notes ] | [ View Advanced ] [ Issue History ] [ Print ] | ||||||||
ID | Category | Severity | Reproducibility | Date Submitted | Last Update | ||||
0000539 | [uClibc] Stdio | minor | always | 11-10-05 11:11 | 06-02-08 20:45 | ||||
Reporter | dg6nee | View Status | public | ||||||
Assigned To | mjn3 | ||||||||
Priority | normal | Resolution | fixed | ||||||
Status | closed | Product Version | 0.9.28 | ||||||
Summary | 0000539: printf & leading zeroes | ||||||||
Description |
There is a bug when you use a compiler that packs structures/bitfields and allows entries with less than 32 bit. See include/printf.h, there is a bitfield that has only 12 bits. Our gcc packs this into a 16 bit unsigned short. On the other hand the same struct printf_info uses an unsigned int (32 bit!) for the same data -> this does of course not work. I attached a patch that fixes this by adding the missing padding bits. |
||||||||
Additional Information |
example for reproducing the error on a little endian machine / wchar mode: wchar buffer[64]; double value = 123456800.0; snwprintf(buffer, 64, "%+022.10lf"L, value); result was : " 123456800.0000000000 expected : "00123456800.0000000000 |
||||||||
Attached Files | uclibc-0.9.28_include_printf.h.diff [^] (506 bytes) 11-10-05 11:11 | ||||||||
|
Copyright © 2000 - 2006 Mantis Group |