summaryrefslogtreecommitdiff
path: root/testsuite
diff options
context:
space:
mode:
authorAlexis King <lexi.lambda@gmail.com>2023-01-18 17:00:54 -0600
committerMarge Bot <ben+marge-bot@smart-cactus.org>2023-02-20 15:27:17 -0500
commit26243de1e3716886161d79918af9359f7639314b (patch)
treec106f6bf05cbd460d23a7bdc00ba7f42636cf7a2 /testsuite
parent2592ab6924ee34ed0f0d82a7cb0aed393d93bb14 (diff)
downloadhaskell-26243de1e3716886161d79918af9359f7639314b.tar.gz
Handle top-level Addr# literals in the bytecode compiler
Fixes #22376.
Diffstat (limited to 'testsuite')
-rw-r--r--testsuite/tests/bytecode/T22376/A.hs6
-rw-r--r--testsuite/tests/bytecode/T22376/B.hs4
-rw-r--r--testsuite/tests/bytecode/T22376/T22376.hs6
-rw-r--r--testsuite/tests/bytecode/T22376/T22376.stdout1
-rw-r--r--testsuite/tests/bytecode/T22376/all.T2
5 files changed, 19 insertions, 0 deletions
diff --git a/testsuite/tests/bytecode/T22376/A.hs b/testsuite/tests/bytecode/T22376/A.hs
new file mode 100644
index 0000000000..670c3fd6a4
--- /dev/null
+++ b/testsuite/tests/bytecode/T22376/A.hs
@@ -0,0 +1,6 @@
+module A where
+import B
+
+foo :: String
+foo = f "bc"
+{-# NOINLINE foo #-}
diff --git a/testsuite/tests/bytecode/T22376/B.hs b/testsuite/tests/bytecode/T22376/B.hs
new file mode 100644
index 0000000000..8bfb7bfd32
--- /dev/null
+++ b/testsuite/tests/bytecode/T22376/B.hs
@@ -0,0 +1,4 @@
+module B where
+
+f :: String -> String
+f = ("a" ++)
diff --git a/testsuite/tests/bytecode/T22376/T22376.hs b/testsuite/tests/bytecode/T22376/T22376.hs
new file mode 100644
index 0000000000..b97640a00b
--- /dev/null
+++ b/testsuite/tests/bytecode/T22376/T22376.hs
@@ -0,0 +1,6 @@
+{-# LANGUAGE TemplateHaskell #-}
+import Language.Haskell.TH.Syntax (lift)
+import A
+
+main :: IO ()
+main = putStrLn $(lift foo)
diff --git a/testsuite/tests/bytecode/T22376/T22376.stdout b/testsuite/tests/bytecode/T22376/T22376.stdout
new file mode 100644
index 0000000000..8baef1b4ab
--- /dev/null
+++ b/testsuite/tests/bytecode/T22376/T22376.stdout
@@ -0,0 +1 @@
+abc
diff --git a/testsuite/tests/bytecode/T22376/all.T b/testsuite/tests/bytecode/T22376/all.T
new file mode 100644
index 0000000000..0b15e93e6d
--- /dev/null
+++ b/testsuite/tests/bytecode/T22376/all.T
@@ -0,0 +1,2 @@
+test('T22376', [req_interp, extra_files(['A.hs', 'B.hs'])], multimod_compile_and_run,
+ ['T22376', '-O1 -fwrite-if-simplified-core -fbyte-code-and-object-code -fprefer-byte-code'])