https://gcc.gnu.org/bugzilla/show_bug.cgi?id=120513

--- Comment #33 from Greg Chandler <chandleg at wizardsworks dot org> ---

  for (n_commands = 1, i = 0; argbuf.iterate (i, &arg); i++)
    fprintf (stdout, "%d: %s\n", i, argbuf[0]);

With the following inside the following if: if (arg && strcmp (arg, "|") == 0)

  fprintf (stdout, "%d: %s#%s\n", foobar, commands[n_commands].prog,
commands[n_commands].argv);


Yields:
root@bigbang:/tmp# mount /dev/sdc1 /mnt ; /mnt/gcc 1.c ; umount /mnt
0: cc1
1: cc1
2: cc1
3: cc1
4: cc1
5: cc1
6: cc1
7: cc1
8: cc1
9: cc1
10: cc1
11: cc1
12: cc1
13: cc1
14: cc1
gcc: fatal error: cannot execute1 'cc1': posix_spawnp: No such file or
directory
compilation terminated.


So what we see is 15 iterations of the loop: for (n_commands = 1, i = 0;
argbuf.iterate (i, &arg); i++) 

But Not a single match on the if statement looking for a pipe, which I guess is
a good thing at the moment.

I numbered all the "cannnot execute" errors as well, to help trace that down,
and this is exiting from the same function (execute):

      if (errmsg != NULL)
        {
          errno = err;
          fatal_error (input_location,
                       err ? G_("cannot execute1 %qs: %s: %m")
                       : G_("cannot execute2 %qs: %s"),
                       string, errmsg);
        }

So I'm going to start working backwards from here, and see what that yields.

Reply via email to