diff options
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/CodeGen/CGDebugInfo.cpp | 26 | ||||
| -rw-r--r-- | clang/lib/CodeGen/CodeGenModule.cpp | 6 | 
2 files changed, 11 insertions, 21 deletions
diff --git a/clang/lib/CodeGen/CGDebugInfo.cpp b/clang/lib/CodeGen/CGDebugInfo.cpp index fc7c0c52ebb..58acd3c2e17 100644 --- a/clang/lib/CodeGen/CGDebugInfo.cpp +++ b/clang/lib/CodeGen/CGDebugInfo.cpp @@ -1389,13 +1389,10 @@ void CGDebugInfo::EmitStopPoint(llvm::Function *Fn, CGBuilderTy &Builder) {    llvm::DIFile Unit = getOrCreateFile(CurLoc);    PresumedLoc PLoc = SM.getPresumedLoc(CurLoc); -  llvm::DIDescriptor DR(RegionStack.back()); -  llvm::DIScope DS = llvm::DIScope(DR.getNode()); -  llvm::DILocation DO(NULL); -  llvm::DILocation DL =  -    DebugFactory.CreateLocation(PLoc.getLine(), PLoc.getColumn(), -                                DS, DO); -  Builder.SetCurrentDebugLocation(DL.getNode()); +  llvm::MDNode *Scope = RegionStack.back(); +  Builder.SetCurrentDebugLocation(llvm::NewDebugLoc::get(PLoc.getLine(), +                                                         PLoc.getColumn(), +                                                         Scope));  }  /// EmitRegionStart- Constructs the debug code for entering a declarative @@ -1598,11 +1595,8 @@ void CGDebugInfo::EmitDeclare(const VarDecl *VD, unsigned Tag,    llvm::Instruction *Call =      DebugFactory.InsertDeclare(Storage, D, Builder.GetInsertBlock()); -  llvm::DIScope DS(RegionStack.back()); -  llvm::DILocation DO(NULL); -  llvm::DILocation DL = DebugFactory.CreateLocation(Line, Column, DS, DO); -   -  Call->setDbgMetadata(DL.getNode()); +  llvm::MDNode *Scope = RegionStack.back(); +  Call->setDebugLoc(llvm::NewDebugLoc::get(Line, Column, Scope));  }  /// EmitDeclare - Emit local variable declaration debug info. @@ -1664,13 +1658,9 @@ void CGDebugInfo::EmitDeclare(const BlockDeclRefExpr *BDRE, unsigned Tag,    // Insert an llvm.dbg.declare into the current block.    llvm::Instruction *Call =       DebugFactory.InsertDeclare(Storage, D, Builder.GetInsertBlock()); - -  llvm::DIScope DS(RegionStack.back()); -  llvm::DILocation DO(NULL); -  llvm::DILocation DL =  -    DebugFactory.CreateLocation(Line, PLoc.getColumn(), DS, DO); -  Call->setDbgMetadata(DL.getNode()); +  llvm::MDNode *Scope = RegionStack.back(); +  Call->setDebugLoc(llvm::NewDebugLoc::get(Line, PLoc.getColumn(), Scope));  }  void CGDebugInfo::EmitDeclareOfAutoVariable(const VarDecl *VD, diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 65aceb741ac..3c872c8560d 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -1245,9 +1245,9 @@ static void ReplaceUsesOfNonProtoTypeWithRealFunction(llvm::GlobalValue *Old,      if (!CI->use_empty())        CI->replaceAllUsesWith(NewCall); -    // Copy any custom metadata attached with CI. -    if (llvm::MDNode *DbgNode = CI->getDbgMetadata()) -      NewCall->setDbgMetadata(DbgNode); +    // Copy debug location attached to CI. +    if (!CI->getDebugLoc().isUnknown()) +      NewCall->setDebugLoc(CI->getDebugLoc());      CI->eraseFromParent();    }  }  | 

