bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#18749: 24.3.94; CC Mode 5.32.5 (C/l); cc-mode state cache failure le


From: Michael Welsh Duggan
Subject: bug#18749: 24.3.94; CC Mode 5.32.5 (C/l); cc-mode state cache failure leading to bad indentation
Date: Thu, 16 Oct 2014 17:12:25 -0400
User-agent: Gnus/5.130008 (Ma Gnus v0.8) Emacs/25.0.50 (gnu/linux)

A consistent c-mode indentation error that causes bad indentation, much
cursing, and gnashing of teeth.  This occurs in the latest emacs-24
branch (and trunk).

>From emacs -Q, using the attached file:

Attachment: rwuniqsetup.c.before.2
Description: Text document

    M-x c-toggle-parse-state-debug
    C-x C-f rwuniqsetup.c.before.2
    C-s ipaddr_rec_to_bin RET
    C-v

At this point you should see the following in *Messages*:

    c-parse-state inconsistency at 46940: using cache: nil, from scratch: 
((43406 . 45002))
    Old state:
    (setq c-state-cache nil  c-state-cache-good-pos 45713  
c-state-nonlit-pos-cache '(76939 73939 70939 67939 64939 61939 58939 55939 
52939 49939 46939 43114 39291 36291 33291 30291 27178 24178 21178 18178 15145 
12046 9013 6002 3002)  c-state-nonlit-pos-cache-limit 76939  
c-state-semi-nonlit-pos-cache '(45291 42291 39291 36291 33291 30291 27094 24058 
21058 18058 15058 12046 9013 6001 3001)  c-state-semi-nonlit-pos-cache-limit 
45291  c-state-brace-pair-desert '(1 . 46940)  c-state-point-min 1  
c-state-point-min-lit-type nil  c-state-point-min-lit-start nil  
c-state-min-scan-pos 1  c-state-old-cpp-beg nil  c-state-old-cpp-end nil  
c-parse-state-point 46940)

At this point, indentation is having problems.  Try hitting TAB on line
1371, for example.  Or line 1374 for a complete failure to indent at
all.


Emacs  : GNU Emacs 24.3.94.1 (x86_64-unknown-linux-gnu, X toolkit)
 of 2014-10-16 on maru2
Package: CC Mode 5.32.5 (C/l)
Buffer Style: gnu
c-emacs-features: (pps-extended-state col-0-paren posix-char-classes 
gen-string-delim gen-comment-delim syntax-properties 1-bit)

