[Bug c++/126323] [13/14/15/16/17 Regression] ICE when parsing #pragma GCC ivdep or unroll(0) or novector inside a class definition before a for statement

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Sun Jul 26 14:51:11 GMT 2026


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

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

https://gcc.gnu.org/g:cd453025faf5ab3ada2428e5fc372d9a6328c9cb

commit r17-2717-gcd453025faf5ab3ada2428e5fc372d9a6328c9cb
Author: Odysseas Georgoudis <odygrd@hotmail.com>
Date:   Fri Jul 24 15:17:32 2026 -0400

    c++: Fix ICE with loop pragmas at class scope [PR126323]

    cp_parser_pragma rejected GCC loop pragmas at namespace scope, but not
    at class scope.  Consequently, it attempted to parse the following loop
    as a statement while in a member-declaration context, leading to an ICE
    when processing the loop initializer.

    Accept these pragmas only in statement contexts.

    gcc/cp/ChangeLog:

            PR c++/126323
            * parser.cc (cp_parser_pragma): Reject GCC loop pragmas outside
            statement contexts.

    gcc/testsuite/ChangeLog:

            PR c++/126323
            * g++.dg/parse/pr126323.C: New test.

    Reviewed-by: Jason Merrill <jason@redhat.com>


More information about the Gcc-bugs mailing list