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

--- Comment #7 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The trunk branch has been updated by Jason Merrill <ja...@gcc.gnu.org>:

https://gcc.gnu.org/g:4d9e0f3f211c8c459f285b5cddabc9958ad170f8

commit r14-6765-g4d9e0f3f211c8c459f285b5cddabc9958ad170f8
Author: Jason Merrill <ja...@redhat.com>
Date:   Wed Dec 20 13:58:16 2023 -0500

    c++: computed goto warning [PR37722]

    PR37722 complains that a computed goto doesn't destroy objects that go out
    of scope.  In the PR we agreed that it never will, but we can warn about
    it.

            PR c++/37722

    gcc/ChangeLog:

            * doc/extend.texi: Document that computed goto does not
            call destructors.

    gcc/cp/ChangeLog:

            * decl.cc (identify_goto): Adjust for computed goto.
            (struct named_label_use_entry): Add computed_goto field.
            (poplevel_named_label_1): Add to computed_goto vec.
            (check_previous_goto_1): Dump computed_goto vec.
            (check_goto_1): Split out from check_goto.
            (check_goto): Check all addressable labels for computed goto.
            (struct named_label_entry): Add addressed field.
            (mark_label_addressed): New.
            * parser.cc (cp_parser_unary_expression): Call it.
            * cp-tree.h (mark_label_addressed): Declare it.

    gcc/testsuite/ChangeLog:

            * g++.dg/ext/label15.C: New test.
            * g++.dg/torture/pr42739.C: Expect warning.

Reply via email to