StgCmmPrim: add note to stop using fixed size signed types for sizes
authorJohan Tibell <johan.tibell@gmail.com>
Tue, 12 Aug 2014 18:28:14 +0000 (20:28 +0200)
committerJohan Tibell <johan.tibell@gmail.com>
Tue, 12 Aug 2014 20:13:21 +0000 (22:13 +0200)
We use fixed size signed types to e.g. represent array sizes. This
means that the size can overflow.

compiler/codeGen/StgCmmPrim.hs

index 2fa1b85..77739fe 100644 (file)
@@ -137,6 +137,11 @@ cgOpApp (StgPrimCallOp primcall) args _res_ty
 asUnsigned :: Width -> Integer -> Integer
 asUnsigned w n = n .&. (bit (widthInBits w) - 1)
 
+-- TODO: Several primop implementations (e.g. 'doNewByteArrayOp') use
+--     ByteOff (or some other fixed width signed type) to represent
+--     array sizes or indices. This means that these will overflow for
+--     large enough sizes.
+
 -- | Decide whether an out-of-line primop should be replaced by an
 -- inline implementation. This might happen e.g. if there's enough
 -- static information, such as statically know arguments, to emit a