Thread: Re: [Ctags] Ctags fails with gcc's __attribute__ ?
Brought to you by:
dhiebert
From: Neil B. <nei...@rd...> - 2001-02-16 08:48:11
|
Darren Hiebert wrote: > There was no attachment. D'Oh! OK, I've seen the problem with my cut-down example (I'd omitted the final ';' in "2" below); you're right, it *does* allow __attribute__. The Problem arises in code (like glib.h) that defined a macro to have/not have __attribute__ present according to the compiler (which I think is fair enough). The following works: gint g_snprintf2 (gchar *string, gulong n, gchar const *format, ...) __attribute__ ((format (printf, 3, 4))); But this doesn't: gint g_snprintf (gchar *string, gulong n, gchar const *format, ...) G_GNUC_PRINTF (3, 4); It looks like (c.c) that __attribute__ is explicitely looked for. How feasable/sensible would it be to allow, in that instance, any identifier (or possibly, just upper-case IDs, since it'd almost always be a macro)? -- =====================- http://www.thalesgroup.com/ -===================== Neil Bird Principal Engineer | work - mailto:nei...@uk... | $> cd /pub personal - mailto:ne...@fn... | $> more beer |
From: Darren H. <da...@hi...> - 2001-02-17 05:48:53
|
On Fri, 16 Feb 2001, Neil Bird wrote: > OK, I've seen the problem with my cut-down example (I'd omitted the > final ';' in "2" below); you're right, it *does* allow __attribute__. The > Problem arises in code (like glib.h) that defined a macro to have/not have > __attribute__ present according to the compiler (which I think is fair > enough). > ... > But this doesn't: > > gint g_snprintf (gchar *string, > gulong n, > gchar const *format, > ...) G_GNUC_PRINTF (3, 4); > > > It looks like (c.c) that __attribute__ is explicitely looked for. How > feasable/sensible would it be to allow, in that instance, any identifier > (or possibly, just upper-case IDs, since it'd almost always be a macro)? This was exactly what the -I (ignore token) option was added for (to work around problematic preprocessor macros). Try adding this option: -I G_GNUC_PRINTF+ The '+' sign means to also ignore any following parameter list (although it happens to still work without the '+' in this particular case). -- Darren Hiebert <da...@hi...> http://darren.hiebert.com |
From: Neil B. <nei...@rd...> - 2001-02-19 11:47:56
|
Darren Hiebert wrote: > This was exactly what the -I (ignore token) option was added for (to > work around problematic preprocessor macros). Try adding this option: > > -I G_GNUC_PRINTF+ Yippee! :-) -- =====================- http://www.thalesgroup.com/ -===================== Neil Bird Principal Engineer | work - mailto:nei...@uk... | $> cd /pub personal - mailto:ne...@fn... | $> more beer |