current state:
==============
(setq
 c-basic-offset 4
 c-comment-only-line-offset '(0 . 0)
 c-indent-comment-alist '((anchored-comment column . 0) (end-block space . 1)
                          (cpp-end-block space . 2))
 c-indent-comments-syntactically-p nil
 c-block-comment-prefix ""
 c-comment-prefix-regexp '((pike-mode . "//+!?\\|\\**") (awk-mode . "#+")
                           (other . "//+\\|\\**"))
 c-doc-comment-style '((java-mode . javadoc) (pike-mode . autodoc)
                       (c-mode . gtkdoc))
 c-cleanup-list '(scope-operator)
 c-hanging-braces-alist '((substatement-open before after)
                          (arglist-cont-nonempty))
 c-hanging-colons-alist nil
 c-hanging-semi&comma-criteria '(c-semi&comma-inside-parenlist)
 c-backslash-column 48
 c-backslash-max-column 72
 c-special-indent-hook '(c-gnu-impose-minimum)
 c-label-minimum-indentation 1
 c-offsets-alist '((inexpr-class . +)
                   (inexpr-statement . +)
                   (lambda-intro-cont . +)
                   (inlambda . c-lineup-inexpr-block)
                   (template-args-cont c-lineup-template-args +)
                   (incomposition . +)
                   (inmodule . +)
                   (innamespace . +)
                   (inextern-lang . +)
                   (composition-close . 0)
                   (module-close . 0)
                   (namespace-close . 0)
                   (extern-lang-close . 0)
                   (composition-open . 0)
                   (module-open . 0)
                   (namespace-open . 0)
                   (extern-lang-open . 0)
                   (objc-method-call-cont
                    c-lineup-ObjC-method-call-colons
                    c-lineup-ObjC-method-call
                    +
                    )
                   (objc-method-args-cont . c-lineup-ObjC-method-args)
                   (objc-method-intro . [0])
                   (friend . 0)
                   (cpp-define-intro c-lineup-cpp-define +)
                   (cpp-macro-cont . +)
                   (cpp-macro . [0])
                   (inclass . +)
                   (stream-op . c-lineup-streamop)
                   (arglist-cont-nonempty
                    c-lineup-gcc-asm-reg
                    c-lineup-arglist
                    )
                   (arglist-cont c-lineup-gcc-asm-reg 0)
                   (comment-intro
                    c-lineup-knr-region-comment
                    c-lineup-comment
                    )
                   (catch-clause . 0)
                   (else-clause . 0)
                   (do-while-closure . 0)
                   (access-label . -)
                   (case-label . 0)
                   (substatement . +)
                   (statement-case-intro . +)
                   (statement . 0)
                   (brace-entry-open . 0)
                   (brace-list-entry . 0)
                   (brace-list-intro . +)
                   (brace-list-close . 0)
                   (block-close . 0)
                   (block-open . 0)
                   (inher-cont . c-lineup-multi-inher)
                   (inher-intro . +)
                   (member-init-cont . c-lineup-multi-inher)
                   (member-init-intro . +)
                   (annotation-var-cont . +)
                   (annotation-top-cont . 0)
                   (topmost-intro . 0)
                   (knr-argdecl . 0)
                   (func-decl-cont . +)
                   (inline-close . 0)
                   (class-close . 0)
                   (class-open . 0)
                   (defun-block-intro . +)
                   (defun-close . 0)
                   (defun-open . 0)
                   (c . c-lineup-C-comments)
                   (string . c-lineup-dont-change)
                   (topmost-intro-cont
                    first
                    c-lineup-topmost-intro-cont
                    c-lineup-gnu-DEFUN-intro-cont
                    )
                   (brace-list-open . +)
                   (inline-open . 0)
                   (arglist-close . c-lineup-arglist)
                   (arglist-intro . c-lineup-arglist-intro-after-paren)
                   (statement-cont . +)
                   (statement-case-open . +)
                   (label . 0)
                   (substatement-label . 0)
                   (substatement-open . +)
                   (knr-argdecl-intro . 5)
                   (statement-block-intro . +)
                   )
 c-buffer-is-cc-mode 'c-mode
 c-tab-always-indent t
 c-syntactic-indentation t
 c-syntactic-indentation-in-macros t
 c-ignore-auto-fill '(string cpp code)
 c-auto-align-backslashes t
 c-backspace-function 'backward-delete-char-untabify
 c-delete-function 'delete-char
 c-electric-pound-behavior nil
 c-default-style '((java-mode . "java") (awk-mode . "awk") (other . "gnu"))
 c-enable-xemacs-performance-kludge-p nil
 c-old-style-variable-behavior nil
 defun-prompt-regexp nil
 tab-width 8
 comment-column 32
 parse-sexp-ignore-comments t
 parse-sexp-lookup-properties t
 auto-fill-function nil
 comment-multi-line t
 comment-start-skip "\\(//+\\|/\\*+\\)\\s *"
 fill-prefix nil
 fill-column 70
 paragraph-start "[     ]*\\(//+\\|\\**\\)[     ]*$\\|^\f"
 adaptive-fill-mode t
 adaptive-fill-regexp "[        ]*\\(//+\\|\\**\\)[     ]*\\([  
]*\\([-–!|#%;>*·•‣⁃◦]+[         ]*\\)*\\)"
 )

In GNU Emacs 24.3.94.1 (x86_64-unknown-linux-gnu, X toolkit)
 of 2014-10-16 on maru2
Repository revision: 117589 rgm@gnu.org-20141016014710-zqpn29rkvl69dg14
Windowing system distributor `The X.Org Foundation', version 11.0.11601000
System Description:     Debian GNU/Linux unstable (sid)

Configured using:
 `configure --without-toolkit-scroll-bars --with-x-toolkit=lucid
 'CFLAGS=-Og -ggdb' --with-wide-int'

Important settings:
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Message

Minor modes in effect:
  mml-mode: t
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  auto-fill-function: message-do-auto-fill
  transient-mark-mode: t
  abbrev-mode: t

Recent input:
C-x C-f ~ / t m <tab> <tab> b <tab> <return> C-s _ 
C O M A P <backspace> <backspace> P C-g C-g C-x k <return> 
M-x c - t o <tab> p <tab> <return> C-x C-f M-p <return> 
C-s _ C O M P A R E <return> C-v C-v C-v C-v <help-echo> 
M-x c - r e p <tab> <return> y S t a t e SPC c a c 
h e SPC f a i l u r e SPC l e a d i n g SPC t o SPC 
b a d SPC i n d e n t a t i o n <return> C-n C-n C-n 
C-p C-p C-x 1 C-p C-p C-p C-p C-e M-b M-b <M-backspace> 
C-n C-n C-p C-p C-p C-a C-v C-v C-v C-v <escape> < 
M-x r e p o r t - e m <tab> <return>

Recent messages:
Old state:
(setq c-state-cache '(47851 47758 47502 (47151 . 47403))  
c-state-cache-good-pos 47852  c-state-nonlit-pos-cache '(76939 73939 70939 
67939 64939 61939 58939 55939 52939 49939 46939 43114 39291 36291 33291 30291 
27178 24178 21178 18178 15145 12046 9013 6002 3002)  
c-state-nonlit-pos-cache-limit 76939  c-state-semi-nonlit-pos-cache '(45291 
42291 39291 36291 33291 30291 27094 24058 21058 18058 15058 12046 9013 6001 
3001)  c-state-semi-nonlit-pos-cache-limit 45291  c-state-brace-pair-desert nil 
 c-state-point-min 1  c-state-point-min-lit-type nil  
