* Now handles function pointers as arguments correctly.

* Added optional tracing output.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28377 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler 2008-10-30 11:36:05 +00:00
parent 9521c5abb6
commit b643734ad7

View File

@ -13,6 +13,14 @@
#include <debug.h>
//#define TRACE_GCC2_DEMANGLER
#ifdef TRACE_GCC2_DEMANGLER
# define TRACE(x...) kprintf(x)
#else
# define TRACE(x...) ;
#endif
enum {
TYPE_FUNCTION,
TYPE_METHOD,
@ -22,8 +30,15 @@ enum {
static void
ignore_qualifiers(const char** _arg)
{
while (isupper(**_arg))
while (isupper(**_arg)) {
if (**_arg == 'F') {
// skip function declaration
while (**_arg && **_arg != '_')
(*_arg)++;
}
(*_arg)++;
}
}
@ -333,6 +348,8 @@ get_next_argument_internal(uint32* _cookie, const char* symbol, char* name,
if (arg == NULL)
return B_ENTRY_NOT_FOUND;
TRACE("\n\targ %ld: %s\n", current, arg);
if (arg[0] == 'T') {
// duplicate argument
if (repeating)