From: Alan Mackenzie <acm@muc.de>
To: Dima Kogan <dima@secretsauce.net>
Cc: 14005-done@debbugs.gnu.org
Subject: bug#14005: 24.3.50; cc-mode: Incorrectly-indented C code (wrong syntax). Test case and bisection.
Date: Thu, 24 Dec 2015 21:47:34 +0000 [thread overview]
Message-ID: <20151224214734.GB5714@acm.fritz.box> (raw)
In-Reply-To: <87y5di78z5.fsf@secretsauce.net>
Hello, Dima.
The problem is no longer apparent in the current emacs-25 branch at
savannah, so I'm closing this bug as fixed.
On Tue, Mar 19, 2013 at 10:48:14PM -1000, Dima Kogan wrote:
> I'm observing very uninteresting-looking C code get
> incorrectly-indented. The sample source file (attached) ends with the
> following function:
> static Matrix *NonMaximalSuppression(Matrix *strength, Matrix *orientation)
> {
> int x, y, i, rows = strength->rows, cols = strength->cols;
> int pixels = strength->rows * strength->cols, maximum;
> double str1, str2; /* interpolated edge strength */
> double a1, a2, b1, b2, c1, c2; /* nearest pixels' edge strength */
> float ux, uy; /* weights of a, b, c, and str */
> double ori, str; /* strength and orientation at center */
> Matrix *newstrength;
> /* Newstrength holds the NMS'ed strength values */
> newstrength = (Matrix *)malloc(sizeof(Matrix));
> newstrength->rows = strength->rows;
> newstrength->sheets = 1;
> newstrength->cols = strength->cols;
> newstrength->ptr = (double *)calloc(pixels, sizeof(double));
> return(newstrength);
> }
> I'm observing that everything after the /* Newstrength .... */ comment
> gets "string" syntax, which is incorrect. This can be seen with
> (c-guess-basic-syntax). This also causes incorrect indentation of the
> empty line before the return statement (TAB there should move to column
> 2, but it stays at 0).
> The full test source file is attached (called "tst.c"). This is a slight
> modification of the source from http://ai.stanford.edu/~ruzon/compass/.
> This test case is much longer than I'd like, but the bug appears to be
> very sensitive to preceding code, so I'm leaving it alone.
> To observe the issue, you can run
> $ emacs -Q --batch --eval '(progn (find-file "/tmp/tst.c") (goto-char
> 6072) (message "%s" (c-guess-basic-syntax)))
> The right answer is "statement", but the current version of emacs says
> "string". I did a bisection. This problem was introduced in early 2012
> with this commit:
> http://git.savannah.gnu.org/cgit/emacs.git/commit/?id=b0b68fedb6a6fe7bc55c1fe4f256bda9a93134b5
> This means that all releases of emacs 24 are affected.
> Thanks.
--
Alan Mackenzie (Nuremberg, Germany).
prev parent reply other threads:[~2015-12-24 21:47 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-20 8:48 bug#14005: 24.3.50; cc-mode: Incorrectly-indented C code (wrong syntax). Test case and bisection Dima Kogan
2015-12-24 21:47 ` Alan Mackenzie [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20151224214734.GB5714@acm.fritz.box \
--to=acm@muc.de \
--cc=14005-done@debbugs.gnu.org \
--cc=dima@secretsauce.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).