I don't know which API you're using, but clang::NamedDecl::getQualifiedNameAsString seems to do what you want.
> Le 30 août 2016 à 17:40, David Blaikie via cfe-users > <cfe-users@lists.llvm.org> a écrit : > > Do you want to identify the same entity across a valid program's various > source files? Across changes to that program? (what changes?) > > If you want to do the former, then producing the mangled name of the entity > is probably what you want. (some part of the ABI code in Clang could give you > that, I would assume - but not sure exactly where) > >> On Tue, Aug 30, 2016 at 2:33 AM folkert <folk...@vanheusden.com> wrote: >> Maybe I could expand a name into its full name and use that. >> e.g.: >> >> namespace bla { class myclass { void mymethod() { } } } >> >> then the full name of mymethod would be bla::myclass::mymethod would be >> unique enough to me (including filename). >> Can I somehow get this out of it? >> >> On Fri, Aug 26, 2016 at 03:33:20PM +0000, David Blaikie wrote: >> > There's no structural identity of code in Clang that I know of - I know >> > someone's building a tool for doing structural similarity for things like >> > plagiarism detection (I think there are some patches on the clang mailing >> > list). >> > >> > But if you only need identity within a single process, the pointer value of >> > the pointer to any AST construct is a unique identity you can use. >> > >> > (line/file/column isn't sufficiently unique - you could have a file that is >> > included under different macro situations and each time it defines a >> > different function, but all those functions would appear to be defined on >> > the same line/file of that included file - or a macro that defines multiple >> > functions - both can be resolved by looking at the more complete location >> > information (including macro locations, etc)) >> > >> > On Fri, Aug 26, 2016 at 5:11 AM folkert via cfe-users < >> > cfe-users@lists.llvm.org> wrote: >> > >> > > Hi, >> > > >> > > The Sun java compiler allows you to (from java) walk the AST and >> > > investigate it. Each token is stored in an object. Each object has a >> > > hash() method which uniquely identifies it. >> > > >> > > Now I was wondering: can I do so with the LLVM tooling as well? I could >> > > of course if I want to identify e.g. a function name just pick the line- >> > > and column number and maybe include the function name itself as well but >> > > that would constantly change when lines are added and/or removed. >> > > >> > > Any suggestions? >> > > >> > > >> > > regards, >> > > >> > > Folkert van Heusden >> > > >> > > -- >> > > --------------------------------------------------------------------- >> > > Phone: +31-6-41278122, PGP-key: 1F28D8AE, www.vanheusden.com >> > > _______________________________________________ >> > > cfe-users mailing list >> > > cfe-users@lists.llvm.org >> > > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users >> > > >> >> >> Folkert van Heusden >> >> -- >> Always wondered what the latency of your webserver is? Or how much more >> latency you get when you go through a proxy server/tor? The numbers >> tell the tale and with HTTPing you know them! >> http://www.vanheusden.com/httping/ >> ----------------------------------------------------------------------- >> Phone: +31-6-41278122, PGP-key: 1F28D8AE, www.vanheusden.com > _______________________________________________ > cfe-users mailing list > cfe-users@lists.llvm.org > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users
_______________________________________________ cfe-users mailing list cfe-users@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users