Subject: Re: bug#48100: 28.0.50; inserting too many lines into a fresh cpp file breaks the buffer

From: "Basil L. Contovounesios" <[email-masked]>
Date: Sun, 02 May 2021 14:33:29 +0100

Alan Mackenzie <[email-masked]> writes:

>> Incidentally, "C-u C-M-x" applied to c-guess-basic-syntax gives a long and
>> complicated backtrace that starts with:
>
>> Debugger entered--Lisp error: (invalid-read-syntax "Expected" "lambda")
>>   edebug-syntax-error("Expected" "lambda")
>
> That, I can reproduce.  After a bit of experimentation, it would appear
> that this is due to the lack of an edebug-spec for the macro
> c-save-buffer-state.

Or rather, a recent change in its Edebug spec.

> To confirm this in the most basic manner, type
>
>    M-: (def-edebug-spec c-save-buffer-state let*)

Until recently, the Edebug spec of c-save-buffer-state was set twice:
once by its declare form (as 't'), and later by def-edebug-spec (as
'let*').  The latter was recently removed:

CC Mode: Put debug specs inside declare forms.  Add missing debug specs.
31f8ae53be 2021-04-15 10:11:20 +0000
https://git.sv.gnu.org/cgit/emacs.git/commit/?id=31f8ae53beb9bada58750160c1bf7f867ecd442e

This suggests that the remaining declare form is at fault.

Thanks,

-- 
Basil