]> git.ipfire.org Git - thirdparty/gcc.git/commit
PR c++/96442: Improved error recovery in enumerations.
authorRoger Sayle <roger@nextmovesoftware.com>
Tue, 7 Jun 2022 06:54:13 +0000 (07:54 +0100)
committerRoger Sayle <roger@nextmovesoftware.com>
Tue, 7 Jun 2022 06:54:13 +0000 (07:54 +0100)
commit6dd194e2ce201d057e4faaecc36d19e0d3695f57
treed3cc620903d9e6291540cf503496b036e71b015a
parentc4320bde42c6497b701e2e6b8f1c5069bed19818
PR c++/96442: Improved error recovery in enumerations.

This patch is a revised fix for PR c++/96442 providing a cleaner
solution, setting ENUM_UNDERLYING_TYPE to integer_type_node when
issuing an error, so that this invariant holds during the parser's
error recovery.

2022-06-07  Roger Sayle  <roger@nextmovesoftware.com>

gcc/cp/ChangeLog
PR c++/96442
* decl.cc (start_enum): When emitting a "must be integral" error,
set ENUM_UNDERLYING_TYPE to integer_type_node, to avoid an ICE
downstream in build_enumeration.

gcc/testsuite/ChangeLog
PR c++/96442
* g++.dg/parse/pr96442.C: New test case.
gcc/cp/decl.cc
gcc/testsuite/g++.dg/parse/pr96442.C [new file with mode: 0644]