[commit: ghc] master: Add regression test for #10110. (85bf9e4)

git at git.haskell.org git at git.haskell.org
Tue May 19 06:26:36 UTC 2015


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/85bf9e49f5ab4e0681eeda2549dbd4b5faf3ef7f/ghc

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

commit 85bf9e49f5ab4e0681eeda2549dbd4b5faf3ef7f
Author: Peter Trommler <ptrommler at acm.org>
Date:   Tue May 19 01:21:09 2015 -0500

    Add regression test for #10110.
    
    Module C imports a from Module A and b from module B. B does not
    import anything from A. So if ld is configured to drop DT_NEEDED
    tags for libraries it does not depend on no DT_NEEDED tag for the
    temporary shared object containing module A is recorded in the temp
    SO containing module B. This leads to an undefined symbol when
    linking the temp SO for module C.
    
    Fixes #10110.
    
    Reviewed By: austin
    
    Differential Revision: https://phabricator.haskell.org/D895
    
    GHC Trac Issues: #10110


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

85bf9e49f5ab4e0681eeda2549dbd4b5faf3ef7f
 testsuite/tests/ghci/scripts/T10110.script                           | 5 +++++
 .../should_run/tcrun023.stdout => ghci/scripts/T10110.stdout}        | 1 +
 testsuite/tests/ghci/scripts/{T10322A.hs => T10110A.hs}              | 2 +-
 testsuite/tests/ghci/scripts/T10110B.hs                              | 3 +++
 testsuite/tests/ghci/scripts/T10110C.hs                              | 5 +++++
 testsuite/tests/ghci/scripts/all.T                                   | 1 +
 6 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/testsuite/tests/ghci/scripts/T10110.script b/testsuite/tests/ghci/scripts/T10110.script
new file mode 100644
index 0000000..df67c30
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T10110.script
@@ -0,0 +1,5 @@
+:set -fobject-code
+:load T10110A T10110B T10110C
+T10110A.a
+T10110B.b
+T10110C.c
diff --git a/testsuite/tests/typecheck/should_run/tcrun023.stdout b/testsuite/tests/ghci/scripts/T10110.stdout
similarity index 66%
copy from testsuite/tests/typecheck/should_run/tcrun023.stdout
copy to testsuite/tests/ghci/scripts/T10110.stdout
index 2050fde..21cc9a8 100644
--- a/testsuite/tests/typecheck/should_run/tcrun023.stdout
+++ b/testsuite/tests/ghci/scripts/T10110.stdout
@@ -1,2 +1,3 @@
+3
 5
 8
diff --git a/testsuite/tests/ghci/scripts/T10322A.hs b/testsuite/tests/ghci/scripts/T10110A.hs
similarity index 57%
copy from testsuite/tests/ghci/scripts/T10322A.hs
copy to testsuite/tests/ghci/scripts/T10110A.hs
index ba01fd2..8482e7f 100644
--- a/testsuite/tests/ghci/scripts/T10322A.hs
+++ b/testsuite/tests/ghci/scripts/T10110A.hs
@@ -1,4 +1,4 @@
-module T10322A (a) where
+module T10110A (a) where
 {-# NOINLINE a #-}
 a :: Int
 a = 3
diff --git a/testsuite/tests/ghci/scripts/T10110B.hs b/testsuite/tests/ghci/scripts/T10110B.hs
new file mode 100644
index 0000000..65cfc7e
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T10110B.hs
@@ -0,0 +1,3 @@
+module T10110B (b) where
+b :: Int
+b = 5
diff --git a/testsuite/tests/ghci/scripts/T10110C.hs b/testsuite/tests/ghci/scripts/T10110C.hs
new file mode 100644
index 0000000..7069207
--- /dev/null
+++ b/testsuite/tests/ghci/scripts/T10110C.hs
@@ -0,0 +1,5 @@
+module T10110C (c) where
+import T10110A (a)
+import T10110B (b)
+c :: Int
+c = a+b
diff --git a/testsuite/tests/ghci/scripts/all.T b/testsuite/tests/ghci/scripts/all.T
index 85ba5af..e0f2301 100755
--- a/testsuite/tests/ghci/scripts/all.T
+++ b/testsuite/tests/ghci/scripts/all.T
@@ -217,3 +217,4 @@ test('T10408A', normal, run_command,
 test('T10408B', normal, run_command,
     ['$MAKE -s --no-print-directory T10408B'])
 test('T10248', normal, ghci_script, ['T10248.script'])
+test('T10110', normal, ghci_script, ['T10110.script'])



More information about the ghc-commits mailing list