Fix debug info crashes for PIC16.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88761 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Sanjiv Gupta 2009-11-14 06:19:49 +00:00
parent 20162ac566
commit 6fb01a7750
2 changed files with 12 additions and 6 deletions

View File

@ -138,7 +138,7 @@ bool AsmPrinter::doInitialization(Module &M) {
if (MMI)
MMI->AnalyzeModule(M);
DW = getAnalysisIfAvailable<DwarfWriter>();
if (DW)
if (DW && MAI->doesSupportDebugInformation())
DW->BeginModule(&M, MMI, O, this, MAI);
return false;

View File

@ -467,12 +467,18 @@ void PIC16DbgInfo::EmitVarDebugInfo(Module &M) {
void PIC16DbgInfo::SwitchToCU(MDNode *CU) {
// Get the file path from CU.
DICompileUnit cu(CU);
std::string DirName = cu.getDirectory();
std::string FileName = cu.getFilename();
std::string FilePath = DirName + "/" + FileName;
std::string FilePath = "";
if (cu.getDirectory()) {
std::string DirName = cu.getDirectory();
FilePath = FilePath + DirName + "/";
}
if (cu.getFilename()) {
std::string FileName = cu.getFilename();
FilePath = FilePath + FileName;
}
// Nothing to do if source file is still same.
if ( FilePath == CurFile ) return;
// Nothing to do if source file is still same or it is empty.
if ( FilePath == CurFile || FilePath == "") return;
// Else, close the current one and start a new.
if (CurFile != "") O << "\n\t.eof";