Subject: Re: bug#59038: loading this base64 file makes emacs -Q 28.2 peg a core infinitely

From: Gerd Möllmann <[email-masked]>
Date: Sat, 05 Nov 2022 06:12:37 +0100

"Chris Hecker" <[email-masked]> writes:

> gunzip this file (it's a c header file base64 encoded from
> googlesource.com) to Looper.h and load it with 28.2 emacs -Q and it'll
> infinite loop pegging one core.

Thanks for the report, Chris.

This is reproducible with master fd3f51b7c3a6649ee3db12d33b056b1afdbfa7e9.

It might be related to cc-mode, so I've CC'd Alan.  Emacs goes into an
infloop while font-locking the encoded .h file.  Below are some Lisp
backtraces from interrupting the loop:

(unsigned char *) data = 0x0000000100280ecb "skip-syntax-backward"
(unsigned char *) data = 0x000000010328e580 "c-beginning-of-current-token"
(unsigned char *) data = 0x000000010328f9e0 "c-update-brace-stack"
(unsigned char *) data = 0x000000010328fb40 "c-brace-stack-at"
(unsigned char *) data = 0x000000010328fb60 "c-bs-at-toplevel-p"
(unsigned char *) data = 0x000000010328fcd0 "c-find-decl-spots"
(unsigned char *) data = 0x00000001032c96d8 "c-font-lock-declarations"
(unsigned char *) data = 0x0000000104b79b52 "font-lock-fontify-keywords-region"
(unsigned char *) data = 0x0000000104b7f7d5 "font-lock-default-fontify-region"
(unsigned char *) data = 0x00000001032fc2f8 "c-font-lock-fontify-region"
(unsigned char *) data = 0x0000000104bcf23f "font-lock-fontify-region"
PVEC_COMPILED
(unsigned char *) data = 0x000000010027b168 "run-hook-wrapped"
(unsigned char *) data = 0x0000000104b6b2f2 "jit-lock--run-functions"
(unsigned char *) data = 0x0000000104b9887d "jit-lock-fontify-now"
(unsigned char *) data = 0x0000000104bb05ff "jit-lock-function"
(unsigned char *) data = 0x000000010027f89f "redisplay_internal (C function)"

(unsigned char *) data = 0x0000000100280f1c "parse-partial-sexp"
(unsigned char *) data = 0x000000010328f640 "c-syntactic-re-search-forward"
(unsigned char *) data = 0x000000010328f9e0 "c-update-brace-stack"
(unsigned char *) data = 0x000000010328fb40 "c-brace-stack-at"
(unsigned char *) data = 0x000000010328fb60 "c-bs-at-toplevel-p"
(unsigned char *) data = 0x000000010328fcd0 "c-find-decl-spots"
(unsigned char *) data = 0x00000001032c96d8 "c-font-lock-declarations"
(unsigned char *) data = 0x0000000104b79b52 "font-lock-fontify-keywords-region"
(unsigned char *) data = 0x0000000104b7f7d5 "font-lock-default-fontify-region"
(unsigned char *) data = 0x00000001032fc2f8 "c-font-lock-fontify-region"
(unsigned char *) data = 0x0000000104bcf23f "font-lock-fontify-region"
PVEC_COMPILED
(unsigned char *) data = 0x000000010027b168 "run-hook-wrapped"
(unsigned char *) data = 0x0000000104b6b2f2 "jit-lock--run-functions"
(unsigned char *) data = 0x0000000104b9887d "jit-lock-fontify-now"
(unsigned char *) data = 0x0000000104bb05ff "jit-lock-function"
(unsigned char *) data = 0x000000010027f89f "redisplay_internal (C function)"

(unsigned char *) data = 0x00000001002783c1 "re-search-forward"
(unsigned char *) data = 0x000000010328f640 "c-syntactic-re-search-forward"
(unsigned char *) data = 0x000000010328f9e0 "c-update-brace-stack"
(unsigned char *) data = 0x000000010328fb40 "c-brace-stack-at"
(unsigned char *) data = 0x000000010328fb60 "c-bs-at-toplevel-p"
(unsigned char *) data = 0x000000010328fcd0 "c-find-decl-spots"
(unsigned char *) data = 0x00000001032c96d8 "c-font-lock-declarations"
(unsigned char *) data = 0x0000000104b79b52 "font-lock-fontify-keywords-region"
(unsigned char *) data = 0x0000000104b7f7d5 "font-lock-default-fontify-region"
(unsigned char *) data = 0x00000001032fc2f8 "c-font-lock-fontify-region"
(unsigned char *) data = 0x0000000104bcf23f "font-lock-fontify-region"
PVEC_COMPILED
(unsigned char *) data = 0x000000010027b168 "run-hook-wrapped"
(unsigned char *) data = 0x0000000104b6b2f2 "jit-lock--run-functions"
(unsigned char *) data = 0x0000000104b9887d "jit-lock-fontify-now"
(unsigned char *) data = 0x0000000104bb05ff "jit-lock-function"
(unsigned char *) data = 0x000000010027f89f "redisplay_internal (C function)"