Hi Luc, On 13 September 2017 at 11:18, Luc Van Oostenryck <luc.vanoostenryck@xxxxxxxxx> wrote: > On Wed, Sep 13, 2017 at 10:56:16AM +0100, Dibyendu Majumdar wrote: >> Hi Chris, >> >> On 12 September 2017 at 23:44, Christopher Li <sparse@xxxxxxxxxxx> wrote: >> > On Tue, Sep 12, 2017 at 5:54 PM, Dibyendu Majumdar >> > <mobile@xxxxxxxxxxxxxxx> wrote: >> >> >> >> I think that there is no easy way to identify all the symbols used for >> >> which stack space is needed and do the allocas at the start - is >> >> there? I mean the only way is to go through all the instructions to >> >> find these references as far as I know. >> > >> > >> > Have you try the sym->symbol_list for the function node? >> > It should contain all the symbol used in that function. >> > >> >> Did you mean struct entrypoint -> syms instead? >> I see that this contains a list of symbols ... I don't know if this is >> guaranteed to have all symbols defined in the function. > > ep->accesses contains all the pseudos corresponding to the symbols > used for doing load & store accesses. > > So, you probably should doing something like: > > pseudo_t pseudo; > > FOR_EACH_PTR(ep->accesses, pseudo) { > struct symbol *sym = pseudo->sym; > unsigned log mods = sym->ctype.modifiers; > > if (mods & MOD_VOLATILE) > ... > if (mods & (MOD_NONLOCAL | MOD_STATIC | MOD_ADDRESSABLE)) > ... > > Thanks. I will look at this. Regards Dibyendu -- 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