@@ -1303,7 +1303,7 @@ object (self)
13031303 | XOp (XPlus , [XOp ((Xf " addressofvar" ), [XVar v]); xoff])
13041304 when self#f#env#is_global_variable v ->
13051305 let gvaddr_r = self#f#env#get_global_variable_address v in
1306- let cxoff_r = self#convert_xpr_to_c_expr xoff in
1306+ let cxoff_r = self#xpr_to_cxpr xoff in
13071307 TR. tbind
13081308 ~msg: (eloc __LINE__)
13091309 (fun gvaddr ->
@@ -1352,6 +1352,35 @@ object (self)
13521352 self#f#env#mk_offset_memory_variable memref memoff)
13531353 memref_r memoff_r
13541354
1355+ (* deprecated. to be merged with get_var_at_address *)
1356+ method get_lhs_from_address (xpr :xpr_t ) =
1357+ let xpr = self#inv#rewrite_expr xpr in
1358+ let default () =
1359+ self#env#mk_memory_variable
1360+ (self#env#mk_unknown_memory_reference " lhs-from-address" )
1361+ numerical_zero in
1362+ match xpr with
1363+ | XConst (IntConst n ) when n#gt numerical_zero ->
1364+ log_tfold_default
1365+ (mk_tracelog_spec
1366+ ~tag: " get_lhs_from_address"
1367+ (self#cia ^ " : constant: " ^ n#toString))
1368+ (fun base ->
1369+ if system_info#get_image_base#le base then
1370+ log_tfold_default
1371+ (log_error
1372+ " get_lhs_from_address"
1373+ (self#cia ^ " : constant: " ^ n#toString))
1374+ (fun v -> v)
1375+ (default () )
1376+ (self#env#mk_global_variable self#l n)
1377+ else
1378+ default () )
1379+ (default () )
1380+ (numerical_to_doubleword n)
1381+ | _ ->
1382+ default ()
1383+
13551384 method get_variable_type (v : variable_t ): btype_t traceresult =
13561385 let is_zero (x : xpr_t ) =
13571386 match x with
@@ -1504,12 +1533,12 @@ object (self)
15041533 | None -> Error [(elocm __LINE__) ^ " variable: " ^ (x2s (XVar v))]
15051534 | Some t -> Ok t
15061535
1507- method convert_xpr_to_c_expr
1536+ method xpr_to_cxpr
15081537 ?(size =None ) ?(xtype =None ) (x : xpr_t ): xpr_t traceresult =
15091538 let _ =
15101539 log_diagnostics_result
15111540 ~msg: (p2s self#l#toPretty)
1512- ~tag: " convert_xpr_to_c_expr "
1541+ ~tag: " xpr_to_cxpr "
15131542 __FILE__ __LINE__
15141543 [" size: " ^ (opti2s size);
15151544 " xtype: " ^ (optty2s xtype);
@@ -1523,7 +1552,7 @@ object (self)
15231552 Ok (int_constant_expr (- 1 ))
15241553 | _ -> self#convert_xpr_offsets ~xtype ~size x
15251554
1526- method convert_addr_to_c_pointed_to_expr
1555+ method addr_to_ctgt_xpr
15271556 ?(size =None ) ?(xtype =None ) (a : xpr_t ): xpr_t traceresult =
15281557 let vars = vars_as_positive_terms a in
15291558 let knownpointers =
@@ -1533,7 +1562,7 @@ object (self)
15331562 ) vars in
15341563 let _ =
15351564 log_diagnostics_result
1536- ~tag: " convert_addr_to_c_pointed_to_expr "
1565+ ~tag: " addr_to_ctgt_xpr "
15371566 __FILE__ __LINE__
15381567 [(p2s self#l#toPretty);
15391568 " known pointers: " ;
@@ -1597,7 +1626,7 @@ object (self)
15971626 ^ " addr: " ^ (x2s a)
15981627 ^ " : Not yet handled" ]
15991628
1600- method convert_var_to_c_variable
1629+ method var_to_cvar
16011630 ?(size =None ) ?(vtype =None ) (v : variable_t ): variable_t traceresult =
16021631 match vtype with
16031632 | None -> self#convert_variable_offsets ~size v
@@ -2137,34 +2166,6 @@ object (self)
21372166 default ()
21382167 end
21392168
2140- method get_lhs_from_address (xpr :xpr_t ) =
2141- let xpr = self#inv#rewrite_expr xpr in
2142- let default () =
2143- self#env#mk_memory_variable
2144- (self#env#mk_unknown_memory_reference " lhs-from-address" )
2145- numerical_zero in
2146- match xpr with
2147- | XConst (IntConst n ) when n#gt numerical_zero ->
2148- log_tfold_default
2149- (mk_tracelog_spec
2150- ~tag: " get_lhs_from_address"
2151- (self#cia ^ " : constant: " ^ n#toString))
2152- (fun base ->
2153- if system_info#get_image_base#le base then
2154- log_tfold_default
2155- (log_error
2156- " get_lhs_from_address"
2157- (self#cia ^ " : constant: " ^ n#toString))
2158- (fun v -> v)
2159- (default () )
2160- (self#env#mk_global_variable self#l n)
2161- else
2162- default () )
2163- (default () )
2164- (numerical_to_doubleword n)
2165- | _ ->
2166- default ()
2167-
21682169 method get_bridge_variable_value (par_index :int ) (var :variable_t ) =
21692170 if self#f#has_constant var then
21702171 num_constant_expr (self#f#get_constant var )
0 commit comments