]> git.ipfire.org Git - thirdparty/gcc.git/commit
c++/contracts: ICE with contract assert on non-empty statement [PR 117579]
authorNina Ranns <dinka.ranns@googlemail.com>
Tue, 3 Dec 2024 14:58:21 +0000 (14:58 +0000)
committerJason Merrill <jason@redhat.com>
Tue, 3 Dec 2024 19:29:00 +0000 (14:29 -0500)
commit3b0fca5835b92ca7b139ef9f06d16b65510568ef
tree5ab6df4844748241f51a07e69218efff57f63e1b
parente6e4cb34e30f25adfb57e998663a8a1796b8573c
c++/contracts: ICE with contract assert on non-empty statement [PR 117579]

Contract assert is an attribute on an empty statement. Currently we assert
that the statement is empty before emitting the assertion. This has been
changed to a conditional check that the statement is empty before the
assertion is emitted.

PR c++/117579

gcc/cp/ChangeLog:

* parser.cc (cp_parser_statement): Replace assertion with a
conditional check that the statement containing a contract assert
is empty.

gcc/testsuite/ChangeLog:

* g++.dg/contracts/pr117579.C: New test.

Signed-off-by: Nina Ranns <dinka.ranns@gmail.com>
Reviewed-by: Jason Merrill <jason@redhat.com>
gcc/cp/parser.cc
gcc/testsuite/g++.dg/contracts/pr117579.C [new file with mode: 0644]