diff options
| author | nsfisis <nsfisis@gmail.com> | 2025-08-11 12:25:13 +0900 |
|---|---|---|
| committer | nsfisis <nsfisis@gmail.com> | 2025-08-15 10:06:21 +0900 |
| commit | cf38ecdd3611efe138e24ea6b5b91c1861f36f31 (patch) | |
| tree | f14e98c342040da3c911030e8d85466ec77d92d2 | |
| parent | 9807d9905be951e83fa20642d3c7695f5d6c9e04 (diff) | |
| download | ducc-cf38ecdd3611efe138e24ea6b5b91c1861f36f31.tar.gz ducc-cf38ecdd3611efe138e24ea6b5b91c1861f36f31.tar.zst ducc-cf38ecdd3611efe138e24ea6b5b91c1861f36f31.zip | |
fix: fix an issue where compound expression is untyped
| -rw-r--r-- | parse.c | 1 | ||||
| -rw-r--r-- | tests/086.sh | 17 |
2 files changed, 18 insertions, 0 deletions
@@ -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 |
