Add missing files
authorSimon Marlow <marlowsd@gmail.com>
Tue, 23 Feb 2016 09:05:37 +0000 (09:05 +0000)
committerSimon Marlow <marlowsd@gmail.com>
Tue, 23 Feb 2016 09:05:37 +0000 (09:05 +0000)
testsuite/tests/profiling/should_run/T5654b-O0.hs [new file with mode: 0644]
testsuite/tests/profiling/should_run/T5654b-O1.hs [new file with mode: 0644]

diff --git a/testsuite/tests/profiling/should_run/T5654b-O0.hs b/testsuite/tests/profiling/should_run/T5654b-O0.hs
new file mode 100644 (file)
index 0000000..2a00abf
--- /dev/null
@@ -0,0 +1,22 @@
+-- A variant of T5654 where instead of evaluating directly to a
+-- funciton, f evaluates to a new PAP.  This exposes a slightly
+-- different but related bug, where when we create a new PAP by
+-- applying arguments to an existing PAP, we should take into account
+-- the stack on the original PAP.
+
+-- The stack we should see is main->f->g->h, but if we get this wrong
+-- (GHC 7.10) then the stack is main->f->h.
+
+{-# NOINLINE f #-}
+f :: Int -> Int
+f = g 3
+
+{-# NOINLINE g #-}
+g :: Int -> Int -> Int
+g = h 4
+
+{-# NOINLINE h #-}
+h :: Int -> Int -> Int -> Int
+h x y z = x + y + z
+
+main =  return $! f 5
diff --git a/testsuite/tests/profiling/should_run/T5654b-O1.hs b/testsuite/tests/profiling/should_run/T5654b-O1.hs
new file mode 100644 (file)
index 0000000..2a00abf
--- /dev/null
@@ -0,0 +1,22 @@
+-- A variant of T5654 where instead of evaluating directly to a
+-- funciton, f evaluates to a new PAP.  This exposes a slightly
+-- different but related bug, where when we create a new PAP by
+-- applying arguments to an existing PAP, we should take into account
+-- the stack on the original PAP.
+
+-- The stack we should see is main->f->g->h, but if we get this wrong
+-- (GHC 7.10) then the stack is main->f->h.
+
+{-# NOINLINE f #-}
+f :: Int -> Int
+f = g 3
+
+{-# NOINLINE g #-}
+g :: Int -> Int -> Int
+g = h 4
+
+{-# NOINLINE h #-}
+h :: Int -> Int -> Int -> Int
+h x y z = x + y + z
+
+main =  return $! f 5