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

--- Comment #10 from Martin Sebor <msebor at gcc dot gnu.org> ---
Author: msebor
Date: Fri Nov 22 17:14:17 2019
New Revision: 278624

URL: https://gcc.gnu.org/viewcvs?rev=278624&root=gcc&view=rev
Log:
PR middle-end/83859 - attributes to associate pointer arguments and sizes

gcc/ChangeLog:

        PR middle-end/83859
        * attribs.h (struct attr_access): New.
        * attribs.c (decl_attributes): Add an informational note.
        * builtins.c (check_access): Make extern.  Consistently set no-warning
        after issuing a warning.  Handle calls through function pointers.  Set
        no-warning.
        * builtins.h (check_access): Declare.
        * calls.c (rdwr_access_hash): New type.
        (rdwr_map): Same.
        (init_attr_rdwr_indices): New function.
        (maybe_warn_rdwr_sizes): Same.
        (initialize_argument_information): Call init_attr_rdwr_indices.
        Call maybe_warn_rdwr_sizes.
        (get_size_range): Avoid null argument.
        * doc/extend.texi (attribute access): Document new attribute.

gcc/c-family/ChangeLog:

        PR middle-end/83859
        * c-attribs.c (handle_access_attribute): New function.
        (c_common_attribute_table): Add new attribute.
        (get_argument_type): New function.
        (append_access_attrs): New function.
        (get_nonnull_operand): Rename...
        (get_attribute_operand): ...to this.
        * c-common.c (get_nonnull_operand): Rename...
        (get_attribute_operand): ...to this.

gcc/testsuite/ChangeLog:

        PR middle-end/83859
        * c-c++-common/attr-nonstring-8.c: Adjust text of expected warning.
        * gcc.dg/Wstringop-overflow-23.c: New test.
        * gcc.dg/Wstringop-overflow-24.c: New test.
        * gcc.dg/attr-access-read-only.c: New test.
        * gcc.dg/attr-access-read-write.c: New test.
        * gcc.dg/attr-access-read-write-2.c: New test.
        * gcc.dg/attr-access-write-only.c: New test.


Added:
    trunk/gcc/testsuite/gcc.dg/Wstringop-overflow-23.c
    trunk/gcc/testsuite/gcc.dg/Wstringop-overflow-24.c
    trunk/gcc/testsuite/gcc.dg/attr-access-read-only.c
    trunk/gcc/testsuite/gcc.dg/attr-access-read-write-2.c
    trunk/gcc/testsuite/gcc.dg/attr-access-read-write.c
    trunk/gcc/testsuite/gcc.dg/attr-access-write-only.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/attribs.c
    trunk/gcc/attribs.h
    trunk/gcc/builtins.c
    trunk/gcc/builtins.h
    trunk/gcc/c-family/ChangeLog
    trunk/gcc/c-family/c-attribs.c
    trunk/gcc/c-family/c-common.c
    trunk/gcc/c-family/c-common.h
    trunk/gcc/calls.c
    trunk/gcc/doc/extend.texi
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/c-c++-common/attr-nonstring-8.c

Reply via email to