- do {
- outputForeignStubs c_code h_code ;
- case opt_OutputLanguage of {
- Nothing -> return () -- No -olang=xxx flag; so no-op
- ; Just "asm" -> outputAsm flat_abstractC ncg_uniqs
- ; Just "C" -> outputC flat_abstractC
- ; Just "java" -> outputJava mod_name tycons core_binds
- ; Just foo -> pprPanic "Don't understand output language" (quotes (text foo))
- } }
-
-
-doOutput :: (Handle -> IO ()) -> IO ()
-doOutput io_action
- = (do handle <- openFile opt_OutputFile WriteMode
+ -- Dunno if the above comment is still meaningful now. JRS 001024.
+
+ do { showPass dflags "CodeOutput"
+ ; let filenm = dopt_OutName dflags
+ ; stub_names <- outputForeignStubs dflags c_code h_code
+ ; case dopt_HscLang dflags of
+ HscInterpreted -> return stub_names
+ HscAsm -> outputAsm dflags filenm flat_abstractC
+ >> return stub_names
+ HscC -> outputC dflags filenm flat_abstractC
+ >> return stub_names
+ HscJava -> outputJava dflags filenm mod_name tycons core_binds
+ >> return stub_names
+ }
+
+doOutput :: String -> (Handle -> IO ()) -> IO ()
+doOutput filenm io_action
+ = (do handle <- openFile filenm WriteMode