[commit: testsuite] master: Add test for -funbox-strict-primitive-fields (b2c5047)

Johan Tibell <[email protected]>
Newsgroups gmane.comp.lang.haskell.cvs.ghc
Message-ID <[email protected]>
Repository : ssh://darcs.haskell.org//srv/darcs/testsuite

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/b2c5047da15f0b6441db7e615a84ce64d0f77890

>---------------------------------------------------------------

commit b2c5047da15f0b6441db7e615a84ce64d0f77890
Author: Johan Tibell <[email protected]>
Date:   Thu Dec 6 11:26:38 2012 -0800

    Add test for -funbox-strict-primitive-fields

>---------------------------------------------------------------

 .../should_compile/UnboxStrictPrimitiveFields.hs   |   28 ++++++++++++++++++++
 tests/typecheck/should_compile/all.T               |    1 +
 2 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/tests/ghc-regress/typecheck/should_compile/UnboxStrictPrimitiveFields.hs b/tests/ghc-regress/typecheck/should_compile/UnboxStrictPrimitiveFields.hs
new file mode 100644
index 0000000..e1549bd
--- /dev/null
+++ b/tests/ghc-regress/typecheck/should_compile/UnboxStrictPrimitiveFields.hs
@@ -0,0 +1,28 @@
+{-# LANGUAGE MagicHash #-}
+{-# OPTIONS_GHC -funbox-strict-primitive-fields #-}
+module Test where
+
+import GHC.Exts
+
+-- The following should be unboxed automatically:
+data A = A Int#
+data B = B !A
+data C = C !()
+data D = D !B
+data E = E !D !D
+
+d = D (B (A 0#))
+e = E d d
+
+data F = F Int#
+newtype G = G F
+data H = H !G !G
+
+h = H (G (F 1#)) (G (F 1#))
+
+-- This should not be unboxed:
+
+data I = I !H !H
+
+i = I h h
+
diff --git a/tests/typecheck/should_compile/all.T b/tests/typecheck/should_compile/all.T
index d350307..cb24574 100644
--- a/tests/typecheck/should_compile/all.T
+++ b/tests/typecheck/should_compile/all.T
@@ -394,3 +394,4 @@ test('holes', normal, compile, ['-fdefer-type-errors'])
 test('holes2', normal, compile, ['-fdefer-type-errors'])
 test('holes3', normal, compile_fail, [''])
 test('T7408', normal, compile, [''])
+test('UnboxStrictPrimitiveFields', normal, compile, [''])
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.