-
- Downloads
re PR c/8420 (volatile after the type specifier for an unnamed structure is rejected)
PR c/8420 * c-tree.h (struct c_declspecs): New. (struct c_declarator, struct c_type_name, struct c_parm): Update element types. (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned, start_function, start_decl, build_c_parm, make_pointer_declarator): Update prototypes. (build_null_declspecs, declspecs_add_qual, declspecs_add_type, declspecs_add_scspec, declspecs_add_attrs): New. (split_specs_attrs): Remove. * c-parse.in (%union): Add dsptype. (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea, declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea, declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea, declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea, declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea, declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea, declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea, declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea, declspecs_ts, declspecs_nots, declspecs_ts_nosa, declspecs_nots_nosa, declspecs_nosc_ts, declspecs_nosc_nots, declspecs_nosc, declspecs, maybe_type_quals_attrs): Change to dsptype. (struct c_declspec_stack): New. (current_declspecs, declspec_stack): Change type. (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new structures. (extdefs): Likewise. (setspecs): Likewise. (fndef): Use current_declspecs for empty declspecs list. (declspecs_nosc_nots_nosa_noea, declspecs_nosc_nots_nosa_ea, declspecs_nosc_nots_sa_noea, declspecs_nosc_nots_sa_ea, declspecs_nosc_ts_nosa_noea, declspecs_nosc_ts_nosa_ea, declspecs_nosc_ts_sa_noea, declspecs_nosc_ts_sa_ea, declspecs_sc_nots_nosa_noea, declspecs_sc_nots_nosa_ea, declspecs_sc_nots_sa_noea, declspecs_sc_nots_sa_ea, declspecs_sc_ts_nosa_noea, declspecs_sc_ts_nosa_ea, declspecs_sc_ts_sa_noea, declspecs_sc_ts_sa_ea): Update to new structures and helper functions. Update comments. (typespec_nonattr): Correct comment. (maybe_type_quals_attrs, typename): Update to new structures. * c-decl.c (grokdeclarator, build_array_declarator, grokfield, shadow_tag, shadow_tag_warned, start_function, start_decl, build_c_parm, make_pointer_declarator, set_array_declarator_inner, groktypename): Update to new structures. (build_null_declspecs, declspecs_add_qual, declspecs_add_type, declspecs_add_scspec, declspecs_add_attrs): New. (split_specs_attrs): Remove. (shadow_tag_warned): Make warning for useless type names a pedwarn. Give hard error for long, short, signed, unsigned or _Complex used with struct, union or enum in empty declaration. Make found_tag a bool. (grokdeclarator): Remove checks now done at parse time. testsuite: * gcc.dg/anon-struct-4.c, gcc.dg/declspec-1.c, gcc.dg/declspec-2.c, gcc.dg/declspec-3.c, gcc.dg/declspec-4.c, gcc.dg/declspec-5.c, gcc.dg/declspec-6.c, gcc.dg/long-long-typespec-1.c: New tests. * gcc.dg/tls/diag-2.c: Update expected diagnostics From-SVN: r87218
Showing
- gcc/ChangeLog 56 additions, 0 deletionsgcc/ChangeLog
- gcc/c-decl.c 264 additions, 327 deletionsgcc/c-decl.c
- gcc/c-parse.in 140 additions, 250 deletionsgcc/c-parse.in
- gcc/c-tree.h 52 additions, 13 deletionsgcc/c-tree.h
- gcc/testsuite/ChangeLog 9 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/gcc.dg/anon-struct-4.c 10 additions, 0 deletionsgcc/testsuite/gcc.dg/anon-struct-4.c
- gcc/testsuite/gcc.dg/declspec-1.c 27 additions, 0 deletionsgcc/testsuite/gcc.dg/declspec-1.c
- gcc/testsuite/gcc.dg/declspec-2.c 14 additions, 0 deletionsgcc/testsuite/gcc.dg/declspec-2.c
- gcc/testsuite/gcc.dg/declspec-3.c 34 additions, 0 deletionsgcc/testsuite/gcc.dg/declspec-3.c
- gcc/testsuite/gcc.dg/declspec-4.c 41 additions, 0 deletionsgcc/testsuite/gcc.dg/declspec-4.c
- gcc/testsuite/gcc.dg/declspec-5.c 41 additions, 0 deletionsgcc/testsuite/gcc.dg/declspec-5.c
- gcc/testsuite/gcc.dg/declspec-6.c 41 additions, 0 deletionsgcc/testsuite/gcc.dg/declspec-6.c
- gcc/testsuite/gcc.dg/long-long-typespec-1.c 828 additions, 0 deletionsgcc/testsuite/gcc.dg/long-long-typespec-1.c
- gcc/testsuite/gcc.dg/tls/diag-2.c 4 additions, 4 deletionsgcc/testsuite/gcc.dg/tls/diag-2.c
Loading
Please register or sign in to comment