CFunctionCallAssignmentStatement cannot be cast to CRightHandSide
On two new SV-COMP tasks, the following exception occurs (Buildbot table:
Exception in thread "main" java.lang.ClassCastException: class org.sosy_lab.cpachecker.cfa.ast.c.CFunctionCallAssignmentStatement cannot be cast to class org.sosy_lab.cpachecker.cfa.ast.c.CRightHandSide (org.sosy_lab.cpachecker.cfa.ast.c.CFunctionCallAssignmentStatement and org.sosy_lab.cpachecker.cfa.ast.c.CRightHandSide are in unnamed module of loader 'app')
at org.sosy_lab.cpachecker.cfa.parser.eclipse.c.CFAFunctionBuilder.handleExpressionList(CFAFunctionBuilder.java:2029)
at org.sosy_lab.cpachecker.cfa.parser.eclipse.c.CFAFunctionBuilder.handleConditionalExpression(CFAFunctionBuilder.java:2003)
at org.sosy_lab.cpachecker.cfa.parser.eclipse.c.CFAFunctionBuilder.handleAllSideEffects(CFAFunctionBuilder.java:1975)
at org.sosy_lab.cpachecker.cfa.parser.eclipse.c.CFAFunctionBuilder.createEdgeForExpression(CFAFunctionBuilder.java:1051)
at org.sosy_lab.cpachecker.cfa.parser.eclipse.c.CFAFunctionBuilder.handleExpressionList(CFAFunctionBuilder.java:2018)
at org.sosy_lab.cpachecker.cfa.parser.eclipse.c.CFAFunctionBuilder.handleConditionalExpression(CFAFunctionBuilder.java:2003)
at org.sosy_lab.cpachecker.cfa.parser.eclipse.c.CFAFunctionBuilder.handleAllSideEffects(CFAFunctionBuilder.java:1956)
at org.sosy_lab.cpachecker.cfa.parser.eclipse.c.CFAFunctionBuilder.createIASTExpressionStatementEdges(CFAFunctionBuilder.java:688)
at org.sosy_lab.cpachecker.cfa.parser.eclipse.c.CFAFunctionBuilder.handleExpressionStatement(CFAFunctionBuilder.java:656)
at org.sosy_lab.cpachecker.cfa.parser.eclipse.c.CFAFunctionBuilder.visit(CFAFunctionBuilder.java:598)
at org.eclipse.cdt.internal.core.dom.parser.c.CASTExpressionStatement.accept(CASTExpressionStatement.java:66)
at org.eclipse.cdt.internal.core.dom.parser.c.CASTCompoundStatement.accept(CASTCompoundStatement.java:81)
at org.sosy_lab.cpachecker.cfa.parser.eclipse.c.CFAFunctionBuilder.handleForStatement(CFAFunctionBuilder.java:1551)
at org.sosy_lab.cpachecker.cfa.parser.eclipse.c.CFAFunctionBuilder.visit(CFAFunctionBuilder.java:604)
at org.eclipse.cdt.internal.core.dom.parser.c.CASTForStatement.accept(CASTForStatement.java:135)
at org.eclipse.cdt.internal.core.dom.parser.c.CASTCompoundStatement.accept(CASTCompoundStatement.java:81)
at org.eclipse.cdt.internal.core.dom.parser.c.CASTFunctionDefinition.accept(CASTFunctionDefinition.java:133)
at org.sosy_lab.cpachecker.cfa.parser.eclipse.c.CFABuilder.handleFunctionDefinition(CFABuilder.java:406)
at org.sosy_lab.cpachecker.cfa.parser.eclipse.c.CFABuilder.createCFA(CFABuilder.java:359)
...
Command lines to reproduce:
scripts/cpa.sh -generateCFA test/programs/benchmarks/loops-crafted-1/discover_list.c
scripts/cpa.sh -generateCFA test/programs/benchmarks/loops-crafted-1/net_reset.c
The reason is probably the code like if ((..., foo = bar(), ...))
but I didn't find a simple reproducer so far.