1 struct bfu { 2 unsigned int a:4; 3 unsigned int :2; 4 unsigned int b:4; 5 }; 6 unsigned int get__bfu_a(struct bfu bf) { return bf.a; } 7 unsigned int get__bfu_b(struct bfu bf) { return bf.b; } 8 unsigned int get_pbfu_a(struct bfu *bf) { return bf->a; } 9 unsigned int get_pbfu_b(struct bfu *bf) { return bf->b; } 10 11 12 struct bfs { 13 signed int a:4; 14 signed int :2; 15 signed int b:4; 16 }; 17 signed int get__bfs_a(struct bfs bf) { return bf.a; } 18 signed int get__bfs_b(struct bfs bf) { return bf.b; } 19 signed int get_pbfs_a(struct bfs *bf) { return bf->a; } 20 signed int get_pbfs_b(struct bfs *bf) { return bf->b; } 21 22 23 struct bfi { 24 int a:4; 25 int :2; 26 int b:4; 27 }; 28 unsigned int get__bfi_a(struct bfi bf) { return bf.a; } 29 unsigned int get__bfi_b(struct bfi bf) { return bf.b; } 30 unsigned int get_pbfi_a(struct bfi *bf) { return bf->a; } 31 unsigned int get_pbfi_b(struct bfi *bf) { return bf->b; } 32 33 /* 34 * check-name: bitfield size 35 * check-command: test-linearize -Wno-decl $file 36 * check-output-ignore 37 * 38 * check-output-excludes: and\\..*\\$960 39 * check-output-excludes: zext\\. 40 * check-output-pattern(8): and\\..*\\$15 41 * check-output-pattern(4): sext\\. 42 * check-output-pattern(4): trunc\\.4 43 * check-output-pattern(6): lsr\\..*\\$6 44 */