[Bug sanitizer/77823] [7 Regression] ICE: in ubsan_encode_value, at ubsan.c:137 with -fsanitize=undefined and vector types

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Wed Nov 16 08:40:00 GMT 2016


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

--- Comment #8 from Jakub Jelinek <jakub at gcc dot gnu.org> ---
Author: jakub
Date: Wed Nov 16 08:28:50 2016
New Revision: 242469

URL: https://gcc.gnu.org/viewcvs?rev=242469&root=gcc&view=rev
Log:
        PR sanitizer/77823
        * ubsan.c (ubsan_build_overflow_builtin): Add DATAP argument, if
        it points to non-NULL tree, use it instead of ubsan_create_data.
        (instrument_si_overflow): Handle vector signed integer overflow
        checking.
        * ubsan.h (ubsan_build_overflow_builtin): Add DATAP argument.
        * tree-vrp.c (simplify_internal_call_using_ranges): Punt for
        vector IFN_UBSAN_CHECK_*.
        * internal-fn.c (expand_addsub_overflow): Add DATAP argument,
        pass it through to ubsan_build_overflow_builtin.
        (expand_neg_overflow, expand_mul_overflow): Likewise.
        (expand_vector_ubsan_overflow): New function.
        (expand_UBSAN_CHECK_ADD, expand_UBSAN_CHECK_SUB,
        expand_UBSAN_CHECK_MUL): Use tit for vector arithmetics.
        (expand_arith_overflow): Adjust expand_*_overflow callers.

        * c-c++-common/ubsan/overflow-vec-1.c: New test.
        * c-c++-common/ubsan/overflow-vec-2.c: New test.

Added:
    trunk/gcc/testsuite/c-c++-common/ubsan/overflow-vec-1.c
    trunk/gcc/testsuite/c-c++-common/ubsan/overflow-vec-2.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/internal-fn.c
    trunk/gcc/testsuite/ChangeLog
    trunk/gcc/tree-vrp.c
    trunk/gcc/ubsan.c
    trunk/gcc/ubsan.h


More information about the Gcc-bugs mailing list