> On Apr 11, 2018, at 4:45 AM, Pavel Labath via Dwarf-Discuss > <dwarf-discuss@lists.dwarfstd.org> wrote: > > Thank you all for the feedback. There seems to be general consensus that > enumerators should be present in the name index. > > However, I am starting to have second thoughts about imported declarations. > While the entities they declare are (can be) global in the sense that they > are not (don't have to be) inside a function, they are also *local* in the > sense that they are valid only inside one compilation unit -- just because > one .cpp file does a "namespace X = foo:bar", it does not mean that everyone > can refer to these entities that way. > > The example of "using namespace a" in Greg's very informative response made > my realize I may be going about this the wrong way. If I were to represent > every name imported by "using namespace std", I would have to create > thousands of entries. That seems like a bad idea, and totally unnecessary, as > lldb seems to handle the "using namspace" case just fine without this. > > Greg, could you elaborate on how this works? Do we just parse the compilation > unit we are stopped in and pick out the "using" declarations from there? If > that is the case, then why doesn't the namespace alias declaration work as > well ? The expression 2 from my example fails in lldb. Could it be that it's > just an lldb bug, and that we don't need to change anything in the > accelerator tables?
Since we use clang as our expression parser, we get asked about each name as the expression parser runs into it. So for namesp2::var we would first get asked about "namesp2" and we probably tried to look that up in our tables and found nothing. I believe our expression parser does try to determine using directives using the debug info, but I would defer to the expression parsing folks as I remember hearing about that, but don't remember what was done about it. So it is probably failing due to "namesp2" not being the accelerator tables that causes it to fail. I am pretty sure we don't add imported declarations to our tables. > > > _______________________________________________ > Dwarf-Discuss mailing list > Dwarf-Discuss@lists.dwarfstd.org > http://lists.dwarfstd.org/listinfo.cgi/dwarf-discuss-dwarfstd.org _______________________________________________ Dwarf-Discuss mailing list Dwarf-Discuss@lists.dwarfstd.org http://lists.dwarfstd.org/listinfo.cgi/dwarf-discuss-dwarfstd.org