diff options
author | Devang Patel <dpatel@apple.com> | 2011-02-02 22:36:18 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2011-02-02 22:36:18 +0000 |
commit | 84ffdd9ba3039a23e5c034b7a43dcf5e5d84d5cf (patch) | |
tree | dfa1108b84d3d48aeddfae8bf59ee4b780e7e31c | |
parent | be933b470a4b8189608bdcb0a79e89de65833131 (diff) | |
download | bcm5719-llvm-84ffdd9ba3039a23e5c034b7a43dcf5e5d84d5cf.tar.gz bcm5719-llvm-84ffdd9ba3039a23e5c034b7a43dcf5e5d84d5cf.zip |
Emit debug info for template value parameters.
llvm-svn: 124756
-rw-r--r-- | clang/lib/CodeGen/CGDebugInfo.cpp | 7 | ||||
-rw-r--r-- | clang/test/CodeGenCXX/debug-info-template.cpp | 9 |
2 files changed, 16 insertions, 0 deletions
diff --git a/clang/lib/CodeGen/CGDebugInfo.cpp b/clang/lib/CodeGen/CGDebugInfo.cpp index c4a6d570f26..7a67192379a 100644 --- a/clang/lib/CodeGen/CGDebugInfo.cpp +++ b/clang/lib/CodeGen/CGDebugInfo.cpp @@ -967,6 +967,13 @@ llvm::DIType CGDebugInfo::CreateType(const RecordType *Ty) { llvm::DITemplateTypeParameter TTP = DBuilder.CreateTemplateTypeParameter(TheCU, TTy.getName(), TTy); TemplateParams.push_back(TTP); + } else if (TA.getKind() == TemplateArgument::Integral) { + llvm::DIType TTy = getOrCreateType(TA.getIntegralType(), Unit); + // FIXME: Get parameter name, instead of parameter type name. + llvm::DITemplateValueParameter TVP = + DBuilder.CreateTemplateValueParameter(TheCU, TTy.getName(), TTy, + TA.getAsIntegral()->getZExtValue()); + TemplateParams.push_back(TVP); } } } diff --git a/clang/test/CodeGenCXX/debug-info-template.cpp b/clang/test/CodeGenCXX/debug-info-template.cpp index 3fbfebf915f..0ddfc242b10 100644 --- a/clang/test/CodeGenCXX/debug-info-template.cpp +++ b/clang/test/CodeGenCXX/debug-info-template.cpp @@ -11,3 +11,12 @@ public: }; TC<int> tci; + +//CHECK: TU<2> +//CHECK: DW_TAG_template_value_parameter +template<unsigned > +class TU { + int b; +}; + +TU<2> u2; |