diff --git a/rts/RtsStartup.c b/rts/RtsStartup.c index c63f85ee821dc3bca76c53496b5b3ba6a8b8db24..52728e1d6316b00ae5a73757620333cd2947814e 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);