Allowing an input filename on the command line makes debuggers happy. (Then we
authorDavid Given <dg@cowlark.com>
Wed, 5 Oct 2016 21:24:29 +0000 (23:24 +0200)
committerDavid Given <dg@cowlark.com>
Wed, 5 Oct 2016 21:24:29 +0000 (23:24 +0200)
don't need to redirect stdin.)

mach/proto/mcg/main.c

index eca8a14..9c863b8 100644 (file)
@@ -32,6 +32,8 @@ static bool find_procedures_cb(struct symbol* symbol, void* user)
 
 int main(int argc, char* const argv[])
 {
+    const char* inputfile = NULL;
+
     program_name = argv[0];
 
     opterr = 1;
@@ -48,14 +50,17 @@ int main(int argc, char* const argv[])
                 break;
 
             case 1:
-                fatal("unexpected argument '%s'", optarg);
+                if (inputfile)
+                    fatal("unexpected argument '%s'", optarg);
+                inputfile = optarg;
         }
     }
 
     symbol_init();
 
-       if (!EM_open(NULL))
-               fatal("couldn't open stdin: %s", EM_error);
+       if (!EM_open(inputfile))
+               fatal("couldn't open '%s': %s",
+            inputfile ? inputfile : "<stdin>", EM_error);
        
     /* Reads in the EM, outputs the data sections, parses any code and
      * generates IR trees. */