bug#73182: CC Mode 5.35.2 (C++//l); 'enum' and 'enum class' appear to not get parsed correctly for indentation

Alan Mackenzie <[email protected]> Tue, 17 Sep 2024 20:30:58 +0000
Newsgroups gmane.emacs.cc-mode.general
Message-ID <[email protected]>
SGVsbG8gYWdhaW4sIEFyc2VuLgoKT24gVHVlLCBTZXAgMTcsIDIwMjQgYXQgMTI6NDM6MDUgKzAy
MDAsIEFyc2VuIEFyc2Vub3ZpxIcgd3JvdGU6Cj4gSGkgQWxhbiwKCj4gQWxhbiBNYWNrZW56aWUg
PGFjbUBtdWMuZGU+IHdyaXRlczoKCj4gPiBUaGFua3MgZm9yIHRha2luZyB0aGUgdHJvdWJsZSB0
byByYWlzZSB0aGlzIGJ1ZyByZXBvcnQgbGFzdCBXZWRuZXNkYXkuCgo+ID4gT24gV2VkLCBTZXAg
MTEsIDIwMjQgYXQgMjA6NTI6MTUgKzAyMDAsIEFyc2VuIEFyc2Vub3ZpxIcgdmlhIENDLU1vZGUt
aGVscCB3cm90ZToKPiA+PiBQYWNrYWdlOiBjYy1tb2RlCgo+ID4+IDwjc2VjdXJlIG1ldGhvZD1w
Z3BtaW1lIG1vZGU9c2lnbj4KPiA+PiBQYWNrYWdlOiBjYy1tb2RlCgo+ID4+IEhpIGFnYWluLAoK
PiA+PiBDQy1tb2RlIGFwcGVhcnMgdG8gbWlzaW5kZW50IGVudW0gYW5kIGVudW0gY2xhc3M6Cgo+
ID4+ICAgZW51bSBhc2RhCj4gPj4gICAgIHsKPiA+PiAgICAgICBhc2QKPiA+PiAgICAgfTsKCj4g
Pj4gICBlbnVtIGNsYXNzIGFzYXNkYXMKPiA+PiAgICAgewo+ID4+ICAgICAgIGFzZGEKPiA+PiAg
ICAgfTsKCj4gPiBZZXMuCgo+ID4+IFRoZXNlIHNob3VsZCBiZSBpbmRlbnRlZCBzYW1lIGFzIHN0
cnVjdCBwZXIKPiA+PiBodHRwczovL3d3dy5nbnUub3JnL3ByZXAvc3RhbmRhcmRzL2h0bWxfbm9k
ZS9Gb3JtYXR0aW5nLmh0bWwjaW5kZXgtZW51bS10eXBlc18wMDJjLWZvcm1hdHRpbmcKPiA+PiAo
d2VsbCwgZW51bSBjbGFzcyBpc24ndCBtZW50aW9uZWQsIGJ1dCBJIHNlZSBubyByZWFzb24gdG8g
YWN0IGRpZmZlcmVudCwKPiA+PiBhbmQgR0NDIGFwcGVhcnMgdG8gZG8gdGhpcywgc28gaXQnZCBi
ZSBjb252ZW5pZW50IHRvIGtlZXAgc3RydWN0LWxpa2UKPiA+PiBmb3JtYXR0aW5nKS4KCj4gPiBZ
ZXMuCgo+ID4+IFdoZW4gdXNpbmcgQy1jIEMtcywgaXQgYXBwZWFycyB0aGF0IEMgYW5kIEMrKyBt
b2RlIGRvIG5vdCBldmVuIHJlY29nbml6ZQo+ID4+IGVudW0gYXMgYSBjbGFzcy1vcGVuLCBpbnN0
ZWFkIGRvaW5nIGJyYWNlLWxpc3Qtb3Blbi4KCj4gPiBZZXMuICBUaGlzIGJ1ZyBoYXMgY29tZSB1
cCBhdCBsZWFzdCBvbmNlIGJlZm9yZSwgb24gMTkgRmVicnVhcnkgMjAxNCwgaW4gYQo+ID4gcG9z
dCB0byBidWctY2MtbW9kZUBnbnUub3JnIGZyb20gWHVlIEZ1cWlhbywgU3ViamVjdDogQ0MgTW9k
ZSA1LjMyLjUKPiA+IChDL2wpOyBUaGUgaW5kZW50YXRpb24gb2YgYGVudW0nIG9mIHRoZSBkZWZh
dWx0IGBnbnUnIHN0eWxlIGlzIHdyb25nPwo+ID4gQWZ0ZXIgaGF2aW5nIGNvbnNpZGVyZWQgdGhl
IG1hdHRlciBmb3Igc29tZSB0aW1lLCBJIGFuc3dlcmVkIG9uIDMgTWFyY2gKPiA+IDIwMTQgYXMg
Zm9sbG93czoKCj4gPiAgICAgRXZlbiB0aG91Z2ggdGhlcmUncyBhIGJ1ZywgaXQncyBiZWVuIHRo
ZXJlIGZvciBhIF92ZXJ5XyBsb25nIHRpbWUKPiA+ICAgICAoc2luY2UgYmVmb3JlIDE5OTcpLCBz
dWNoIGEgbG9uZyB0aW1lIHRoYXQgaXQgd291bGQgY2F1c2UgY2hhb3MgaWYKPiA+ICAgICBpdCB3
ZXJlIHRvIGJlIGZpeGVkLiAgWW91IGNhbiBzZWUgbWFueSBleGFtcGxlcyBvZiB0aGlzIHdyb25n
IGVudW0KPiA+ICAgICBpbmRlbnRhdGlvbiBhbGwgdGhyb3VnaCB0aGUgRW1hY3MgQyBzb3VyY2Us
IGFuZCBwcm9iYWJseSB0aHJvdWdob3V0Cj4gPiAgICAgdGhlIGVudGlyZSBHTlUgcHJvamVjdC4K
Cj4gPiAgICAgSWYgdGhpcyBidWcgd2VyZSB0byBiZSBmaXhlZCwgaW5jb25zaXN0ZW50IChldmVu
IGlmIGNvcnJlY3QpCj4gPiAgICAgaW5kZW50YXRpb24gd291bGQgc3RhcnQgY3JlZXBpbmcgaW50
byB0aG91c2FuZHMgb2YgZmlsZXMuICBJIHRoaW5rCj4gPiAgICAgaXQncyBiZXN0IGxlZnQgYXMg
aXQgaXMsIHVuc2F0aXNmYWN0b3J5IHRob3VnaCB0aGF0IGJlLgoKPiBBcyBhIGRhdGEgcG9pbnQg
aGVyZSwgdGhlIGNvcnJlY3QgaW5kZW50YXRpb24gaXMgcHJlc2VudCBhbGwgb3ZlciBHQ0MKPiAo
d2hpY2ggaGFzIHBlb3BsZSB1c2luZyBldmVyeXRoaW5nIGZyb20gdmkgb3ZlciBub3RlcGFkKysg
dG8gVlNjb2RlLCBhbmQKPiBuYXR1cmFsbHksIEVtYWNzKSwgYnV0IGl0IGlzIG1peGVkIHVwLCBw
cmVzdW1hYmx5IHBhcnRpYWxseSBhcyBhIHJlc3VsdAo+IG9mIHRoaXMgYnVnLCBzbyBJJ2QgcHJl
ZmVyIGlmIHRoZSBlZGl0b3Igd291bGQgRFRSVCBPT1RCLgoKVGhhbmtzLiAgSSd2ZSBqdXN0IHdy
aXR0ZW4gYSBsaXR0bGUgQVdLIHNjcmlwdCB0byBjb3VudCBvY2N1cnJlbmNlcyBvZgp0aGUgInN0
YW5kYXJkIiBpbmRlbnRhdGlvbiAodGhlIG9wZW5pbmcgYnJhY2UgZGlyZWN0bHkgdW5kZXIgZW51
bSBpbgpjb2x1bW4gMCkgYW5kICJub24tc3RhbmRhcmQiIGluZGVudGF0aW9uICh0aGUgb3Blbmlu
ZyBicmFjZSBpbmRlbnRlZAp1bmRlciBlbnVtIGluIGNvbHVtbiAwKS4gIFRoZSByZXN1bHRzIGhh
dmUgc3VycHJpc2VkIG1lIHNvbWV3aGF0LgoKSW4gIm15IiB2ZXJzaW9uIG9mIGdjYy0xMy4zLjEs
IHRoZXJlIGFyZSA5NDcgc3RhbmRhcmQgaW5kZW50YXRpb25zIGFuZCA4MQpub24tc3RhbmRhcmQu
ICBFdmVuIGluIHRoZSBFbWFjcyBzb3VyY2VzICguYywgLmgsIC5tLCBhbmQgLmNjKSB3ZSBoYXZl
IDc5CnN0YW5kYXJkIHRvIDE0OSBub24tc3RhbmRhcmQuICBUaGF0J3MgfjM1JSBvZiBlbnVtcyBs
b29raW5nIGxpa2UgdGhleSd2ZQpiZWVuIGluZGVudGVkIGJ5IHByaXZhdGUgQ0MgTW9kZSBzdHls
ZXMsIG9yIGJ5IGhhbmQuCgpTbyBteSByZXNlcnZhdGlvbnMgZnJvbSB0ZW4geWVhcnMgYWdvIGFi
b3V0IHBvc3NpYmxlIGNoYW9zIHdlcmUKbWlzcGxhY2VkOyB0aGlzIGNoYW9zIGhhcyBhbHJlYWR5
IGhhcHBlbmVkLgoKQXMgYW4gYWRkaXRpb25hbCBmYWN0b3IsIHRoZSBuZXdpc2ggbW9kZXMsIGMt
dHMtbW9kZSwgYysrLXRzLW1vZGUsIGV0Yy4sCmluZGVudCBpbiB0aGUgc3RhbmRhcmQgZmFzaGlv
bi4gIEFsc28sIHRoZXNlIG1vZGVzIGFyZSBoYXJkbHkgdGhlIGNhdXNlCm9mIHRoZSBzdGFuZGFy
ZCBpbmRlbnRhdGlvbiBpbiB0aGUgRW1hY3Mgc291cmNlcywgbWFueSBvZiB3aGljaCBkYXRlIGJh
Y2sKbWFueSB5ZWFycy4KClNvIGl0IG5vdyBzZWVtcyBjbGVhciB0aGF0IHRoZSBkZWNpc2lvbiBu
b3QgdG8gZml4IHRoZSBidWcgaW4gMjAxNCB3YXMgYQptaXN0YWtlLiAgSSBhZ3JlZSB3aXRoIHlv
dSwgaXQgc2hvdWxkIGJlIGZpeGVkIG5vdy4KCj4gQWxzbywgaWYgdGhlcmUgaXMgaW50ZW50aW9u
IHRvIHVzZSBhdXRvbWF0aWMgY29kZSBmb3JtYXR0aW5nIHRvb2xzLAo+IHdoaWNoIHNvbWUgaGF2
ZSBleHByZXNzZWQgYXMgZGVzaXJhYmxlIGZvciB0aGUgdG9vbGNoYWluIHByb2plY3RzIChhbmQg
SQo+IGRvbid0IGRpc2FncmVlIC0gaGVscHMgcGVvcGxlIHdobyBhcmVuJ3QgdXNpbmcgRW1hY3Mg
dG8gZ2V0IGluZGVudCByaWdodAo+IGVhc2lseSA7LSkgKSwgaGF2aW5nIGluY29ycmVjdCBpbmRl
bnRhdGlvbiBieSB0aGUgZWRpdG9yIHdpbGwgYmUKPiBidXJkZW5zb21lLCBhcyBpdCdkIHJlc3Vs
dCBpbiB0aGUgZWRpdG9yIGFuZCBmb3JtYXR0ZXIgZmlnaHRpbmcgb2Z0ZW4uCgo+IEFuZCwgZ2l2
ZW4gdGhhdCBub2JvZHkgKEFGQUlLKSB1c2VzIEVtYWNzIHRvIG1hc3MtcmVpbmRlbnQgY29kZSwg
SQo+IHN1c3BlY3QgdGhlIGZhbGxvdXQgb2YgYSBmaXggd2lsbCBiZSBncmFkdWFsIGFuZCBzaWxl
bnQuCgo+IEFzIGFuIGFsdGVybmF0aXZlIHRvIGZpeGluZyB0aGlzIGJ1ZyBzbyB0aGF0IHRoZSB0
b2tlbiBpcyByZWNvZ25pemVkIGFzCj4gYSBzdHJ1Y3QsIHdlIGNvdWxkIGhhdmUgYSBuZXcgdG9r
ZW4gZm9yIGVudW0gdGhhdCBkb2VzIGdldCBpbmRlbnRlZAo+IGNvcnJlY3RseSBPT1RCIGFuZCB0
aGF0IGFmZmVjdGVkIHByb2plY3RzIGFkanVzdCB0byBhdm9pZCB0cm91YmxlIGluCj4gdGhlaXIg
Y29kZWJhc2VzLgoKVGhhdCBpcyBvbmUgcG9zc2liaWxpdHksIHllcy4gIEl0IHNlZW1zIGNsZWFy
IHRoYXQgcGFyc2luZyBlbnVtCmNvbnN0cnVjdHMgYXMgYnJhY2UtbGlzdHMgaXMgc3Vib3B0aW1h
bCwgYnV0IEkgZmVlbCB0aGF0IHBhcnNpbmcgdGhlbSBhcwpzdHJ1Y3RzLCBhbHRob3VnaCBlYXN5
LCB3b3VsZCBiZSB0YWtpbmcgdGhpbmdzIGp1c3QgdG9vIGZhci4gIFNvIEkgdGhpbmsKbmV3IHN5
bWJvbHMgZW51bS1vcGVuLCBldGMuLCBhcmUgdGhlIGJlc3Qgd2F5IHRvIGdvLCBldmVuIHRob3Vn
aCB0aGlzIGlzCnF1aXRlIGEgbG90IG9mIHdvcmsgKGUuZy4gYW1lbmRpbmcgdGhlIENDIE1vZGUg
bWFudWFsLCB0aGUgdGVzdCBzdWl0ZSwKLi4uLikuCgpTbywgSSB3aWxsIGZpeCB0aGlzIGJ1Zy4K
ClsgLi4uLiBdCgo+IE5vIHByb2JsZW0gLSB0aGFua3MgZm9yIHJlc3BvbmRpbmcgOi0pCgo+IEhh
dmUgYSBsb3ZlbHkgZGF5Lgo+IC0tIAo+IEFyc2VuIEFyc2Vub3ZpxIcKCi0tIApBbGFuIE1hY2tl
bnppZSAoTnVyZW1iZXJnLCBHZXJtYW55KS4KCgoK