summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCheng Shao <cheng.shao@tweag.io>2021-10-30 00:49:24 +0000
committerCheng Shao <astrohavoc@gmail.com>2022-07-25 20:41:55 +0000
commit4a7256a75af2fc0318bef771a06949ffb3939d5a (patch)
tree28e0839a55b62de898a0e349a6d7f85cdc4016e5
parent61faff40394c67956f53064b357e5b870c4de6c9 (diff)
downloadhaskell-4a7256a75af2fc0318bef771a06949ffb3939d5a.tar.gz
Add location to cc phase
-rw-r--r--compiler/GHC/Driver/Pipeline.hs2
-rw-r--r--compiler/GHC/Driver/Pipeline/Execute.hs8
-rw-r--r--compiler/GHC/Driver/Pipeline/Phases.hs2
3 files changed, 6 insertions, 6 deletions
diff --git a/compiler/GHC/Driver/Pipeline.hs b/compiler/GHC/Driver/Pipeline.hs
index 0149bf644f..da7fd0b1f2 100644
--- a/compiler/GHC/Driver/Pipeline.hs
+++ b/compiler/GHC/Driver/Pipeline.hs
@@ -774,7 +774,7 @@ asPipeline use_cpp pipe_env hsc_env location input_fn =
viaCPipeline :: P m => Phase -> PipeEnv -> HscEnv -> Maybe ModLocation -> FilePath -> m (Maybe FilePath)
viaCPipeline c_phase pipe_env hsc_env location input_fn = do
- out_fn <- use (T_Cc c_phase pipe_env hsc_env input_fn)
+ out_fn <- use (T_Cc c_phase pipe_env hsc_env location input_fn)
case stop_phase pipe_env of
StopC -> return Nothing
_ -> asPipeline False pipe_env hsc_env location out_fn
diff --git a/compiler/GHC/Driver/Pipeline/Execute.hs b/compiler/GHC/Driver/Pipeline/Execute.hs
index 7390735f28..6676747f21 100644
--- a/compiler/GHC/Driver/Pipeline/Execute.hs
+++ b/compiler/GHC/Driver/Pipeline/Execute.hs
@@ -134,7 +134,7 @@ runPhase (T_Cmm pipe_env hsc_env input_fn) = do
let foreign_os = maybeToList stub_o
return (foreign_os, output_fn)
-runPhase (T_Cc phase pipe_env hsc_env input_fn) = runCcPhase phase pipe_env hsc_env input_fn
+runPhase (T_Cc phase pipe_env hsc_env location input_fn) = runCcPhase phase pipe_env hsc_env location input_fn
runPhase (T_As cpp pipe_env hsc_env location input_fn) = do
runAsPhase cpp pipe_env hsc_env location input_fn
runPhase (T_LlvmOpt pipe_env hsc_env input_fn) =
@@ -363,8 +363,8 @@ applyAssemblerProg DarwinClangAssemblerProg logger dflags platform =
-runCcPhase :: Phase -> PipeEnv -> HscEnv -> FilePath -> IO FilePath
-runCcPhase cc_phase pipe_env hsc_env input_fn = do
+runCcPhase :: Phase -> PipeEnv -> HscEnv -> Maybe ModLocation -> FilePath -> IO FilePath
+runCcPhase cc_phase pipe_env hsc_env location input_fn = do
let dflags = hsc_dflags hsc_env
let logger = hsc_logger hsc_env
let unit_env = hsc_unit_env hsc_env
@@ -429,7 +429,7 @@ runCcPhase cc_phase pipe_env hsc_env input_fn = do
-- Decide next phase
let next_phase = As False
- output_fn <- phaseOutputFilenameNew next_phase pipe_env hsc_env Nothing
+ output_fn <- phaseOutputFilenameNew next_phase pipe_env hsc_env location
let
more_hcc_opts =
diff --git a/compiler/GHC/Driver/Pipeline/Phases.hs b/compiler/GHC/Driver/Pipeline/Phases.hs
index aa11801b45..8868016f4d 100644
--- a/compiler/GHC/Driver/Pipeline/Phases.hs
+++ b/compiler/GHC/Driver/Pipeline/Phases.hs
@@ -42,7 +42,7 @@ data TPhase res where
T_HscBackend :: PipeEnv -> HscEnv -> ModuleName -> HscSource -> ModLocation -> HscBackendAction -> TPhase ([FilePath], ModIface, Maybe Linkable, FilePath)
T_CmmCpp :: PipeEnv -> HscEnv -> FilePath -> TPhase FilePath
T_Cmm :: PipeEnv -> HscEnv -> FilePath -> TPhase ([FilePath], FilePath)
- T_Cc :: Phase -> PipeEnv -> HscEnv -> FilePath -> TPhase FilePath
+ T_Cc :: Phase -> PipeEnv -> HscEnv -> Maybe ModLocation -> FilePath -> TPhase FilePath
T_As :: Bool -> PipeEnv -> HscEnv -> Maybe ModLocation -> FilePath -> TPhase FilePath
T_LlvmOpt :: PipeEnv -> HscEnv -> FilePath -> TPhase FilePath
T_LlvmLlc :: PipeEnv -> HscEnv -> FilePath -> TPhase FilePath