linux-sparse.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Mitesh Shah" <mshah@teja.com>
To: Chris Li <christ.li@gmail.com>
Cc: Linux-Sparse <linux-sparse@vger.kernel.org>
Subject: RE: attributes are not stored at right location for array variables
Date: Wed, 31 Jan 2007 14:33:28 -0800	[thread overview]
Message-ID: <AKEOJDDJLNPHDAKOMMBHAEAIDAAA.mshah@teja.com> (raw)
In-Reply-To: <70318cbf0701311153k126d4aeam5f68f1c519d3a7af@mail.gmail.com>


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@gmail.com]
> 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@teja.com> 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@vger.kernel.org
> > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> >
>

      reply	other threads:[~2007-01-31 22:33 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-01-31 16:57 attributes are not stored at right location for array variables Mitesh Shah
2007-01-31 19:53 ` Chris Li
2007-01-31 22:33   ` Mitesh Shah [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=AKEOJDDJLNPHDAKOMMBHAEAIDAAA.mshah@teja.com \
    --to=mshah@teja.com \
    --cc=christ.li@gmail.com \
    --cc=linux-sparse@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).