[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
    
    
  
http://llvm.org/bugs/show_bug.cgi?id=10511
           Summary: libclang crash when calling
                    clang_reparseTranslationUnit
           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
1456.
libclang: crash detected during reparsing
reparse failed.
or:
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
Turning off CXTranslationUnit_CXXPrecompiledPreamble stops clang from crashing.
To reproduce:
- unzip the attached zip file
- download and unzip Qt 4.8
(http://get.qt.nokia.com/qt/source/qt-everywhere-opensource-src-4.8.0-beta1.zip)
- 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