From: SourceForge.net <no...@so...> - 2010-09-17 08:23:57
|
Bugs item #2935162, was opened at 2010-01-19 20:17 Message generated for change (Comment added) made by maartenbrock You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=2935162&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Frieder Ferlemann (frief) Assigned to: Nobody/Anonymous (nobody) Summary: LONG_MIN as float initializer looses sign Initial Comment: using LONG_MIN as a float initializer looses sign without a warning (SDCC #5614) ----8<--------------------------------------------------------- #include <limits.h> const float a[] = { LONG_MAX, // .byte #0x00,#0x00,#0x00,#0x4F ; 2.147484e+09 LONG_MIN, // .byte #0x00,#0x00,#0x00,#0x4F ; 2.147484e+09 ? 12345678901, // .byte #0x00,#0x00,#0x80,#0x4F ; 4.294967e+09 -12345678901, // .byte #0x00,#0x00,#0x80,#0x3F ; 1.000000e+00 ? 12345678901L, // .byte #0x00,#0x00,#0x00,#0x4F ; 2.147484e+09 -12345678901L, // .byte #0x00,#0x00,#0x00,#0xCF ; -2.147484e+09 2147483647L, // .byte #0x00,#0x00,#0x00,#0x4F ; 2.147484e+09 -2147483648L, // .byte #0x00,#0x00,#0x00,#0xCF ; -2.147484e+09 0.0, // .byte #0x00,#0x00,#0x00,#0x00 ; 0.000000e+00 -0.0, // .byte #0x00,#0x00,#0x00,#0x80 ; -0.000000e+00 ULONG_MAX, // .byte #0x00,#0x00,#0x80,#0x4F ; 4.294967e+09 1.0 // .byte #0x00,#0x00,#0x80,#0x3F ; 1.000000e+00 }; ---->8--------------------------------------------------------- while it warns about line 8 and 9, it is does not warn about line 6 > sdcc -c test.c test.c:8: warning 184: integer constant '12345678901' out of range, truncated to 4294967295. test.c:9: warning 184: integer constant '12345678901' out of range, truncated to 4294967295. test.c:11: warning 184: integer constant '12345678901L' out of range, truncated to 2147483647. test.c:12: warning 184: integer constant '12345678901L' out of range, truncated to 2147483647. test.c:15: warning 184: integer constant '2147483648L' out of range, truncated to 2147483647. ---------------------------------------------------------------------- >Comment By: Maarten Brock (maartenbrock) Date: 2010-09-17 10:23 Message: This bug is present in SDCC 2.9.0 and 2.9.7 #5973. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=2935162&group_id=599 |