@@ -691,7 +691,13 @@ object (self)
691691 (self#cia ^ " : constant: " ^ n#toString))
692692 (fun base ->
693693 if system_info#get_image_base#le base then
694- self#env#mk_global_variable ~size n
694+ log_tfold_default
695+ (log_error
696+ " get_memory_variable_1"
697+ (self#cia ^ " : constant: " ^ n#toString))
698+ (fun v -> v)
699+ (default () )
700+ (self#env#mk_global_variable ~size n)
695701 else
696702 default () )
697703 (default () )
@@ -718,7 +724,13 @@ object (self)
718724 if is_constant_offset memoffset then
719725 let memvar =
720726 if memref#is_global_reference then
721- self#env#mk_global_variable (get_total_constant_offset memoffset)
727+ log_tfold_default
728+ (log_error
729+ " get_memory_variable_1"
730+ (self#cia))
731+ (fun v -> v)
732+ (default () )
733+ (self#env#mk_global_variable (get_total_constant_offset memoffset))
722734 else
723735 self#env#mk_memory_variable
724736 memref (get_total_constant_offset memoffset) in
@@ -785,7 +797,13 @@ object (self)
785797 let (memref, memoffset) = self#decompose_address address in
786798 if is_constant_offset memoffset then
787799 if memref#is_global_reference then
788- self#env#mk_global_variable (get_total_constant_offset memoffset)
800+ log_tfold_default
801+ (log_error
802+ " get_memory_variable_3"
803+ (self#cia ^ " : memoffset: " ^ (memory_offset_to_string memoffset)))
804+ (fun v -> v)
805+ (default () )
806+ (self#env#mk_global_variable (get_total_constant_offset memoffset))
789807 else
790808 self#env#mk_memory_variable
791809 ~size memref (get_total_constant_offset memoffset)
@@ -794,7 +812,25 @@ object (self)
794812 | IndexOffset _ ->
795813 self#env#mk_index_offset_memory_variable memref memoffset
796814 | ConstantOffset (n , IndexOffset (v , s , o )) ->
797- self#env#mk_index_offset_global_memory_variable n (IndexOffset (v, s, o))
815+ let n = n#modulo (mkNumerical BCHDoubleword. e32) in
816+ log_tfold_default
817+ (mk_tracelog_spec
818+ ~tag: " get_memory_variable_3"
819+ (self#cia
820+ ^ " : constant: "
821+ ^ n#toString
822+ ^ " ; index-expr: "
823+ ^ " ; offset: "
824+ ^ offset#toString
825+ ^ (x2s indexExpr)
826+ ^ " ; addr: "
827+ ^ (x2s addr)
828+ ^ " ; memoffset: "
829+ ^ (memory_offset_to_string memoffset)))
830+ (fun v -> v)
831+ (default () )
832+ (self#env#mk_index_offset_global_memory_variable
833+ n (IndexOffset (v, s, o)))
798834 | _ ->
799835 default ()
800836
@@ -820,7 +856,13 @@ object (self)
820856 (self#cia ^ " : constant: " ^ n#toString))
821857 (fun base ->
822858 if system_info#get_image_base#le base then
823- self#env#mk_global_variable n
859+ log_tfold_default
860+ (log_error
861+ " get_memory_variable_4"
862+ (self#cia ^ " ; constant: " ^ n#toString))
863+ (fun v -> v)
864+ (default () )
865+ (self#env#mk_global_variable n)
824866 else
825867 default () )
826868 (default () )
@@ -833,7 +875,13 @@ object (self)
833875 (self#cia ^ " : constant: " ^ n#toString))
834876 (fun base ->
835877 if system_info#get_image_base#le base then
836- self#env#mk_global_variable n
878+ log_tfold_default
879+ (log_error
880+ " get_memory_variable_4"
881+ (self#cia ^ " : constant: " ^ n#toString))
882+ (fun v -> v)
883+ (default () )
884+ (self#env#mk_global_variable n)
837885 else
838886 default () )
839887 (default () )
@@ -1313,7 +1361,13 @@ object (self)
13131361 (self#cia ^ " : constant: " ^ n#toString))
13141362 (fun base ->
13151363 if system_info#get_image_base#le base then
1316- self#env#mk_global_variable n
1364+ log_tfold_default
1365+ (log_error
1366+ " get_lhs_from_address"
1367+ (self#cia ^ " : constant: " ^ n#toString))
1368+ (fun v -> v)
1369+ (default () )
1370+ (self#env#mk_global_variable n)
13171371 else
13181372 default () )
13191373 (default () )
@@ -1516,7 +1570,18 @@ object (self)
15161570 self#rewrite_variable_to_external argvar
15171571 | [GlobalParameter (a, _)] ->
15181572 let argvar = self#env#mk_global_variable a#to_numerical in
1519- self#rewrite_variable_to_external argvar
1573+ (match argvar with
1574+ | Error e ->
1575+ raise
1576+ (BCH_failure
1577+ (LBLOCK [
1578+ STR self#cia;
1579+ STR " ; evaluate fts argument: " ;
1580+ a#toPretty;
1581+ STR " : " ;
1582+ STR (String. concat " ; " e)]))
1583+ | Ok argvar ->
1584+ self#rewrite_variable_to_external argvar)
15201585 | _ -> random_constant_expr
15211586
15221587 method evaluate_summary_term (t :bterm_t ) (returnvar :variable_t ) =
@@ -1552,7 +1617,13 @@ object (self)
15521617 (self#cia ^ " : constant: " ^ num#toString))
15531618 (fun base ->
15541619 if system_info#get_image_base#le base then
1555- Some (self#env#mk_global_variable num)
1620+ log_tfold_default
1621+ (log_error
1622+ " evaluate_summary_address_term"
1623+ (self#cia ^ " : constant: " ^ num#toString))
1624+ (fun v -> Some v)
1625+ None
1626+ (self#env#mk_global_variable num)
15561627 else
15571628 None )
15581629 None
0 commit comments