summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2012-06-04 17:59:30 +0100
committerIan Lynagh <igloo@earth.li>2012-06-04 17:59:30 +0100
commit12e5c1e7d8f75f0626950dca72810829cc05ced6 (patch)
tree8ac6fc5d584d8c1c7a0bf5c5360a7400d9cebfcc
parent85c9dd97365e0bc221ac7162166089e8735a32e8 (diff)
downloadhaskell-12e5c1e7d8f75f0626950dca72810829cc05ced6.tar.gz
Add missing file
-rw-r--r--testsuite/tests/codeGen/should_run/setByteArray.hs23
1 files changed, 23 insertions, 0 deletions
diff --git a/testsuite/tests/codeGen/should_run/setByteArray.hs b/testsuite/tests/codeGen/should_run/setByteArray.hs
new file mode 100644
index 0000000000..099376cb4b
--- /dev/null
+++ b/testsuite/tests/codeGen/should_run/setByteArray.hs
@@ -0,0 +1,23 @@
+{-# LANGUAGE BangPatterns, MagicHash, UnboxedTuples #-}
+{-# OPTIONS_GHC -Wall #-}
+
+module Main ( main ) where
+
+import GHC.Base
+
+data BA = BA ByteArray#
+
+-- Checks that setByteArray# works
+main :: IO ()
+main = do BA ba <- IO $ \s0 ->
+ case newByteArray# 8# s0 of
+ (# !s1, !mba #) ->
+ case setByteArray# mba 0# 8# 65# s1 of
+ !s2 ->
+ case setByteArray# mba 1# 6# 67# s2 of
+ !s3 ->
+ case unsafeFreezeByteArray# mba s3 of
+ (# s4, ba #) -> (# s4, BA ba #)
+ let f (I# i) = putStrLn [C# (indexCharArray# ba i)]
+ mapM_ f [0..7]
+