@@ -70,6 +70,7 @@ object (self)
7070
7171 method add_bcfile (f : bcfile_t ) =
7272 let i = bcd#index_location in
73+ begin
7374 List. iter (fun g ->
7475 match g with
7576 | GType (tinfo , loc ) ->
@@ -92,8 +93,10 @@ object (self)
9293 | GEnumTagDecl (einfo , loc ) ->
9394 H. replace genumtagdecls einfo.bename (bcd#index_enuminfo einfo, i loc)
9495 | GVarDecl (vinfo , loc ) ->
96+ let _ = chlog#add " bcfiles:add gvardecl" (STR vinfo.bvname) in
9597 H. replace gvardecls vinfo.bvname (bcd#index_varinfo vinfo, i loc)
9698 | GVar (vinfo , iinfo , loc ) ->
99+ let _ = chlog#add " bcfiles:add gvar" (STR vinfo.bvname) in
97100 H. replace gvars
98101 vinfo.bvname
99102 (bcd#index_varinfo vinfo,
@@ -102,8 +105,20 @@ object (self)
102105 | _ -> (- 1 )),
103106 i loc)
104107 | GFun (fundec , loc ) ->
108+ let _ = chlog#add " bcfiles:add gfun" (STR fundec.bsvar.bvname) in
105109 H. replace gfuns fundec.bsvar.bvname (fundec, bcd#index_location loc);
106- | _ -> () ) f.bglobals
110+ | _ -> () ) f.bglobals;
111+ chlog#add
112+ " bcfiles:add_bcfile"
113+ (LBLOCK [
114+ STR " gvars: " ;
115+ INT (H. length gvars);
116+ STR " ; gvardecls: " ;
117+ INT (H. length gvardecls);
118+ STR " ; gfuns: " ;
119+ INT (H. length gfuns)
120+ ])
121+ end
107122
108123 method update_global (g : bglobal_t ) =
109124 let i = bcd#index_location in
@@ -370,6 +385,16 @@ object (self)
370385 (BCH_failure
371386 (LBLOCK [STR " No varinfo found with name " ; STR name]))
372387
388+ method get_varinfos =
389+ let result = ref [] in
390+ begin
391+ H. iter (fun _ (ix , _ , _ ) ->
392+ result := (bcd#get_varinfo ix) :: ! result) gvars;
393+ H. iter (fun _ (ix , _ ) ->
394+ result := (bcd#get_varinfo ix) :: ! result) gvardecls;
395+ ! result
396+ end
397+
373398 method list_varinfos =
374399 let result = ref [] in
375400 let v2s v = v.bvname ^ " : " ^ (btype_to_string v.bvtype) in
0 commit comments