Signed-off-by: Ramsay Jones <[EMAIL PROTECTED]>
---
When updating this patch from the 0.3 version, I made the (new) third parameter
KW_ATTRIBUTE only, rather than (KW_ATTRIBUTE | KW_ASM), since it did not seem
correct to allow an asm there; is that correct?
The test case for this was abstracted from an example in the "expat.h" header
file.
$cat ape.c
typedef void (__attribute__((__cdecl__)) *FP)(void *u, const char *n);
void set_FP(void *cb, FP f);
$
parse.c | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/parse.c b/parse.c
index db5c9e6..16a6dce 100644
--- a/parse.c
+++ b/parse.c
@@ -1149,7 +1149,10 @@ static struct token *direct_declarator(struct token
*token, struct symbol *decl,
if (token->special == '(') {
struct symbol *sym;
struct token *next = token->next;
- int fn = (p && *p) || match_op(next, ')') ||
lookup_type(next);
+ int fn;
+
+ next = handle_attributes(next, ctype, KW_ATTRIBUTE);
+ fn = (p && *p) || match_op(next, ')') ||
lookup_type(next);
if (!fn) {
struct symbol *base_type = ctype->base_type;
--
1.5.1
typedef void (__attribute__((__cdecl__)) *FP)(void *u, const char *n);
void set_FP(void *cb, FP f);