[cfe-dev] Obtaining file name for functions from included files

Jacob Carlborg doob at me.com
Tue Jun 19 13:53:35 PDT 2012


On 2012-06-19 14:34, Felix Schmitt wrote:
> Hi,
>
> I got the following problem:
> I need to traverse the AST (currently using RecursiveASTVisitor) and get the
> file name for every function declaration.
> Currently, I only get the filename for function declarations in my main file but
> how do I get these for functions in #included files?
>
> My relevant code looks like this (srcMgr is the SourceManager):
>
> bool CMyASTVisitor::VisitFunctionDecl(FunctionDecl* decl)
> {
> ...
>
> const FileEntry* file_entry =
> srcMgr.getFileEntryForID(srcMgr.getFileID(decl->getLocStart()));
>
> if (file_entry == NULL)
>     std::cout<<  "no file entry"<<  std::endl;
>
> ...
> }
>
> Is there a way to get these filenames?

I'm using the following functions from the C bindings:

* clang_getCursorLocation
* clang_getSpellingLocation
* clang_getFileName

May you could have a look at the implementation of those functions if no 
one else has a quicker solution.

-- 
/Jacob Carlborg




More information about the cfe-dev mailing list