Subject: bug#13100: 24.2; c-guess-basic-syntax of cc-engine returned wrong syntactic context if init list of C++ class constructor is too long

From: Yangyingchao <[email-masked]>
Date: Thu, 6 Dec 2012 11:31:48 +0800

Features:

In GNU Emacs 24.2.1 (x86_64-apple-darwin11, NS apple-appkit-1138.51)
 of 2012-11-19 on yiyang-macmini
Windowing system distributor `Apple', version 10.3.1138
Configured using:
 `configure '--prefix=/opt/Funtoo/usr' '--build=x86_64-apple-darwin11'
 '--host=x86_64-apple-darwin11' '--mandir=/opt/Funtoo/usr/share/man'
 '--infodir=/opt/Funtoo/usr/share/info'
 '--datadir=/opt/Funtoo/usr/share' '--sysconfdir=/opt/Funtoo/etc'
 '--localstatedir=/opt/Funtoo/var/lib' '--disable-dependency-tracking'
 '--program-suffix=-emacs-24'
 '--infodir=/opt/Funtoo/usr/share/info/emacs-24'
 '--enable-locallisppath=/opt/Funtoo/etc/emacs:/opt/Funtoo/usr/share/emacs/site-lisp'
 '--with-crt-dir=/usr/lib' '--with-gameuser=games'
 '--without-compress-info' '--disable-maintainer-mode'
 '--without-hesiod' '--without-kerberos' '--without-kerberos5'
 '--without-gpm' '--without-dbus' '--with-gnutls' '--with-xml2'
 '--without-selinux' '--with-wide-int' '--without-sound' '--with-ns'
 '--disable-ns-self-contained' '--without-x'
 'GENTOO_PACKAGE=app-editors/emacs-24.2'
 'build_alias=x86_64-apple-darwin11' 'host_alias=x86_64-apple-darwin11'
 'CFLAGS=-O2 -pipe -march=nocona' 'LDFLAGS=-Wl,-dead_strip_dylibs'
 'CPPFLAGS=''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: nil
  value of $XMODIFIERS: nil
  locale-coding-system: nil
  default enable-multibyte-characters: t

Major mode: C++/l

Minor modes in effect:
  yas-global-mode: t
  yas-minor-mode: t
  auto-insert-mode: t
  global-auto-complete-mode: t
  auto-complete-mode: t
  xgtags-mode: t
  semantic-mru-bookmark-mode: t
  semantic-idle-summary-mode: t
  semantic-idle-scheduler-mode: t
  semantic-decoration-mode: t
  senator-minor-mode: t
  which-function-mode: t
  semantic-show-parser-state-mode: t
  hide-ifdef-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  shell-dirtrack-mode: t
  diff-auto-refine-mode: t
  flyspell-mode: t
  recentf-mode: t
  icomplete-mode: t
  global-edit-server-edit-mode: t
  display-time-mode: t
  global-cwarn-mode: t
  cwarn-mode: t
  show-paren-mode: t
  auto-image-file-mode: t
  tooltip-mode: t
  mouse-wheel-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
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t

