From cf38ecdd3611efe138e24ea6b5b91c1861f36f31 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 11 Aug 2025 12:25:13 +0900 Subject: fix: fix an issue where compound expression is untyped --- parse.c | 1 + tests/086.sh | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 tests/086.sh 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 -- cgit v1.2.3-70-g09d2