aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--parse.c1
-rw-r--r--tests/086.sh17
2 files changed, 18 insertions, 0 deletions
diff --git a/parse.c b/parse.c
index 2f17225..60fde56 100644
--- a/parse.c
+++ b/parse.c
@@ -331,6 +331,7 @@ AstNode* create_new_postfix_inc_or_dec(Parser* p, AstNode* e, TokenKind op) {
ast_append(ret, expr2);
ast_append(ret, expr3);
ast_append(ret, expr4);
+ ret->ty = expr4->ty;
return ret;
}
diff --git a/tests/086.sh b/tests/086.sh
new file mode 100644
index 0000000..ee440b5
--- /dev/null
+++ b/tests/086.sh
@@ -0,0 +1,17 @@
+set -e
+
+cat <<'EOF' > expected
+105
+0
+EOF
+
+bash ../../test_diff.sh <<'EOF'
+int printf();
+
+int main() {
+ char* s = "hi";
+ while (*s++) {
+ printf("%d\n", *s);
+ }
+}
+EOF