Community
Participate
Working Groups
StackOverflow occurs when indexing following code: template<typename TemplateType> struct SomeType { SomeType (TemplateType) { }; }; constexpr auto s = sizeof(SomeType<int> ); The semicolon after ctor causes indexer to incorrectly identify it as a field of type SomeType. That leads to infinite recursion when computing sizeof SomeType - and eventual stack overflow. log: !ENTRY org.eclipse.cdt.core 4 0 2020-05-13 15:56:42.830 !MESSAGE Error while parsing /Test/SomeType.cpp. !STACK 0 java.lang.reflect.InvocationTargetException at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.getMaskedException(AbstractIndexerTask.java:1206) at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.swallowError(AbstractIndexerTask.java:1192) at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.parseFile(AbstractIndexerTask.java:1128) at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.parseLinkage(AbstractIndexerTask.java:910) at org.eclipse.cdt.internal.core.pdom.AbstractIndexerTask.runTask(AbstractIndexerTask.java:572) at org.eclipse.cdt.internal.core.pdom.indexer.PDOMIndexerTask.run(PDOMIndexerTask.java:164) at org.eclipse.cdt.internal.core.pdom.PDOMIndexerJob.run(PDOMIndexerJob.java:160) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) Caused by: java.lang.StackOverflowError at org.eclipse.cdt.internal.core.dom.parser.cpp.ClassTypeHelper.getDeclaredFields(ClassTypeHelper.java:225) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPClassTemplate.getDeclaredFields(CPPClassTemplate.java:176) at org.eclipse.cdt.internal.core.dom.parser.cpp.AbstractCPPClassSpecializationScope.getDeclaredFields(AbstractCPPClassSpecializationScope.java:233) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPClassSpecialization.getDeclaredFields(CPPClassSpecialization.java:281) at org.eclipse.cdt.internal.core.dom.parser.SizeofCalculator.sizeAndAlignment(SizeofCalculator.java:320) at org.eclipse.cdt.internal.core.dom.parser.SizeofCalculator.sizeAndAlignment(SizeofCalculator.java:214) at org.eclipse.cdt.internal.core.dom.parser.SizeofCalculator.sizeAndAlignment(SizeofCalculator.java:342) at org.eclipse.cdt.internal.core.dom.parser.SizeofCalculator.sizeAndAlignment(SizeofCalculator.java:214) at org.eclipse.cdt.internal.core.dom.parser.SizeofCalculator.sizeAndAlignment(SizeofCalculator.java:342) at org.eclipse.cdt.internal.core.dom.parser.SizeofCalculator.sizeAndAlignment(SizeofCalculator.java:214) at org.eclipse.cdt.internal.core.dom.parser.SizeofCalculator.sizeAndAlignment(SizeofCalculator.java:342) at org.eclipse.cdt.internal.core.dom.parser.SizeofCalculator.sizeAndAlignment(SizeofCalculator.java:214) at org.eclipse.cdt.internal.core.dom.parser.SizeofCalculator.sizeAndAlignment(SizeofCalculator.java:342) at org.eclipse.cdt.internal.core.dom.parser.SizeofCalculator.sizeAndAlignment(SizeofCalculator.java:214) at org.eclipse.cdt.internal.core.dom.parser.SizeofCalculator.sizeAndAlignment(SizeofCalculator.java:342) at org.eclipse.cdt.internal.core.dom.parser.SizeofCalculator.sizeAndAlignment(SizeofCalculator.java:214) at org.eclipse.cdt.internal.core.dom.parser.SizeofCalculator.sizeAndAlignment(SizeofCalculator.java:342)