@@ -8,6 +8,8 @@ private import TranslatedDeclarationEntry
88private import TranslatedElement
99private import TranslatedFunction
1010private import TranslatedInitialization
11+ private import TranslatedFunction
12+ private import TranslatedStmt
1113import TranslatedCall
1214
1315/**
@@ -2727,3 +2729,36 @@ class TranslatedLambdaExpr extends TranslatedNonConstantExpr, InitializationCont
27272729 result = getTranslatedInitialization ( expr .getChild ( 0 ) .getFullyConverted ( ) )
27282730 }
27292731}
2732+
2733+ class TranslatedStmtExpr extends TranslatedNonConstantExpr {
2734+ override StmtExpr expr ;
2735+
2736+ override final Instruction getFirstInstruction ( ) {
2737+ result = getStmt ( ) .getFirstInstruction ( )
2738+ }
2739+
2740+ override final TranslatedElement getChild ( int id ) {
2741+ id = 0 and result = getStmt ( )
2742+ }
2743+
2744+ override Instruction getInstructionSuccessor ( InstructionTag tag , EdgeKind kind ) {
2745+ none ( )
2746+ }
2747+
2748+ override Instruction getChildSuccessor ( TranslatedElement child ) {
2749+ result = getParent ( ) .getChildSuccessor ( this )
2750+ }
2751+
2752+ override predicate hasInstruction ( Opcode opcode , InstructionTag tag , Type resultType ,
2753+ boolean isGLValue ) {
2754+ none ( )
2755+ }
2756+
2757+ override Instruction getResult ( ) {
2758+ result = getTranslatedExpr ( expr .getResultExpr ( ) ) .getResult ( )
2759+ }
2760+
2761+ TranslatedStmt getStmt ( ) {
2762+ result = getTranslatedStmt ( expr .getStmt ( ) )
2763+ }
2764+ }
0 commit comments