C++: Restrict the side effect of StoreChainEndInstructionSideEffect to be WriteSideEffectInstructions

This commit is contained in:
Mathias Vorreiter Pedersen
2020-06-03 09:28:06 +02:00
parent ce34d91a07
commit b890b162f4

View File

@@ -435,13 +435,13 @@ private Instruction skipConversion(Instruction instr) {
* before entering `setter`.
*/
private class StoreChainEndInstructionSideEffect extends StoreChainEndInstruction, ChiInstruction {
SideEffectInstruction sideEffect;
WriteSideEffectInstruction sideEffect;
FieldAddressInstruction fi;
StoreChainEndInstructionSideEffect() {
not this.isResultConflated() and
this.getPartial() = sideEffect and
fi = skipConversion*(sideEffect.getAnOperand().getDef())
fi = skipConversion*(sideEffect.getArgumentDef())
}
override FieldAddressInstruction getFieldInstruction() { result = fi }