Commit 4e448ebd authored by simonmar's avatar simonmar
Browse files

[project @ 2005-06-23 09:17:30 by simonmar]

Add a 'U' suffix to all integer literals to make them explicitly
unsigned.  This avoids some warnings from gcc, but I don't think it
fixes any actual bugs (I could be wrong, though).
parent 0fd5c83d
......@@ -992,11 +992,16 @@ pprHexVal w rep
| otherwise = ptext SLIT("0x") <> go w <> repsuffix rep
where
-- type suffix for literals:
-- on 32-bit platforms, add "LL" to 64-bit literals
repsuffix I64 | wORD_SIZE == 4 = ptext SLIT("LL")
-- Integer literals are unsigned in Cmm/C. We explicitly cast to
-- signed values for doing signed operations, but at all other
-- times values are unsigned. This also helps eliminate occasional
-- warnings about integer overflow from gcc.
-- on 32-bit platforms, add "ULL" to 64-bit literals
repsuffix I64 | wORD_SIZE == 4 = ptext SLIT("ULL")
-- on 64-bit platforms with 32-bit int, add "L" to 64-bit literals
repsuffix I64 | cINT_SIZE == 4 = ptext SLIT("L")
repsuffix _ = empty
repsuffix I64 | cINT_SIZE == 4 = ptext SLIT("UL")
repsuffix _ = char 'U'
go 0 = empty
go w' = go q <> dig
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment