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

--- Comment #2 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Patrick Palka <ppa...@gcc.gnu.org>:

https://gcc.gnu.org/g:843710c037c1396dcdbc23e5b6b456b8ae6e2b8b

commit r11-2546-g843710c037c1396dcdbc23e5b6b456b8ae6e2b8b
Author: Patrick Palka <ppa...@redhat.com>
Date:   Tue Aug 4 10:11:35 2020 -0400

    c++: Member initializer list diagnostic locations [PR94024]

    This patch preserves the source locations of each node in a member
    initializer list so that during processing of the list we can set
    input_location appropriately for generally more accurate diagnostic
    locations.  Since TREE_LIST nodes are tcc_exceptional, they can't have
    source locations, so we instead store the location in a dummy
    tcc_expression node within the TREE_TYPE of the list node.

    gcc/cp/ChangeLog:

            PR c++/94024
            * init.c (sort_mem_initializers): Preserve TREE_TYPE of the
            member initializer list node.
            (emit_mem_initializers): Set input_location when performing each
            member initialization.
            * parser.c (cp_parser_mem_initializer): Attach the source
            location of this initializer to a dummy EMPTY_CLASS_EXPR
            within the TREE_TYPE of the list node.
            * pt.c (tsubst_initializer_list): Preserve TREE_TYPE of the
            member initializer list node.

    gcc/testsuite/ChangeLog:

            PR c++/94024
            * g++.dg/diagnostic/mem-init1.C: New test.

Reply via email to