Subject: Re: bug#64450: 30.0.50; char-table-subtype aborts emacs
From: Eli Zaretskii <[email-masked]>
To: Arthur Miller <[email-masked]>
Cc: [email-masked]
Date: Sat, 08 Jul 2023 11:16:30 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: Arthur Miller <[email-masked]>
> Date: Tue, 04 Jul 2023 00:47:56 +0200
> 
> 
> 
> > (insert (pp Info-mode-map))
> > 
> > (keymap
> >  #^[nil nil keymap
> > 	#^^[3 0 nil nil nil nil nil nil nil nil nil Info-next-reference nil nil nil Info-follow-nearest-node nil nil nil nil nil nil nil nil nil nil nil nil nil
> > 	
> > I have removed rest of printed code for the brewity for the mail, but if you
> > eval above and place the cursor somewhere after the "keymap", or before the char
> > table, and then try to read the subtype with:
> > 
> > (char-table-subtype (read (current-buffer)))
> > 
> > Then Emacs dumps core in version 26 up to current master. Emacs 25 actually ends
> > up in debugger instead of crashing:
> 
> (It is not a crash, it's abort.)
> 
> Please report a bug with all these details.
> 
> AFAICT, this happens because the debugger now uses cl-print to display
> objects in the backtrace, and cl-print calls type-of, which aborts if
> presented with a sub-char-table:
> 
>         /* "Impossible" cases.  */
> 	case PVEC_MISC_PTR:
>         case PVEC_OTHER:
>         case PVEC_SUB_CHAR_TABLE:
>         case PVEC_FREE: ;
>         }
>       emacs_abort ();

Fixed on the master branch by a patch proposed by Stefan Monnier on
emacs-devel.  See

  https://lists.gnu.org/archive/html/emacs-devel/2023-07/msg00121.html.