Subject: Re: bug#11749: Acknowledgement (24.1; C-mode indentation gives wrong-type-argument error.)

From: Kim Storm <[email-masked]>
Date: Wed, 29 Aug 2012 00:49:53 +0200

M-x report-emacs-bug obviously refuses to include any useful information 
-- so I send it through my Thunderbird client... this time.

Tried 24.2 RC2 - and once again I hit this annoying indentation bug i c 
mode:

Debugger entered--Lisp error: (wrong-type-argument integer-or-marker-p 
(5457 . 5720))
   c-guess-basic-syntax()
   c-indent-line()
   indent-according-to-mode()
   c-electric-paren(nil)
   call-interactively(c-electric-paren nil nil)

The offsets corresponds to a preceding { ... } block.

The code I was working on is the following (sorry, I cannot show more 
than that):

       if (!((xdom | xact | xobj | xxtr) & 0x80))
     continue;

       if (domains && !alldom && !((xdom | xobj | xxtr) & 0x01))
     {

I get a lot of errors -- making 24.2 impossible to work with for my C code.

Here are some more backtraces:

Debugger entered--Lisp error: (error "Invalid search bound (wrong side 
of point)")
   re-search-backward("^[     ]*:[     ]*\\(.\\)?" 5920 t)
   c-lineup-gcc-asm-reg((arglist-cont-nonempty . 5920))
   c-evaluate-offset(c-lineup-gcc-asm-reg (arglist-cont-nonempty 5920 
5950) arglist-cont-nonempty)
   c-evaluate-offset((c-lineup-gcc-asm-reg c-lineup-arglist) 
(arglist-cont-nonempty 5920 5950) arglist-cont-nonempty)
   c-calc-offset((arglist-cont-nonempty 5920 5950))
   c-get-syntactic-indentation(((arglist-cont-nonempty 5920 5950)))
   c-indent-line()
   indent-according-to-mode()
   c-electric-paren(nil)
   call-interactively(c-electric-paren nil nil)

Debugger entered--Lisp error: (wrong-type-argument integer-or-marker-p 
(5874 . 5881))
   c-guess-basic-syntax()
   c-indent-line()
   indent-according-to-mode()
   c-electric-paren(nil)
   call-interactively(c-electric-paren nil nil)

The last one came when I inserted the final ; in the last line of the 
following snippet:

static void add_hash_ext(idhash_t **hp, id_t *idtab, int n)
{

  }

   static idhash_t *lookup_ext(idhash_t **hp, );

Yes, there are syntax errors in that code -- but indentation should be 
able to
handle that without signalling errors all the time.

I have seen similar problems in 24.1 - but not in 23.4 that I usually
use (for this very reason).

If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
     `bt full' and `xbacktrace'.
For information about debugging Emacs, please read the file
/home/kfs/Downloads/emacs-24.2/etc/DEBUG.

In GNU Emacs 24.2.1 (x86_64-unknown-linux-gnu, GTK+ Version 2.24.10)
  of 2012-08-24 on kfs-lx2
Windowing system distributor `The X.Org Foundation', version 11.0.11104000
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: en_DK.utf8
   value of $LC_NUMERIC: en_DK.utf8
   value of $LC_TIME: en_DK.utf8
   value of $LANG: en_US.utf8
   value of $XMODIFIERS: nil
   locale-coding-system: utf-8-unix
   default enable-multibyte-characters: t

Major mode: Debugger

Minor modes in effect:
   diff-auto-refine-mode: t
   shell-dirtrack-mode: t
   display-time-mode: t
   cua-mode: t
   ido-everywhere: t
   tooltip-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
   transient-mark-mode: t

Recent input:
<right> <right> <right> <right> <right> <right> <right>
<right> <right> <right> <right> <S-right> <S-right>
o b j C-z <left> <left> <S-right> <S-right> <S-right>
o b j M-v <right> <right> <right> <right> <right> <right>
<right> <right> <right> <right> <right> <right> <right>
<right> <right> <right> <right> <right> <left> <left>
<delete> <delete> <delete> x t r M-v <backspace> <backspace>
<backspace> <backspace> x x ½ <end> <down> <up> <up>
<up> <up> <up> <up> <left> <C-left> <C-left> <left>
1 <down> <left> 1 <down> <left> 1 <down> <left> <M-backspace>
<C-right> 1 <C-right> <C-right> <up> <up> <C-left>
M-d a c t <down> <left> <left> <left> M-d o b j <down>
<backspace> <backspace> <backspace> x t r <right> <S-end>
<S-left> <delete> <up> <up> <up> <C-left> <C-left>
<C-left> <C-left> <C-left> <C-left> <C-return> <down>
<down> <down> <right> <right> <right> <right> <right>
<right> <left> <delete> <right> <right> <right> <right>
<right> <delete> <down> <delete> <down> <delete> <down>
<delete> <down> <down> <left> <S-end> <S-left> <delete>
( x d o m SPC | SPC x a c t SPC ' <backspace> | SPC
a x <backspace> o b j <backspace> <backspace> <backspace>
<backspace> x o b j SPC | SPC x x t r ) SPC & S-SPC
0 x 8 0 <home> <right> <right> <right> <right> <right>
<right> <right> <right> <right> ( ! <end> ) <down>
<down> <down> <left> SPC & & S-SPC <up> <up> <up> <C-left>
<C-left> <C-left> <C-left> <C-right> <right> <right>
<S-end> C-c <timeout> <down> <down> <down> <left> C-v
<C-left> <right> <right> <delete> 1 <backspace> <right>
1 <C-left> <C-left> <C-left> <C-left> <left> <left>
<left> M-d <end> <backspace> <backspace> ) <up> <S-down>
<S-down> <S-down> <S-down> <S-down> <S-down> C-c <timeout>

Recent messages:
Mark set
Undo!
Mark set [4 times]
Auto-saving...done
Mark set [3 times]
Undo!
Mark set
Auto-saving...done
Mark set
Entering debugger...

Load-path shadows:
/home/kfs/emacs/common/emacs/user/kfs/nero hides 
/home/kfs/emacs/common/emacs/lisp/nero
/home/kfs/emacs/common/emacs/lisp/mwheel hides 
/home/kfs/Downloads/emacs-24.2/lisp/mwheel
/home/kfs/emacs/common/emacs/lisp/misc hides 
/home/kfs/Downloads/emacs-24.2/lisp/misc
/home/kfs/emacs/common/emacs/user/kfs/vcursor hides 
/home/kfs/Downloads/emacs-24.2/lisp/vcursor
/home/kfs/emacs/common/emacs/lisp/avoid hides 
/home/kfs/Downloads/emacs-24.2/lisp/avoid
/home/kfs/emacs/common/emacs/lisp/printing hides 
/home/kfs/Downloads/emacs-24.2/lisp/printing
/home/kfs/emacs/common/emacs/lisp/pong hides 
/home/kfs/Downloads/emacs-24.2/lisp/play/pong
/home/kfs/emacs/common/emacs/lisp/smtpmail hides 
/home/kfs/Downloads/emacs-24.2/lisp/mail/smtpmail

Features:
(shadow emacsbug message mml mml-sec mm-decode mm-bodies mm-encode
mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047
rfc2045 ietf-drums mail-utils debug perl-mode make-mode conf-mode
jka-compr woman man skeleton tramp-cache tramp-sh tramp tramp-compat
auth-source eieio assoc gnus-util mm-util mail-prsvr password-cache
format-spec advice help-fns advice-preload tramp-loaddefs sh-script
executable help-mode view vc-annotate log-view vc-rcs js byte-opt
bytecomp byte-compile cconv macroexp json thingatpt newcomment
log-edit add-log diff-mode vc ediff-merg ediff-diff ediff-wind
ediff-help ediff-util ediff-mult ediff-init ediff vc-dispatcher
sgml-mode cua-gmrk cc-mode cc-fonts cc-guess cc-menus cc-cmds
find-dired grep-x grep compile pcmpl-unix shell pcomplete dabbrev
tabify cua-rect rect misearch multi-isearch parse-time vc-cvs pcvs
pcvs-parse pcvs-info pcvs-defs easy-mmode pcvs-util ewoc dired imenu
cgi-mode derived windmove kmacro paren keypad time cua-base cus-start
cus-load telnet mailcrypt rfc822 comint ansi-color ring easymenu make
begendol ido server cc-styles cc-align cc-engine cc-vars cc-defs
regexp-opt disp-table match aux-fct common printing ps-print ps-def
lpr time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win
x-dnd 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 dbusbind
dynamic-setting system-font-setting font-render-setting move-toolbar
gtk x-toolkit x multi-tty emacs)