GNU bug report logs - #14626
CC Mode 5.32.5 (C++/l); indentation problem involving override

Previous Next

Packages: cc-mode, emacs;

Reported by: Michael Welsh Duggan <mwd <at> md5i.com>

Date: Sat, 15 Jun 2013 16:07:01 UTC

Severity: normal

Done: Alex <agrambot <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Michael Welsh Duggan <mwd <at> md5i.com>
To: Michael Welsh Duggan <mwd <at> md5i.com>
Cc: 14626 <at> debbugs.gnu.org
Subject: bug#14626: CC Mode 5.32.5 (C++/l); indentation problem involving override
Date: Sun, 16 Jun 2013 00:48:10 -0400
Michael Welsh Duggan <mwd <at> md5i.com> writes:

> Date: Sat, 15 Jun 2013 12:03:45 -0400
> Message-ID: <87a9mrqs2m.fsf <at> maru.md5i.com>
> User-Agent: Gnus/5.130006 (Ma Gnus v0.6) Emacs/24.3.50 (gnu/linux)
>
> In c++-mode, the following class gets indented correctly:
>
> class Foo
> {
>   Foo
>   foo()
>     const;
> };
>
> as does this:
>
> class Foo
> {
>   Foo *
>   foo()
>     const;
> };
>
> and this:
>
> class Foo
> {
>   Foo
>   foo()
>     const
>     override;
> };
>
>
> But the following does not:
>
> class Foo
> {
>   Foo *
>   foo()
>   const
>   override;
> };

It looks to me that "noexcept", "override", and "final" may need to be
added to c-type-modifier-kwds.  Or maybe more appropriately in
c-type-decl-suffix-key, since they can only appear at the end of a
declaration.  A brief scan through cc-langs.el shows that there might
need to be a few other new c++11 symbols added as well, such as
"constexpr".   "decltype" might be particularly troublesome, as it is a
type that includes an argument in parentheses.

Please note that "noexcept", like "throw", can have a parenthetical
expression after it.

-- 
Michael Welsh Duggan
(md5i <at> md5i.com)




This bug report was last modified 8 years and 332 days ago.

Previous Next


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