mirror of
https://github.com/github/codeql.git
synced 2026-08-01 07:53:00 +02:00
Increment/decrement statements previously produced three control-flow nodes: an 'implicit-one' node for the constant 1, an 'incdec-rhs' node for the 'operand + 1' value, and the write node. The implicit-one node existed only to serve as the right operand of the increment's binary operation model. Remove the implicit-one node, modelling the implicit constant 1 directly on the incdec-rhs instruction. This saves one CFG node per inc/dec. The inc/dec disjunct of BinaryOperationNode is dropped as well; it only fed string-concatenation taint (impossible for ++/--) and GVN of a synthetic node, so no data-flow results are lost.