diff options
author | Manman Ren <manman.ren@gmail.com> | 2013-08-23 18:36:18 +0000 |
---|---|---|
committer | Manman Ren <manman.ren@gmail.com> | 2013-08-23 18:36:18 +0000 |
commit | 5477cfb592685783b02ece76532260fc807c351c (patch) | |
tree | fd972c2f8313e6d35cc9029f0ae604a9fe2d5c99 /llvm/lib/IR/DebugInfo.cpp | |
parent | 361c287f0d7852163d218d7893577fc53ccdc677 (diff) | |
download | bcm5719-llvm-5477cfb592685783b02ece76532260fc807c351c.tar.gz bcm5719-llvm-5477cfb592685783b02ece76532260fc807c351c.zip |
DebugInfoFinder: handle template params of a DISubprogram.
llvm-svn: 189131
Diffstat (limited to 'llvm/lib/IR/DebugInfo.cpp')
-rw-r--r-- | llvm/lib/IR/DebugInfo.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/IR/DebugInfo.cpp b/llvm/lib/IR/DebugInfo.cpp index cffc2ac1f22..de3360129a5 100644 --- a/llvm/lib/IR/DebugInfo.cpp +++ b/llvm/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. |