powModInteger sometimes ignores sign of argument
Function intToSBigNat# returns a PosBN result when input is < -1, but it should be NegBN instead.
As a consequence functions like powModInteger give incorrect result for small negative numbers:
$ ghci
GHCi, version 8.2.1: http://www.haskell.org/ghc/ :? for help
> :m GHC.Integer.GMP.Internals
> powModInteger (-2) 3 123
8
> (-2)^3 `mod` 123
115
Trac metadata
| Trac field | Value |
|---|---|
| Version | 8.2.1 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Core Libraries |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |