From: SourceForge.net <no...@so...> - 2005-04-25 14:14:00
|
Bugs item #1189116, was opened at 2005-04-24 23:10 Message generated for change (Comment added) made by broeker You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104664&aid=1189116&group_id=4664 Category: C lexer/parser Group: None Status: Open Resolution: None Priority: 5 Submitted By: Nobody/Anonymous (nobody) Assigned to: Hans-Bernhard Broeker (broeker) Summary: Function typedef causes subsequent defs to be refs Initial Comment: When a function typedef is declared all subsequent structure elements defined in the header file are not marked as defined in the header file, only referenced by the 'function' that is the name of the return type in the function typedef. For example, in foo.h thre is the following typedef: typedef void (*foo)(void*) and with the following declarations: struct foostruct { int fooelt_foostruct; }; the structure foostruct would be listed in cscope as being defined in foo.h, but fooelt_foostruct would be listed as not being defined anywhere, though it would be listed as referenced by function 'void' in file foo.h ---------------------------------------------------------------------- >Comment By: Hans-Bernhard Broeker (broeker) Date: 2005-04-25 16:13 Message: Logged In: YES user_id=27517 This is a direct consequence of the documented limitation of cscope's parser regarding "extra" nested sets of parentheses inside an argument list. In a nutshell, cscope's parser gets lost as soon as any method of using or declaring function pointers is used, which necessarily has nested parentheses in a crucial place. It'll fail to recognize a function declaration with a function pointer type argument declared long-hand. If you instead typedef that function pointer, it'll get lost on the typedef instead. The underlying reason is that cscope tries to make do with only regular expressions to parse C, which is known to be fundamentally impossible. C allows boundless nesting of parentheses, but regexes can't handle that. ---------------------------------------------------------------------- Comment By: Nobody/Anonymous (nobody) Date: 2005-04-24 23:11 Message: Logged In: NO Submitted by John wgu...@sb... ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=104664&aid=1189116&group_id=4664 |