C++: Remove ConvertToVoid, replace with Convert

This commit is contained in:
Dave Bartolomeo
2018-08-18 10:01:12 -07:00
parent 650539dbb6
commit 332e944c16
5 changed files with 5 additions and 19 deletions

View File

@@ -33,7 +33,6 @@ private newtype TOpcode =
TPointerSub() or
TPointerDiff() or
TConvert() or
TConvertToVoid() or
TConvertToBase() or
TConvertToVirtualBase() or
TConvertToDerived() or
@@ -126,7 +125,6 @@ module Opcode {
class PointerSub extends PointerOffsetOpcode, TPointerSub { override final string toString() { result = "PointerSub" } }
class PointerDiff extends PointerArithmeticOpcode, TPointerDiff { override final string toString() { result = "PointerDiff" } }
class Convert extends UnaryOpcode, TConvert { override final string toString() { result = "Convert" } }
class ConvertToVoid extends UnaryOpcode, TConvertToVoid { override final string toString() { result = "ConvertToVoid" } }
class ConvertToBase extends UnaryOpcode, TConvertToBase { override final string toString() { result = "ConvertToBase" } }
class ConvertToVirtualBase extends UnaryOpcode, TConvertToVirtualBase { override final string toString() { result = "ConvertToVirtualBase" } }
class ConvertToDerived extends UnaryOpcode, TConvertToDerived { override final string toString() { result = "ConvertToDerived" } }

View File

@@ -1126,19 +1126,6 @@ abstract class TranslatedSingleInstructionConversion extends TranslatedConversio
abstract Opcode getOpcode();
}
/**
* The translation of an explicit cast to `void`.
*/
class TranslatedVoidConversion extends TranslatedSingleInstructionConversion {
TranslatedVoidConversion() {
conv instanceof VoidConversion
}
override Opcode getOpcode() {
result instanceof Opcode::ConvertToVoid
}
}
/**
* Represents the translation of a conversion expression that generates a
* `Convert` instruction.
@@ -1152,7 +1139,8 @@ class TranslatedSimpleConversion extends TranslatedSingleInstructionConversion {
conv instanceof IntegralToPointerConversion or
conv instanceof GlvalueConversion or
conv instanceof ArrayToPointerConversion or
conv instanceof PrvalueAdjustmentConversion
conv instanceof PrvalueAdjustmentConversion or
conv instanceof VoidConversion
}
override Opcode getOpcode() {

View File

@@ -3855,7 +3855,7 @@ ir.cpp:
# 900| r0_3(glval<int>) = VariableAddress[x] :
# 900| mu0_4(int) = Store : r0_3, r0_2
# 901| r0_5(glval<int>) = VariableAddress[x] :
# 901| v0_6(void) = ConvertToVoid : r0_5
# 901| v0_6(void) = Convert : r0_5
# 902| v0_7(void) = NoOp :
# 900| v0_8(void) = ReturnVoid :
# 900| v0_9(void) = UnmodeledUse : mu*

View File

@@ -3835,7 +3835,7 @@ ir.cpp:
# 900| r0_3(glval<int>) = VariableAddress[x] :
# 900| mu0_4(int) = Store : r0_3, r0_2
# 901| r0_5(glval<int>) = VariableAddress[x] :
# 901| v0_6(void) = ConvertToVoid : r0_5
# 901| v0_6(void) = Convert : r0_5
# 902| v0_7(void) = NoOp :
# 900| v0_8(void) = ReturnVoid :
# 900| v0_9(void) = UnmodeledUse : mu*

View File

@@ -3855,7 +3855,7 @@ ir.cpp:
# 900| r0_3(glval<int>) = VariableAddress[x] :
# 900| mu0_4(int) = Store : r0_3, r0_2
# 901| r0_5(glval<int>) = VariableAddress[x] :
# 901| v0_6(void) = ConvertToVoid : r0_5
# 901| v0_6(void) = Convert : r0_5
# 902| v0_7(void) = NoOp :
# 900| v0_8(void) = ReturnVoid :
# 900| v0_9(void) = UnmodeledUse : mu*