https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90707

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Iain D Sandoe <ia...@gcc.gnu.org>:

https://gcc.gnu.org/g:5e28fca09c9c72bf5631efd0f0b06d52b0ebdb4d

commit r11-4972-g5e28fca09c9c72bf5631efd0f0b06d52b0ebdb4d
Author: Iain Sandoe <i...@sandoe.co.uk>
Date:   Sun Oct 25 19:33:07 2020 +0000

    C-Family, Objective-C : Implement Objective-C nullability Part 1[PR90707].

    This part of the implementation covers property nullability attributes
    and includes the changes to common code. Follow-on changes will be needed
    to cover Objective-C method definitions, but those are expected to be
    local to the Objective-C front end.

    The basis of the implementation is to translate the Objective-C-specific
    keywords into an attribute (objc_nullability) which has the required
    states to carry the attribute markup.

    We introduce the keywords, and these are parsed and validated in the same
    manner as other property attributes.  The resulting value is attached to
    the property as an objc_nullability attribute.

    gcc/c-family/ChangeLog:

            PR objc/90707
            * c-common.c (c_common_reswords): null_unspecified, nullable,
            nonnull, null_resettable: New keywords.
            * c-common.h (enum rid): RID_NULL_UNSPECIFIED, RID_NULLABLE,
            RID_NONNULL, RID_NULL_RESETTABLE: New.
            (OBJC_IS_PATTR_KEYWORD): Include nullability keywords in the
            ranges accepted for property attributes.
            * c-attribs.c (handle_objc_nullability_attribute): New.
            * c-objc.h (enum objc_property_attribute_group): Add
            OBJC_PROPATTR_GROUP_NULLABLE.
            (enum objc_property_attribute_kind):Add
            OBJC_PROPERTY_ATTR_NULL_UNSPECIFIED, OBJC_PROPERTY_ATTR_NULLABLE,
            OBJC_PROPERTY_ATTR_NONNULL, OBJC_PROPERTY_ATTR_NULL_RESETTABLE.

    gcc/objc/ChangeLog:

            PR objc/90707
            * objc-act.c (objc_prop_attr_kind_for_rid): Handle nullability.
            (objc_add_property_declaration): Handle nullability attributes.
            Check that these are applicable to the property type.
            * objc-act.h (enum objc_property_nullability): New.

    gcc/testsuite/ChangeLog:

            PR objc/90707
            * obj-c++.dg/property/at-property-4.mm: Add basic nullability
            tests.
            * objc.dg/property/at-property-4.m: Likewise.
            * obj-c++.dg/attributes/nullability-00.mm: New test.
            * obj-c++.dg/property/nullability-00.mm: New test.
            * objc.dg/attributes/nullability-00.m: New test.
            * objc.dg/property/nullability-00.m: New test.

    gcc/ChangeLog:

            PR objc/90707
            * doc/extend.texi: Document the objc_nullability attribute.

Reply via email to