diff --git a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java index 98223b1759e..fa80afde3a1 100644 --- a/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java +++ b/core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2TemplateTests.java @@ -10551,4 +10551,13 @@ public class AST2TemplateTests extends AST2CPPTestBase { public void testTemplateIdAmbiguity_529696() throws Exception { parseAndCheckBindings(); } + + // template + // using index_sequence = int; + // + // template + // void foo(index_sequence); + public void testTemplateAliasWithVariadicNonTypeArgs_530086() throws Exception { + parseAndCheckBindings(); + } } 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 58c6af7f199..b4915bb19c2 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 @@ -2834,6 +2834,9 @@ public class CPPTemplates { final IType paramType, ICPPTemplateArgument arg) throws DOMException { // 14.1s8 function to pointer and array to pointer conversions. IType a= arg.getTypeOfNonTypeValue(); + if (a instanceof ICPPParameterPackType) { + a = ((ICPPParameterPackType) a).getType(); + } IType p; if (paramType instanceof IFunctionType) { p = new CPPPointerType(paramType);