@@ -185,7 +185,8 @@ def xxpr_memory_address_value_to_ast_expr(
185185 xpr : X .XXpr ,
186186 xdata : "InstrXData" ,
187187 iaddr : str ,
188- astree : ASTInterface ) -> AST .ASTExpr :
188+ astree : ASTInterface ,
189+ anonymous : bool = False ) -> AST .ASTExpr :
189190
190191 if not xpr .is_memory_address_value :
191192 chklogger .logger .error (
@@ -631,7 +632,7 @@ def vinitmemory_value_to_ast_lval_expression(
631632 "AST conversion of vinitmemory value %s with basevar %s and "
632633 + "offset %s at address %s unsuccessful because of lack of type "
633634 + "of basevar" ,
634- str (vconstvar ), str (astbase ), str (astbasetype ), str ( coff ), iaddr )
635+ str (vconstvar ), str (astbase ), str (coff ), iaddr )
635636 return astree .mk_temp_lval_expression ()
636637
637638 if astbasetype .is_pointer :
@@ -702,7 +703,6 @@ def xvariable_to_ast_def_lval_expression(
702703 if (
703704 xvar .is_initial_memory_value
704705 and not xdata .function .has_var_disequality (iaddr , xvar )):
705-
706706 asmvar = cast ("VAuxiliaryVariable" , xvar .denotation )
707707 vminitvar = cast ("VInitialMemoryValue" , asmvar .auxvar )
708708 return vinitmemory_value_to_ast_lval_expression (
@@ -711,15 +711,14 @@ def xvariable_to_ast_def_lval_expression(
711711 if (
712712 xvar .is_initial_memory_value
713713 and xdata .function .has_var_disequality (iaddr , xvar )):
714- chklogger .logger .info (
715- "AST def conversion of initial memory value %s that may have "
716- + "changed reverted to original variable at %s" ,
717- str (xvar ), str (iaddr ))
718- asmvar = cast ("VAuxiliaryVariable" , xvar .denotation )
719- vminitvar = cast ("VInitialMemoryValue" , asmvar .auxvar )
720- xxvar = vminitvar .variable
721- return xvariable_to_ast_def_lval_expression (
722- xxvar , xdata , iaddr , astree , size = size , anonymous = anonymous )
714+
715+ if (not anonymous ):
716+ chklogger .logger .warning (
717+ "AST def conversion of initial memory value %s that may have "
718+ + "changed reverted to original variable at %s" ,
719+ str (xvar ), str (iaddr ))
720+
721+ return astree .mk_temp_lval_expression ()
723722
724723 if xvar .is_function_return_value :
725724 asmvar = cast ("VAuxiliaryVariable" , xvar .denotation )
@@ -769,7 +768,8 @@ def xvariable_to_ast_def_lval_expression(
769768 if ssavalue is not None :
770769 return ssavalue
771770 else :
772- return astree .mk_vinfo_lval_expression (vinfo )
771+ return astree .mk_vinfo_lval_expression (
772+ vinfo , anonymous = anonymous )
773773 else :
774774 chklogger .logger .error (
775775 "Rdef: %s has not yet been introduced at address %s" ,
@@ -871,7 +871,7 @@ def xunary_to_ast_def_expr(
871871 if xpr .is_var :
872872 xvar = cast (X .XprVariable , xpr ).variable
873873 astxvar = xvariable_to_ast_def_lval_expression (
874- xvar , xdata , iaddr , astree )
874+ xvar , xdata , iaddr , astree , anonymous = anonymous )
875875 if not astxvar .is_ast_lval_expr :
876876 chklogger .logger .error (
877877 "Expected to receive an lval expression for %s at %s" ,
@@ -994,8 +994,10 @@ def xbinary_to_ast_def_expr(
994994 anonymous : bool = False ) -> AST .ASTExpr :
995995
996996 def default () -> AST .ASTExpr :
997- astxpr1 = xxpr_to_ast_def_expr (xpr1 , xdata , iaddr , astree )
998- astxpr2 = xxpr_to_ast_def_expr (xpr2 , xdata , iaddr , astree )
997+ astxpr1 = xxpr_to_ast_def_expr (
998+ xpr1 , xdata , iaddr , astree , anonymous = anonymous )
999+ astxpr2 = xxpr_to_ast_def_expr (
1000+ xpr2 , xdata , iaddr , astree , anonymous = anonymous )
9991001 if operator in [
10001002 "plus" , "minus" , "mult" , "div" ,
10011003 "band" , "land" , "lor" , "bor" , "asr" ,
@@ -1010,7 +1012,8 @@ def default() -> AST.ASTExpr:
10101012
10111013 if xpr1 .is_var and xpr2 .is_constant :
10121014 xvar = cast (X .XprVariable , xpr1 ).variable
1013- astxpr1 = xvariable_to_ast_def_lval_expression (xvar , xdata , iaddr , astree )
1015+ astxpr1 = xvariable_to_ast_def_lval_expression (
1016+ xvar , xdata , iaddr , astree , anonymous = anonymous )
10141017 astxpr2 = xxpr_to_ast_expr (xpr2 , xdata , iaddr , astree )
10151018 if operator in ["plus" , "minus" ]:
10161019 ty1 = astxpr1 .ctype (astree .ctyper )
@@ -1022,7 +1025,8 @@ def default() -> AST.ASTExpr:
10221025 cast (AST .ASTTypPtr , ty1 ),
10231026 astxpr2 ,
10241027 iaddr ,
1025- astree )
1028+ astree ,
1029+ anonymous = anonymous )
10261030 return astree .mk_binary_expression (operator , astxpr1 , astxpr2 )
10271031 else :
10281032 return default ()
@@ -1224,22 +1228,25 @@ def xxpr_to_ast_def_expr(
12241228 anonymous = anonymous )
12251229
12261230 if xpr .is_constant :
1227- return xxpr_to_ast_expr (xpr , xdata , iaddr , astree )
1231+ return xxpr_to_ast_expr (xpr , xdata , iaddr , astree , anonymous = anonymous )
12281232
12291233 if xpr .is_memory_address_value :
1230- return xxpr_memory_address_value_to_ast_expr (xpr , xdata , iaddr , astree )
1234+ return xxpr_memory_address_value_to_ast_expr (
1235+ xpr , xdata , iaddr , astree , anonymous = anonymous )
12311236
12321237 if xpr .is_stack_address :
1233- return stack_address_to_ast_expr (xpr , xdata , iaddr , astree )
1238+ return stack_address_to_ast_expr (
1239+ xpr , xdata , iaddr , astree , anonymous = anonymous )
12341240
12351241 if xpr .is_var :
12361242 xvar = cast (X .XprVariable , xpr ).variable
12371243 return xvariable_to_ast_def_lval_expression (
1238- xvar , xdata , iaddr , astree , size = size )
1244+ xvar , xdata , iaddr , astree , size = size , anonymous = anonymous )
12391245
12401246 if xpr .is_compound :
12411247 xpr = cast (X .XprCompound , xpr )
1242- return xcompound_to_ast_def_expr (xpr , xdata , iaddr , astree , size = size )
1248+ return xcompound_to_ast_def_expr (
1249+ xpr , xdata , iaddr , astree , size = size , anonymous = anonymous )
12431250
12441251 else :
12451252 chklogger .logger .error (
@@ -1273,7 +1280,8 @@ def stack_variable_to_ast_lval(
12731280 astree : ASTInterface ,
12741281 size : int = 4 ,
12751282 ctype : Optional [AST .ASTTyp ] = None ,
1276- memaddr : Optional [X .XXpr ] = None ) -> AST .ASTLval :
1283+ memaddr : Optional [X .XXpr ] = None ,
1284+ anonymous : bool = False ) -> AST .ASTLval :
12771285
12781286 if offset .is_constant_value_offset :
12791287 if size == 4 :
@@ -1461,7 +1469,7 @@ def global_variable_to_ast_lval(
14611469 indexoffset = cast ("VMemoryOffsetIndexOffset" , offset .offset )
14621470 indexvar = indexoffset .indexvariable
14631471 offsetxpr = xvariable_to_ast_def_lval_expression (
1464- indexvar , xdata , iaddr , astree )
1472+ indexvar , xdata , iaddr , astree , anonymous = anonymous )
14651473 astoffset : AST .ASTOffset = astree .mk_expr_index_offset (offsetxpr )
14661474 return astree .mk_vinfo_lval (vinfo , astoffset , anonymous = anonymous )
14671475
0 commit comments