c-state-point-min-lit-start nil  c-state-min-scan-pos 1  c-state-old-cpp-beg 
nil  c-state-old-cpp-end nil  c-parse-state-point 47852)
c-parse-state inconsistency at 47350: using cache: ((47287 . 47348) 47151 
(47051 . 47131)), from scratch: ((43406 . 45002))
Old state:
(setq c-state-cache '((47287 . 47348) 47151 (47051 . 47131))  
c-state-cache-good-pos 47348  c-state-nonlit-pos-cache '(76939 73939 70939 
67939 64939 61939 58939 55939 52939 49939 46939 43114 39291 36291 33291 30291 
27178 24178 21178 18178 15145 12046 9013 6002 3002)  
c-state-nonlit-pos-cache-limit 76939  c-state-semi-nonlit-pos-cache '(45291 
42291 39291 36291 33291 30291 27094 24058 21058 18058 15058 12046 9013 6001 
3001)  c-state-semi-nonlit-pos-cache-limit 45291  c-state-brace-pair-desert nil 
 c-state-point-min 1  c-state-point-min-lit-type nil  
c-state-point-min-lit-start nil  c-state-min-scan-pos 1  c-state-old-cpp-beg 
nil  c-state-old-cpp-end nil  c-parse-state-point 47350)
Do you want to submit a report on CC Mode? (y or n) y
Parsing /home/md5i/.mailrc... done
Mark set
Formatting bug report buffer.......
Please enter your report.  Type C-c C-c to send, C-c C-k to abort.

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug sendmail gnus-util message format-spec
rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 ietf-drums mm-util help-fns mail-prsvr mailabbrev
mail-utils gmm-utils mailheader reporter misearch multi-isearch cc-langs
cl-loaddefs cl-lib cc-mode cc-fonts easymenu cc-guess cc-menus cc-cmds
cc-styles cc-align cc-engine cc-vars cc-defs time-date tooltip electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win x-dnd tool-bar
dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cham georgian
utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean
japanese hebrew greek romanian slovak czech european ethiopic indian
cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev
minibuffer nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
dbusbind gfilenotify dynamic-setting system-font-setting
font-render-setting x-toolkit x multi-tty emacs)

Memory information:
((conses 16 110171 9329)
 (symbols 48 20183 0)
 (miscs 40 172 211)
 (strings 32 17591 3830)
 (string-bytes 1 597205)
 (vectors 16 12254)
 (vector-slots 8 419544 7579)
 (floats 8 67 354)
 (intervals 56 1339 33)
 (buffers 960 15)
 (heap 1024 19484 929))



-- 
Michael Welsh Duggan
(md5i@md5i.com)

reply via email to

[Prev in Thread] Current Thread [Next in Thread]