summaryrefslogtreecommitdiff
path: root/testsuite/tests/lib
diff options
context:
space:
mode:
authorSylvain Henry <sylvain@haskus.fr>2021-07-01 16:55:47 +0200
committerMarge Bot <ben+marge-bot@smart-cactus.org>2021-07-02 00:27:42 -0400
commita820f9002d8f75385aaaa141ac3c6f001e8a9874 (patch)
tree05bd6dd982fd40e0a4cd4db683bebed6567e187d /testsuite/tests/lib
parent6ac9ea86c339489e692730e849a88e86da730837 (diff)
downloadhaskell-a820f9002d8f75385aaaa141ac3c6f001e8a9874.tar.gz
Detect underflow in fromIntegral/Int->Natural rule
Fix #20066
Diffstat (limited to 'testsuite/tests/lib')
-rw-r--r--testsuite/tests/lib/integer/T20066.hs12
-rw-r--r--testsuite/tests/lib/integer/T20066.stderr1
-rw-r--r--testsuite/tests/lib/integer/all.T1
3 files changed, 14 insertions, 0 deletions
diff --git a/testsuite/tests/lib/integer/T20066.hs b/testsuite/tests/lib/integer/T20066.hs
new file mode 100644
index 0000000000..9cb67a6520
--- /dev/null
+++ b/testsuite/tests/lib/integer/T20066.hs
@@ -0,0 +1,12 @@
+{-# OPTIONS_GHC -O #-}
+module Main where
+
+import Numeric.Natural
+
+i :: Int
+i = -10
+
+main :: IO ()
+main = let n :: Natural
+ n = fromIntegral i
+ in print n
diff --git a/testsuite/tests/lib/integer/T20066.stderr b/testsuite/tests/lib/integer/T20066.stderr
new file mode 100644
index 0000000000..589cc2a4a8
--- /dev/null
+++ b/testsuite/tests/lib/integer/T20066.stderr
@@ -0,0 +1 @@
+T20066: arithmetic underflow
diff --git a/testsuite/tests/lib/integer/all.T b/testsuite/tests/lib/integer/all.T
index c6710c69a1..4366955e81 100644
--- a/testsuite/tests/lib/integer/all.T
+++ b/testsuite/tests/lib/integer/all.T
@@ -32,3 +32,4 @@ test('integerImportExport', [omit_ways(['ghci'])], compile_and_run, [''])
#test('integerGmpInternals', [], compile_and_run, [''])
test('T19345', [], compile_and_run, [''])
+test('T20066', [exit_code(1)], compile_and_run, [''])