1f08c3bdfSopenharmony_cistruct bfb { 2f08c3bdfSopenharmony_ci _Bool a:1; 3f08c3bdfSopenharmony_ci _Bool f:1; 4f08c3bdfSopenharmony_ci _Bool z:1; 5f08c3bdfSopenharmony_ci}; 6f08c3bdfSopenharmony_ci 7f08c3bdfSopenharmony_ci 8f08c3bdfSopenharmony_cistruct bfb foo(struct bfb s) 9f08c3bdfSopenharmony_ci{ 10f08c3bdfSopenharmony_ci return s; 11f08c3bdfSopenharmony_ci} 12f08c3bdfSopenharmony_ci 13f08c3bdfSopenharmony_ci/* 14f08c3bdfSopenharmony_ci * check-name: bitfield-bool-layout 15f08c3bdfSopenharmony_ci * check-description: given that bool is here 1-bit wide 16f08c3bdfSopenharmony_ci * each field here above completely 'fill' a bool. 17f08c3bdfSopenharmony_ci * Thus 3 bools need to be allocated, but since the 18f08c3bdfSopenharmony_ci * alignment is 1-byte the result has a size of 3 19f08c3bdfSopenharmony_ci * bytes, 24 bits thus instead of 8. 20f08c3bdfSopenharmony_ci * check-command: test-linearize -Wno-decl $file 21f08c3bdfSopenharmony_ci * 22f08c3bdfSopenharmony_ci * check-known-to-fail 23f08c3bdfSopenharmony_ci * check-output-ignore 24f08c3bdfSopenharmony_ci * check-output-excludes: ret\\.24 25f08c3bdfSopenharmony_ci * check-output-contains: ret\\.8 26f08c3bdfSopenharmony_ci */ 27