
#9172: integer overflow in allocate() ------------------------------------+------------------------------------- Reporter: rwbarton | Owner: rwbarton Type: bug | Status: new Priority: normal | Milestone: Component: Runtime System | Version: 7.8.1 Keywords: | Operating System: Unknown/Multiple Architecture: Unknown/Multiple | Type of failure: None/Unknown Difficulty: Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | ------------------------------------+------------------------------------- {{{ Prelude> Data.Array.array (0,2^61 * 1024 `div` 1025) [] array (0,<interactive>: internal error: evacuate: strange closure type 2131681697 (GHC version 7.8.1 for x86_64_unknown_linux) Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug Aborted }}} You can get a variety of other errors too. The array size is chosen so that the total size (in words) passed to `allocate` is just a bit over 2^61^. The computation of `req_blocks` overflows: {{{ W_ req_blocks = (W_)BLOCK_ROUND_UP(n*sizeof(W_)) / BLOCK_SIZE; }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9172 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler