[llvm-commits] Invalid memory access due to debug info which building gcc
Duncan Sands
baldrick at free.fr
Fri Jan 16 06:33:04 PST 2009
Hi Devang, if I configure llvm-gcc like this:
CFLAGS="-O0 -g" ../gcc-4.2.llvm/configure --prefix=... --enable-languages=c,c++,fortran --enable-checking --enable-llvm=... --disable-bootstrap --disable-multilib
then build, the build fails when compiling gcc/unwind-dw2-fde-glibc.c.
Valgrind reports
==3056== Invalid read of size 8
==3056== at 0xF1C820: llvm::DwarfDebug::AddType(llvm::CompileUnit*, llvm::DIE*, llvm::DIType) (DwarfWriter.cpp:1702)
==3056== by 0xF1CF5F: llvm::DwarfDebug::ConstructTypeDIE(llvm::CompileUnit*, llvm::DIE&, llvm::DIDerivedType) (DwarfWriter.cpp:1735)
==3056== by 0xF1C768: llvm::DwarfDebug::AddType(llvm::CompileUnit*, llvm::DIE*, llvm::DIType) (DwarfWriter.cpp:1694)
==3056== by 0xF23DF7: llvm::DwarfDebug::ConstructGlobalVariableDIEs() (DwarfWriter.cpp:2823)
==3056== by 0xF24369: llvm::DwarfDebug::SetDebugInfo(llvm::MachineModuleInfo*) (DwarfWriter.cpp:2929)
==3056== by 0xF06D31: llvm::DwarfWriter::BeginModule(llvm::Module*, llvm::MachineModuleInfo*, llvm::raw_ostream&, llvm::AsmPrinter*, llvm::TargetAsmInfo const*) (DwarfWriter.cpp:4244)
==3056== by 0xBD5B45: llvm::X86ATTAsmPrinter::doInitialization(llvm::Module&) (X86ATTAsmPrinter.cpp:739)
==3056== by 0x11B70C3: llvm::FPPassManager::doInitialization(llvm::Module&) (PassManager.cpp:1356)
==3056== by 0x11B72DA: llvm::FunctionPassManagerImpl::doInitialization(llvm::Module&) (PassManager.cpp:1250)
==3056== by 0x11AEA54: llvm::FunctionPassManager::doInitialization() (PassManager.cpp:1233)
==3056== by 0xA04A01: llvm_asm_file_end (llvm-backend.cpp:688)
==3056== by 0x971761: compile_file (toplev.c:1191)
==3056== Address 0x6fe8480 is 952 bytes inside a block of size 1,024 free'd
==3056== at 0x4C2514D: operator delete(void*) (vg_replace_malloc.c:342)
==3056== by 0xF113EB: llvm::DenseMap<llvm::GlobalVariable*, llvm::DIEntry*, llvm::DenseMapInfo<llvm::GlobalVariable*>, llvm::DenseMapInfo<llvm::DIEntry*> >::grow(unsigned int) (DenseMap.h:424)
==3056== by 0xF1145D: llvm::DenseMap<llvm::GlobalVariable*, llvm::DIEntry*, llvm::DenseMapInfo<llvm::GlobalVariable*>, llvm::DenseMapInfo<llvm::DIEntry*> >::InsertIntoBucket(llvm::GlobalVariable* const&, llvm::DIEntry* const&, std::pair<llvm::GlobalVariable*, llvm::DIEntry*>*) (DenseMap.h:306)
==3056== by 0xF11539: llvm::DenseMap<llvm::GlobalVariable*, llvm::DIEntry*, llvm::DenseMapInfo<llvm::GlobalVariable*>, llvm::DenseMapInfo<llvm::DIEntry*> >::FindAndConstruct(llvm::GlobalVariable* const&) (DenseMap.h:249)
==3056== by 0xF11560: llvm::DenseMap<llvm::GlobalVariable*, llvm::DIEntry*, llvm::DenseMapInfo<llvm::GlobalVariable*>, llvm::DenseMapInfo<llvm::DIEntry*> >::operator[](llvm::GlobalVariable* const&) (DenseMap.h:253)
==3056== by 0xF11588: llvm::CompileUnit::getDIEntrySlotFor(llvm::GlobalVariable*) (DwarfWriter.cpp:839)
==3056== by 0xF1C634: llvm::DwarfDebug::AddType(llvm::CompileUnit*, llvm::DIE*, llvm::DIType) (DwarfWriter.cpp:1679)
==3056== by 0xF1D653: llvm::DwarfDebug::ConstructFieldTypeDIE(llvm::CompileUnit*, llvm::DIE&, llvm::DIDerivedType) (DwarfWriter.cpp:1950)
==3056== by 0xF1DB29: llvm::DwarfDebug::ConstructTypeDIE(llvm::CompileUnit*, llvm::DIE&, llvm::DICompositeType) (DwarfWriter.cpp:1810)
==3056== by 0xF1C7D7: llvm::DwarfDebug::AddType(llvm::CompileUnit*, llvm::DIE*, llvm::DIType) (DwarfWriter.cpp:1697)
==3056== by 0xF1CF5F: llvm::DwarfDebug::ConstructTypeDIE(llvm::CompileUnit*, llvm::DIE&, llvm::DIDerivedType) (DwarfWriter.cpp:1735)
==3056== by 0xF1C768: llvm::DwarfDebug::AddType(llvm::CompileUnit*, llvm::DIE*, llvm::DIType) (DwarfWriter.cpp:1694)
and so on.
Ciao,
Duncan.
More information about the llvm-commits
mailing list