[Bug middle-end/70434] [5/6/7 Regression] adding an extraneous cast to vector type results in inferior code

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Tue May 24 07:56:00 GMT 2016


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

--- Comment #14 from Richard Biener <rguenth at gcc dot gnu.org> ---
Author: rguenth
Date: Tue May 24 07:55:56 2016
New Revision: 236630

URL: https://gcc.gnu.org/viewcvs?rev=236630&root=gcc&view=rev
Log:
2016-05-24  Richard Biener  <rguenther@suse.de>

        PR middle-end/70434
        PR c/69504
        c-family/
        * c-common.h (convert_vector_to_pointer_for_subscript): Rename to ...
        (convert_vector_to_array_for_subscript): ... this.
        * c-common.c (convert_vector_to_pointer_for_subscript): Use a
        VIEW_CONVERT_EXPR to an array type.  Rename to ...
        (convert_vector_to_array_for_subscript): ... this.

        cp/
        * expr.c (mark_exp_read): Handle VIEW_CONVERT_EXPR.
        * constexpr.c (cxx_eval_array_reference): Handle indexed
        vectors.
        * typeck.c (cp_build_array_ref): Adjust.

        c/
        * c-typeck.c (build_array_ref): Do not complain about indexing
        non-lvalue vectors.  Adjust for function name change.

        * tree-ssa.c (non_rewritable_mem_ref_base): Make sure to mark
        bases which are accessed with non-invariant indices.
        * gimple-fold.c (maybe_canonicalize_mem_ref_addr): Re-write
        constant index ARRAY_REFs of vectors into BIT_FIELD_REFs.

        * c-c++-common/vector-subscript-4.c: New testcase.
        * c-c++-common/vector-subscript-5.c: Likewise.

Added:
    trunk/gcc/testsuite/c-c++-common/vector-subscript-4.c
    trunk/gcc/testsuite/c-c++-common/vector-subscript-5.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/c-family/ChangeLog
    trunk/gcc/c-family/c-common.c
    trunk/gcc/c-family/c-common.h
    trunk/gcc/c/ChangeLog
    trunk/gcc/c/c-typeck.c
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/constexpr.c
    trunk/gcc/cp/expr.c
    trunk/gcc/cp/typeck.c
    trunk/gcc/gimple-fold.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-ssa.c


More information about the Gcc-bugs mailing list