summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--bin/sh/parser.c3
-rw-r--r--tools/regression/bin/sh/parser/only-redir2.02
-rw-r--r--tools/regression/bin/sh/parser/only-redir3.02
-rw-r--r--tools/regression/bin/sh/parser/only-redir4.02
4 files changed, 9 insertions, 0 deletions
diff --git a/bin/sh/parser.c b/bin/sh/parser.c
index f079c69c..ec15f58 100644
--- a/bin/sh/parser.c
+++ b/bin/sh/parser.c
@@ -577,6 +577,9 @@ TRACE(("expecting DO got %s %s\n", tokname[got], got == TWORD ? wordtext : ""));
case TSEMI:
case TAND:
case TOR:
+ case TPIPE:
+ case TENDCASE:
+ case TFALLTHRU:
/*
* An empty command before a ; doesn't make much sense, and
* should certainly be disallowed in the case of `if ;'.
diff --git a/tools/regression/bin/sh/parser/only-redir2.0 b/tools/regression/bin/sh/parser/only-redir2.0
new file mode 100644
index 0000000..b9e9501
--- /dev/null
+++ b/tools/regression/bin/sh/parser/only-redir2.0
@@ -0,0 +1,2 @@
+# $FreeBSD$
+</dev/null | :
diff --git a/tools/regression/bin/sh/parser/only-redir3.0 b/tools/regression/bin/sh/parser/only-redir3.0
new file mode 100644
index 0000000..128a483
--- /dev/null
+++ b/tools/regression/bin/sh/parser/only-redir3.0
@@ -0,0 +1,2 @@
+# $FreeBSD$
+case x in x) </dev/null ;; esac
diff --git a/tools/regression/bin/sh/parser/only-redir4.0 b/tools/regression/bin/sh/parser/only-redir4.0
new file mode 100644
index 0000000..d804e12
--- /dev/null
+++ b/tools/regression/bin/sh/parser/only-redir4.0
@@ -0,0 +1,2 @@
+# $FreeBSD$
+case x in x) </dev/null ;& esac
OpenPOWER on IntegriCloud