Hi, I found an easy way to reproduce the issue.
Just create a new bare board c++ project using the wizard (I've selected MPC5675K in DPM C++ project) and in the generated main.cpp add and include to any EWL-STL (like e.g. <list>)
#include "MPC5675K.h"
#include <list>
/* Prototype for second core startup */
extern "C"{void __start_p1();}
int main(void) {
list<int> list;
volatile int i = 0;
#if ROM_VERSION == 1
/* Start the second core, VLE mode*/
SSCM.DPMBOOT.R = (unsigned long)__start_p1 + 0x00000002;
SSCM.DPMKEY.R = 0x00005AF0;
SSCM.DPMKEY.R = 0x0000A50F;
#endif
/* Loop forever */
for (;;) {
i++;
}
}
Then create a list<int> instance in the main function and execute the indexer. Indexer settings should have following options enabled:
Index source files not included in the build (ON)
Index unused headers (ON)
All others off.
Then open Preferences->General and enable 'Show heap status'.
Rebuild the index of the project and you will see that memory used increases with every indexer run.
Open the error log und you will see:
ENTRY org.eclipse.cdt.core 4 0 2013-10-29 15:39:25.349
!MESSAGE Error while parsing /Indextest/Sources/main.cpp.
!STACK 0
java.lang.NullPointerException
at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalBinary.getValue(EvalBinary.java:163)
at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPTemplates.instantiateValue(CPPTemplates.java:869)
at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPTemplates.createSpecialization(CPPTemplates.java:786)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPClassSpecialization.specializeMember(CPPClassSpecialization.java:176)
at org.eclipse.cdt.internal.core.dom.parser.cpp.AbstractCPPClassSpecializationScope.getBindings(AbstractCPPClassSpecializationScope.java:116)
at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPSemantics.getBindingsFromScope(CPPSemantics.java:1205)
at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPSemantics.lookup(CPPSemantics.java:953)
at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPSemantics.resolveBinding(CPPSemantics.java:266)
at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPVisitor.createBinding(CPPVisitor.java:262)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTName.createIntermediateBinding(CPPASTName.java:65)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTNameBase.resolvePreBinding(CPPASTNameBase.java:76)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTQualifiedName.resolvePreBinding(CPPASTQualifiedName.java:87)
at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalID.create(EvalID.java:187)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTIdExpression.getEvaluation(CPPASTIdExpression.java:119)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTBinaryExpression.computeEvaluation(CPPASTBinaryExpression.java:278)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTBinaryExpression.getEvaluation(CPPASTBinaryExpression.java:269)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTBinaryExpression.getOverload(CPPASTBinaryExpression.java:260)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTBinaryExpression.getImplicitNames(CPPASTBinaryExpression.java:131)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTBinaryExpression.accept(CPPASTBinaryExpression.java:164)
at org.eclipse.cdt.internal.core.dom.parser.ASTEqualsInitializer.accept(ASTEqualsInitializer.java:59)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTDeclarator.postAccept(CPPASTDeclarator.java:240)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTDeclarator.accept(CPPASTDeclarator.java:230)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTSimpleDeclaration.accept(CPPASTSimpleDeclaration.java:105)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTCompositeTypeSpecifier.accept(CPPASTCompositeTypeSpecifier.java:193)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTSimpleDeclaration.accept(CPPASTSimpleDeclaration.java:102)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTTemplateDeclaration.accept(CPPASTTemplateDeclaration.java:127)
at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTNamespaceDefinition.accept(CPPASTNamespaceDefinition.java:139)
at org.eclipse.cdt.internal.core.dom.parser.ASTTranslationUnit.accept(ASTTranslationUnit.java:251)
at org.eclipse.cdt.internal.core.pdom.PDOMWriter.extractSymbols(PDOMWriter.java:444)
at org.eclipse.cdt.internal.core.pdom.PDOMWriter.addSymbols(PDOMWriter.java:225)
at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.writeToIndex(AbstractIndexerTask.java:1188)
at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.parseFile(AbstractIndexerTask.java:1019)
at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.parseLinkage(AbstractIndexerTask.java:865)
at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.runTask(AbstractIndexerTask.java:511)
at org.eclipse.cdt.internal.core.pdom.indexer.PDOMIndexerTask.run(PDOMIndexerTask.java:139)
at org.eclipse.cdt.internal.core.pdom.PDOMIndexerJob.run(PDOMIndexerJob.java:137)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
Seems like the indexer has a problem with templates and ewl_int_limits