[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#38511: etags seems to be confused by macros
From: |
Skip Montanaro |
Subject: |
bug#38511: etags seems to be confused by macros |
Date: |
Fri, 6 Dec 2019 14:20:14 -0600 |
I use speedbar in Emacs, which relies on etags to generate tag files.
The Python source defines a macro named Py_LOCAL_INLINE, which is used
to select the appropriate spelling of "static inline":
#if defined(_MSC_VER)
...
# define Py_LOCAL_INLINE(type) static __inline type __fastcall
#else
...
# define Py_LOCAL_INLINE(type) static inline type
#endif
It's used like so:
Py_LOCAL_INLINE(void)
stackdepth_push(basicblock ***sp, basicblock *b, int depth)
{
assert(b->b_startdepth < 0 || b->b_startdepth == depth);
if (b->b_startdepth < depth && b->b_startdepth < 100) {
assert(b->b_startdepth < 0);
b->b_startdepth = depth;
*(*sp)++ = b;
}
}
It all works well. Etags though, thinks the file contains a function
named "Py_LOCAL_INLINE" and completely misses the actual function,
"stackdepth_push".
Seems like a bug to me, but it's not obvious if there is a trivial
fix. As a workaround, I think I can write a little shell script which
effectively expands the Py_LOCAL_INLINE macro, then pumps the result
to etags. Still, would be kind of nice if this could be fixed.
Thanks,
Skip Montanaro
- bug#38511: etags seems to be confused by macros,
Skip Montanaro <=