diff --git a/testsuite/tests/codeGen/should_compile/all.T b/testsuite/tests/codeGen/should_compile/all.T
index 64c20d26047cd47ee379c345115af160ca99c288..17c834f4ba72bc9fb569e64d54cd8f020f0ae508 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 0000000000000000000000000000000000000000..f6a17796a1589640cd0d0dc3eb459d6e2a181f08
--- /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 0000000000000000000000000000000000000000..7806735b194b39b20786955573bff06498c30338
--- /dev/null
+++ b/testsuite/tests/codeGen/should_compile/callee-no-local.stderr
@@ -0,0 +1 @@
+           call "ccall" arg hints:  []  result hints:  [] foo();