Ctags: C: функция определяется как переменная

Созданный на 29 июн. 2016  ·  3Комментарии  ·  Источник: universal-ctags/ctags

Привет,

Ctags e5b7a2508db6e1374ea78a300cc9b45f4b26b02a определяет функцию как переменную в заголовке epan / except.h библиотеки Wireshark:

WS_DLL_PUBLIC void (*except_unhandled_catcher(void (*)(except_t *)))(except_t *);

Команда

ctags -x --c-kinds=fpvx --language-force=c epan/except.h | grep except_unhandled_catcher

возвращает:

except_t variable 100 epan/except.h WS_DLL_PUBLIC void (*except_unhandled_catcher(void (*)(except_t *)))(except_t *);

Однако это функция except_unhandled_catcher (и тип возвращаемого значения, и тип параметра являются указателями на функции).

Спасибо.

Parser buenhancement

Самый полезный комментарий

боже ... этот синтаксис сложен: D
Я постараюсь разобраться в этом.

Все 3 Комментарий

Я могу подтвердить это, и что старый синтаксический анализатор C понял это правильно. Игнорирование / удаление WS_DLL_PUBLIC в любом случае ничего не меняет.

$ ./ctags -x --OldC-kinds=+pv --languages=OldC /tmp/1012.c
except_unhandled_catcher prototype     1 /tmp/1012.c      WS_DLL_PUBLIC void (*except_unhandled_catcher(void (*)(except_t *)))(except_t *);

боже ... этот синтаксис сложен: D
Я постараюсь разобраться в этом.

Это должно быть исправлено # 1119.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги