Community
Participate
Working Groups
Code: struct widget_state {}; struct widget { widget(int id, widget_state state) : id(id) , state(state) {} int id; widget_state state; }; struct node { widget w; }; auto make_node() { widget_state ws; return node{widget(0, ws)}; } The problem is related to the line with return statement, all these work: return node{widget(0, {})}; return {widget(0, ws)}; return widget(0, ws); but when written as in the example, indexer crashes: java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0 at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPFunction.getFunctionBodyExecution(CPPFunction.java:793) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPFunction.getFunctionBodyExecution(CPPFunction.java:782) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalFunctionCall.evaluateFunctionBody(EvalFunctionCall.java:337) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalFunctionCall.computeForFunctionCall(EvalFunctionCall.java:316) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalConstructor.computeForFunctionCall(EvalConstructor.java:218) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalConstructor.getValue(EvalConstructor.java:144) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVariable.computeInitialValue(CPPVariable.java:271) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPVariable.getInitialValue(CPPVariable.java:248) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalBinding.computeIsConstantExpression(EvalBinding.java:266) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalBinding.isConstantExpression(EvalBinding.java:257) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPEvaluation.areAllConstantExpressions(CPPEvaluation.java:141) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.CPPEvaluation.areAllConstantExpressions(CPPEvaluation.java:129) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalTypeId.computeIsConstantExpression(EvalTypeId.java:259) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalTypeId.isConstantExpression(EvalTypeId.java:247) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.AggregateInitialization.checkElement(AggregateInitialization.java:109) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.AggregateInitialization.checkInitializationOfElements(AggregateInitialization.java:146) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.AggregateInitialization.checkImpl(AggregateInitialization.java:50) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.AggregateInitialization.check(AggregateInitialization.java:38) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalTypeId.computeConstructor(EvalTypeId.java:340) at org.eclipse.cdt.internal.core.dom.parser.cpp.semantics.EvalTypeId.getConstructor(EvalTypeId.java:281) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTSimpleTypeConstructorExpression.getImplicitNames(CPPASTSimpleTypeConstructorExpression.java:294) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTSimpleTypeConstructorExpression.accept(CPPASTSimpleTypeConstructorExpression.java:157) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTReturnStatement.accept(CPPASTReturnStatement.java:91) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTCompoundStatement.accept(CPPASTCompoundStatement.java:103) at org.eclipse.cdt.internal.core.dom.parser.cpp.CPPASTFunctionDefinition.accept(CPPASTFunctionDefinition.java:225) at org.eclipse.cdt.internal.core.dom.parser.ASTTranslationUnit.accept(ASTTranslationUnit.java:289) at org.eclipse.cdt.internal.ui.editor.SemanticHighlightingReconciler.reconcilePositions(SemanticHighlightingReconciler.java:450) at org.eclipse.cdt.internal.ui.editor.SemanticHighlightingReconciler.reconciled(SemanticHighlightingReconciler.java:413) at org.eclipse.cdt.internal.ui.editor.CEditor.reconciled(CEditor.java:3109) at org.eclipse.cdt.internal.ui.text.CReconcilingStrategy.reconcile(CReconcilingStrategy.java:100) at org.eclipse.cdt.internal.ui.text.CReconcilingStrategy.reconcile(CReconcilingStrategy.java:64) at org.eclipse.cdt.internal.ui.text.CompositeReconcilingStrategy.reconcile(CompositeReconcilingStrategy.java:89) at org.eclipse.cdt.internal.ui.text.CCompositeReconcilingStrategy.reconcile(CCompositeReconcilingStrategy.java:90) at org.eclipse.jface.text.reconciler.MonoReconciler.process(MonoReconciler.java:76) at org.eclipse.cdt.internal.ui.text.CReconciler.process(CReconciler.java:346) at org.eclipse.jface.text.reconciler.AbstractReconciler$BackgroundThread.run(AbstractReconciler.java:210)