GNU bug report logs -
#64322
CC Mode 5.35.2 (C/*l); More incorrect type recognition
Previous Next
Reported by: Po Lu <luangruo <at> yahoo.com>
Date: Wed, 28 Jun 2023 07:06:02 UTC
Severity: normal
Done: Alan Mackenzie <acm <at> muc.de>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Hello, Po.
On Wed, Jun 28, 2023 at 15:05:03 +0800, Po Lu via CC-Mode-help wrote:
> Package: cc-mode
> I just encountered a new instance of CC Mode misrecognizing identifiers
> as types. In a C Mode buffer, insert:
> void
> add_property (name, expression)
> then, type:
> RET TAB s t r u c t SPC e x p r e s s i o n SPC e x p r e s s i o n ;
> `expression' will then be fontified as a type within the function
> declarator's identifier list!
Yes. The problem was a confusion between C++ and C regarding type
definition. In C++, "class Foo" or "struct Foo" defines a type "Foo".
In C, in "struct Foo", there is no such type defined, "Foo" is merely a
struct tag.
This involves a one line fix in cc-langs.el, to remove items from the
lang const c-typeless-decl-kwds. Additionally, I've corrected an
unrelated typo in cc-fonts.el.
Would you please try out the attached patch in your real code
thoroughly, and either confirm the bug is fixed, or tell me what's still
wrong. Thanks!
> Thanks in advance.
> Emacs : GNU Emacs 29.0.92 (build 1, x86_64-pc-linux-gnu)
> of 2023-06-25
> Package: CC Mode 5.35.2 (C/*l)
> Buffer Style: gnu
> c-emacs-features: (pps-extended-state col-0-paren posix-char-classes gen-string-delim gen-comment-delim syntax-properties category-properties 1-bit)
--
Alan Mackenzie (Nuremberg, Germany).
[diff.20230630.diff (text/plain, attachment)]
This bug report was last modified 1 year and 331 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.