@@ -236,11 +236,19 @@ let rec clean_llm llctx wide llm =
236236 else None
237237 with _ -> if wide then clean_llm llctx false llm else None
238238
239+ let is_in_slice node_tbl distmap line =
240+ match ! Config. coverage with
241+ | Config.FuzzingMode. Sliced_cfg ->
242+ int_of_string line
243+ |> Coverage. node_of_addr node_tbl distmap
244+ |> Option. is_some
245+ | _ -> true
246+
239247let can_optimize seedfile node_tbl distmap =
240248 match
241249 Opt. run ~passes: ! Config. optimizer_passes ~mtriple: ! Config. mtriple seedfile
242250 with
243- | Error Non_zero_exit | Error Hang ->
251+ | Error Non_zero_exit | Error Hang | Assert _ ->
244252 L. debug " %s cannot be optimized" seedfile;
245253 AUtil. name_opted_ver seedfile |> AUtil. clean;
246254 None
@@ -249,23 +257,10 @@ let can_optimize seedfile node_tbl distmap =
249257 AUtil. name_opted_ver seedfile |> AUtil. clean;
250258 if ! Config. coverage = Config.FuzzingMode. All_edges then Some (seedfile, [] )
251259 else None
252- | Assert _ ->
253- L. debug " Opt %s failed by Assertion Error" seedfile;
254- AUtil. name_opted_ver seedfile |> AUtil. clean;
255- None
256260 | Ok lines ->
257261 L. debug " %s can be optimized" seedfile;
258262 AUtil. name_opted_ver seedfile |> AUtil. clean;
259- let filter_func =
260- match ! Config. coverage with
261- | Config.FuzzingMode. Sliced_cfg ->
262- fun line ->
263- int_of_string line
264- |> Coverage. node_of_addr node_tbl distmap
265- |> Option. is_some
266- | _ -> fun _ -> true
267- in
268- let lines = lines |> List. filter filter_func in
263+ let lines = lines |> List. filter (is_in_slice node_tbl distmap) in
269264 Some (seedfile, lines)
270265
271266let push (seed : Seed.t ) pool =
0 commit comments