[Bug c/89798] excessive vector_size silently accepted and truncated

msebor at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Apr 12 19:02:00 GMT 2019


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

--- Comment #5 from Martin Sebor <msebor at gcc dot gnu.org> ---
Author: msebor
Date: Fri Apr 12 19:01:17 2019
New Revision: 270326

URL: https://gcc.gnu.org/viewcvs?rev=270326&root=gcc&view=rev
Log:
PR c/88383 - ICE calling __builtin_has_attribute on a reference
PR c/89288 - ICE in tree_code_size, at tree.c:865
PR c/89798 - excessive vector_size silently accepted and truncated
PR c/89797 - ICE on a vector_size (1LU << 33) int variable

gcc/ChangeLog:

        PR c/89797
        * targhooks.c (default_vector_alignment): Avoid assuming
        argument fits in SHWI.
        * tree.h (TYPE_VECTOR_SUBPARTS): Avoid sign overflow in
        a shift expression.
        * doc/extend.texi (__builtin_has_attribute): Add a clarifying note.

gcc/c-family/ChangeLog:

        PR c/88383
        PR c/89288
        PR c/89798
        PR c/89797
        * c-attribs.c (type_valid_for_vector_size): Detect excessively
        large sizes.
        (validate_attribute): Handle DECLs and expressions.
        (has_attribute): Handle types referenced by expressions.
        Avoid considering array attributes in ARRAY_REF expressions .

gcc/cp/ChangeLog:

        PR c/88383
        PR c/89288
        * parser.c (cp_parser_has_attribute_expression): Handle assignment
        expressions.

gcc/testsuite/ChangeLog:

        PR c/88383
        PR c/89288
        PR c/89798
        PR c/89797
        * c-c++-common/attributes-1.c: Adjust.
        * c-c++-common/builtin-has-attribute-6.c: New test.
        * c-c++-common/builtin-has-attribute-7.c: New test.
        * c-c++-common/builtin-has-attribute-4.c: Adjust expectations.
        * c-c++-common/builtin-has-attribute-6.c: New test.
        * c-c++-common/pr71574.c: Adjust.
        * gcc.dg/pr25559.c: Adjust.
        * gcc.dg/attr-vector_size.c: New test.


Added:
    trunk/gcc/testsuite/c-c++-common/builtin-has-attribute-6.c
    trunk/gcc/testsuite/c-c++-common/builtin-has-attribute-7.c
    trunk/gcc/testsuite/gcc.dg/attr-vector_size.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/parser.c
    trunk/gcc/targhooks.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/testsuite/c-c++-common/attributes-1.c
    trunk/gcc/testsuite/c-c++-common/builtin-has-attribute-4.c
    trunk/gcc/testsuite/c-c++-common/pr71574.c
    trunk/gcc/testsuite/gcc.dg/pr25559.c
    trunk/gcc/tree.h


More information about the Gcc-bugs mailing list