C++: index for constructor qualifier side effects

This commit is contained in:
Robert Marsh
2019-10-03 12:39:32 -07:00
parent 47b9c497fa
commit a76c4d9b3b
3 changed files with 9 additions and 4 deletions

View File

@@ -401,6 +401,11 @@ class TranslatedStructorCallSideEffects extends TranslatedSideEffects {
operandTag instanceof AddressOperandTag and
result = getParent().(TranslatedStructorCall).getQualifierResult()
}
final override int getInstructionIndex(InstructionTag tag) {
tag = OnlyInstructionTag() and
result = -1
}
}
class TranslatedSideEffect extends TranslatedElement, TTranslatedArgumentSideEffect {

View File

@@ -882,7 +882,7 @@ ssa.cpp:
# 220| v0_6(void) = Call : func:r0_4, this:r0_3, 0:r0_5
# 220| m0_7(unknown) = ^CallSideEffect : ~m0_1
# 220| m0_8(unknown) = Chi : total:m0_1, partial:m0_7
# 220| m0_9(Constructible) = ^IndirectMayWriteSideEffect : &:r0_3
# 220| m0_9(Constructible) = ^IndirectMayWriteSideEffect[-1] : &:r0_3
# 221| r0_10(glval<Constructible>) = VariableAddress[c] :
# 221| r0_11(glval<unknown>) = FunctionAddress[g] :
# 221| v0_12(void) = Call : func:r0_11, this:r0_10
@@ -903,7 +903,7 @@ ssa.cpp:
# 223| v0_27(void) = Call : func:r0_25, this:r0_24, 0:r0_26
# 223| m0_28(unknown) = ^CallSideEffect : ~m0_21
# 223| m0_29(unknown) = Chi : total:m0_21, partial:m0_28
# 223| m0_30(Constructible) = ^IndirectMayWriteSideEffect : &:r0_24
# 223| m0_30(Constructible) = ^IndirectMayWriteSideEffect[-1] : &:r0_24
# 224| r0_31(glval<Constructible>) = VariableAddress[c2] :
# 224| r0_32(glval<unknown>) = FunctionAddress[g] :
# 224| v0_33(void) = Call : func:r0_32, this:r0_31

View File

@@ -841,7 +841,7 @@ ssa.cpp:
# 220| r0_5(int) = Constant[1] :
# 220| v0_6(void) = Call : func:r0_4, this:r0_3, 0:r0_5
# 220| mu0_7(unknown) = ^CallSideEffect : ~mu0_2
# 220| m0_8(Constructible) = ^IndirectMayWriteSideEffect : &:r0_3
# 220| m0_8(Constructible) = ^IndirectMayWriteSideEffect[-1] : &:r0_3
# 221| r0_9(glval<Constructible>) = VariableAddress[c] :
# 221| r0_10(glval<unknown>) = FunctionAddress[g] :
# 221| v0_11(void) = Call : func:r0_10, this:r0_9
@@ -859,7 +859,7 @@ ssa.cpp:
# 223| r0_23(int) = Constant[2] :
# 223| v0_24(void) = Call : func:r0_22, this:r0_21, 0:r0_23
# 223| mu0_25(unknown) = ^CallSideEffect : ~mu0_2
# 223| m0_26(Constructible) = ^IndirectMayWriteSideEffect : &:r0_21
# 223| m0_26(Constructible) = ^IndirectMayWriteSideEffect[-1] : &:r0_21
# 224| r0_27(glval<Constructible>) = VariableAddress[c2] :
# 224| r0_28(glval<unknown>) = FunctionAddress[g] :
# 224| v0_29(void) = Call : func:r0_28, this:r0_27