From: Simon Marlow Date: Thu, 16 Dec 2010 11:44:52 +0000 (+0000) Subject: fix #3910 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=890f22ef8eff8dbb5b31fa221dfce65a7b84c202 fix #3910 --- diff --git a/rts/RtsFlags.c b/rts/RtsFlags.c index b0dd42b..067986f 100644 --- a/rts/RtsFlags.c +++ b/rts/RtsFlags.c @@ -454,16 +454,9 @@ setupRtsFlags(int *argc, char *argv[], int *rts_argc, char *rts_argv[]) mode = PGM; } else if (mode == RTS && *rts_argc < MAX_RTS_ARGS-1) { - if ((rtsOptsEnabled == rtsOptsAll) || - strequal(argv[arg], "--info")) { rts_argv[(*rts_argc)++] = argv[arg]; } - else { - errorBelch("Most RTS options are disabled. Link with -rtsopts to enable them."); - stg_exit(EXIT_FAILURE); - } - } - else if (mode == PGM) { + else if (mode == PGM) { argv[(*argc)++] = argv[arg]; } else { @@ -485,7 +478,25 @@ setupRtsFlags(int *argc, char *argv[], int *rts_argc, char *rts_argv[]) error = rtsTrue; } else { - switch(rts_argv[arg][1]) { + + switch(rts_argv[arg][1]) { + case '-': + if (strequal("info", &rts_argv[arg][2])) { + printRtsInfo(); + stg_exit(0); + } + break; + default: + break; + } + + if (rtsOptsEnabled != rtsOptsAll) + { + errorBelch("Most RTS options are disabled. Link with -rtsopts to enable them."); + stg_exit(EXIT_FAILURE); + } + + switch(rts_argv[arg][1]) { /* process: general args, then PROFILING-only ones, then CONCURRENT-only, TICKY-only (same order as defined in