GNU bug report logs - #8438
24.0.50; C++ macro make indentation fail

Previous Next

Packages: cc-mode, emacs;

Reported by: Andrea Crotti <andrea.crotti.0 <at> gmail.com>

Date: Thu, 7 Apr 2011 11:28:02 UTC

Severity: normal

Found in version 24.0.50

Fixed in version 24.1

Done: Glenn Morris <rgm <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #8 received at 8438 <at> debbugs.gnu.org (full text, mbox):

From: Daniel Colascione <dan.colascione <at> gmail.com>
To: Andrea Crotti <andrea.crotti.0 <at> gmail.com>
Cc: Alan Mackenzie <acm <at> muc.de>, 8438 <at> debbugs.gnu.org
Subject: Re: bug#8438: 24.0.50; C++ macro make indentation fail
Date: Wed, 13 Apr 2011 02:25:19 -0700
[Message part 1 (text/plain, inline)]
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 4/7/11 3:45 AM, Andrea Crotti wrote:
> I send from my fully customized emacs but I also tested it with "emacs -Q".
> A simple macro in C++ mode makes the indentation fail, this is what it
> should be:
> 
> --8<---------------cut here---------------start------------->8---
> #define OUT (std::cout << "DEBUG: (" << hwaddress << "):\t")
> 
> PadNode::PadNode(const PadNodeID& _hwaddress, landmark_idx_t _land_idx, bool _is_mobile)
> : Node(),

The problem actually has nothing to do with the macro:
c-forward-decl-or-cast-1 is choking on the const because it's mistaking
it for something that might be part of a member function pointer.
Because c-forward-decl-or-cast-1 fails inside
c-just-after-func-arglist-p, c-guess-basic-offset tries the next best
thing, which happens to be a template argument continuation.

The attached patch resolves the issue.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (Darwin)

iEYEARECAAYFAk2la/kACgkQ17c2LVA10VtGawCeLYuZ7f1QKHsFgkrYzgWCNevZ
nwQAoNStOC5JvnSs1G5sU92UrogmFAQW
=mxeQ
-----END PGP SIGNATURE-----
[typo.patch (text/plain, attachment)]

This bug report was last modified 13 years and 290 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.