1 1.9 rillig /* $NetBSD: decl_struct_member.c,v 1.9 2021/07/15 21:00:05 rillig Exp $ */ 2 1.1 rillig # 3 "decl_struct_member.c" 3 1.1 rillig 4 1.4 rillig struct multi_attributes { 5 1.4 rillig __attribute__((deprecated)) 6 1.4 rillig __attribute__((deprecated)) 7 1.4 rillig __attribute__((deprecated)) 8 1.4 rillig int deprecated; 9 1.4 rillig }; 10 1.4 rillig 11 1.6 rillig struct cover_begin_type_noclass_declspecs { 12 1.6 rillig int m1; 13 1.6 rillig __attribute__((deprecated)) int m2; 14 1.6 rillig const int m3; 15 1.6 rillig int const m4; 16 1.6 rillig int const long m5; 17 1.6 rillig int __attribute__((deprecated)) m6; 18 1.6 rillig }; 19 1.6 rillig 20 1.6 rillig typedef int number; 21 1.6 rillig 22 1.6 rillig struct cover_begin_type_typespec { 23 1.6 rillig int m1; 24 1.6 rillig number m2; 25 1.6 rillig }; 26 1.6 rillig 27 1.6 rillig struct cover_begin_type_noclass_declmods { 28 1.6 rillig const m1; 29 1.6 rillig const volatile m2; 30 1.6 rillig }; 31 1.6 rillig 32 1.7 rillig /* cover struct_or_union_specifier: struct_or_union error */ 33 1.7 rillig /* expect+1: error: syntax error 'goto' [249] */ 34 1.7 rillig struct goto { 35 1.7 rillig /* expect+1: error: illegal type combination [4] */ 36 1.7 rillig int member; 37 1.7 rillig /* expect+1: error: syntax error '}' [249] */ 38 1.7 rillig }; 39 1.7 rillig /* expect-1: warning: empty declaration [0] */ 40 1.7 rillig 41 1.1 rillig /* 42 1.1 rillig * Before cgram.y 1.228 from 2021-06-19, lint ran into an assertion failure: 43 1.1 rillig * 44 1.1 rillig * "is_struct_or_union(dcs->d_type->t_tspec)" at cgram.y:846 45 1.1 rillig */ 46 1.1 rillig struct { 47 1.1 rillig char; /* expect: syntax error 'unnamed member' */ 48 1.1 rillig }; 49 1.2 rillig 50 1.9 rillig struct cover_notype_struct_declarators { 51 1.9 rillig const a, b; 52 1.9 rillig }; 53 1.9 rillig 54 1.9 rillig struct cover_notype_struct_declarator_bit_field { 55 1.9 rillig const a: 3, : 0, b: 4; 56 1.9 rillig const : 0; 57 1.9 rillig }; 58 1.9 rillig 59 1.2 rillig /* 60 1.2 rillig * Before decl.c 1.188 from 2021-06-20, lint ran into a segmentation fault. 61 1.2 rillig */ 62 1.2 rillig struct { 63 1.2 rillig char a(_)0 /* expect: syntax error '0' */ 64 1.8 rillig } 65 1.2 rillig /* 66 1.2 rillig * FIXME: adding a semicolon here triggers another assertion: 67 1.2 rillig * 68 1.3 rillig * assertion "t == NOTSPEC" failed in end_type at decl.c:774 69 1.2 rillig */ 70 1.2 rillig /* expect+1: cannot recover from previous errors */ 71