diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassTemplatePartialSpecialization.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassTemplatePartialSpecialization.java index bb043a223d7..35e65f5ecb0 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassTemplatePartialSpecialization.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPClassTemplatePartialSpecialization.java @@ -110,7 +110,8 @@ class PDOMCPPClassTemplatePartialSpecialization extends public void addArgument(IType type) throws CoreException { PDOMNodeLinkedList list = new PDOMNodeLinkedList(pdom, record + ARGUMENTS, getLinkageImpl()); PDOMNode typeNode = getLinkageImpl().addType(this, type); - list.addMember(typeNode); + if (typeNode != null) + list.addMember(typeNode); } private static class TemplateArgumentCollector implements IPDOMVisitor { diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPInstance.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPInstance.java index ef12ec1dd05..f3330bda317 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPInstance.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPInstance.java @@ -47,7 +47,8 @@ abstract class PDOMCPPInstance extends PDOMCPPSpecialization implements IType[] args = inst.getArguments(); for (int i = 0; i < args.length; i++) { PDOMNode typeNode = getLinkageImpl().addType(this, args[i]); - list.addMember(typeNode); + if (typeNode != null) + list.addMember(typeNode); } } diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPSpecialization.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPSpecialization.java index b3220367371..ba1c8080f0d 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPSpecialization.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/dom/cpp/PDOMCPPSpecialization.java @@ -56,9 +56,11 @@ abstract class PDOMCPPSpecialization extends PDOMCPPBinding implements if (argMap != null) { for (int i = 0; i < argMap.size(); i++) { PDOMNode paramNode = getLinkageImpl().addType(this, (IType) argMap.keyAt(i)); - paramList.addMember(paramNode); PDOMNode argNode = getLinkageImpl().addType(this, (IType) argMap.getAt(i)); - argList.addMember(argNode); + if (paramNode != null && argNode != null) { + paramList.addMember(paramNode); + argList.addMember(argNode); + } } } try {