Subject: bug#15728: closed (Re: bug #15728: 24.3.50; cc-mode incorrectly parses particular macro)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 27 Oct 2013 21:55:03 +0000

Your bug report

#15728: 24.3.50; cc-mode incorrectly parses particular macro

which was filed against the emacs,cc-mode package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
15728: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15728
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug #15728: 24.3.50; cc-mode incorrectly parses particular macro
From: Alan Mackenzie <[email-masked]>
To: [email-masked]
Date: Sun, 27 Oct 2013 21:51:54 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Bug fixed.

-- 
Alan Mackenzie (Nuremberg, Germany).

Subject: 24.3.50; cc-mode incorrectly parses particular macro
From: Dima Kogan <[email-masked]>
To: [email-masked]
Date: Sat, 26 Oct 2013 21:16:12 -0700
List-Id: <debbugs-submit.debbugs.gnu.org>

I have the following source file:

=========================================================================
int f(void)
{
#define A(b)								\
  int abc ## b;								\
    g()
}
=========================================================================

This indentation is what the latest emacs thinks is correct. Note that
the g() line is indented ahead of the 'int abc' line. This is wrong;
they should have the same indentation. Indeed this is what happens with
emacs23.

In the latest emacs the syntax parser thinks the g() line is
'statement-cont', instead of 'statement'; this is directly related to
the issue. Furthermore, the 'abc ## b' construct is what's confusing the
parser. Removing the '##' makes it parse correctly again.

I'm observing this issue with all emacs24 builds I've tried, with 'emacs
-Q'.