Module Name: src Committed By: rillig Date: Fri Apr 23 20:13:29 UTC 2021
Modified Files: src/tests/usr.bin/xlint/lint1: d_gcc_compound_statements2.c Log Message: tests/lint: test GCC compound expression without declaration To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.3 \ src/tests/usr.bin/xlint/lint1/d_gcc_compound_statements2.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/tests/usr.bin/xlint/lint1/d_gcc_compound_statements2.c diff -u src/tests/usr.bin/xlint/lint1/d_gcc_compound_statements2.c:1.2 src/tests/usr.bin/xlint/lint1/d_gcc_compound_statements2.c:1.3 --- src/tests/usr.bin/xlint/lint1/d_gcc_compound_statements2.c:1.2 Sun Jan 31 14:39:31 2021 +++ src/tests/usr.bin/xlint/lint1/d_gcc_compound_statements2.c Fri Apr 23 20:13:29 2021 @@ -1,4 +1,4 @@ -/* $NetBSD: d_gcc_compound_statements2.c,v 1.2 2021/01/31 14:39:31 rillig Exp $ */ +/* $NetBSD: d_gcc_compound_statements2.c,v 1.3 2021/04/23 20:13:29 rillig Exp $ */ # 3 "d_gcc_compound_statements2.c" /* GCC compound statements with non-expressions */ @@ -7,11 +7,22 @@ struct cpu_info { }; int -main(void) +compound_expression_with_decl_and_stmt(void) { return ({ - struct cpu_info *__ci; - __asm__ volatile("movl %%fs:4,%0":"=r" (__ci)); - __ci; + struct cpu_info *ci; + __asm__ volatile("movl %%fs:4,%0":"=r" (ci)); + ci; })->bar; } + +int +compound_expression_with_only_stmt(void) +{ + struct cpu_info ci = { 0 }; + return ({ + if (ci.bar > 0) + ci.bar++; + ci; + }).bar; +}