[clang] [libclang] Add accessors for template parameters and fix parameter pack handling (PR #183504)

via cfe-commits cfe-commits at lists.llvm.org
Wed Apr 8 07:54:19 PDT 2026


================
@@ -1571,6 +1615,27 @@ CXType clang_Cursor_getTemplateArgumentType(CXCursor C, unsigned I) {
   return cxtype::MakeCXType(TA.getAsType(), getCursorTU(C));
 }
 
+CXType clang_Cursor_getConstantTemplateArgumentType(CXCursor C, unsigned I) {
+  TemplateArgument TA;
+  if (clang_Cursor_getTemplateArgument(C, I, &TA) !=
+      CXGetTemplateArgumentStatus_Success) {
+    return cxtype::MakeCXType(QualType(), getCursorTU(C));
+  }
+
+  switch (TA.getKind()) {
----------------
fscheidl wrote:

Pack arguments are already expanded by `clang_Cursor_getTemplateArgument` before we reach the switch, so we should never see `TemplateArgument::Pack` here.

https://github.com/llvm/llvm-project/pull/183504


More information about the cfe-commits mailing list