Recent input:
C-n C-o C-y C-k C-x C-s C-p C-p C-p C-p C-p M-f M-f 
M-f M-f M-f C-a C-, C-v C-v C-s s t d : : C-f C-b <M-backspace> 
M-f M-f M-f M-f C-f C-f C-f C-f C-f C-f <M-backspace> 
M-b <return> M-f M-f M-f M-f M-f M-b <return> M-f M-f 
M-f M-f M-f M-f M-b <return> C-a C-n C-p C-p C-n C-n 
C-n C-n C-. C-p C-p C-p C-SPC M-v C-p C-p C-p C-p C-p 
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-l C-p C-p C-w 
C-. C-o C-o C-y M-v C-p C-p C-p C-p C-p C-p C-p C-p 
C-p C-p C-p C-p C-p / / SPC @ t o d C-a C-SPC C-. C-w 
<backspace> C-x C-s C-p C-, M-x d e l e <tab> t r a 
<tab> <return> C-x C-s C-x C-f F r a m e <tab> L <tab> 
<backspace> L <return> C-v C-v C-, C-s \ r C-a C-l 
C-n C-n C-n C-e C-b C-b C-b C-b \ r C-x C-q \ r C-a 
C-p C-p C-p C-p C-p C-SPC C-n C-g C-n C-k C-k C-p C-k 
C-p C-e SPC C-d C-a C-n C-k C-k C-x C-s C-x o C-a C-p 
C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-p C-n C-n 
C-n C-a C-n C-n C-n C-n C-n C-l C-a C-SPC C-n C-n C-n 
C-n C-n C-n C-n C-n C-n C-w C-x C-s C-o c o n s t SPC 
v e c <tab> L a y e r P t r C-e & SPC l a y e r s SPC 
= SPC m _ p L a y M-n <backspace> <backspace> <backspace> 
<backspace> l a y e r P <tab> - > G e t L M-n M-n M-n 
<tab> ( C-e ; C-o <menu-bar> <help-menu> <send-ema
cs-bug-report>

Recent messages:
Mark set [6 times]
Wrote /Users/Work/scm_tj/tyang_scm_tj/client/c/core/nbservices/feature_111107_map3d/src/map/layermanager/UnifiedLayerManager.cpp [3 times]
[yas] snippet expanded. [2 times]
[yas] Snippet 0 exited. [3 times]
Auto-saving...done
Hiding...
Hiding done
Hiding...
Hiding done
Open /opt/Funtoo/usr/lib/gcc/x86_64-apple-darwin11/4.2.1/include/g++-v4/tr1/boost_shared_ptr.h

Load-path shadows:
/Users/yiyang/.emacs.d/site-lisp/graphviz-dot-mode/graphviz-dot-mode hides /Users/yiyang/.emacs.d/site-lisp/misc/graphviz-dot-mode
/Users/yiyang/.emacs.d/site-lisp/cflow/cflow-mode hides /Users/yiyang/.emacs.d/site-lisp/prog/cflow-mode
/Users/yiyang/.emacs.d/site-lisp/dropdown-list/dropdown-list hides /Users/yiyang/.emacs.d/site-lisp/yasnippet/dropdown-list
~/.emacs.d/site-lisp/modified/ede-linux hides /Users/yiyang/.emacs.d/site-lisp/cedet/ede/ede-linux
/Users/yiyang/.emacs.d/site-lisp/speedbar/speedbar-loaddefs hides /Users/yiyang/.emacs.d/site-lisp/cedet/speedbar/speedbar-loaddefs
/Users/yiyang/.emacs.d/site-lisp/speedbar/speedbar-load hides /Users/yiyang/.emacs.d/site-lisp/cedet/speedbar/speedbar-load
/Users/yiyang/.emacs.d/site-lisp/speedbar/sb-w3 hides /Users/yiyang/.emacs.d/site-lisp/cedet/speedbar/sb-w3
/Users/yiyang/.emacs.d/site-lisp/speedbar/sb-texinfo hides /Users/yiyang/.emacs.d/site-lisp/cedet/speedbar/sb-texinfo
/Users/yiyang/.emacs.d/site-lisp/speedbar/sb-rmail hides /Users/yiyang/.emacs.d/site-lisp/cedet/speedbar/sb-rmail
/Users/yiyang/.emacs.d/site-lisp/speedbar/sb-info hides /Users/yiyang/.emacs.d/site-lisp/cedet/speedbar/sb-info
/Users/yiyang/.emacs.d/site-lisp/speedbar/sb-html hides /Users/yiyang/.emacs.d/site-lisp/cedet/speedbar/sb-html
/Users/yiyang/.emacs.d/site-lisp/speedbar/sb-gud hides /Users/yiyang/.emacs.d/site-lisp/cedet/speedbar/sb-gud
/Users/yiyang/.emacs.d/site-lisp/speedbar/sb-ant hides /Users/yiyang/.emacs.d/site-lisp/cedet/speedbar/sb-ant
/Users/yiyang/.emacs.d/site-lisp/speedbar/rpm hides /Users/yiyang/.emacs.d/site-lisp/cedet/speedbar/rpm
/Users/yiyang/.emacs.d/site-lisp/speedbar/bigclock hides /Users/yiyang/.emacs.d/site-lisp/cedet/speedbar/bigclock
/Users/yiyang/.emacs.d/site-lisp/magit/rebase-mode hides /Users/yiyang/.emacs.d/site-lisp/version-control/magit/rebase-mode
/Users/yiyang/.emacs.d/site-lisp/magit/magit hides /Users/yiyang/.emacs.d/site-lisp/version-control/magit/magit
/Users/yiyang/.emacs.d/site-lisp/magit/magit-wip hides /Users/yiyang/.emacs.d/site-lisp/version-control/magit/magit-wip
/Users/yiyang/.emacs.d/site-lisp/magit/magit-topgit hides /Users/yiyang/.emacs.d/site-lisp/version-control/magit/magit-topgit
/Users/yiyang/.emacs.d/site-lisp/magit/magit-svn hides /Users/yiyang/.emacs.d/site-lisp/version-control/magit/magit-svn
/Users/yiyang/.emacs.d/site-lisp/magit/magit-stgit hides /Users/yiyang/.emacs.d/site-lisp/version-control/magit/magit-stgit
/Users/yiyang/.emacs.d/site-lisp/magit/magit-key-mode hides /Users/yiyang/.emacs.d/site-lisp/version-control/magit/magit-key-mode
/Users/yiyang/.emacs.d/site-lisp/magit/magit-blame hides /Users/yiyang/.emacs.d/site-lisp/version-control/magit/magit-blame
/Users/yiyang/.emacs.d/site-lisp/magit/magit-bisect hides /Users/yiyang/.emacs.d/site-lisp/version-control/magit/magit-bisect
/Users/yiyang/.emacs.d/site-lisp/yasnippet/extras/imported/html-mode/.yas-setup hides /Users/yiyang/.emacs.d/site-lisp/yasnippet/extras/imported/objc-mode/.yas-setup
/Users/yiyang/.emacs.d/site-lisp/yasnippet/extras/imported/html-mode/.yas-setup hides /Users/yiyang/.emacs.d/site-lisp/yasnippet/extras/imported/rails-mode/.yas-setup
/Users/yiyang/.emacs.d/site-lisp/yasnippet/extras/imported/html-mode/.yas-setup hides /Users/yiyang/.emacs.d/site-lisp/yasnippet/extras/imported/ruby-mode/.yas-setup
/Users/yiyang/.emacs.d/site-lisp/prog/cmake-mode hides /opt/Funtoo/usr/share/emacs/site-lisp/cmake/cmake-mode
/Users/yiyang/.emacs.d/site-lisp/cedet/speedbar/speedbar hides /opt/Funtoo/usr/share/emacs/24.2/lisp/speedbar
/Users/yiyang/.emacs.d/site-lisp/cedet/speedbar/sb-image hides /opt/Funtoo/usr/share/emacs/24.2/lisp/sb-image
/Users/yiyang/.emacs.d/site-lisp/cedet/common/ezimage hides /opt/Funtoo/usr/share/emacs/24.2/lisp/ezimage
/Users/yiyang/.emacs.d/site-lisp/cedet/speedbar/dframe hides /opt/Funtoo/usr/share/emacs/24.2/lisp/dframe
~/.emacs.d/site-lisp/modified/flyspell hides /opt/Funtoo/usr/share/emacs/24.2/lisp/textmodes/flyspell
~/.emacs.d/site-lisp/modified/flymake hides /opt/Funtoo/usr/share/emacs/24.2/lisp/progmodes/flymake
/Users/yiyang/.emacs.d/site-lisp/w3m/attic/rfc2368 hides /opt/Funtoo/usr/share/emacs/24.2/lisp/mail/rfc2368
/Users/yiyang/.emacs.d/site-lisp/magit/.dir-locals hides /opt/Funtoo/usr/share/emacs/24.2/lisp/gnus/.dir-locals
/Users/yiyang/.emacs.d/site-lisp/cedet/eieio/eieio hides /opt/Funtoo/usr/share/emacs/24.2/lisp/emacs-lisp/eieio
/Users/yiyang/.emacs.d/site-lisp/cedet/eieio/eieio-speedbar hides /opt/Funtoo/usr/share/emacs/24.2/lisp/emacs-lisp/eieio-speedbar
/Users/yiyang/.emacs.d/site-lisp/cedet/eieio/eieio-opt hides /opt/Funtoo/usr/share/emacs/24.2/lisp/emacs-lisp/eieio-opt
/Users/yiyang/.emacs.d/site-lisp/cedet/eieio/eieio-datadebug hides /opt/Funtoo/usr/share/emacs/24.2/lisp/emacs-lisp/eieio-datadebug
/Users/yiyang/.emacs.d/site-lisp/cedet/eieio/eieio-custom hides /opt/Funtoo/usr/share/emacs/24.2/lisp/emacs-lisp/eieio-custom
/Users/yiyang/.emacs.d/site-lisp/cedet/eieio/eieio-base hides /opt/Funtoo/usr/share/emacs/24.2/lisp/emacs-lisp/eieio-base
/Users/yiyang/.emacs.d/site-lisp/cedet/eieio/chart hides /opt/Funtoo/usr/share/emacs/24.2/lisp/emacs-lisp/chart
/Users/yiyang/.emacs.d/site-lisp/cedet/srecode/srecode hides /opt/Funtoo/usr/share/emacs/24.2/lisp/cedet/srecode
/Users/yiyang/.emacs.d/site-lisp/cedet/semantic/semantic hides /opt/Funtoo/usr/share/emacs/24.2/lisp/cedet/semantic
/Users/yiyang/.emacs.d/site-lisp/cedet/common/pulse hides /opt/Funtoo/usr/share/emacs/24.2/lisp/cedet/pulse
/Users/yiyang/.emacs.d/site-lisp/cedet/common/mode-local hides /opt/Funtoo/usr/share/emacs/24.2/lisp/cedet/mode-local
/Users/yiyang/.emacs.d/site-lisp/cedet/common/inversion hides /opt/Funtoo/usr/share/emacs/24.2/lisp/cedet/inversion
/Users/yiyang/.emacs.d/site-lisp/cedet/ede/ede hides /opt/Funtoo/usr/share/emacs/24.2/lisp/cedet/ede
/Users/yiyang/.emacs.d/site-lisp/cedet/common/data-debug hides /opt/Funtoo/usr/share/emacs/24.2/lisp/cedet/data-debug
/Users/yiyang/.emacs.d/site-lisp/cedet/common/cedet hides /opt/Funtoo/usr/share/emacs/24.2/lisp/cedet/cedet
/Users/yiyang/.emacs.d/site-lisp/cedet/common/cedet-idutils hides /opt/Funtoo/usr/share/emacs/24.2/lisp/cedet/cedet-idutils
/Users/yiyang/.emacs.d/site-lisp/cedet/common/cedet-global hides /opt/Funtoo/usr/share/emacs/24.2/lisp/cedet/cedet-global
/Users/yiyang/.emacs.d/site-lisp/cedet/common/cedet-files hides /opt/Funtoo/usr/share/emacs/24.2/lisp/cedet/cedet-files
/Users/yiyang/.emacs.d/site-lisp/cedet/common/cedet-cscope hides /opt/Funtoo/usr/share/emacs/24.2/lisp/cedet/cedet-cscope

(shadow sort mail-extr ede-emacs emacsbug message rfc822 mml mml-sec
mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils
mailheader sendmail rfc2047 rfc2045 ietf-drums mail-utils skeleton
semantic-tag-write misearch multi-isearch semanticdb-typecache pp
ede-locate locate vc-git semantic-tag-file semanticdb-file cedet-files
semantic-el semantic-bovine bovine-debug semantic-debug 99-proj
999-proj-qt 991-proj-map3d ede-cpp-root server 10-emacs-custome
02-rc-keybindings rect-mark artist picture rect 06-rc-complete
auto-complete-config yasnippet dropdown-list autoinsert 03-rc-prog-mode
kconfig-mode protobuf-mode cmake-mode batch-mode powershell-mode flymake
cflow-mode 100-private p4 auto-header member-function ctypes sourcepair
auto-complete popup xgtags ecb newcomment ecb-symboldef ecb-analyse
ecb-compatibility ecb-winman-support ecb-autogen autoload ecb-tod
ecb-cycle ecb-eshell ecb-help ecb-jde efc ecb-method-browser
ecb-semantic ecb-file-browser ecb-speedbar ecb-layout compile
ecb-create-layout ecb-compilation ecb-common-browser ecb-navigate
ecb-mode-line ecb-face tree-buffer ecb-upgrade ecb-cedet-wrapper
ecb-util silentcomp srecode-mode srecode-insert srecode-args
srecode-find srecode-ctxt srecode-compile srecode-table cogre-srecode
semantic-edit srecode-template-mode srecode-template srecode-template-wy
semantic-wisent wisent srecode-dictionary srecode-map semantic-m3
cedet-m3 semantic-mru-bookmark semantic-idle eldoc semantic-ectag-util
semanticdb-global semantic-symref-global semantic-symref cedet-global
semanticdb-mode semantic-decorate-include semanticdb-find
semantic-decorate-mode semantic-decorate semantic-analyze-refs
semantic-analyze-complete semantic-ia pulse senator which-func
semantic-imenu semantic-sb imenu semantic-c semantic-gcc semantic-dep
semantic-c-by semantic-lex-spp eieio-opt help-mode view cedet
cedet-contrib-load contrib-loaddefs cogre-load cogre-loaddefs
speedbar-load speedbar-loaddefs sb-info ede-load ede-loaddefs
ede-speedbar ede-files ede ede-base ede-auto eieio-speedbar eieio-custom
ede-source srecode-load srecode srecode-loaddefs semantic-load
semantic-ia-sb semantic-analyze semantic-scope semantic-analyze-fcn
semantic-sort semanticdb-javap cedet-java semanticdb-el semanticdb-ref
semantic-find semanticdb eieio-base semantic-ctxt semantic-format
semantic-util-modes semantic-util semantic semantic-lex semantic-tag-ls
semantic-tag working fame semantic-fw semantic-loaddefs mode-local
find-func eieio-load eieio-loaddefs cedet-load cedet-compat
cedet-loaddefs hideif 05-rc-misc kluge esh-io stringtemplate-mode
undo-tree doc-read disp-table w3m browse-url doc-view jka-compr
image-mode timezone w3m-hist w3m-fb bookmark-w3m w3m-ems w3m-ccl ccl
w3m-favicon w3m-image w3m-proc w3m-util tramp tramp-compat auth-source
eieio inversion gnus-util mm-util mail-prsvr password-cache shell
tramp-loaddefs sb-rfcview rfcview browse-kill-ring magit-bisect
magit-key-mode magit diff-mode log-edit pcvs-util add-log 50magit
highlight-utility hi-lock thingatpt ediff-merg ediff-diff ediff-wind
ediff-help ediff-util ediff-mult ediff-init ediff ls-lisp wdired dired-x
dired yyc/flyspell ispell woman man sr-speedbar sb-html sb-texinfo
speedbar sb-image ezimage dframe assoc session recentf tree-widget
wid-edit make-mode ido icomplete 04-rc-other-modes logviewer fold-dwim
hideshow edit-server org byte-opt warnings bytecomp byte-compile cconv
macroexp ob-emacs-lisp ob-tangle ob-ref ob-lob ob-table org-footnote
org-src ob-comint ob-keys ob ob-eval org-pcomplete pcomplete comint
ansi-color ring org-list org-faces org-compat org-entities org-macs
noutline outline format-spec cal-menu calendar cal-loaddefs org-install
httpcode texmathp preview info reporter desktop tex-buf font-latex
prv-emacs latex derived tex-style tex easy-mmode cl tex-site
01-rc-functions rx advice help-fns advice-preload edmacro kmacro time
cwarn cc-mode cc-fonts easymenu cc-guess cc-menus cc-cmds cc-styles
cc-align cc-engine cc-vars cc-defs paren avoid regexp-opt image-file
site-gentoo time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel
ns-win tool-bar dnd fontset image fringe lisp-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 loaddefs
button faces cus-face files text-properties overlay sha1 md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process ns multi-tty emacs)
Date: Thu, 06 Dec 2012 11:30:15 +0800
Message-ID: <[email-masked]>
--text follows this line--

I'm a c++ programer, and sometimes I need to initialize lots of member fields during in a constructor. Sometimes when the init list is too long, cc mode will treat some member-init-cont as topmost-init-cont, and then gives a wrong indention. 

After some debuging, I found this change: 

http://lists.gnu.org/archive/html/emacs-diffs/2012-03/msg00152.html.

In this change, In CASE 5B, search limit is restricted to 500. This, sometimes, is not enough.

Best Regards
Tubo