From 8aebac9b4e3af2b8120a3635a002c85103523772 Mon Sep 17 00:00:00 2001
From: Cheng Shao <terrorjack@type.dance>
Date: Thu, 23 May 2024 18:34:14 +0000
Subject: [PATCH] testsuite: add callee-no-local regression test

(cherry picked from commit 986df1abe23aaad4142721fbdb7dd3791cf153ad)
---
 testsuite/tests/codeGen/should_compile/all.T              | 8 ++++++++
 testsuite/tests/codeGen/should_compile/callee-no-local.hs | 3 +++
 .../tests/codeGen/should_compile/callee-no-local.stderr   | 1 +
 3 files changed, 12 insertions(+)
 create mode 100644 testsuite/tests/codeGen/should_compile/callee-no-local.hs
 create mode 100644 testsuite/tests/codeGen/should_compile/callee-no-local.stderr

diff --git a/testsuite/tests/codeGen/should_compile/all.T b/testsuite/tests/codeGen/should_compile/all.T
index 64c20d26047..17c834f4ba7 100644
--- a/testsuite/tests/codeGen/should_compile/all.T
+++ b/testsuite/tests/codeGen/should_compile/all.T
@@ -130,3 +130,11 @@ test('T21710a', [ unless(tables_next_to_code(), skip) , when(wordsize(32), skip)
 test('T23002', normal, compile, ['-fregs-graph'])
 test('T24264', [req_cmm, grep_errmsg(r'(.*\().*(\) returns to)', [1,2])],
      compile, ['-O -ddump-cmm-from-stg -dno-typeable-binds'])
+
+test('callee-no-local', [
+    req_cmm, unless(arch('wasm32') or unregisterised(), skip),
+    grep_errmsg('ccall')
+  ],
+  compile,
+  ['-ddump-cmm-raw']
+)
diff --git a/testsuite/tests/codeGen/should_compile/callee-no-local.hs b/testsuite/tests/codeGen/should_compile/callee-no-local.hs
new file mode 100644
index 00000000000..f6a17796a15
--- /dev/null
+++ b/testsuite/tests/codeGen/should_compile/callee-no-local.hs
@@ -0,0 +1,3 @@
+module Test where
+
+foreign import ccall unsafe "foo" c_foo :: IO ()
diff --git a/testsuite/tests/codeGen/should_compile/callee-no-local.stderr b/testsuite/tests/codeGen/should_compile/callee-no-local.stderr
new file mode 100644
index 00000000000..7806735b194
--- /dev/null
+++ b/testsuite/tests/codeGen/should_compile/callee-no-local.stderr
@@ -0,0 +1 @@
+           call "ccall" arg hints:  []  result hints:  [] foo();
-- 
GitLab