Yes, there are attributes that can be applied to types so I do not want to change that. The problem I am seeing is only with array variables and if you see the function direct_delcalartor, when it starts processing array variables, the ctye gets reassigned with the type of the variables instead of the ctype of the variable itself and in the next iteration the attribute will be applied to the ctype of the type of the variable. May be a patch specific to array variable will solve the problem. Thanks, -Mitesh > -----Original Message----- > From: Chris Li [mailto:christ.li@xxxxxxxxx] > Sent: Wednesday, January 31, 2007 11:54 AM > To: Mitesh Shah > Cc: Linux-Sparse > Subject: Re: attributes are not stored at right location for array > variables > > > Your patch assumes every attribute apply to node instead of type. > Is there any attribute need to apply to type instead? > > For your change, apply_modifiers() need to change where it take the > __mode__ attribute as well. > > Chris > > > On 1/31/07, Mitesh Shah <mshah@xxxxxxxx> wrote: > > > > It seems that the attributes are not stored with the variable ctype when the variable is an array. For declaration such as, > > > > char c[100] __attribute__((aligned(64))); > > > > The attribute is stored with the array ctype instead of the variable C ctype. > > > > In function direct_declarator in parse.c at line 920 the ctype gets replaced with the array ctype and in the next > iteration it is > > passed to handle_attributes. handle_attributes should be passed the original ctype so here is the patch. > > > > Thanks, > > > > -Mitesh > > > > ------------------------------------------------------- > > > > index 5077ee6..306b144 100644 > > --- a/parse.c > > +++ b/parse.c > > @@ -881,7 +881,7 @@ static struct token *direct_declarator(struct token *token, struct symbol *decl, > > } > > > > for (;;) { > > - token = handle_attributes(token, ctype); > > + token = handle_attributes(token, &decl->ctype); > > > > if (token_type(token) != TOKEN_SPECIAL) > > return token; > > > > > > - > > To unsubscribe from this list: send the line "unsubscribe linux-sparse" in > > the body of a message to majordomo@xxxxxxxxxxxxxxx > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > > - To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html