When bison is invoked with input from a pipe (e.g. `/dev/stdin`) on a
grammar that contains an error, it will hang indefinitely when trying
to print the caret diagnostic.

Testing with `strace` indicates that the `read` syscall is being
called repeatedly even though it returns 0 (i.e. EOF). Without
investigation, I can only assume this is a failure to check `feof` in
libc?

As a workaround, pass `--feature=none` to disable caret diagnostics.

Tested with bison 3.0.2 (as packaged in Debian Jessie, which is
probably just removing the nonfree documentation), but I've checked
the git log for 3.0.4 and don't see anything that looks like it would
change this.

-o11c

Reply via email to