diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java index ba0378e9f23..f7801bafed8 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPTemplates.java @@ -1278,6 +1278,16 @@ public class CPPTemplates { if (r < 0) return r; } + } else if (binding instanceof ICPPDeferredVariableInstance dvi) { + if (dvi.getTemplateDefinition() instanceof ICPPTemplateTemplateParameter) { + r = combinePackSize(r, determinePackSize((ICPPUnknownBinding) dvi.getTemplateDefinition(), tpMap)); + } + ICPPTemplateArgument[] args = dvi.getTemplateArguments(); + for (ICPPTemplateArgument arg : args) { + r = combinePackSize(r, determinePackSize(arg, tpMap)); + if (r < 0) + return r; + } } IBinding ownerBinding = binding.getOwner(); if (ownerBinding instanceof IType)