From: Chris Lattner Date: Mon, 28 Dec 2009 21:44:41 +0000 (+0000) Subject: this form of SetDebugLocation is about to go away, add some #includes that X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d5b8902c0329d80a216803b58dc3b689349a0c11;p=clang this form of SetDebugLocation is about to go away, add some #includes that are about to not come in implicitly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92228 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CGDebugInfo.cpp b/lib/CodeGen/CGDebugInfo.cpp index b7401a40f2..0f590a3174 100644 --- a/lib/CodeGen/CGDebugInfo.cpp +++ b/lib/CodeGen/CGDebugInfo.cpp @@ -26,6 +26,7 @@ #include "llvm/DerivedTypes.h" #include "llvm/Instructions.h" #include "llvm/Intrinsics.h" +#include "llvm/LLVMContext.h" #include "llvm/Module.h" #include "llvm/ADT/StringExtras.h" #include "llvm/ADT/SmallVector.h" @@ -1216,9 +1217,12 @@ void CGDebugInfo::EmitDeclare(const VarDecl *Decl, unsigned Tag, llvm::DIScope DS(RegionStack.back()); llvm::DILocation DO(NULL); - llvm::DILocation DL = - DebugFactory.CreateLocation(Line, Column, DS, DO); - Builder.SetDebugLocation(Call, DL.getNode()); + llvm::DILocation DL = DebugFactory.CreateLocation(Line, Column, DS, DO); + + // TODO: Remove #include of LLVMContext from this. + llvm::LLVMContext &Context = Call->getContext(); + unsigned DbgMDKind = Context.getMetadata().getMDKindID("dbg"); + Context.getMetadata().addMD(DbgMDKind, DL.getNode(), Call); } /// EmitDeclare - Emit local variable declaration debug info. @@ -1419,7 +1423,12 @@ void CGDebugInfo::EmitDeclare(const BlockDeclRefExpr *BDRE, unsigned Tag, llvm::DILocation DO(NULL); llvm::DILocation DL = DebugFactory.CreateLocation(Line, PLoc.getColumn(), DS, DO); - Builder.SetDebugLocation(Call, DL.getNode()); + + // TODO: Remove #include of LLVMContext from this. + llvm::LLVMContext &Context = Call->getContext(); + unsigned DbgMDKind = Context.getMetadata().getMDKindID("dbg"); + Context.getMetadata().addMD(DbgMDKind, DL.getNode(), Call); + } void CGDebugInfo::EmitDeclareOfAutoVariable(const VarDecl *Decl, diff --git a/lib/CodeGen/CodeGenModule.cpp b/lib/CodeGen/CodeGenModule.cpp index a7e0552050..abb78f0dcf 100644 --- a/lib/CodeGen/CodeGenModule.cpp +++ b/lib/CodeGen/CodeGenModule.cpp @@ -30,6 +30,7 @@ #include "llvm/CallingConv.h" #include "llvm/Module.h" #include "llvm/Intrinsics.h" +#include "llvm/LLVMContext.h" #include "llvm/Target/TargetData.h" #include "llvm/Support/ErrorHandling.h" using namespace clang; @@ -1089,9 +1090,7 @@ static void ReplaceUsesOfNonProtoTypeWithRealFunction(llvm::GlobalValue *Old, CI->replaceAllUsesWith(NewCall); // Copy any custom metadata attached with CI. - llvm::MetadataContext &TheMetadata = CI->getContext().getMetadata(); - TheMetadata.copyMD(CI, NewCall); - + CI->getContext().getMetadata().copyMD(CI, NewCall); CI->eraseFromParent(); } }