[cfe-dev] libclang crash when reparsing

Douglas Gregor dgregor at apple.com
Tue Jul 26 07:57:29 PDT 2011


On Jul 26, 2011, at 7:32 AM, Erik Verbruggen wrote:

> Hello,
> 
> I'm using libclang, and when using clang_reparseTranslationUnit method, I (nearly?) always get a crash:
> 
> Assertion failed: ((LatestDecl->getLocation().isInvalid() || NewLatest->getLocation().isInvalid() || !Reader.SourceMgr.isBeforeInTranslationUnit( NewLatest->getLocation(), LatestDecl->getLocation())) && "The new latest is supposed to come after the previous latest"), function VisitRedeclarableTemplateDecl, file /data/clang-llvm/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp, line 1094.
> libclang: crash detected during reparsing
> 
> When I turn off CXTranslationUnit_CXXPrecompiledPreamble, things work fine (although quite a bit slower).
> 
> Does anybody have an idea how I can debug this, or in which direction I should look?

That sounds like a serious bug in the AST reader or writer. Debugging these can be fairly tricky; in this case, watching how that particular declaration ends up getting deserialized. If you could file a bug with reduced source code detailing the problem (which can be tricky, when dealing with preambles), we'd greatly appreciate it.

	- Doug




More information about the cfe-dev mailing list