From 830d5c37b19bf818c5d75e6e2b74f27f75c85419 Mon Sep 17 00:00:00 2001 From: nsfisis Date: Mon, 5 May 2025 01:33:37 +0900 Subject: desugar: do not use result of assignment --- main.c | 6 +++++- tests/038.sh | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 tests/038.sh diff --git a/main.c b/main.c index 1ac07e3..3cd918d 100644 --- a/main.c +++ b/main.c @@ -22,7 +22,11 @@ void fatal_error(char* msg) { int read_all(char* buf) { int c; int n = 0; - for (0; (c = getchar()) != -1; 0) { + for (0; 1; 0) { + c = getchar(); + if (c == -1) { + break; + } buf[n] = c; n = n + 1; } diff --git a/tests/038.sh b/tests/038.sh new file mode 100644 index 0000000..66ab0ed --- /dev/null +++ b/tests/038.sh @@ -0,0 +1,38 @@ +set -e + +cat <<'EOF' > input +abc +EOF +cat <<'EOF' > expected +4 +abc +EOF +bash ../../test_diff.sh <<'EOF' +void* calloc(); +int getchar(); +int printf(); + +int read_all(char* buf) { + int c; + int n = 0; + for (0; 1; 0) { + c = getchar(); + if (c == -1) { + break; + } + buf[n] = c; + n = n + 1; + } + return n; +} + +int main() { + char* source = calloc(1024, sizeof(char)); + int source_len = read_all(source); + + printf("%d\n", source_len); + printf("%s", source); + + return 0; +} +EOF -- cgit v1.2.3-70-g09d2