[GHC] #10571: GHC 7.10.1 segfaults when shiftL-ing Integers by negative amounts

GHC ghc-devs at haskell.org
Sat Oct 10 13:39:33 UTC 2015


#10571: GHC 7.10.1 segfaults when shiftL-ing Integers by negative amounts
----------------------------------+--------------------------------------
        Reporter:  anders_        |                Owner:
            Type:  bug            |               Status:  closed
        Priority:  high           |            Milestone:
       Component:  Compiler       |              Version:  7.10.1
      Resolution:  fixed          |             Keywords:
Operating System:  MacOS X        |         Architecture:  x86_64 (amd64)
 Type of failure:  Runtime crash  |            Test Case:
      Blocked By:                 |             Blocking:
 Related Tickets:                 |  Differential Rev(s):
----------------------------------+--------------------------------------

Comment (by Ben Gamari <ben@…>):

 In [changeset:"182c44da50db028a432a81789048c87922bd30f4/ghc"
 182c44da/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="182c44da50db028a432a81789048c87922bd30f4"
 Keep `shift{L,R}` on `Integer` from segfaulting

 This can happen because the underlying primitive operations in
 `integer-gmp` don't support negative shift-amounts, and since
 `integer-gmp` can't throw proper exceptions and just provides a
 low-level API, it simply segfaults instead...

 This patch simply removes the `shift{L,R}` method definitions (and
 defines `unsafeShift{L,R}` instead) whose default-impls fallback on
 using `shift` which properly handles negative shift arguments.

 This addresses #10571

 Test Plan: harbormaster can do it

 Reviewers: hvr, austin, rwbarton

 Subscribers: rwbarton, thomie, bgamari

 Differential Revision: https://phabricator.haskell.org/D1018

 GHC Trac Issues: #10571
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10571#comment:10>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list