[cfe-dev] libclang's Indexer assertion on translation unit in large C++ codebase

Eli Friedman eli.friedman at gmail.com
Thu Aug 25 16:04:37 PDT 2011


On Thu, Aug 25, 2011 at 3:48 PM, Daniel Jennings <sekkusu at gmail.com> wrote:
> Hi all,
> I'm currently trying to run libclang's indexer over parts of an existing
> (large) codebase (that has never seen clang before) in order to run some
> metrics. I've got it working for some scenarios but in the process of
> getting it working I've run into a failed assertion in clang's AST code that
> I'm not sure how to track down. This problem only seems to exist when I try
> to run the indexer over parts of the real codebase; simple test CPP files
> work fine. As you'll see by the message, I'm using the python bindings for
> libclang, and I have my own locally built libclang.dll built under VS2010.
> Program: c:\Python27-32\python.exe
> File: E:\llvm\tools\clang\include\clang/AST/DeclCXX.h
> Line: 522
> Expression: DefinitionData && "queried property of class with no definition"
> and
> libclang: crash detected during parsing: {
>   'source_filename' : '(null)'
>   'command_line_args' : ['u:\Code\Services\MyService\MyService.cpp'],
>   'unsaved_files' : [],
>   'options' : 0,
> }
>
> I'm not entirely sure how to track this down and figure out if I'm doing
> something wrong. I'm just trying to run the indexer over a single
> translation unit (a single CPP file) but that CPP file includes all of our
> normal core headers, etc. which I think may be the problem. By this point
> I'm very familiar with how the Python bindings work/wrap the libclang code,
> and I have my IDE set up for working with libclang code, so if you need me
> to poke around or add some sort of diagnostic code I can.

Are you actually doing anything besides loading the file when it
crashes?  It's possible you've just run into a parser crash...
granted, those aren't especially common, but it's a possibility.  You
might want to try and see if you get a crash by invoking clang itself
on the file in question; if you can, please see
http://llvm.org/docs/HowToSubmitABug.html .

-Eli




More information about the cfe-dev mailing list