]> git.ipfire.org Git - thirdparty/gcc.git/commit
ada: Fix parsing of raise expressions with no parens
authorPiotr Trojanek <trojanek@adacore.com>
Thu, 2 Jan 2025 16:36:54 +0000 (17:36 +0100)
committerMarc Poulhiès <dkm@gcc.gnu.org>
Mon, 13 Jan 2025 10:52:56 +0000 (11:52 +0100)
commit26b649b2d17dccf0f4c3c048f37c49660aad7f71
treea1e7c0ffa9c6fadcffd5f8fb5955a8ab334c5b1f
parentd3904a3ad9d7b4c8e5e536e5166b89548510fd48
ada: Fix parsing of raise expressions with no parens

According to Ada grammar, raise expression is an expression, but requires
parens to be a simple_expression. We wrongly classified raise expressions
as expressions, because we mishandled a global state variable in the parser.

This patch causes some illegal code to be rejected.

gcc/ada/ChangeLog:

* par-ch4.adb (P_Relation): Prevent Expr_Form to be overwritten when
parsing the raise expression itself.
(P_Simple_Expression): Fix manipulation of Expr_Form.
gcc/ada/par-ch4.adb