/* $NetBSD: decl_struct_member.c,v 1.18 2024/12/01 18:37:54 rillig Exp $ */ # 3 "decl_struct_member.c" /* lint1-extra-flags: -X 351 */ struct multi_attributes { __attribute__((deprecated)) __attribute__((deprecated)) __attribute__((deprecated)) int deprecated; }; struct cover_begin_type_specifier_qualifier_list { int m1; __attribute__((deprecated)) int m2; const int m3; int const m4; int const long m5; int __attribute__((deprecated)) m6; }; typedef int number; struct cover_begin_type_typespec { int m1; number m2; }; struct cover_begin_type_qualifier_list { const m1; const volatile m2; }; /* cover struct_or_union_specifier: struct_or_union error */ /* expect+1: error: syntax error 'goto' [249] */ struct goto { /* expect+1: error: illegal type combination [4] */ int member; /* expect+1: error: syntax error '}' [249] */ }; /* expect-1: warning: empty declaration [0] */ /* * Before cgram.y 1.228 from 2021-06-19, lint ran into an assertion failure: * * "is_struct_or_union(dcs->d_type->t_tspec)" at cgram.y:846 */ struct { /* expect+1: error: syntax error 'unnamed member' [249] */ char; }; struct cover_notype_struct_declarators { const a, b; }; struct cover_notype_struct_declarator_bit_field { const a:3, :0, b:4; const:0; }; /* * An array of bit-fields sounds like a strange idea since a bit-field member * is not addressable, while an array needs to be addressable. Due to this * contradiction, this combination may have gone without mention in the C * standards. * * GCC 10.3.0 complains that the bit-field has invalid type. * * Clang 12.0.1 complains that the bit-field has non-integral type 'unsigned * int [8]'. */ struct array_of_bit_fields { /* expect+1: warning: illegal bit-field type 'array[8] of unsigned int' [35] */ unsigned int bits[8]: 1; }; /* * Before decl.c 1.188 from 2021-06-20, lint ran into a segmentation fault. */ struct { /* expect+2: warning: function definition with identifier list is obsolete in C23 [384] */ /* expect+1: error: syntax error '0' [249] */ char a(_)0 /* * Before cgram.y 1.328 from 2021-07-15, lint ran into an assertion failure * at the closing semicolon: * * assertion "t == NO_TSPEC" failed in end_type at decl.c:774 */ }; /* expect+1: error: cannot recover from previous errors [224] */