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

From: Alan Mackenzie <[email-masked]>
Date: Sun, 2 May 2021 15:01:05 +0000

Hello, Basil.

On Sun, May 02, 2021 at 14:33:29 +0100, Basil L. Contovounesios wrote:
> 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.

Thank you indeed for clearing this up.  The standalone CC Mode version
was actually OK here, which made it harder to find.

I think I'm still right about not being able to instrument
c-guess-basic-syntax and friends until the correct debug spec has been
loaded.  But who's going to be doing that, anyway?

I will correct this bug soon.

Thank you again.

> Thanks,

> -- 
> Basil

-- 
Alan Mackenzie (Nuremberg, Germany).