[commit: ghc] ghc-7.4: hs_init(): cope with argc and/or argv being NULL (#6006) (d7c6368)

Paolo Capriotti p.capriotti at gmail.com
Tue May 8 17:50:18 CEST 2012


Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : ghc-7.4

http://hackage.haskell.org/trac/ghc/changeset/d7c6368938c77644da7c8410df4d4fa440aca7e8

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

commit d7c6368938c77644da7c8410df4d4fa440aca7e8
Author: Simon Marlow <marlowsd at gmail.com>
Date:   Fri Apr 27 13:20:56 2012 +0100

    hs_init(): cope with argc and/or argv being NULL (#6006)
    
    MERGED from commit 4ca281829c70331571291ed3dcf813a6028cc904

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

 rts/RtsStartup.c |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/rts/RtsStartup.c b/rts/RtsStartup.c
index c63f85e..52728e1 100644
--- a/rts/RtsStartup.c
+++ b/rts/RtsStartup.c
@@ -141,7 +141,14 @@ hs_init_ghc(int *argc, char **argv[], RtsConfig rts_config)
     defaultsHook();
 
     /* Parse the flags, separating the RTS flags from the programs args */
-    if (argc != NULL && argv != NULL) {
+    if (argc == NULL || argv == NULL) {
+        // Use a default for argc & argv if either is not supplied
+        int my_argc = 1;
+        char *my_argv[] = { "<unknown>", NULL };
+        setFullProgArgv(my_argc,my_argv);
+        setupRtsFlags(&my_argc, my_argv,
+                      rts_config.rts_opts_enabled, rts_config.rts_opts);
+    } else {
 	setFullProgArgv(*argc,*argv);
         setupRtsFlags(argc, *argv,
                       rts_config.rts_opts_enabled, rts_config.rts_opts);





More information about the Cvs-ghc mailing list