summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--parse.cxx2
-rwxr-xr-xtestsuite/parseok/eleven.stp8
2 files changed, 8 insertions, 2 deletions
diff --git a/parse.cxx b/parse.cxx
index b2daa178..9d32a8cb 100644
--- a/parse.cxx
+++ b/parse.cxx
@@ -2289,7 +2289,7 @@ parser::parse_unary ()
e->op = t->content;
e->tok = t;
next ();
- e->operand = parse_crement ();
+ e->operand = parse_unary ();
return e;
}
else
diff --git a/testsuite/parseok/eleven.stp b/testsuite/parseok/eleven.stp
index 737a2e14..5ee0f921 100755
--- a/testsuite/parseok/eleven.stp
+++ b/testsuite/parseok/eleven.stp
@@ -53,5 +53,11 @@ probe two
- a
# grammar glitch
- a % b ; -- a ; ++ a ; a ++ ; a --
+ a % b ; -- a ; ++ a ; a ++ ; a -- ;
+
+ # chained unary operators
+ + + a ; + - a ; + ! a ; + ~ a ;
+ - + a ; - - a ; - ! a ; - ~ a ;
+ ! + a ; ! - a ; ! ! a ; ! ~ a ;
+ ~ + a ; ~ - a ; ~ ! a ; ~ ~ a ;
}