From: Manman Ren Date: Fri, 23 Aug 2013 18:36:18 +0000 (+0000) Subject: DebugInfoFinder: handle template params of a DISubprogram. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=003f5519129e5413768b3d6a309f36389f425ced;p=oota-llvm.git DebugInfoFinder: handle template params of a DISubprogram. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189131 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/IR/DebugInfo.cpp b/lib/IR/DebugInfo.cpp index cffc2ac1f22..de3360129a5 100644 --- a/lib/IR/DebugInfo.cpp +++ b/lib/IR/DebugInfo.cpp @@ -1005,6 +1005,19 @@ void DebugInfoFinder::processSubprogram(DISubprogram SP) { return; processScope(SP.getContext()); processType(SP.getType()); + DIArray TParams = SP.getTemplateParams(); + for (unsigned I = 0, E = TParams.getNumElements(); I != E; ++I) { + DIDescriptor Element = TParams.getElement(I); + if (Element.isTemplateTypeParameter()) { + DITemplateTypeParameter TType(Element); + processScope(TType.getContext()); + processType(TType.getType()); + } else if (Element.isTemplateValueParameter()) { + DITemplateValueParameter TVal(Element); + processScope(TVal.getContext()); + processType(TVal.getType()); + } + } } /// processDeclare - Process DbgDeclareInst.