From 7d2283b9788fd5a724b41c0902067890059de3ff Mon Sep 17 00:00:00 2001 From: Ben Gamari Date: Mon, 29 Nov 2021 16:12:59 -0500 Subject: compiler: Eliminate accidental loop in GHC.SysTools.BaseDir As noted in #20757, `GHC.SysTools.BaseDir.findToolDir` previously contained an loop, which would be triggered in the case that the search failed. Closes #20757. --- testsuite/tests/ghc-api/T20757.hs | 6 ++++++ testsuite/tests/ghc-api/T20757.stderr | 1 + testsuite/tests/ghc-api/all.T | 7 +++++-- 3 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 testsuite/tests/ghc-api/T20757.hs create mode 100644 testsuite/tests/ghc-api/T20757.stderr (limited to 'testsuite') diff --git a/testsuite/tests/ghc-api/T20757.hs b/testsuite/tests/ghc-api/T20757.hs new file mode 100644 index 0000000000..b6af7815e8 --- /dev/null +++ b/testsuite/tests/ghc-api/T20757.hs @@ -0,0 +1,6 @@ +module Main where + +import GHC.SysTools.BaseDir + +main :: IO () +main = findToolDir False "/" >>= print diff --git a/testsuite/tests/ghc-api/T20757.stderr b/testsuite/tests/ghc-api/T20757.stderr new file mode 100644 index 0000000000..34678db7e3 --- /dev/null +++ b/testsuite/tests/ghc-api/T20757.stderr @@ -0,0 +1 @@ +T20757: could not detect mingw toolchain in the following paths: ["/..//mingw","/..//..//mingw","/..//..//..//mingw"] diff --git a/testsuite/tests/ghc-api/all.T b/testsuite/tests/ghc-api/all.T index 8eecd3c799..4d62a57682 100644 --- a/testsuite/tests/ghc-api/all.T +++ b/testsuite/tests/ghc-api/all.T @@ -30,5 +30,8 @@ test('T18522-dbg-ppr', compile_and_run, ['-package ghc']) test('T19156', extra_run_opts('"' + config.libdir + '"'), - compile_and_run, - ['-package ghc']) + compile_and_run, + ['-package ghc']) +test('T20757', [unless(opsys('mingw32'), skip), exit_code(1)], + compile_and_run, + ['-package ghc']) -- cgit v1.2.1