-
- Downloads
P0683R1 - default member initializers for bit-fields
P0683R1 - default member initializers for bit-fields cp/ * cp-tree.h (grokbitfield): Add INIT parameter. * parser.c (cp_parser_constant_expression): Add STRICT_P argument, if true, parse a conditional-expression rather than assignment-expression. (cp_parser_member_declaration): For C++11 and later pass true as STRICT_P to cp_parser_constant_expression. Parse C++2A bitfield NSDMIs. Adjust grokbitfield caller. Handle DECL_INITIAL also for DECL_C_BIT_FIELDs. (cp_parser_objc_class_ivars): Adjust grokbitfield caller. * class.c (check_field_decl): Recurse even for DECL_C_BIT_FIELDs. (check_field_decls): Call check_field_decl even for DECL_C_BIT_FIELDs. * decl2.c (grokbitfield): Add INIT parameter, pass it to cp_finish_decl. * pt.c (tsubst_decl): Handle DECL_INITIAL for all FIELD_DECLs, not just non-bitfields. testsuite/ * g++.dg/ext/bitfield6.C: New test. * g++.dg/cpp2a/bitfield1.C: New test. * g++.dg/cpp2a/bitfield2.C: New test. * g++.dg/cpp2a/bitfield3.C: New test. From-SVN: r253302
Showing
- gcc/cp/ChangeLog 17 additions, 0 deletionsgcc/cp/ChangeLog
- gcc/cp/class.c 5 additions, 5 deletionsgcc/cp/class.c
- gcc/cp/cp-tree.h 1 addition, 1 deletiongcc/cp/cp-tree.h
- gcc/cp/decl2.c 10 additions, 4 deletionsgcc/cp/decl2.c
- gcc/cp/parser.c 69 additions, 27 deletionsgcc/cp/parser.c
- gcc/cp/pt.c 1 addition, 1 deletiongcc/cp/pt.c
- gcc/testsuite/ChangeLog 8 additions, 0 deletionsgcc/testsuite/ChangeLog
- gcc/testsuite/g++.dg/cpp2a/bitfield1.C 77 additions, 0 deletionsgcc/testsuite/g++.dg/cpp2a/bitfield1.C
- gcc/testsuite/g++.dg/cpp2a/bitfield2.C 26 additions, 0 deletionsgcc/testsuite/g++.dg/cpp2a/bitfield2.C
- gcc/testsuite/g++.dg/cpp2a/bitfield3.C 55 additions, 0 deletionsgcc/testsuite/g++.dg/cpp2a/bitfield3.C
- gcc/testsuite/g++.dg/ext/bitfield6.C 15 additions, 0 deletionsgcc/testsuite/g++.dg/ext/bitfield6.C
Loading
Please register or sign in to comment