CC Mode: stop wrongly recognizing "func(a * 9)" as "pointer to type a"
* lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): When testing for an identifier after "a *", on failure additionally check for a digit, setting a new flag variable got-number if one is found. In the test for CASE 18, check this flag.
This commit is contained in:
parent
b0ed9d1433
commit
5a7451c383
1 changed files with 6 additions and 2 deletions
|
@ -8514,6 +8514,8 @@ comment at the start of cc-engine.el for more info."
|
|||
got-parens
|
||||
;; True if there is an identifier in the declarator.
|
||||
got-identifier
|
||||
;; True if we find a number where an identifier was expected.
|
||||
got-number
|
||||
;; True if there's a non-close-paren match of
|
||||
;; `c-type-decl-suffix-key'.
|
||||
got-suffix
|
||||
|
@ -8591,7 +8593,9 @@ comment at the start of cc-engine.el for more info."
|
|||
(and (looking-at c-identifier-start)
|
||||
(setq pos (point))
|
||||
(setq got-identifier (c-forward-name))
|
||||
(setq name-start pos)))
|
||||
(setq name-start pos))
|
||||
(when (looking-at "[0-9]")
|
||||
(setq got-number t))) ; We've probably got an arithmetic expression.
|
||||
|
||||
;; Skip over type decl suffix operators and trailing noise macros.
|
||||
(while
|
||||
|
@ -9056,7 +9060,7 @@ comment at the start of cc-engine.el for more info."
|
|||
|
||||
;; CASE 18
|
||||
(when (and (not (memq context '(nil top)))
|
||||
(or got-prefix
|
||||
(or (and got-prefix (not got-number))
|
||||
(and (eq context 'decl)
|
||||
(not c-recognize-paren-inits)
|
||||
(or got-parens got-suffix))))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue