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

--- Comment #3 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by David Malcolm <dmalc...@gcc.gnu.org>:

https://gcc.gnu.org/g:15af33a88065f983181550fc53821f1c6e14c5c7

commit r11-6452-g15af33a88065f983181550fc53821f1c6e14c5c7
Author: David Malcolm <dmalc...@redhat.com>
Date:   Mon Jan 4 19:20:32 2021 -0500

    analyzer: fix ICE with -fsanitize=undefined [PR98293]

    -fsanitize=undefined with calls to nonnull functions
    creates struct __ubsan_nonnull_arg_data instances
    with CONSTRUCTORs for RECORD_TYPEs with NULL index values.
    The analyzer was mistakenly using INTEGER_CST for these
    fields, leading to ICEs.

    Fix the issue by iterating through the fields in the type
    for such cases, imitating similar logic in varasm.c's
    output_constructor.

    gcc/analyzer/ChangeLog:
            PR analyzer/98293
            * store.cc (binding_map::apply_ctor_to_region): When "index" is
            NULL, iterate through the fields for RECORD_TYPEs, rather than
            creating an INTEGER_CST index.

    gcc/testsuite/ChangeLog:
            PR analyzer/98293
            * gcc.dg/analyzer/pr98293.c: New test.

Reply via email to