]> granicus.if.org Git - clang/commitdiff
Emit debug info for template value parameters.
authorDevang Patel <dpatel@apple.com>
Wed, 2 Feb 2011 22:36:18 +0000 (22:36 +0000)
committerDevang Patel <dpatel@apple.com>
Wed, 2 Feb 2011 22:36:18 +0000 (22:36 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124756 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/CGDebugInfo.cpp
test/CodeGenCXX/debug-info-template.cpp

index c4a6d570f268e45d5d9663d96865304a061bf18b..7a67192379aa580684ed6faedeff40d165acf802 100644 (file)
@@ -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);          
         }
       }
     }
index 3fbfebf915f03f97701809520a1bebe960766fa0..0ddfc242b10e35bf6158e0d1c6c6c7d1166eebf7 100644 (file)
@@ -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;