Skip to content

Enable -Wconversion for GHC's C code

Because apparently none of -Wall, -Wextra or -pedantic of GCC imply -Wconversion or its subset -Wsign-conversion: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51625

That means currently you can call a function taking an unsigned int with a signed int without getting any warning.

That is very bad, because of course negative numbers will overflow.

Having -Wconversion would have caught overflow errors such as this one: https://phabricator.haskell.org/D3955#110993

We should probably have it for the C code.

Turning it on everywhere will be quite some work though because it creates lots of complaints such as long long int not being the same as long int (which is technically correct but in practice they are typically the same).

Trac metadata
Trac field Value
Version 8.2.1
Type Task
TypeOfFailure OtherFailure
Priority low
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC bgamari, nh2
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information