#9416: newArray# incorrectly inlines big arrays (overflow1.hs SIGSEGVS on ./validate --slow) -------------------------------------+------------------------------------- Reporter: slyfox | Owner: tibbe Type: bug | Status: patch Priority: normal | Milestone: Component: Compiler | Version: 7.8.3 Resolution: | Keywords: Operating System: | Architecture: Unknown/Multiple Unknown/Multiple | Difficulty: Easy (less than 1 Type of failure: | hour) None/Unknown | Blocked By: Test Case: | Related Tickets: Blocking: | Differential Revisions: D128 | -------------------------------------+------------------------------------- Comment (by Johan Tibell <johan.tibell@…>): In [changeset:"6f862dfae20afdcd671133f3534b1bf5c25bbd9b/ghc"]: {{{ #!CommitTicketReference repository="ghc" revision="6f862dfae20afdcd671133f3534b1bf5c25bbd9b" shouldInlinePrimOp: Fix Int overflow There were two overflow issues in shouldInlinePrimOp. The first one is due to a negative CmmInt literal being created if the array size was given as larger than 2^63-1 (on a 64-bit platform.) This meant that large array sizes could compare as being smaller than maxInlineAllocSize. The second issue is that we casted the Integer to an Int in the comparison, which again meant that large array sizes could compare as being smaller than maxInlineAllocSize. The attempt to allocate a large array inline then caused a segfault. Fixes #9416. }}} -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9416#comment:8> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler