[cfe-dev] Distinguishing system headers from user headers using libclang

Siedlarek, Mikołaj m.siedlarek at nctz.net
Fri Apr 5 03:37:15 PDT 2013

On Fri, Apr 5, 2013 at 12:22 AM, Argyrios Kyrtzidis <akyrtzi at gmail.com> wrote:
> On Apr 2, 2013, at 1:33 AM, Mikołaj Siedlarek <m.siedlarek at nctz.net> wrote:
> Hi,
> I'm writing a simple code dependency analysis tool using libclang and I'm missing some way of distinguishing system headers from user headers. I see clang::DirectoryLookup::getDirCharacteristic() provides such interface, but is there any way I could obtain this information using just libclang? My tool is rather simple and I'd like to keep it that way - libclang seems to be sufficient for the rest of my needs.
> There is no way currently, but it should relatively easy, are you interested in providing such a patch ?
> The clang function you may need to look into using is "SourceManager::isInSystemHeader(SourceLocation Loc)"
> The libclang function would accept a CXTranslationUnit and a CXSourceLocation.

How about this? That's the best and most elastic approach I could think of.

Mikołaj Siedlarek
m.siedlarek at nctz.net
-------------- next part --------------
A non-text attachment was scrubbed...
Name: file-characteristics.diff
Type: application/octet-stream
Size: 2964 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20130405/3dd414c1/attachment.obj>

More information about the cfe-dev mailing list