[LLVMbugs] [Bug 10511] New: libclang crash when calling clang_reparseTranslationUnit

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed Jul 27 04:31:39 PDT 2011


           Summary: libclang crash when calling
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: MacOS X
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: Erik.Verbruggen at Me.com
                CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com

When reparsing a translation unit with the flag
CXTranslationUnit_CXXPrecompiledPreamble on (as
clang_defaultEditingTranslationUnitOptions does), then reparsing gives either:

Assertion failed: ((Offset & (1U << 31)) == 0 && "Bad offset in reading source
location"), function ReadSourceLocation, file
/data/clang-llvm/llvm/tools/clang/include/clang/Serialization/ASTReader.h, line
libclang: crash detected during reparsing
reparse failed.


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
libclang: crash detected during reparsing

Turning off CXTranslationUnit_CXXPrecompiledPreamble stops clang from crashing.

To reproduce:
- unzip the attached zip file
- download and unzip Qt 4.8
- copy qconfig.h to Qt's src/corelib/global directory
- edit gen-pch.sh for the QTDIR and the CLANGDIR
- run gen-pch.sh, that will generate the pre-compiled header from pch.h
- compile and run main.cpp which will parse crash.cpp and show the crash.

I already minimized the number of includes. Preprocessing the .cpp file and
including that will unfortunately not show the crash.

Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

More information about the llvm-bugs mailing list