On 14/12/15 17:45, Martin Sebor wrote:
gcc/testsuite/ChangeLog:
2015-12-02  Martin Sebor<mse...@redhat.com>

        c++/42121
        c++/68478
        c++/68613
        c++/68689
        c++/68710
        * g++.dg/compat/struct-layout-1_generate.c: Avoid generating
        further fields after the first flexible array member.
        * g++.dg/ext/flexary2.C: Expect a sole flexible array member
        to be rejected.  Add a test case exercising zero-length array.
        * g++.dg/ext/flexary3.C: Expect a sole flexible array member
        to be rejected.
        * g++.dg/ext/flexary.h: New file.
        * g++.dg/ext/flexary4.C: New file.
        * g++.dg/ext/flexary5.C: New file.
        * g++.dg/ext/flexary6.C: New file.
        * g++.dg/ext/flexary7.C: New file.
        * g++.dg/ext/flexary8.C: New file.
        * g++.dg/other/dump-ada-spec-2.C: Adjust to reflect flexible
        array members.
        * g++.dg/parse/pr43765.C: Add a member to make a struct with
        a flexible array member valid.  Adjust expected error message.
        * g++.dg/torture/pr64280.C: Expect a sole flexible array member
        to be rejected.
        * g++.dg/torture/pr64312.C: Add a member to make a struct with
        a flexible array member valid.
        * g++.dg/ubsan/object-size-1.C: Adjust expected diagnostic.

gcc/cp/ChangeLog:
2015-12-02  Martin Sebor<mse...@redhat.com>

        c++/42121
        c++/68478
        c++/68613
        c++/68689
        c++/68710
        * class.c (walk_subobject_offsets): Avoid assuming type domain
        is non-null or has an upper bound.
        (layout_class_type): Include type size in error message.
        (flexmems_t): New type.
        (field_nonempty_p, find_flexarrays, diagnose_flexarrays)
        (check_flexarrays): New functions.
        (finish_struct_1): Call check_flexarrays.
        * decl.c (compute_array_index_type): Distinguish flexible array
        members from zero-length arrays.
        (grokdeclarator): Reject flexible array members in unions.  Avoid
        rejecting members of incomplete types that are flexible array members.
        * error.c (dump_type_suffix): Handle flexible array members with null
        upper bound.
        * init.c (perform_member_init): Same.
        * pt.c (instantiate_class_template_1): Allow flexible array members.
        (tsubst): Handle flexible array members with null upper bound.
        * typeck2.c (digest_init_r): Warn for initialization of flexible
        array members.
        (process_init_constructor_record): Handle flexible array members.

gcc/ChangeLog:
2015-12-02  Martin Sebor<mse...@redhat.com>

        c++/42121
        * tree-chkp.c (chkp_find_bound_slots_1): Handle flexible array
        members.
        * tree.c (type_contains_placeholder_1): Avoid assuming type has
        a non-null domain or an upper bound to handle flexible array
        members.
        * varasm.c (array_size_for_constructor): Same.
        (output_constructor_regular_field):  Same.
        (output_constructor): Set min_index to integer_zero_node rather
        than null when a type has no domain to avoid crashing later.

I think this caused PR68932 - FAIL: obj-c++.dg/property/at-property-23.mm -fgnu-runtime (internal compiler error)

Thanks,
- Tom

Reply via email to