Skip to main content

weir/loop_sum/
tag.rs

1use super::{loop_summarize, OP_ID};
2
3/// Marker type for the loop-summarization dataflow primitive.
4#[derive(Clone, Copy, Debug, PartialEq, Eq)]
5pub struct LoopSum;
6
7impl crate::soundness::SoundnessTagged for LoopSum {
8    fn soundness(&self) -> crate::soundness::Soundness {
9        crate::soundness::Soundness::MayOver
10    }
11}
12
13inventory::submit! {
14    vyre_harness::OpEntry::new(
15        OP_ID,
16        || loop_summarize("cfg", "ranges", "summary"),
17        Some(|| {
18            let u32s = crate::dispatch_decode::pack_u32;
19            vec![vec![
20                u32s(&[10, 20, 5, 10, 0, 100, 30, 40]),
21                u32s(&[9, 25, 6, 9, 0, 90, 29, 41]),
22                u32s(&[0; 8]),
23            ]]
24        }),
25        Some(|| {
26            let u32s = crate::dispatch_decode::pack_u32;
27            vec![vec![u32s(&[
28                0,
29                u32::MAX,
30                5,
31                10,
32                0,
33                100,
34                0,
35                u32::MAX,
36            ])]]
37        }),
38    )
39}