1 1.4 rillig /* $NetBSD: d_gcc_compound_statements2.c,v 1.4 2021/09/10 20:02:51 rillig Exp $ */ 2 1.2 rillig # 3 "d_gcc_compound_statements2.c" 3 1.2 rillig 4 1.1 jruoho /* GCC compound statements with non-expressions */ 5 1.1 jruoho struct cpu_info { 6 1.1 jruoho int bar; 7 1.1 jruoho }; 8 1.1 jruoho 9 1.1 jruoho int 10 1.3 rillig compound_expression_with_decl_and_stmt(void) 11 1.1 jruoho { 12 1.1 jruoho return ({ 13 1.3 rillig struct cpu_info *ci; 14 1.3 rillig __asm__ volatile("movl %%fs:4,%0":"=r" (ci)); 15 1.3 rillig ci; 16 1.1 jruoho })->bar; 17 1.1 jruoho } 18 1.3 rillig 19 1.3 rillig int 20 1.3 rillig compound_expression_with_only_stmt(void) 21 1.3 rillig { 22 1.3 rillig struct cpu_info ci = { 0 }; 23 1.3 rillig return ({ 24 1.4 rillig if (ci.bar > 0) 25 1.4 rillig ci.bar++; 26 1.4 rillig ci; 27 1.3 rillig }).bar; 28 1.3 rillig } 29