From 361eb65a51aa9c6d48d1d656d4a5f9b69c0b6a0f Mon Sep 17 00:00:00 2001 From: dkcumming Date: Wed, 21 May 2025 17:24:03 -0400 Subject: [PATCH 01/15] Added TyKind to the AllocMapping --- src/printer.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/printer.rs b/src/printer.rs index bcecd44..61c96ba 100644 --- a/src/printer.rs +++ b/src/printer.rs @@ -484,7 +484,7 @@ pub enum AllocInfo { Memory(stable_mir::ty::Allocation), // TODO include stable_mir::ty::TyKind? } type LinkMap<'tcx> = HashMap, (ItemSource, FnSymType)>; -type AllocMap = HashMap; +type AllocMap = HashMap; type TyMap = HashMap)>; type SpanMap = HashMap; @@ -656,14 +656,14 @@ fn collect_alloc( let global_alloc = GlobalAlloc::from(val); match global_alloc { GlobalAlloc::Memory(ref alloc) => { - let pointed_kind = get_prov_type(kind); + let pointed_kind = get_prov_type(kind.clone()); if debug_enabled() { println!( "DEBUG: called collect_alloc: {:?}:{:?}:{:?}", val, pointed_kind, global_alloc ); } - entry.or_insert(AllocInfo::Memory(alloc.clone())); // TODO: include pointed_kind.clone().unwrap() ? + entry.or_insert((kind.unwrap(), AllocInfo::Memory(alloc.clone()))); // TODO: include pointed_kind.clone().unwrap() ? alloc.provenance.ptrs.iter().for_each(|(_, prov)| { collect_alloc(val_collector, pointed_kind.clone(), prov.0); }); @@ -674,7 +674,7 @@ fn collect_alloc( "Allocated pointer is not a built-in pointer type: {:?}", kind ); - entry.or_insert(AllocInfo::Static(def)); + entry.or_insert((kind.unwrap(), AllocInfo::Static(def))); } GlobalAlloc::VTable(ty, traitref) => { assert!( @@ -682,11 +682,11 @@ fn collect_alloc( "Allocated pointer is not a built-in pointer type: {:?}", kind ); - entry.or_insert(AllocInfo::VTable(ty, traitref)); + entry.or_insert((kind.unwrap(), AllocInfo::VTable(ty, traitref))); } GlobalAlloc::Function(inst) => { - assert!(kind.unwrap().is_fn_ptr()); - entry.or_insert(AllocInfo::Function(inst)); + assert!(kind.as_ref().unwrap().is_fn_ptr()); + entry.or_insert((kind.unwrap(), AllocInfo::Function(inst))); } }; } @@ -1082,7 +1082,7 @@ type SourceData = (String, usize, usize, usize, usize); pub struct SmirJson<'t> { pub name: String, pub crate_id: u64, - pub allocs: Vec<(AllocId, AllocInfo)>, + pub allocs: Vec<(AllocId, (TyKind, AllocInfo))>, pub functions: Vec<(LinkMapKey<'t>, FnSymType)>, pub uneval_consts: Vec<(ConstDef, String)>, pub items: Vec, @@ -1112,7 +1112,7 @@ pub fn collect_smir(tcx: TyCtxt<'_>) -> SmirJson { // FIXME: We dump extra static items here --- this should be handled better for (_, alloc) in visited_allocs.iter() { - if let AllocInfo::Static(def) = alloc { + if let (_, AllocInfo::Static(def)) = alloc { let mono_item = stable_mir::mir::mono::MonoItem::Fn(stable_mir::mir::mono::Instance::from(*def)); let item_name = &mono_item_name(tcx, &mono_item); From 66e5d6ba2b7dbe593edff903a4ac9ff8136c9f8d Mon Sep 17 00:00:00 2001 From: dkcumming Date: Wed, 21 May 2025 17:31:35 -0400 Subject: [PATCH 02/15] Updated golden test --- .../programs/binop.smir.json.expected | 2336 ++++++++++------- .../programs/char-trivial.smir.json.expected | 83 +- .../programs/closure-args.smir.json.expected | 101 +- .../closure-no-args.smir.json.expected | 89 +- .../const-arithm-simple.smir.json.expected | 69 +- .../programs/div.smir.json.expected | 95 +- .../double-ref-deref.smir.json.expected | 85 +- .../programs/fibonacci.smir.json.expected | 83 +- .../programs/float.smir.json.expected | 182 +- .../programs/modulo.smir.json.expected | 91 +- .../mutual_recursion.smir.json.expected | 89 +- .../primitive-type-bounds.smir.json.expected | 79 +- .../recursion-simple-match.smir.json.expected | 85 +- .../recursion-simple.smir.json.expected | 85 +- .../programs/ref-deref.smir.json.expected | 81 +- .../programs/shl_min.smir.json.expected | 637 +++-- .../programs/slice.smir.json.expected | 136 +- .../strange-ref-deref.smir.json.expected | 83 +- .../programs/struct.smir.json.expected | 95 +- .../programs/sum-to-n.smir.json.expected | 79 +- .../programs/tuple-eq.smir.json.expected | 144 +- .../programs/tuples-simple.smir.json.expected | 95 +- 22 files changed, 2802 insertions(+), 2100 deletions(-) diff --git a/tests/integration/programs/binop.smir.json.expected b/tests/integration/programs/binop.smir.json.expected index 2edfbc7..69dc7f4 100644 --- a/tests/integration/programs/binop.smir.json.expected +++ b/tests/integration/programs/binop.smir.json.expected @@ -1,1107 +1,1445 @@ { "allocs": [ [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 43, - 32, - 121, - 32, - 61, - 61, - 32, - 53, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 61, + 61, + 32, + 53, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 53, - 50, - 32, - 61, - 61, - 32, - 120, - 32, - 43, - 32, - 121 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 53, + 50, + 32, + 61, + 61, + 32, + 120, + 32, + 43, + 32, + 121 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 43, - 32, - 121, - 32, - 61, - 61, - 32, - 121, - 32, - 43, - 32, - 120 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 61, + 61, + 32, + 121, + 32, + 43, + 32, + 120 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 45, - 32, - 121, - 32, - 61, - 61, - 32, - 51, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 45, + 32, + 121, + 32, + 61, + 61, + 32, + 51, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 121, - 32, - 45, - 32, - 120, - 32, - 61, - 61, - 32, - 45, - 51, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 121, + 32, + 45, + 32, + 120, + 32, + 61, + 61, + 32, + 45, + 51, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 121, - 32, - 45, - 32, - 120, - 32, - 33, - 61, - 32, - 120, - 32, - 45, - 32, - 121 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 121, + 32, + 45, + 32, + 120, + 32, + 33, + 61, + 32, + 120, + 32, + 45, + 32, + 121 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 42, - 32, - 121, - 32, - 61, - 61, - 32, - 52, - 50, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 42, + 32, + 121, + 32, + 61, + 61, + 32, + 52, + 50, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 42, - 32, - 45, - 121, - 32, - 61, - 61, - 32, - 45, - 52, - 50, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 42, + 32, + 45, + 121, + 32, + 61, + 61, + 32, + 45, + 52, + 50, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 45, - 120, - 32, - 42, - 32, - 121, - 32, - 61, - 61, - 32, - 45, - 52, - 50, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 120, + 32, + 42, + 32, + 121, + 32, + 61, + 61, + 32, + 45, + 52, + 50, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 45, - 120, - 32, - 42, - 32, - 45, - 121, - 32, - 61, - 61, - 32, - 52, - 50, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 120, + 32, + 42, + 32, + 45, + 121, + 32, + 61, + 61, + 32, + 52, + 50, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 49, - 32, - 94, - 32, - 50, - 32, - 61, - 61, - 32, - 51 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 94, + 32, + 50, + 32, + 61, + 61, + 32, + 51 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 49, - 32, - 94, - 32, - 51, - 32, - 61, - 61, - 32, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 94, + 32, + 51, + 32, + 61, + 61, + 32, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 49, - 32, - 124, - 32, - 50, - 32, - 61, - 61, - 32, - 51 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 124, + 32, + 50, + 32, + 61, + 61, + 32, + 51 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 49, - 32, - 124, - 32, - 51, - 32, - 61, - 61, - 32, - 51 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 124, + 32, + 51, + 32, + 61, + 61, + 32, + 51 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 49, - 32, - 38, - 32, - 50, - 32, - 61, - 61, - 32, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 38, + 32, + 50, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 49, - 32, - 38, - 32, - 51, - 32, - 61, - 61, - 32, - 49 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 38, + 32, + 51, + 32, + 61, + 61, + 32, + 49 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 50, - 32, - 60, - 60, - 32, - 49, - 32, - 61, - 61, - 32, - 52 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 50, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 52 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 50, - 32, - 62, - 62, - 32, - 49, - 32, - 61, - 61, - 32, - 49 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 50, + 32, + 62, + 62, + 32, + 49, + 32, + 61, + 61, + 32, + 49 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 51, - 32, - 62, - 62, - 32, - 49, - 32, - 61, - 61, - 32, - 49 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 51, + 32, + 62, + 62, + 32, + 49, + 32, + 61, + 61, + 32, + 49 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 49, - 32, - 62, - 62, - 32, - 49, - 32, - 61, - 61, - 32, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 62, + 62, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 60, - 32, - 120, - 32, - 43, - 32, - 121 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 60, + 32, + 120, + 32, + 43, + 32, + 121 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 60, - 61, - 32, - 120, - 32, - 43, - 32, - 121 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 60, + 61, + 32, + 120, + 32, + 43, + 32, + 121 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 60, - 61, - 32, - 120, - 32, - 43, - 32, - 121, - 32, - 45, - 32, - 121 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 60, + 61, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 45, + 32, + 121 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 43, - 32, - 121, - 32, - 62, - 32, - 120 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 62, + 32, + 120 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 43, - 32, - 121, - 32, - 62, - 61, - 32, - 120 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 62, + 61, + 32, + 120 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 43, - 32, - 121, - 32, - 45, - 32, - 121, - 32, - 62, - 61, - 32, - 120 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 45, + 32, + 121, + 32, + 62, + 61, + 32, + 120 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ] ], "functions": [ diff --git a/tests/integration/programs/char-trivial.smir.json.expected b/tests/integration/programs/char-trivial.smir.json.expected index 04ca180..3f38fff 100644 --- a/tests/integration/programs/char-trivial.smir.json.expected +++ b/tests/integration/programs/char-trivial.smir.json.expected @@ -1,43 +1,56 @@ { "allocs": [ [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 97, - 32, - 61, - 61, - 32, - 39, - 97, - 39 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 31, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 32, + 61, + 61, + 32, + 39, + 97, + 39 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ] ], "functions": [ diff --git a/tests/integration/programs/closure-args.smir.json.expected b/tests/integration/programs/closure-args.smir.json.expected index 9c34168..8749d26 100644 --- a/tests/integration/programs/closure-args.smir.json.expected +++ b/tests/integration/programs/closure-args.smir.json.expected @@ -1,52 +1,65 @@ { "allocs": [ [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 115, - 117, - 109, - 40, - 50, - 48, - 44, - 32, - 50, - 50, - 41, - 32, - 61, - 61, - 32, - 52, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 36, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 115, + 117, + 109, + 40, + 50, + 48, + 44, + 32, + 50, + 50, + 41, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ] ], "functions": [ diff --git a/tests/integration/programs/closure-no-args.smir.json.expected b/tests/integration/programs/closure-no-args.smir.json.expected index 642f5af..0bfcdbd 100644 --- a/tests/integration/programs/closure-no-args.smir.json.expected +++ b/tests/integration/programs/closure-no-args.smir.json.expected @@ -1,46 +1,59 @@ { "allocs": [ [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 115, - 117, - 109, - 40, - 41, - 32, - 61, - 61, - 32, - 52, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 37, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 115, + 117, + 109, + 40, + 41, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ] ], "functions": [ diff --git a/tests/integration/programs/const-arithm-simple.smir.json.expected b/tests/integration/programs/const-arithm-simple.smir.json.expected index 4017f61..1a5d286 100644 --- a/tests/integration/programs/const-arithm-simple.smir.json.expected +++ b/tests/integration/programs/const-arithm-simple.smir.json.expected @@ -1,36 +1,49 @@ { "allocs": [ [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 122 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 32, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 122 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ] ], "functions": [ diff --git a/tests/integration/programs/div.smir.json.expected b/tests/integration/programs/div.smir.json.expected index 0378460..58e3b2e 100644 --- a/tests/integration/programs/div.smir.json.expected +++ b/tests/integration/programs/div.smir.json.expected @@ -1,49 +1,62 @@ { "allocs": [ [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 52, - 50, - 48, - 32, - 47, - 32, - 49, - 48, - 32, - 61, - 61, - 32, - 52, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 30, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 52, + 50, + 48, + 32, + 47, + 32, + 49, + 48, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ] ], "functions": [ diff --git a/tests/integration/programs/double-ref-deref.smir.json.expected b/tests/integration/programs/double-ref-deref.smir.json.expected index 5d7f7fc..743dcc7 100644 --- a/tests/integration/programs/double-ref-deref.smir.json.expected +++ b/tests/integration/programs/double-ref-deref.smir.json.expected @@ -1,44 +1,57 @@ { "allocs": [ [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 42, - 42, - 99, - 32, - 61, - 61, - 32, - 52, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 31, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 42, + 42, + 99, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ] ], "functions": [ diff --git a/tests/integration/programs/fibonacci.smir.json.expected b/tests/integration/programs/fibonacci.smir.json.expected index 4dadef9..840b2f1 100644 --- a/tests/integration/programs/fibonacci.smir.json.expected +++ b/tests/integration/programs/fibonacci.smir.json.expected @@ -1,43 +1,56 @@ { "allocs": [ [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 97, - 110, - 115, - 32, - 61, - 61, - 32, - 53 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 35, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 110, + 115, + 32, + 61, + 61, + 32, + 53 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ] ], "functions": [ diff --git a/tests/integration/programs/float.smir.json.expected b/tests/integration/programs/float.smir.json.expected index a47af87..f718145 100644 --- a/tests/integration/programs/float.smir.json.expected +++ b/tests/integration/programs/float.smir.json.expected @@ -1,90 +1,116 @@ { "allocs": [ [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 97, - 32, - 43, - 32, - 98, - 32, - 61, - 61, - 32, - 52, - 46, - 55 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 32, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 32, + 43, + 32, + 98, + 32, + 61, + 61, + 32, + 52, + 46, + 55 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 99, - 32, - 43, - 32, - 100, - 32, - 61, - 61, - 32, - 52, - 46, - 55 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 32, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 99, + 32, + 43, + 32, + 100, + 32, + 61, + 61, + 32, + 52, + 46, + 55 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ] ], "functions": [ diff --git a/tests/integration/programs/modulo.smir.json.expected b/tests/integration/programs/modulo.smir.json.expected index 27f0fde..f39f050 100644 --- a/tests/integration/programs/modulo.smir.json.expected +++ b/tests/integration/programs/modulo.smir.json.expected @@ -1,47 +1,60 @@ { "allocs": [ [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 52, - 50, - 32, - 37, - 32, - 49, - 48, - 32, - 61, - 61, - 32, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 32, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 52, + 50, + 32, + 37, + 32, + 49, + 48, + 32, + 61, + 61, + 32, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ] ], "functions": [ diff --git a/tests/integration/programs/mutual_recursion.smir.json.expected b/tests/integration/programs/mutual_recursion.smir.json.expected index a8616e2..bb92f4c 100644 --- a/tests/integration/programs/mutual_recursion.smir.json.expected +++ b/tests/integration/programs/mutual_recursion.smir.json.expected @@ -1,46 +1,59 @@ { "allocs": [ [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 97, - 110, - 115, - 32, - 61, - 61, - 32, - 116, - 114, - 117, - 101 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 35, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 110, + 115, + 32, + 61, + 61, + 32, + 116, + 114, + 117, + 101 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ] ], "functions": [ diff --git a/tests/integration/programs/primitive-type-bounds.smir.json.expected b/tests/integration/programs/primitive-type-bounds.smir.json.expected index c3bd408..f7f3c51 100644 --- a/tests/integration/programs/primitive-type-bounds.smir.json.expected +++ b/tests/integration/programs/primitive-type-bounds.smir.json.expected @@ -1,41 +1,54 @@ { "allocs": [ [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 97, - 32, - 61, - 61, - 32, - 98 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 32, + 61, + 61, + 32, + 98 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ] ], "functions": [ diff --git a/tests/integration/programs/recursion-simple-match.smir.json.expected b/tests/integration/programs/recursion-simple-match.smir.json.expected index b867356..bc8b845 100644 --- a/tests/integration/programs/recursion-simple-match.smir.json.expected +++ b/tests/integration/programs/recursion-simple-match.smir.json.expected @@ -1,44 +1,57 @@ { "allocs": [ [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 97, - 110, - 115, - 32, - 61, - 61, - 32, - 53, - 53 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 110, + 115, + 32, + 61, + 61, + 32, + 53, + 53 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ] ], "functions": [ diff --git a/tests/integration/programs/recursion-simple.smir.json.expected b/tests/integration/programs/recursion-simple.smir.json.expected index 82c7323..f93ad2d 100644 --- a/tests/integration/programs/recursion-simple.smir.json.expected +++ b/tests/integration/programs/recursion-simple.smir.json.expected @@ -1,44 +1,57 @@ { "allocs": [ [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 97, - 110, - 115, - 32, - 61, - 61, - 32, - 53, - 53 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 34, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 110, + 115, + 32, + 61, + 61, + 32, + 53, + 53 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ] ], "functions": [ diff --git a/tests/integration/programs/ref-deref.smir.json.expected b/tests/integration/programs/ref-deref.smir.json.expected index e3f520e..5713241 100644 --- a/tests/integration/programs/ref-deref.smir.json.expected +++ b/tests/integration/programs/ref-deref.smir.json.expected @@ -1,42 +1,55 @@ { "allocs": [ [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 99, - 32, - 61, - 61, - 32, - 52, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 30, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 99, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ] ], "functions": [ diff --git a/tests/integration/programs/shl_min.smir.json.expected b/tests/integration/programs/shl_min.smir.json.expected index 2e37932..64d5f6d 100644 --- a/tests/integration/programs/shl_min.smir.json.expected +++ b/tests/integration/programs/shl_min.smir.json.expected @@ -1,310 +1,375 @@ { "allocs": [ [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 45, - 49, - 50, - 56, - 95, - 105, - 56, - 32, - 60, - 60, - 32, - 49, - 32, - 61, - 61, - 32, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 37, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 49, + 50, + 56, + 95, + 105, + 56, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 45, - 51, - 50, - 55, - 54, - 56, - 95, - 105, - 49, - 54, - 32, - 60, - 60, - 32, - 49, - 32, - 61, - 61, - 32, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 37, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 51, + 50, + 55, + 54, + 56, + 95, + 105, + 49, + 54, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 45, - 50, - 49, - 52, - 55, - 52, - 56, - 51, - 54, - 52, - 56, - 95, - 105, - 51, - 50, - 32, - 60, - 60, - 32, - 49, - 32, - 61, - 61, - 32, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 37, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 50, + 49, + 52, + 55, + 52, + 56, + 51, + 54, + 52, + 56, + 95, + 105, + 51, + 50, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 45, - 57, - 50, - 50, - 51, - 51, - 55, - 50, - 48, - 51, - 54, - 56, - 53, - 52, - 55, - 55, - 53, - 56, - 48, - 56, - 95, - 105, - 54, - 52, - 32, - 60, - 60, - 32, - 49, - 32, - 61, - 61, - 32, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 37, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 57, + 50, + 50, + 51, + 51, + 55, + 50, + 48, + 51, + 54, + 56, + 53, + 52, + 55, + 55, + 53, + 56, + 48, + 56, + 95, + 105, + 54, + 52, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 45, - 49, - 55, - 48, - 49, - 52, - 49, - 49, - 56, - 51, - 52, - 54, - 48, - 52, - 54, - 57, - 50, - 51, - 49, - 55, - 51, - 49, - 54, - 56, - 55, - 51, - 48, - 51, - 55, - 49, - 53, - 56, - 56, - 52, - 49, - 48, - 53, - 55, - 50, - 56, - 95, - 105, - 49, - 50, - 56, - 32, - 60, - 60, - 32, - 49, - 32, - 61, - 61, - 32, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 37, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 49, + 55, + 48, + 49, + 52, + 49, + 49, + 56, + 51, + 52, + 54, + 48, + 52, + 54, + 57, + 50, + 51, + 49, + 55, + 51, + 49, + 54, + 56, + 55, + 51, + 48, + 51, + 55, + 49, + 53, + 56, + 56, + 52, + 49, + 48, + 53, + 55, + 50, + 56, + 95, + 105, + 49, + 50, + 56, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ] ], "functions": [ diff --git a/tests/integration/programs/slice.smir.json.expected b/tests/integration/programs/slice.smir.json.expected index 052ee0e..606a440 100644 --- a/tests/integration/programs/slice.smir.json.expected +++ b/tests/integration/programs/slice.smir.json.expected @@ -1,67 +1,93 @@ { "allocs": [ [ - { - "Memory": { - "align": 4, - "bytes": [ - 2, - 0, - 0, - 0, - 3, - 0, - 0, - 0 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 57, + "Not" + ] + } + }, + { + "Memory": { + "align": 4, + "bytes": [ + 2, + 0, + 0, + 0, + 3, + 0, + 0, + 0 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 98, - 32, - 61, - 61, - 32, - 91, - 50, - 44, - 32, - 51, - 93 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 58, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 98, + 32, + 61, + 61, + 32, + 91, + 50, + 44, + 32, + 51, + 93 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ] ], "functions": [ diff --git a/tests/integration/programs/strange-ref-deref.smir.json.expected b/tests/integration/programs/strange-ref-deref.smir.json.expected index 9e0e99a..6de8bb9 100644 --- a/tests/integration/programs/strange-ref-deref.smir.json.expected +++ b/tests/integration/programs/strange-ref-deref.smir.json.expected @@ -1,43 +1,56 @@ { "allocs": [ [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 42, - 98, - 32, - 61, - 61, - 32, - 52, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 34, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 42, + 98, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ] ], "functions": [ diff --git a/tests/integration/programs/struct.smir.json.expected b/tests/integration/programs/struct.smir.json.expected index fd1ec2c..5b915ed 100644 --- a/tests/integration/programs/struct.smir.json.expected +++ b/tests/integration/programs/struct.smir.json.expected @@ -1,49 +1,62 @@ { "allocs": [ [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 115, - 46, - 97, - 32, - 43, - 32, - 49, - 32, - 61, - 61, - 32, - 115, - 46, - 98 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 115, + 46, + 97, + 32, + 43, + 32, + 49, + 32, + 61, + 61, + 32, + 115, + 46, + 98 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ] ], "functions": [ diff --git a/tests/integration/programs/sum-to-n.smir.json.expected b/tests/integration/programs/sum-to-n.smir.json.expected index b52b5d9..9af294f 100644 --- a/tests/integration/programs/sum-to-n.smir.json.expected +++ b/tests/integration/programs/sum-to-n.smir.json.expected @@ -1,41 +1,54 @@ { "allocs": [ [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 115, - 117, - 99, - 101, - 115, - 115 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 34, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 115, + 117, + 99, + 101, + 115, + 115 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ] ], "functions": [ diff --git a/tests/integration/programs/tuple-eq.smir.json.expected b/tests/integration/programs/tuple-eq.smir.json.expected index ba0c1e3..cfaa75b 100644 --- a/tests/integration/programs/tuple-eq.smir.json.expected +++ b/tests/integration/programs/tuple-eq.smir.json.expected @@ -1,71 +1,97 @@ { "allocs": [ [ - { - "Memory": { - "align": 4, - "bytes": [ - 42, - 0, - 0, - 0, - 99, - 0, - 0, - 0 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 32, + "Not" + ] + } + }, + { + "Memory": { + "align": 4, + "bytes": [ + 42, + 0, + 0, + 0, + 99, + 0, + 0, + 0 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ], [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 116, - 117, - 112, - 32, - 61, - 61, - 32, - 40, - 52, - 50, - 44, - 32, - 57, - 57, - 41 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 37, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 116, + 117, + 112, + 32, + 61, + 61, + 32, + 40, + 52, + 50, + 44, + 32, + 57, + 57, + 41 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ] ], "functions": [ diff --git a/tests/integration/programs/tuples-simple.smir.json.expected b/tests/integration/programs/tuples-simple.smir.json.expected index 55ffc13..960d6ab 100644 --- a/tests/integration/programs/tuples-simple.smir.json.expected +++ b/tests/integration/programs/tuples-simple.smir.json.expected @@ -1,49 +1,62 @@ { "allocs": [ [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 116, - 117, - 112, - 46, - 48, - 32, - 33, - 61, - 32, - 116, - 117, - 112, - 46, - 49 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] + [ + { + "RigidTy": { + "Ref": [ + { + "kind": "ReErased" + }, + 33, + "Not" + ] + } + }, + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 116, + 117, + 112, + 46, + 48, + 32, + 33, + 61, + 32, + 116, + 117, + 112, + 46, + 49 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } } } - } + ] ] ], "functions": [ From 2ad7fda29a8d091bfc92340f6f5d402dcdeea9d2 Mon Sep 17 00:00:00 2001 From: dkcumming Date: Thu, 22 May 2025 16:08:14 -0400 Subject: [PATCH 03/15] Swapped kinds for tys in prov logic --- src/printer.rs | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/printer.rs b/src/printer.rs index 61c96ba..84c7079 100644 --- a/src/printer.rs +++ b/src/printer.rs @@ -627,15 +627,14 @@ fn update_link_map<'tcx>( } } -fn get_prov_type(maybe_kind: Option) -> Option { +fn get_prov_ty(pointer_kind: stable_mir::ty::TyKind) -> Option { use stable_mir::ty::RigidTy; // check for pointers - let kind = maybe_kind?; - if let Some(ty) = kind.builtin_deref(true) { - return ty.ty.kind().into(); + if let Some(ty) = pointer_kind.builtin_deref(true) { + return ty.ty.into(); } - match kind.rigid().expect("Non-rigid-ty allocation found!") { - RigidTy::Array(ty, _) | RigidTy::Slice(ty) | RigidTy::Ref(_, ty, _) => ty.kind().into(), + match pointer_kind.rigid().expect("Non-rigid-ty allocation found!") { + RigidTy::Array(ty, _) | RigidTy::Slice(ty) | RigidTy::Ref(_, ty, _) => (*ty).into(), RigidTy::FnPtr(_) | RigidTy::Adt(..) => None, // TODO: Check for Adt if the GenericArgs are related to prov unimplemented => { todo!("Unimplemented RigidTy allocation: {:?}", unimplemented); @@ -645,7 +644,7 @@ fn get_prov_type(maybe_kind: Option) -> Option, + ty: stable_mir::ty::Ty, val: stable_mir::mir::alloc::AllocId, ) { use stable_mir::mir::alloc::GlobalAlloc; @@ -653,40 +652,41 @@ fn collect_alloc( if matches!(entry, std::collections::hash_map::Entry::Occupied(_)) { return; } + let kind = ty.kind(); let global_alloc = GlobalAlloc::from(val); match global_alloc { GlobalAlloc::Memory(ref alloc) => { - let pointed_kind = get_prov_type(kind.clone()); + let pointed_ty = get_prov_ty(kind.clone()); if debug_enabled() { println!( "DEBUG: called collect_alloc: {:?}:{:?}:{:?}", - val, pointed_kind, global_alloc + val, pointed_ty.map(|ty| ty.kind()), global_alloc ); } - entry.or_insert((kind.unwrap(), AllocInfo::Memory(alloc.clone()))); // TODO: include pointed_kind.clone().unwrap() ? + entry.or_insert((kind, AllocInfo::Memory(alloc.clone()))); // TODO: include pointed_kind.clone().unwrap() ? alloc.provenance.ptrs.iter().for_each(|(_, prov)| { - collect_alloc(val_collector, pointed_kind.clone(), prov.0); + collect_alloc(val_collector, pointed_ty.unwrap(), prov.0); }); } GlobalAlloc::Static(def) => { assert!( - kind.clone().unwrap().builtin_deref(true).is_some(), + kind.clone().builtin_deref(true).is_some(), "Allocated pointer is not a built-in pointer type: {:?}", kind ); - entry.or_insert((kind.unwrap(), AllocInfo::Static(def))); + entry.or_insert((kind, AllocInfo::Static(def))); } GlobalAlloc::VTable(ty, traitref) => { assert!( - kind.clone().unwrap().builtin_deref(true).is_some(), + kind.clone().builtin_deref(true).is_some(), "Allocated pointer is not a built-in pointer type: {:?}", kind ); - entry.or_insert((kind.unwrap(), AllocInfo::VTable(ty, traitref))); + entry.or_insert((kind, AllocInfo::VTable(ty, traitref))); } GlobalAlloc::Function(inst) => { - assert!(kind.as_ref().unwrap().is_fn_ptr()); - entry.or_insert((kind.unwrap(), AllocInfo::Function(inst))); + assert!(kind.is_fn_ptr()); + entry.or_insert((kind, AllocInfo::Function(inst))); } }; } @@ -771,7 +771,7 @@ impl MirVisitor for InternedValueCollector<'_, '_> { ); } alloc.provenance.ptrs.iter().for_each(|(_offset, prov)| { - collect_alloc(self, Some(constant.ty().kind()), prov.0) + collect_alloc(self, constant.ty(), prov.0) }); } ConstantKind::Ty(ty_const) => { From ca705e57e52939e89bd0084e9ae4e775687c02f4 Mon Sep 17 00:00:00 2001 From: dkcumming Date: Thu, 22 May 2025 16:17:07 -0400 Subject: [PATCH 04/15] Changed kind to ty for get_prove_type --- src/printer.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/printer.rs b/src/printer.rs index 84c7079..2b4b677 100644 --- a/src/printer.rs +++ b/src/printer.rs @@ -627,8 +627,9 @@ fn update_link_map<'tcx>( } } -fn get_prov_ty(pointer_kind: stable_mir::ty::TyKind) -> Option { +fn get_prov_ty(pointer_ty: stable_mir::ty::Ty) -> Option { use stable_mir::ty::RigidTy; + let pointer_kind = pointer_ty.kind(); // check for pointers if let Some(ty) = pointer_kind.builtin_deref(true) { return ty.ty.into(); @@ -656,7 +657,7 @@ fn collect_alloc( let global_alloc = GlobalAlloc::from(val); match global_alloc { GlobalAlloc::Memory(ref alloc) => { - let pointed_ty = get_prov_ty(kind.clone()); + let pointed_ty = get_prov_ty(ty); if debug_enabled() { println!( "DEBUG: called collect_alloc: {:?}:{:?}:{:?}", From 94d48dfbef3a10ebe37be0f1485db4726309dea9 Mon Sep 17 00:00:00 2001 From: dkcumming Date: Thu, 22 May 2025 16:22:12 -0400 Subject: [PATCH 05/15] AllocMap uses Ty instead of TyKind --- src/printer.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/printer.rs b/src/printer.rs index 2b4b677..bdce626 100644 --- a/src/printer.rs +++ b/src/printer.rs @@ -481,10 +481,10 @@ pub enum AllocInfo { Option>, ), Static(stable_mir::mir::mono::StaticDef), - Memory(stable_mir::ty::Allocation), // TODO include stable_mir::ty::TyKind? + Memory(stable_mir::ty::Allocation), } type LinkMap<'tcx> = HashMap, (ItemSource, FnSymType)>; -type AllocMap = HashMap; +type AllocMap = HashMap; type TyMap = HashMap)>; type SpanMap = HashMap; @@ -664,7 +664,7 @@ fn collect_alloc( val, pointed_ty.map(|ty| ty.kind()), global_alloc ); } - entry.or_insert((kind, AllocInfo::Memory(alloc.clone()))); // TODO: include pointed_kind.clone().unwrap() ? + entry.or_insert((ty, AllocInfo::Memory(alloc.clone()))); alloc.provenance.ptrs.iter().for_each(|(_, prov)| { collect_alloc(val_collector, pointed_ty.unwrap(), prov.0); }); @@ -675,7 +675,7 @@ fn collect_alloc( "Allocated pointer is not a built-in pointer type: {:?}", kind ); - entry.or_insert((kind, AllocInfo::Static(def))); + entry.or_insert((ty, AllocInfo::Static(def))); } GlobalAlloc::VTable(ty, traitref) => { assert!( @@ -683,11 +683,11 @@ fn collect_alloc( "Allocated pointer is not a built-in pointer type: {:?}", kind ); - entry.or_insert((kind, AllocInfo::VTable(ty, traitref))); + entry.or_insert((ty, AllocInfo::VTable(ty, traitref))); } GlobalAlloc::Function(inst) => { assert!(kind.is_fn_ptr()); - entry.or_insert((kind, AllocInfo::Function(inst))); + entry.or_insert((ty, AllocInfo::Function(inst))); } }; } @@ -1083,7 +1083,7 @@ type SourceData = (String, usize, usize, usize, usize); pub struct SmirJson<'t> { pub name: String, pub crate_id: u64, - pub allocs: Vec<(AllocId, (TyKind, AllocInfo))>, + pub allocs: Vec<(AllocId, (stable_mir::ty::Ty, AllocInfo))>, pub functions: Vec<(LinkMapKey<'t>, FnSymType)>, pub uneval_consts: Vec<(ConstDef, String)>, pub items: Vec, From d27d3af1065ce9f141520749d9517dd82d32146d Mon Sep 17 00:00:00 2001 From: dkcumming Date: Thu, 22 May 2025 16:25:25 -0400 Subject: [PATCH 06/15] make golden --- .../programs/binop.smir.json.expected | 312 ++---------------- .../programs/char-trivial.smir.json.expected | 12 +- .../programs/closure-args.smir.json.expected | 12 +- .../closure-no-args.smir.json.expected | 12 +- .../const-arithm-simple.smir.json.expected | 12 +- .../programs/div.smir.json.expected | 12 +- .../double-ref-deref.smir.json.expected | 12 +- .../programs/fibonacci.smir.json.expected | 12 +- .../programs/float.smir.json.expected | 24 +- .../programs/modulo.smir.json.expected | 12 +- .../mutual_recursion.smir.json.expected | 12 +- .../primitive-type-bounds.smir.json.expected | 12 +- .../recursion-simple-match.smir.json.expected | 12 +- .../recursion-simple.smir.json.expected | 12 +- .../programs/ref-deref.smir.json.expected | 12 +- .../programs/shl_min.smir.json.expected | 60 +--- .../programs/slice.smir.json.expected | 24 +- .../strange-ref-deref.smir.json.expected | 12 +- .../programs/struct.smir.json.expected | 12 +- .../programs/sum-to-n.smir.json.expected | 12 +- .../programs/tuple-eq.smir.json.expected | 24 +- .../programs/tuples-simple.smir.json.expected | 12 +- 22 files changed, 54 insertions(+), 594 deletions(-) diff --git a/tests/integration/programs/binop.smir.json.expected b/tests/integration/programs/binop.smir.json.expected index 69dc7f4..91ff9ba 100644 --- a/tests/integration/programs/binop.smir.json.expected +++ b/tests/integration/programs/binop.smir.json.expected @@ -2,17 +2,7 @@ "allocs": [ [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -57,17 +47,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -112,17 +92,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -170,17 +140,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -225,17 +185,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -281,17 +231,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -339,17 +279,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -395,17 +325,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -453,17 +373,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -511,17 +421,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -569,17 +469,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -623,17 +513,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -677,17 +557,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -731,17 +601,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -785,17 +645,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -839,17 +689,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -893,17 +733,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -948,17 +778,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -1003,17 +823,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -1058,17 +868,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -1113,17 +913,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -1166,17 +956,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -1220,17 +1000,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -1278,17 +1048,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -1331,17 +1091,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, @@ -1385,17 +1135,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, diff --git a/tests/integration/programs/char-trivial.smir.json.expected b/tests/integration/programs/char-trivial.smir.json.expected index 3f38fff..e19dbac 100644 --- a/tests/integration/programs/char-trivial.smir.json.expected +++ b/tests/integration/programs/char-trivial.smir.json.expected @@ -2,17 +2,7 @@ "allocs": [ [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 31, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, diff --git a/tests/integration/programs/closure-args.smir.json.expected b/tests/integration/programs/closure-args.smir.json.expected index 8749d26..f51f8f5 100644 --- a/tests/integration/programs/closure-args.smir.json.expected +++ b/tests/integration/programs/closure-args.smir.json.expected @@ -2,17 +2,7 @@ "allocs": [ [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 36, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, diff --git a/tests/integration/programs/closure-no-args.smir.json.expected b/tests/integration/programs/closure-no-args.smir.json.expected index 0bfcdbd..ff932cd 100644 --- a/tests/integration/programs/closure-no-args.smir.json.expected +++ b/tests/integration/programs/closure-no-args.smir.json.expected @@ -2,17 +2,7 @@ "allocs": [ [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 37, - "Not" - ] - } - }, + 27, { "Memory": { "align": 1, diff --git a/tests/integration/programs/const-arithm-simple.smir.json.expected b/tests/integration/programs/const-arithm-simple.smir.json.expected index 1a5d286..36ab52b 100644 --- a/tests/integration/programs/const-arithm-simple.smir.json.expected +++ b/tests/integration/programs/const-arithm-simple.smir.json.expected @@ -2,17 +2,7 @@ "allocs": [ [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 32, - "Not" - ] - } - }, + 29, { "Memory": { "align": 1, diff --git a/tests/integration/programs/div.smir.json.expected b/tests/integration/programs/div.smir.json.expected index 58e3b2e..fd118ca 100644 --- a/tests/integration/programs/div.smir.json.expected +++ b/tests/integration/programs/div.smir.json.expected @@ -2,17 +2,7 @@ "allocs": [ [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 30, - "Not" - ] - } - }, + 26, { "Memory": { "align": 1, diff --git a/tests/integration/programs/double-ref-deref.smir.json.expected b/tests/integration/programs/double-ref-deref.smir.json.expected index 743dcc7..b8802e5 100644 --- a/tests/integration/programs/double-ref-deref.smir.json.expected +++ b/tests/integration/programs/double-ref-deref.smir.json.expected @@ -2,17 +2,7 @@ "allocs": [ [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 31, - "Not" - ] - } - }, + 26, { "Memory": { "align": 1, diff --git a/tests/integration/programs/fibonacci.smir.json.expected b/tests/integration/programs/fibonacci.smir.json.expected index 840b2f1..0a263db 100644 --- a/tests/integration/programs/fibonacci.smir.json.expected +++ b/tests/integration/programs/fibonacci.smir.json.expected @@ -2,17 +2,7 @@ "allocs": [ [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 35, - "Not" - ] - } - }, + 30, { "Memory": { "align": 1, diff --git a/tests/integration/programs/float.smir.json.expected b/tests/integration/programs/float.smir.json.expected index f718145..8e0f760 100644 --- a/tests/integration/programs/float.smir.json.expected +++ b/tests/integration/programs/float.smir.json.expected @@ -2,17 +2,7 @@ "allocs": [ [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 32, - "Not" - ] - } - }, + 28, { "Memory": { "align": 1, @@ -58,17 +48,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 32, - "Not" - ] - } - }, + 28, { "Memory": { "align": 1, diff --git a/tests/integration/programs/modulo.smir.json.expected b/tests/integration/programs/modulo.smir.json.expected index f39f050..d345301 100644 --- a/tests/integration/programs/modulo.smir.json.expected +++ b/tests/integration/programs/modulo.smir.json.expected @@ -2,17 +2,7 @@ "allocs": [ [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 32, - "Not" - ] - } - }, + 26, { "Memory": { "align": 1, diff --git a/tests/integration/programs/mutual_recursion.smir.json.expected b/tests/integration/programs/mutual_recursion.smir.json.expected index bb92f4c..cdc6ebf 100644 --- a/tests/integration/programs/mutual_recursion.smir.json.expected +++ b/tests/integration/programs/mutual_recursion.smir.json.expected @@ -2,17 +2,7 @@ "allocs": [ [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 35, - "Not" - ] - } - }, + 31, { "Memory": { "align": 1, diff --git a/tests/integration/programs/primitive-type-bounds.smir.json.expected b/tests/integration/programs/primitive-type-bounds.smir.json.expected index f7f3c51..ceef1df 100644 --- a/tests/integration/programs/primitive-type-bounds.smir.json.expected +++ b/tests/integration/programs/primitive-type-bounds.smir.json.expected @@ -2,17 +2,7 @@ "allocs": [ [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 28, { "Memory": { "align": 1, diff --git a/tests/integration/programs/recursion-simple-match.smir.json.expected b/tests/integration/programs/recursion-simple-match.smir.json.expected index bc8b845..cf569ca 100644 --- a/tests/integration/programs/recursion-simple-match.smir.json.expected +++ b/tests/integration/programs/recursion-simple-match.smir.json.expected @@ -2,17 +2,7 @@ "allocs": [ [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 30, { "Memory": { "align": 1, diff --git a/tests/integration/programs/recursion-simple.smir.json.expected b/tests/integration/programs/recursion-simple.smir.json.expected index f93ad2d..5473685 100644 --- a/tests/integration/programs/recursion-simple.smir.json.expected +++ b/tests/integration/programs/recursion-simple.smir.json.expected @@ -2,17 +2,7 @@ "allocs": [ [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 34, - "Not" - ] - } - }, + 30, { "Memory": { "align": 1, diff --git a/tests/integration/programs/ref-deref.smir.json.expected b/tests/integration/programs/ref-deref.smir.json.expected index 5713241..1b44f25 100644 --- a/tests/integration/programs/ref-deref.smir.json.expected +++ b/tests/integration/programs/ref-deref.smir.json.expected @@ -2,17 +2,7 @@ "allocs": [ [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 30, - "Not" - ] - } - }, + 26, { "Memory": { "align": 1, diff --git a/tests/integration/programs/shl_min.smir.json.expected b/tests/integration/programs/shl_min.smir.json.expected index 64d5f6d..ef1b9bc 100644 --- a/tests/integration/programs/shl_min.smir.json.expected +++ b/tests/integration/programs/shl_min.smir.json.expected @@ -2,17 +2,7 @@ "allocs": [ [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 37, - "Not" - ] - } - }, + 28, { "Memory": { "align": 1, @@ -63,17 +53,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 37, - "Not" - ] - } - }, + 28, { "Memory": { "align": 1, @@ -127,17 +107,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 37, - "Not" - ] - } - }, + 28, { "Memory": { "align": 1, @@ -196,17 +166,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 37, - "Not" - ] - } - }, + 28, { "Memory": { "align": 1, @@ -274,17 +234,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 37, - "Not" - ] - } - }, + 28, { "Memory": { "align": 1, diff --git a/tests/integration/programs/slice.smir.json.expected b/tests/integration/programs/slice.smir.json.expected index 606a440..93b3b83 100644 --- a/tests/integration/programs/slice.smir.json.expected +++ b/tests/integration/programs/slice.smir.json.expected @@ -2,17 +2,7 @@ "allocs": [ [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 57, - "Not" - ] - } - }, + 40, { "Memory": { "align": 4, @@ -36,17 +26,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 58, - "Not" - ] - } - }, + 51, { "Memory": { "align": 1, diff --git a/tests/integration/programs/strange-ref-deref.smir.json.expected b/tests/integration/programs/strange-ref-deref.smir.json.expected index 6de8bb9..7938c63 100644 --- a/tests/integration/programs/strange-ref-deref.smir.json.expected +++ b/tests/integration/programs/strange-ref-deref.smir.json.expected @@ -2,17 +2,7 @@ "allocs": [ [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 34, - "Not" - ] - } - }, + 26, { "Memory": { "align": 1, diff --git a/tests/integration/programs/struct.smir.json.expected b/tests/integration/programs/struct.smir.json.expected index 5b915ed..7cee955 100644 --- a/tests/integration/programs/struct.smir.json.expected +++ b/tests/integration/programs/struct.smir.json.expected @@ -2,17 +2,7 @@ "allocs": [ [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 28, { "Memory": { "align": 1, diff --git a/tests/integration/programs/sum-to-n.smir.json.expected b/tests/integration/programs/sum-to-n.smir.json.expected index 9af294f..93d78b7 100644 --- a/tests/integration/programs/sum-to-n.smir.json.expected +++ b/tests/integration/programs/sum-to-n.smir.json.expected @@ -2,17 +2,7 @@ "allocs": [ [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 34, - "Not" - ] - } - }, + 30, { "Memory": { "align": 1, diff --git a/tests/integration/programs/tuple-eq.smir.json.expected b/tests/integration/programs/tuple-eq.smir.json.expected index cfaa75b..453b878 100644 --- a/tests/integration/programs/tuple-eq.smir.json.expected +++ b/tests/integration/programs/tuple-eq.smir.json.expected @@ -2,17 +2,7 @@ "allocs": [ [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 32, - "Not" - ] - } - }, + 28, { "Memory": { "align": 4, @@ -36,17 +26,7 @@ ], [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 37, - "Not" - ] - } - }, + 31, { "Memory": { "align": 1, diff --git a/tests/integration/programs/tuples-simple.smir.json.expected b/tests/integration/programs/tuples-simple.smir.json.expected index 960d6ab..e571ec7 100644 --- a/tests/integration/programs/tuples-simple.smir.json.expected +++ b/tests/integration/programs/tuples-simple.smir.json.expected @@ -2,17 +2,7 @@ "allocs": [ [ [ - { - "RigidTy": { - "Ref": [ - { - "kind": "ReErased" - }, - 33, - "Not" - ] - } - }, + 26, { "Memory": { "align": 1, From 839cca54e23c18c8581a8a3e09dbaa770e89d84f Mon Sep 17 00:00:00 2001 From: dkcumming Date: Thu, 22 May 2025 16:26:19 -0400 Subject: [PATCH 07/15] cargo fmt --- src/printer.rs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/printer.rs b/src/printer.rs index bdce626..e7bad5b 100644 --- a/src/printer.rs +++ b/src/printer.rs @@ -634,7 +634,10 @@ fn get_prov_ty(pointer_ty: stable_mir::ty::Ty) -> Option { if let Some(ty) = pointer_kind.builtin_deref(true) { return ty.ty.into(); } - match pointer_kind.rigid().expect("Non-rigid-ty allocation found!") { + match pointer_kind + .rigid() + .expect("Non-rigid-ty allocation found!") + { RigidTy::Array(ty, _) | RigidTy::Slice(ty) | RigidTy::Ref(_, ty, _) => (*ty).into(), RigidTy::FnPtr(_) | RigidTy::Adt(..) => None, // TODO: Check for Adt if the GenericArgs are related to prov unimplemented => { @@ -661,7 +664,9 @@ fn collect_alloc( if debug_enabled() { println!( "DEBUG: called collect_alloc: {:?}:{:?}:{:?}", - val, pointed_ty.map(|ty| ty.kind()), global_alloc + val, + pointed_ty.map(|ty| ty.kind()), + global_alloc ); } entry.or_insert((ty, AllocInfo::Memory(alloc.clone()))); @@ -771,9 +776,11 @@ impl MirVisitor for InternedValueCollector<'_, '_> { constant.ty().kind() ); } - alloc.provenance.ptrs.iter().for_each(|(_offset, prov)| { - collect_alloc(self, constant.ty(), prov.0) - }); + alloc + .provenance + .ptrs + .iter() + .for_each(|(_offset, prov)| collect_alloc(self, constant.ty(), prov.0)); } ConstantKind::Ty(ty_const) => { if let TyConstKind::Value(..) = ty_const.kind() { From 11f4c22fb554fa4690e7fed14dce42e427fec282 Mon Sep 17 00:00:00 2001 From: dkcumming Date: Thu, 22 May 2025 16:45:47 -0400 Subject: [PATCH 08/15] jq filter --- tests/integration/normalise-filter.jq | 2 +- .../programs/binop.smir.json.expected | 26 ------------------- .../programs/char-trivial.smir.json.expected | 1 - .../programs/closure-args.smir.json.expected | 1 - .../closure-no-args.smir.json.expected | 1 - .../const-arithm-simple.smir.json.expected | 1 - .../programs/div.smir.json.expected | 1 - .../double-ref-deref.smir.json.expected | 1 - .../programs/fibonacci.smir.json.expected | 1 - .../programs/float.smir.json.expected | 2 -- .../programs/modulo.smir.json.expected | 1 - .../mutual_recursion.smir.json.expected | 1 - .../primitive-type-bounds.smir.json.expected | 1 - .../recursion-simple-match.smir.json.expected | 1 - .../recursion-simple.smir.json.expected | 1 - .../programs/ref-deref.smir.json.expected | 1 - .../programs/shl_min.smir.json.expected | 5 ---- .../programs/slice.smir.json.expected | 2 -- .../strange-ref-deref.smir.json.expected | 1 - .../programs/struct.smir.json.expected | 1 - .../programs/sum-to-n.smir.json.expected | 1 - .../programs/tuple-eq.smir.json.expected | 2 -- .../programs/tuples-simple.smir.json.expected | 1 - 23 files changed, 1 insertion(+), 55 deletions(-) diff --git a/tests/integration/normalise-filter.jq b/tests/integration/normalise-filter.jq index 8ef194a..3f49e4f 100644 --- a/tests/integration/normalise-filter.jq +++ b/tests/integration/normalise-filter.jq @@ -2,7 +2,7 @@ .functions = ( [ .functions[] | if .[1].NormalSym then .[1].NormalSym = .[1].NormalSym[:-17] else . end ] ) | .items = ( [ .items[] | if .symbol_name then .symbol_name = .symbol_name[:-17] else . end ] ) # delete unstable alloc, function, and type IDs - | .allocs = ( [ .allocs[] ] | map(del(.[0])) ) + | .allocs = ( [ .allocs[] ] | map(del(.[0])) | map(del(.[0].[0])) ) | .functions = ( [ .functions[] ] | map(del(.[0])) ) | .types = ( [ .types[] ] | map(del(.[0])) ) | diff --git a/tests/integration/programs/binop.smir.json.expected b/tests/integration/programs/binop.smir.json.expected index 91ff9ba..b56abfc 100644 --- a/tests/integration/programs/binop.smir.json.expected +++ b/tests/integration/programs/binop.smir.json.expected @@ -2,7 +2,6 @@ "allocs": [ [ [ - 27, { "Memory": { "align": 1, @@ -47,7 +46,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -92,7 +90,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -140,7 +137,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -185,7 +181,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -231,7 +226,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -279,7 +273,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -325,7 +318,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -373,7 +365,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -421,7 +412,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -469,7 +459,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -513,7 +502,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -557,7 +545,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -601,7 +588,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -645,7 +631,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -689,7 +674,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -733,7 +717,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -778,7 +761,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -823,7 +805,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -868,7 +849,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -913,7 +893,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -956,7 +935,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -1000,7 +978,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -1048,7 +1025,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -1091,7 +1067,6 @@ ], [ [ - 27, { "Memory": { "align": 1, @@ -1135,7 +1110,6 @@ ], [ [ - 27, { "Memory": { "align": 1, diff --git a/tests/integration/programs/char-trivial.smir.json.expected b/tests/integration/programs/char-trivial.smir.json.expected index e19dbac..43f799b 100644 --- a/tests/integration/programs/char-trivial.smir.json.expected +++ b/tests/integration/programs/char-trivial.smir.json.expected @@ -2,7 +2,6 @@ "allocs": [ [ [ - 27, { "Memory": { "align": 1, diff --git a/tests/integration/programs/closure-args.smir.json.expected b/tests/integration/programs/closure-args.smir.json.expected index f51f8f5..7ba057a 100644 --- a/tests/integration/programs/closure-args.smir.json.expected +++ b/tests/integration/programs/closure-args.smir.json.expected @@ -2,7 +2,6 @@ "allocs": [ [ [ - 27, { "Memory": { "align": 1, diff --git a/tests/integration/programs/closure-no-args.smir.json.expected b/tests/integration/programs/closure-no-args.smir.json.expected index ff932cd..441b1de 100644 --- a/tests/integration/programs/closure-no-args.smir.json.expected +++ b/tests/integration/programs/closure-no-args.smir.json.expected @@ -2,7 +2,6 @@ "allocs": [ [ [ - 27, { "Memory": { "align": 1, diff --git a/tests/integration/programs/const-arithm-simple.smir.json.expected b/tests/integration/programs/const-arithm-simple.smir.json.expected index 36ab52b..dcfe0a5 100644 --- a/tests/integration/programs/const-arithm-simple.smir.json.expected +++ b/tests/integration/programs/const-arithm-simple.smir.json.expected @@ -2,7 +2,6 @@ "allocs": [ [ [ - 29, { "Memory": { "align": 1, diff --git a/tests/integration/programs/div.smir.json.expected b/tests/integration/programs/div.smir.json.expected index fd118ca..21c08f6 100644 --- a/tests/integration/programs/div.smir.json.expected +++ b/tests/integration/programs/div.smir.json.expected @@ -2,7 +2,6 @@ "allocs": [ [ [ - 26, { "Memory": { "align": 1, diff --git a/tests/integration/programs/double-ref-deref.smir.json.expected b/tests/integration/programs/double-ref-deref.smir.json.expected index b8802e5..ea76940 100644 --- a/tests/integration/programs/double-ref-deref.smir.json.expected +++ b/tests/integration/programs/double-ref-deref.smir.json.expected @@ -2,7 +2,6 @@ "allocs": [ [ [ - 26, { "Memory": { "align": 1, diff --git a/tests/integration/programs/fibonacci.smir.json.expected b/tests/integration/programs/fibonacci.smir.json.expected index 0a263db..46f620d 100644 --- a/tests/integration/programs/fibonacci.smir.json.expected +++ b/tests/integration/programs/fibonacci.smir.json.expected @@ -2,7 +2,6 @@ "allocs": [ [ [ - 30, { "Memory": { "align": 1, diff --git a/tests/integration/programs/float.smir.json.expected b/tests/integration/programs/float.smir.json.expected index 8e0f760..96a6d15 100644 --- a/tests/integration/programs/float.smir.json.expected +++ b/tests/integration/programs/float.smir.json.expected @@ -2,7 +2,6 @@ "allocs": [ [ [ - 28, { "Memory": { "align": 1, @@ -48,7 +47,6 @@ ], [ [ - 28, { "Memory": { "align": 1, diff --git a/tests/integration/programs/modulo.smir.json.expected b/tests/integration/programs/modulo.smir.json.expected index d345301..4ffd985 100644 --- a/tests/integration/programs/modulo.smir.json.expected +++ b/tests/integration/programs/modulo.smir.json.expected @@ -2,7 +2,6 @@ "allocs": [ [ [ - 26, { "Memory": { "align": 1, diff --git a/tests/integration/programs/mutual_recursion.smir.json.expected b/tests/integration/programs/mutual_recursion.smir.json.expected index cdc6ebf..0ed536f 100644 --- a/tests/integration/programs/mutual_recursion.smir.json.expected +++ b/tests/integration/programs/mutual_recursion.smir.json.expected @@ -2,7 +2,6 @@ "allocs": [ [ [ - 31, { "Memory": { "align": 1, diff --git a/tests/integration/programs/primitive-type-bounds.smir.json.expected b/tests/integration/programs/primitive-type-bounds.smir.json.expected index ceef1df..e2643b8 100644 --- a/tests/integration/programs/primitive-type-bounds.smir.json.expected +++ b/tests/integration/programs/primitive-type-bounds.smir.json.expected @@ -2,7 +2,6 @@ "allocs": [ [ [ - 28, { "Memory": { "align": 1, diff --git a/tests/integration/programs/recursion-simple-match.smir.json.expected b/tests/integration/programs/recursion-simple-match.smir.json.expected index cf569ca..4850293 100644 --- a/tests/integration/programs/recursion-simple-match.smir.json.expected +++ b/tests/integration/programs/recursion-simple-match.smir.json.expected @@ -2,7 +2,6 @@ "allocs": [ [ [ - 30, { "Memory": { "align": 1, diff --git a/tests/integration/programs/recursion-simple.smir.json.expected b/tests/integration/programs/recursion-simple.smir.json.expected index 5473685..b296c71 100644 --- a/tests/integration/programs/recursion-simple.smir.json.expected +++ b/tests/integration/programs/recursion-simple.smir.json.expected @@ -2,7 +2,6 @@ "allocs": [ [ [ - 30, { "Memory": { "align": 1, diff --git a/tests/integration/programs/ref-deref.smir.json.expected b/tests/integration/programs/ref-deref.smir.json.expected index 1b44f25..c3fac1e 100644 --- a/tests/integration/programs/ref-deref.smir.json.expected +++ b/tests/integration/programs/ref-deref.smir.json.expected @@ -2,7 +2,6 @@ "allocs": [ [ [ - 26, { "Memory": { "align": 1, diff --git a/tests/integration/programs/shl_min.smir.json.expected b/tests/integration/programs/shl_min.smir.json.expected index ef1b9bc..f7eb4e0 100644 --- a/tests/integration/programs/shl_min.smir.json.expected +++ b/tests/integration/programs/shl_min.smir.json.expected @@ -2,7 +2,6 @@ "allocs": [ [ [ - 28, { "Memory": { "align": 1, @@ -53,7 +52,6 @@ ], [ [ - 28, { "Memory": { "align": 1, @@ -107,7 +105,6 @@ ], [ [ - 28, { "Memory": { "align": 1, @@ -166,7 +163,6 @@ ], [ [ - 28, { "Memory": { "align": 1, @@ -234,7 +230,6 @@ ], [ [ - 28, { "Memory": { "align": 1, diff --git a/tests/integration/programs/slice.smir.json.expected b/tests/integration/programs/slice.smir.json.expected index 93b3b83..cb8d5ee 100644 --- a/tests/integration/programs/slice.smir.json.expected +++ b/tests/integration/programs/slice.smir.json.expected @@ -2,7 +2,6 @@ "allocs": [ [ [ - 40, { "Memory": { "align": 4, @@ -26,7 +25,6 @@ ], [ [ - 51, { "Memory": { "align": 1, diff --git a/tests/integration/programs/strange-ref-deref.smir.json.expected b/tests/integration/programs/strange-ref-deref.smir.json.expected index 7938c63..1d658fa 100644 --- a/tests/integration/programs/strange-ref-deref.smir.json.expected +++ b/tests/integration/programs/strange-ref-deref.smir.json.expected @@ -2,7 +2,6 @@ "allocs": [ [ [ - 26, { "Memory": { "align": 1, diff --git a/tests/integration/programs/struct.smir.json.expected b/tests/integration/programs/struct.smir.json.expected index 7cee955..bdbdfa6 100644 --- a/tests/integration/programs/struct.smir.json.expected +++ b/tests/integration/programs/struct.smir.json.expected @@ -2,7 +2,6 @@ "allocs": [ [ [ - 28, { "Memory": { "align": 1, diff --git a/tests/integration/programs/sum-to-n.smir.json.expected b/tests/integration/programs/sum-to-n.smir.json.expected index 93d78b7..1c5ad99 100644 --- a/tests/integration/programs/sum-to-n.smir.json.expected +++ b/tests/integration/programs/sum-to-n.smir.json.expected @@ -2,7 +2,6 @@ "allocs": [ [ [ - 30, { "Memory": { "align": 1, diff --git a/tests/integration/programs/tuple-eq.smir.json.expected b/tests/integration/programs/tuple-eq.smir.json.expected index 453b878..92a44be 100644 --- a/tests/integration/programs/tuple-eq.smir.json.expected +++ b/tests/integration/programs/tuple-eq.smir.json.expected @@ -2,7 +2,6 @@ "allocs": [ [ [ - 28, { "Memory": { "align": 4, @@ -26,7 +25,6 @@ ], [ [ - 31, { "Memory": { "align": 1, diff --git a/tests/integration/programs/tuples-simple.smir.json.expected b/tests/integration/programs/tuples-simple.smir.json.expected index e571ec7..0fb0667 100644 --- a/tests/integration/programs/tuples-simple.smir.json.expected +++ b/tests/integration/programs/tuples-simple.smir.json.expected @@ -2,7 +2,6 @@ "allocs": [ [ [ - 26, { "Memory": { "align": 1, From f7912ddf2e413cc10e497b2fa756a68af341e2ad Mon Sep 17 00:00:00 2001 From: dkcumming Date: Thu, 22 May 2025 16:52:15 -0400 Subject: [PATCH 09/15] Removed all allocs from jq --- tests/integration/normalise-filter.jq | 2 +- .../programs/binop.smir.json.expected | 1181 +---------------- .../programs/char-trivial.smir.json.expected | 42 +- .../programs/closure-args.smir.json.expected | 51 +- .../closure-no-args.smir.json.expected | 45 +- .../const-arithm-simple.smir.json.expected | 35 +- .../programs/div.smir.json.expected | 48 +- .../double-ref-deref.smir.json.expected | 43 +- .../programs/fibonacci.smir.json.expected | 42 +- .../programs/float.smir.json.expected | 92 +- .../programs/modulo.smir.json.expected | 46 +- .../mutual_recursion.smir.json.expected | 45 +- .../primitive-type-bounds.smir.json.expected | 40 +- .../recursion-simple-match.smir.json.expected | 43 +- .../recursion-simple.smir.json.expected | 43 +- .../programs/ref-deref.smir.json.expected | 41 +- .../programs/shl_min.smir.json.expected | 321 +---- .../programs/slice.smir.json.expected | 69 +- .../strange-ref-deref.smir.json.expected | 42 +- .../programs/struct.smir.json.expected | 48 +- .../programs/sum-to-n.smir.json.expected | 40 +- .../programs/tuple-eq.smir.json.expected | 73 +- .../programs/tuples-simple.smir.json.expected | 48 +- 23 files changed, 55 insertions(+), 2425 deletions(-) diff --git a/tests/integration/normalise-filter.jq b/tests/integration/normalise-filter.jq index 3f49e4f..9c3b777 100644 --- a/tests/integration/normalise-filter.jq +++ b/tests/integration/normalise-filter.jq @@ -2,7 +2,7 @@ .functions = ( [ .functions[] | if .[1].NormalSym then .[1].NormalSym = .[1].NormalSym[:-17] else . end ] ) | .items = ( [ .items[] | if .symbol_name then .symbol_name = .symbol_name[:-17] else . end ] ) # delete unstable alloc, function, and type IDs - | .allocs = ( [ .allocs[] ] | map(del(.[0])) | map(del(.[0].[0])) ) + | .allocs = ( [ .allocs[] ] | map(del(.[0])) | map(del(.[0])) ) | .functions = ( [ .functions[] ] | map(del(.[0])) ) | .types = ( [ .types[] ] | map(del(.[0])) ) | diff --git a/tests/integration/programs/binop.smir.json.expected b/tests/integration/programs/binop.smir.json.expected index b56abfc..c441cee 100644 --- a/tests/integration/programs/binop.smir.json.expected +++ b/tests/integration/programs/binop.smir.json.expected @@ -1,1160 +1,31 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 43, - 32, - 121, - 32, - 61, - 61, - 32, - 53, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 53, - 50, - 32, - 61, - 61, - 32, - 120, - 32, - 43, - 32, - 121 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 43, - 32, - 121, - 32, - 61, - 61, - 32, - 121, - 32, - 43, - 32, - 120 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 45, - 32, - 121, - 32, - 61, - 61, - 32, - 51, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 121, - 32, - 45, - 32, - 120, - 32, - 61, - 61, - 32, - 45, - 51, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 121, - 32, - 45, - 32, - 120, - 32, - 33, - 61, - 32, - 120, - 32, - 45, - 32, - 121 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 42, - 32, - 121, - 32, - 61, - 61, - 32, - 52, - 50, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 42, - 32, - 45, - 121, - 32, - 61, - 61, - 32, - 45, - 52, - 50, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 45, - 120, - 32, - 42, - 32, - 121, - 32, - 61, - 61, - 32, - 45, - 52, - 50, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 45, - 120, - 32, - 42, - 32, - 45, - 121, - 32, - 61, - 61, - 32, - 52, - 50, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 49, - 32, - 94, - 32, - 50, - 32, - 61, - 61, - 32, - 51 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 49, - 32, - 94, - 32, - 51, - 32, - 61, - 61, - 32, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 49, - 32, - 124, - 32, - 50, - 32, - 61, - 61, - 32, - 51 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 49, - 32, - 124, - 32, - 51, - 32, - 61, - 61, - 32, - 51 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 49, - 32, - 38, - 32, - 50, - 32, - 61, - 61, - 32, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 49, - 32, - 38, - 32, - 51, - 32, - 61, - 61, - 32, - 49 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 50, - 32, - 60, - 60, - 32, - 49, - 32, - 61, - 61, - 32, - 52 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 50, - 32, - 62, - 62, - 32, - 49, - 32, - 61, - 61, - 32, - 49 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 51, - 32, - 62, - 62, - 32, - 49, - 32, - 61, - 61, - 32, - 49 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 49, - 32, - 62, - 62, - 32, - 49, - 32, - 61, - 61, - 32, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 60, - 32, - 120, - 32, - 43, - 32, - 121 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 60, - 61, - 32, - 120, - 32, - 43, - 32, - 121 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 60, - 61, - 32, - 120, - 32, - 43, - 32, - 121, - 32, - 45, - 32, - 121 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 43, - 32, - 121, - 32, - 62, - 32, - 120 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 43, - 32, - 121, - 32, - 62, - 61, - 32, - 120 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 43, - 32, - 121, - 32, - 45, - 32, - 121, - 32, - 62, - 61, - 32, - 120 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ] + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [], + [] ], "functions": [ [ diff --git a/tests/integration/programs/char-trivial.smir.json.expected b/tests/integration/programs/char-trivial.smir.json.expected index 43f799b..6abd29c 100644 --- a/tests/integration/programs/char-trivial.smir.json.expected +++ b/tests/integration/programs/char-trivial.smir.json.expected @@ -1,46 +1,6 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 97, - 32, - 61, - 61, - 32, - 39, - 97, - 39 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ] + [] ], "functions": [ [ diff --git a/tests/integration/programs/closure-args.smir.json.expected b/tests/integration/programs/closure-args.smir.json.expected index 7ba057a..1ff9476 100644 --- a/tests/integration/programs/closure-args.smir.json.expected +++ b/tests/integration/programs/closure-args.smir.json.expected @@ -1,55 +1,6 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 115, - 117, - 109, - 40, - 50, - 48, - 44, - 32, - 50, - 50, - 41, - 32, - 61, - 61, - 32, - 52, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ] + [] ], "functions": [ [ diff --git a/tests/integration/programs/closure-no-args.smir.json.expected b/tests/integration/programs/closure-no-args.smir.json.expected index 441b1de..8ac173a 100644 --- a/tests/integration/programs/closure-no-args.smir.json.expected +++ b/tests/integration/programs/closure-no-args.smir.json.expected @@ -1,49 +1,6 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 115, - 117, - 109, - 40, - 41, - 32, - 61, - 61, - 32, - 52, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ] + [] ], "functions": [ [ diff --git a/tests/integration/programs/const-arithm-simple.smir.json.expected b/tests/integration/programs/const-arithm-simple.smir.json.expected index dcfe0a5..393073d 100644 --- a/tests/integration/programs/const-arithm-simple.smir.json.expected +++ b/tests/integration/programs/const-arithm-simple.smir.json.expected @@ -1,39 +1,6 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 122 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ] + [] ], "functions": [ [ diff --git a/tests/integration/programs/div.smir.json.expected b/tests/integration/programs/div.smir.json.expected index 21c08f6..aff0cab 100644 --- a/tests/integration/programs/div.smir.json.expected +++ b/tests/integration/programs/div.smir.json.expected @@ -1,52 +1,6 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 52, - 50, - 48, - 32, - 47, - 32, - 49, - 48, - 32, - 61, - 61, - 32, - 52, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ] + [] ], "functions": [ [ diff --git a/tests/integration/programs/double-ref-deref.smir.json.expected b/tests/integration/programs/double-ref-deref.smir.json.expected index ea76940..113dc18 100644 --- a/tests/integration/programs/double-ref-deref.smir.json.expected +++ b/tests/integration/programs/double-ref-deref.smir.json.expected @@ -1,47 +1,6 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 42, - 42, - 99, - 32, - 61, - 61, - 32, - 52, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ] + [] ], "functions": [ [ diff --git a/tests/integration/programs/fibonacci.smir.json.expected b/tests/integration/programs/fibonacci.smir.json.expected index 46f620d..3a8426f 100644 --- a/tests/integration/programs/fibonacci.smir.json.expected +++ b/tests/integration/programs/fibonacci.smir.json.expected @@ -1,46 +1,6 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 97, - 110, - 115, - 32, - 61, - 61, - 32, - 53 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ] + [] ], "functions": [ [ diff --git a/tests/integration/programs/float.smir.json.expected b/tests/integration/programs/float.smir.json.expected index 96a6d15..1ca1588 100644 --- a/tests/integration/programs/float.smir.json.expected +++ b/tests/integration/programs/float.smir.json.expected @@ -1,95 +1,7 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 97, - 32, - 43, - 32, - 98, - 32, - 61, - 61, - 32, - 52, - 46, - 55 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 99, - 32, - 43, - 32, - 100, - 32, - 61, - 61, - 32, - 52, - 46, - 55 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ] + [], + [] ], "functions": [ [ diff --git a/tests/integration/programs/modulo.smir.json.expected b/tests/integration/programs/modulo.smir.json.expected index 4ffd985..4cebff8 100644 --- a/tests/integration/programs/modulo.smir.json.expected +++ b/tests/integration/programs/modulo.smir.json.expected @@ -1,50 +1,6 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 52, - 50, - 32, - 37, - 32, - 49, - 48, - 32, - 61, - 61, - 32, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ] + [] ], "functions": [ [ diff --git a/tests/integration/programs/mutual_recursion.smir.json.expected b/tests/integration/programs/mutual_recursion.smir.json.expected index 0ed536f..88c2d36 100644 --- a/tests/integration/programs/mutual_recursion.smir.json.expected +++ b/tests/integration/programs/mutual_recursion.smir.json.expected @@ -1,49 +1,6 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 97, - 110, - 115, - 32, - 61, - 61, - 32, - 116, - 114, - 117, - 101 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ] + [] ], "functions": [ [ diff --git a/tests/integration/programs/primitive-type-bounds.smir.json.expected b/tests/integration/programs/primitive-type-bounds.smir.json.expected index e2643b8..77fbb0f 100644 --- a/tests/integration/programs/primitive-type-bounds.smir.json.expected +++ b/tests/integration/programs/primitive-type-bounds.smir.json.expected @@ -1,44 +1,6 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 97, - 32, - 61, - 61, - 32, - 98 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ] + [] ], "functions": [ [ diff --git a/tests/integration/programs/recursion-simple-match.smir.json.expected b/tests/integration/programs/recursion-simple-match.smir.json.expected index 4850293..1d1ead0 100644 --- a/tests/integration/programs/recursion-simple-match.smir.json.expected +++ b/tests/integration/programs/recursion-simple-match.smir.json.expected @@ -1,47 +1,6 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 97, - 110, - 115, - 32, - 61, - 61, - 32, - 53, - 53 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ] + [] ], "functions": [ [ diff --git a/tests/integration/programs/recursion-simple.smir.json.expected b/tests/integration/programs/recursion-simple.smir.json.expected index b296c71..0f6f532 100644 --- a/tests/integration/programs/recursion-simple.smir.json.expected +++ b/tests/integration/programs/recursion-simple.smir.json.expected @@ -1,47 +1,6 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 97, - 110, - 115, - 32, - 61, - 61, - 32, - 53, - 53 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ] + [] ], "functions": [ [ diff --git a/tests/integration/programs/ref-deref.smir.json.expected b/tests/integration/programs/ref-deref.smir.json.expected index c3fac1e..90c0ac9 100644 --- a/tests/integration/programs/ref-deref.smir.json.expected +++ b/tests/integration/programs/ref-deref.smir.json.expected @@ -1,45 +1,6 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 99, - 32, - 61, - 61, - 32, - 52, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ] + [] ], "functions": [ [ diff --git a/tests/integration/programs/shl_min.smir.json.expected b/tests/integration/programs/shl_min.smir.json.expected index f7eb4e0..96d8811 100644 --- a/tests/integration/programs/shl_min.smir.json.expected +++ b/tests/integration/programs/shl_min.smir.json.expected @@ -1,321 +1,10 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 45, - 49, - 50, - 56, - 95, - 105, - 56, - 32, - 60, - 60, - 32, - 49, - 32, - 61, - 61, - 32, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 45, - 51, - 50, - 55, - 54, - 56, - 95, - 105, - 49, - 54, - 32, - 60, - 60, - 32, - 49, - 32, - 61, - 61, - 32, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 45, - 50, - 49, - 52, - 55, - 52, - 56, - 51, - 54, - 52, - 56, - 95, - 105, - 51, - 50, - 32, - 60, - 60, - 32, - 49, - 32, - 61, - 61, - 32, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 45, - 57, - 50, - 50, - 51, - 51, - 55, - 50, - 48, - 51, - 54, - 56, - 53, - 52, - 55, - 55, - 53, - 56, - 48, - 56, - 95, - 105, - 54, - 52, - 32, - 60, - 60, - 32, - 49, - 32, - 61, - 61, - 32, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 45, - 49, - 55, - 48, - 49, - 52, - 49, - 49, - 56, - 51, - 52, - 54, - 48, - 52, - 54, - 57, - 50, - 51, - 49, - 55, - 51, - 49, - 54, - 56, - 55, - 51, - 48, - 51, - 55, - 49, - 53, - 56, - 56, - 52, - 49, - 48, - 53, - 55, - 50, - 56, - 95, - 105, - 49, - 50, - 56, - 32, - 60, - 60, - 32, - 49, - 32, - 61, - 61, - 32, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ] + [], + [], + [], + [], + [] ], "functions": [ [ diff --git a/tests/integration/programs/slice.smir.json.expected b/tests/integration/programs/slice.smir.json.expected index cb8d5ee..91b97e6 100644 --- a/tests/integration/programs/slice.smir.json.expected +++ b/tests/integration/programs/slice.smir.json.expected @@ -1,72 +1,7 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 4, - "bytes": [ - 2, - 0, - 0, - 0, - 3, - 0, - 0, - 0 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 98, - 32, - 61, - 61, - 32, - 91, - 50, - 44, - 32, - 51, - 93 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ] + [], + [] ], "functions": [ [ diff --git a/tests/integration/programs/strange-ref-deref.smir.json.expected b/tests/integration/programs/strange-ref-deref.smir.json.expected index 1d658fa..c51a515 100644 --- a/tests/integration/programs/strange-ref-deref.smir.json.expected +++ b/tests/integration/programs/strange-ref-deref.smir.json.expected @@ -1,46 +1,6 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 42, - 98, - 32, - 61, - 61, - 32, - 52, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ] + [] ], "functions": [ [ diff --git a/tests/integration/programs/struct.smir.json.expected b/tests/integration/programs/struct.smir.json.expected index bdbdfa6..493bcbf 100644 --- a/tests/integration/programs/struct.smir.json.expected +++ b/tests/integration/programs/struct.smir.json.expected @@ -1,52 +1,6 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 115, - 46, - 97, - 32, - 43, - 32, - 49, - 32, - 61, - 61, - 32, - 115, - 46, - 98 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ] + [] ], "functions": [ [ diff --git a/tests/integration/programs/sum-to-n.smir.json.expected b/tests/integration/programs/sum-to-n.smir.json.expected index 1c5ad99..c3d922a 100644 --- a/tests/integration/programs/sum-to-n.smir.json.expected +++ b/tests/integration/programs/sum-to-n.smir.json.expected @@ -1,44 +1,6 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 115, - 117, - 99, - 101, - 115, - 115 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ] + [] ], "functions": [ [ diff --git a/tests/integration/programs/tuple-eq.smir.json.expected b/tests/integration/programs/tuple-eq.smir.json.expected index 92a44be..ad27238 100644 --- a/tests/integration/programs/tuple-eq.smir.json.expected +++ b/tests/integration/programs/tuple-eq.smir.json.expected @@ -1,76 +1,7 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 4, - "bytes": [ - 42, - 0, - 0, - 0, - 99, - 0, - 0, - 0 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 116, - 117, - 112, - 32, - 61, - 61, - 32, - 40, - 52, - 50, - 44, - 32, - 57, - 57, - 41 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ] + [], + [] ], "functions": [ [ diff --git a/tests/integration/programs/tuples-simple.smir.json.expected b/tests/integration/programs/tuples-simple.smir.json.expected index 0fb0667..b79cec0 100644 --- a/tests/integration/programs/tuples-simple.smir.json.expected +++ b/tests/integration/programs/tuples-simple.smir.json.expected @@ -1,52 +1,6 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 116, - 117, - 112, - 46, - 48, - 32, - 33, - 61, - 32, - 116, - 117, - 112, - 46, - 49 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } - } - } - ] - ] + [] ], "functions": [ [ From bda18f2572e246d572db3dfd8debdbfdc180dec8 Mon Sep 17 00:00:00 2001 From: dkcumming Date: Thu, 22 May 2025 16:57:09 -0400 Subject: [PATCH 10/15] jq tried removing ids again --- tests/integration/normalise-filter.jq | 2 +- .../programs/binop.smir.json.expected | 1181 ++++++++++++++++- .../programs/char-trivial.smir.json.expected | 42 +- .../programs/closure-args.smir.json.expected | 51 +- .../closure-no-args.smir.json.expected | 45 +- .../const-arithm-simple.smir.json.expected | 35 +- .../programs/div.smir.json.expected | 48 +- .../double-ref-deref.smir.json.expected | 43 +- .../programs/fibonacci.smir.json.expected | 42 +- .../programs/float.smir.json.expected | 92 +- .../programs/modulo.smir.json.expected | 46 +- .../mutual_recursion.smir.json.expected | 45 +- .../primitive-type-bounds.smir.json.expected | 40 +- .../recursion-simple-match.smir.json.expected | 43 +- .../recursion-simple.smir.json.expected | 43 +- .../programs/ref-deref.smir.json.expected | 41 +- .../programs/shl_min.smir.json.expected | 321 ++++- .../programs/slice.smir.json.expected | 69 +- .../strange-ref-deref.smir.json.expected | 42 +- .../programs/struct.smir.json.expected | 48 +- .../programs/sum-to-n.smir.json.expected | 40 +- .../programs/tuple-eq.smir.json.expected | 73 +- .../programs/tuples-simple.smir.json.expected | 48 +- 23 files changed, 2425 insertions(+), 55 deletions(-) diff --git a/tests/integration/normalise-filter.jq b/tests/integration/normalise-filter.jq index 9c3b777..3f49e4f 100644 --- a/tests/integration/normalise-filter.jq +++ b/tests/integration/normalise-filter.jq @@ -2,7 +2,7 @@ .functions = ( [ .functions[] | if .[1].NormalSym then .[1].NormalSym = .[1].NormalSym[:-17] else . end ] ) | .items = ( [ .items[] | if .symbol_name then .symbol_name = .symbol_name[:-17] else . end ] ) # delete unstable alloc, function, and type IDs - | .allocs = ( [ .allocs[] ] | map(del(.[0])) | map(del(.[0])) ) + | .allocs = ( [ .allocs[] ] | map(del(.[0])) | map(del(.[0].[0])) ) | .functions = ( [ .functions[] ] | map(del(.[0])) ) | .types = ( [ .types[] ] | map(del(.[0])) ) | diff --git a/tests/integration/programs/binop.smir.json.expected b/tests/integration/programs/binop.smir.json.expected index c441cee..b56abfc 100644 --- a/tests/integration/programs/binop.smir.json.expected +++ b/tests/integration/programs/binop.smir.json.expected @@ -1,31 +1,1160 @@ { "allocs": [ - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [] + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 61, + 61, + 32, + 53, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 53, + 50, + 32, + 61, + 61, + 32, + 120, + 32, + 43, + 32, + 121 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 61, + 61, + 32, + 121, + 32, + 43, + 32, + 120 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 45, + 32, + 121, + 32, + 61, + 61, + 32, + 51, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 121, + 32, + 45, + 32, + 120, + 32, + 61, + 61, + 32, + 45, + 51, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 121, + 32, + 45, + 32, + 120, + 32, + 33, + 61, + 32, + 120, + 32, + 45, + 32, + 121 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 42, + 32, + 121, + 32, + 61, + 61, + 32, + 52, + 50, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 42, + 32, + 45, + 121, + 32, + 61, + 61, + 32, + 45, + 52, + 50, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 120, + 32, + 42, + 32, + 121, + 32, + 61, + 61, + 32, + 45, + 52, + 50, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 120, + 32, + 42, + 32, + 45, + 121, + 32, + 61, + 61, + 32, + 52, + 50, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 94, + 32, + 50, + 32, + 61, + 61, + 32, + 51 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 94, + 32, + 51, + 32, + 61, + 61, + 32, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 124, + 32, + 50, + 32, + 61, + 61, + 32, + 51 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 124, + 32, + 51, + 32, + 61, + 61, + 32, + 51 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 38, + 32, + 50, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 38, + 32, + 51, + 32, + 61, + 61, + 32, + 49 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 50, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 52 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 50, + 32, + 62, + 62, + 32, + 49, + 32, + 61, + 61, + 32, + 49 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 51, + 32, + 62, + 62, + 32, + 49, + 32, + 61, + 61, + 32, + 49 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 62, + 62, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 60, + 32, + 120, + 32, + 43, + 32, + 121 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 60, + 61, + 32, + 120, + 32, + 43, + 32, + 121 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 60, + 61, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 45, + 32, + 121 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 62, + 32, + 120 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 62, + 61, + 32, + 120 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 45, + 32, + 121, + 32, + 62, + 61, + 32, + 120 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ] ], "functions": [ [ diff --git a/tests/integration/programs/char-trivial.smir.json.expected b/tests/integration/programs/char-trivial.smir.json.expected index 6abd29c..43f799b 100644 --- a/tests/integration/programs/char-trivial.smir.json.expected +++ b/tests/integration/programs/char-trivial.smir.json.expected @@ -1,6 +1,46 @@ { "allocs": [ - [] + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 32, + 61, + 61, + 32, + 39, + 97, + 39 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ] ], "functions": [ [ diff --git a/tests/integration/programs/closure-args.smir.json.expected b/tests/integration/programs/closure-args.smir.json.expected index 1ff9476..7ba057a 100644 --- a/tests/integration/programs/closure-args.smir.json.expected +++ b/tests/integration/programs/closure-args.smir.json.expected @@ -1,6 +1,55 @@ { "allocs": [ - [] + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 115, + 117, + 109, + 40, + 50, + 48, + 44, + 32, + 50, + 50, + 41, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ] ], "functions": [ [ diff --git a/tests/integration/programs/closure-no-args.smir.json.expected b/tests/integration/programs/closure-no-args.smir.json.expected index 8ac173a..441b1de 100644 --- a/tests/integration/programs/closure-no-args.smir.json.expected +++ b/tests/integration/programs/closure-no-args.smir.json.expected @@ -1,6 +1,49 @@ { "allocs": [ - [] + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 115, + 117, + 109, + 40, + 41, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ] ], "functions": [ [ diff --git a/tests/integration/programs/const-arithm-simple.smir.json.expected b/tests/integration/programs/const-arithm-simple.smir.json.expected index 393073d..dcfe0a5 100644 --- a/tests/integration/programs/const-arithm-simple.smir.json.expected +++ b/tests/integration/programs/const-arithm-simple.smir.json.expected @@ -1,6 +1,39 @@ { "allocs": [ - [] + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 122 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ] ], "functions": [ [ diff --git a/tests/integration/programs/div.smir.json.expected b/tests/integration/programs/div.smir.json.expected index aff0cab..21c08f6 100644 --- a/tests/integration/programs/div.smir.json.expected +++ b/tests/integration/programs/div.smir.json.expected @@ -1,6 +1,52 @@ { "allocs": [ - [] + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 52, + 50, + 48, + 32, + 47, + 32, + 49, + 48, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ] ], "functions": [ [ diff --git a/tests/integration/programs/double-ref-deref.smir.json.expected b/tests/integration/programs/double-ref-deref.smir.json.expected index 113dc18..ea76940 100644 --- a/tests/integration/programs/double-ref-deref.smir.json.expected +++ b/tests/integration/programs/double-ref-deref.smir.json.expected @@ -1,6 +1,47 @@ { "allocs": [ - [] + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 42, + 42, + 99, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ] ], "functions": [ [ diff --git a/tests/integration/programs/fibonacci.smir.json.expected b/tests/integration/programs/fibonacci.smir.json.expected index 3a8426f..46f620d 100644 --- a/tests/integration/programs/fibonacci.smir.json.expected +++ b/tests/integration/programs/fibonacci.smir.json.expected @@ -1,6 +1,46 @@ { "allocs": [ - [] + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 110, + 115, + 32, + 61, + 61, + 32, + 53 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ] ], "functions": [ [ diff --git a/tests/integration/programs/float.smir.json.expected b/tests/integration/programs/float.smir.json.expected index 1ca1588..96a6d15 100644 --- a/tests/integration/programs/float.smir.json.expected +++ b/tests/integration/programs/float.smir.json.expected @@ -1,7 +1,95 @@ { "allocs": [ - [], - [] + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 32, + 43, + 32, + 98, + 32, + 61, + 61, + 32, + 52, + 46, + 55 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 99, + 32, + 43, + 32, + 100, + 32, + 61, + 61, + 32, + 52, + 46, + 55 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ] ], "functions": [ [ diff --git a/tests/integration/programs/modulo.smir.json.expected b/tests/integration/programs/modulo.smir.json.expected index 4cebff8..4ffd985 100644 --- a/tests/integration/programs/modulo.smir.json.expected +++ b/tests/integration/programs/modulo.smir.json.expected @@ -1,6 +1,50 @@ { "allocs": [ - [] + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 52, + 50, + 32, + 37, + 32, + 49, + 48, + 32, + 61, + 61, + 32, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ] ], "functions": [ [ diff --git a/tests/integration/programs/mutual_recursion.smir.json.expected b/tests/integration/programs/mutual_recursion.smir.json.expected index 88c2d36..0ed536f 100644 --- a/tests/integration/programs/mutual_recursion.smir.json.expected +++ b/tests/integration/programs/mutual_recursion.smir.json.expected @@ -1,6 +1,49 @@ { "allocs": [ - [] + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 110, + 115, + 32, + 61, + 61, + 32, + 116, + 114, + 117, + 101 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ] ], "functions": [ [ diff --git a/tests/integration/programs/primitive-type-bounds.smir.json.expected b/tests/integration/programs/primitive-type-bounds.smir.json.expected index 77fbb0f..e2643b8 100644 --- a/tests/integration/programs/primitive-type-bounds.smir.json.expected +++ b/tests/integration/programs/primitive-type-bounds.smir.json.expected @@ -1,6 +1,44 @@ { "allocs": [ - [] + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 32, + 61, + 61, + 32, + 98 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ] ], "functions": [ [ diff --git a/tests/integration/programs/recursion-simple-match.smir.json.expected b/tests/integration/programs/recursion-simple-match.smir.json.expected index 1d1ead0..4850293 100644 --- a/tests/integration/programs/recursion-simple-match.smir.json.expected +++ b/tests/integration/programs/recursion-simple-match.smir.json.expected @@ -1,6 +1,47 @@ { "allocs": [ - [] + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 110, + 115, + 32, + 61, + 61, + 32, + 53, + 53 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ] ], "functions": [ [ diff --git a/tests/integration/programs/recursion-simple.smir.json.expected b/tests/integration/programs/recursion-simple.smir.json.expected index 0f6f532..b296c71 100644 --- a/tests/integration/programs/recursion-simple.smir.json.expected +++ b/tests/integration/programs/recursion-simple.smir.json.expected @@ -1,6 +1,47 @@ { "allocs": [ - [] + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 110, + 115, + 32, + 61, + 61, + 32, + 53, + 53 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ] ], "functions": [ [ diff --git a/tests/integration/programs/ref-deref.smir.json.expected b/tests/integration/programs/ref-deref.smir.json.expected index 90c0ac9..c3fac1e 100644 --- a/tests/integration/programs/ref-deref.smir.json.expected +++ b/tests/integration/programs/ref-deref.smir.json.expected @@ -1,6 +1,45 @@ { "allocs": [ - [] + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 99, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ] ], "functions": [ [ diff --git a/tests/integration/programs/shl_min.smir.json.expected b/tests/integration/programs/shl_min.smir.json.expected index 96d8811..f7eb4e0 100644 --- a/tests/integration/programs/shl_min.smir.json.expected +++ b/tests/integration/programs/shl_min.smir.json.expected @@ -1,10 +1,321 @@ { "allocs": [ - [], - [], - [], - [], - [] + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 49, + 50, + 56, + 95, + 105, + 56, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 51, + 50, + 55, + 54, + 56, + 95, + 105, + 49, + 54, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 50, + 49, + 52, + 55, + 52, + 56, + 51, + 54, + 52, + 56, + 95, + 105, + 51, + 50, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 57, + 50, + 50, + 51, + 51, + 55, + 50, + 48, + 51, + 54, + 56, + 53, + 52, + 55, + 55, + 53, + 56, + 48, + 56, + 95, + 105, + 54, + 52, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 49, + 55, + 48, + 49, + 52, + 49, + 49, + 56, + 51, + 52, + 54, + 48, + 52, + 54, + 57, + 50, + 51, + 49, + 55, + 51, + 49, + 54, + 56, + 55, + 51, + 48, + 51, + 55, + 49, + 53, + 56, + 56, + 52, + 49, + 48, + 53, + 55, + 50, + 56, + 95, + 105, + 49, + 50, + 56, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ] ], "functions": [ [ diff --git a/tests/integration/programs/slice.smir.json.expected b/tests/integration/programs/slice.smir.json.expected index 91b97e6..cb8d5ee 100644 --- a/tests/integration/programs/slice.smir.json.expected +++ b/tests/integration/programs/slice.smir.json.expected @@ -1,7 +1,72 @@ { "allocs": [ - [], - [] + [ + [ + { + "Memory": { + "align": 4, + "bytes": [ + 2, + 0, + 0, + 0, + 3, + 0, + 0, + 0 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 98, + 32, + 61, + 61, + 32, + 91, + 50, + 44, + 32, + 51, + 93 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ] ], "functions": [ [ diff --git a/tests/integration/programs/strange-ref-deref.smir.json.expected b/tests/integration/programs/strange-ref-deref.smir.json.expected index c51a515..1d658fa 100644 --- a/tests/integration/programs/strange-ref-deref.smir.json.expected +++ b/tests/integration/programs/strange-ref-deref.smir.json.expected @@ -1,6 +1,46 @@ { "allocs": [ - [] + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 42, + 98, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ] ], "functions": [ [ diff --git a/tests/integration/programs/struct.smir.json.expected b/tests/integration/programs/struct.smir.json.expected index 493bcbf..bdbdfa6 100644 --- a/tests/integration/programs/struct.smir.json.expected +++ b/tests/integration/programs/struct.smir.json.expected @@ -1,6 +1,52 @@ { "allocs": [ - [] + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 115, + 46, + 97, + 32, + 43, + 32, + 49, + 32, + 61, + 61, + 32, + 115, + 46, + 98 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ] ], "functions": [ [ diff --git a/tests/integration/programs/sum-to-n.smir.json.expected b/tests/integration/programs/sum-to-n.smir.json.expected index c3d922a..1c5ad99 100644 --- a/tests/integration/programs/sum-to-n.smir.json.expected +++ b/tests/integration/programs/sum-to-n.smir.json.expected @@ -1,6 +1,44 @@ { "allocs": [ - [] + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 115, + 117, + 99, + 101, + 115, + 115 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ] ], "functions": [ [ diff --git a/tests/integration/programs/tuple-eq.smir.json.expected b/tests/integration/programs/tuple-eq.smir.json.expected index ad27238..92a44be 100644 --- a/tests/integration/programs/tuple-eq.smir.json.expected +++ b/tests/integration/programs/tuple-eq.smir.json.expected @@ -1,7 +1,76 @@ { "allocs": [ - [], - [] + [ + [ + { + "Memory": { + "align": 4, + "bytes": [ + 42, + 0, + 0, + 0, + 99, + 0, + 0, + 0 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ], + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 116, + 117, + 112, + 32, + 61, + 61, + 32, + 40, + 52, + 50, + 44, + 32, + 57, + 57, + 41 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ] ], "functions": [ [ diff --git a/tests/integration/programs/tuples-simple.smir.json.expected b/tests/integration/programs/tuples-simple.smir.json.expected index b79cec0..0fb0667 100644 --- a/tests/integration/programs/tuples-simple.smir.json.expected +++ b/tests/integration/programs/tuples-simple.smir.json.expected @@ -1,6 +1,52 @@ { "allocs": [ - [] + [ + [ + { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 116, + 117, + 112, + 46, + 48, + 32, + 33, + 61, + 32, + 116, + 117, + 112, + 46, + 49 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] + } + } + } + ] + ] ], "functions": [ [ From 6e4da4bb174d46385b842bb2182acbb7089c3b11 Mon Sep 17 00:00:00 2001 From: dkcumming Date: Thu, 22 May 2025 17:09:26 -0400 Subject: [PATCH 11/15] jq - is this allowed? --- tests/integration/normalise-filter.jq | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/integration/normalise-filter.jq b/tests/integration/normalise-filter.jq index 3f49e4f..7922606 100644 --- a/tests/integration/normalise-filter.jq +++ b/tests/integration/normalise-filter.jq @@ -2,7 +2,7 @@ .functions = ( [ .functions[] | if .[1].NormalSym then .[1].NormalSym = .[1].NormalSym[:-17] else . end ] ) | .items = ( [ .items[] | if .symbol_name then .symbol_name = .symbol_name[:-17] else . end ] ) # delete unstable alloc, function, and type IDs - | .allocs = ( [ .allocs[] ] | map(del(.[0])) | map(del(.[0].[0])) ) + | .allocs = ( .allocs | map([.[1][1:]]) ) | .functions = ( [ .functions[] ] | map(del(.[0])) ) | .types = ( [ .types[] ] | map(del(.[0])) ) | From 721e823d14098b1b528aae47c2a4e0603117231f Mon Sep 17 00:00:00 2001 From: dkcumming Date: Thu, 22 May 2025 17:35:49 -0400 Subject: [PATCH 12/15] Added AllocJson struct for named fields in serialisation --- src/printer.rs | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/printer.rs b/src/printer.rs index e7bad5b..b84c84e 100644 --- a/src/printer.rs +++ b/src/printer.rs @@ -1090,7 +1090,7 @@ type SourceData = (String, usize, usize, usize, usize); pub struct SmirJson<'t> { pub name: String, pub crate_id: u64, - pub allocs: Vec<(AllocId, (stable_mir::ty::Ty, AllocInfo))>, + pub allocs: Vec, pub functions: Vec<(LinkMapKey<'t>, FnSymType)>, pub uneval_consts: Vec<(ConstDef, String)>, pub items: Vec, @@ -1107,6 +1107,13 @@ pub struct SmirJsonDebugInfo<'t> { foreign_modules: Vec<(String, Vec)>, } +#[derive(Serialize)] +pub struct AllocJson { + alloc_id: AllocId, + ty: stable_mir::ty::Ty, + alloc_info: AllocInfo, +} + // Serialization Entrypoint // ======================== @@ -1153,7 +1160,14 @@ pub fn collect_smir(tcx: TyCtxt<'_>) -> SmirJson { .into_iter() .map(|(k, (_, name))| (k, name)) .collect::>(); - let mut allocs = visited_allocs.into_iter().collect::>(); + let mut allocs = visited_allocs + .into_iter() + .map(|(alloc_id, (ty, alloc_info))| AllocJson { + alloc_id, + ty, + alloc_info, + }) + .collect::>(); let crate_id = tcx.stable_crate_id(LOCAL_CRATE).as_u64(); let mut types = visited_tys @@ -1166,7 +1180,7 @@ pub fn collect_smir(tcx: TyCtxt<'_>) -> SmirJson { let mut spans = span_map.into_iter().collect::>(); // sort output vectors to stabilise output (a bit) - allocs.sort_by(|a, b| a.0.to_index().cmp(&b.0.to_index())); + allocs.sort_by(|a, b| a.alloc_id.to_index().cmp(&b.alloc_id.to_index())); functions.sort_by(|a, b| a.0 .0.to_index().cmp(&b.0 .0.to_index())); items.sort(); types.sort_by(|a, b| a.0.to_index().cmp(&b.0.to_index())); From 0140b1de26ff4df8021d8d99255b2c6e6e079f16 Mon Sep 17 00:00:00 2001 From: dkcumming Date: Thu, 22 May 2025 17:36:47 -0400 Subject: [PATCH 13/15] Updated jq filter and make golden --- tests/integration/normalise-filter.jq | 2 +- .../programs/binop.smir.json.expected | 2154 ++++++++--------- .../programs/char-trivial.smir.json.expected | 76 +- .../programs/closure-args.smir.json.expected | 94 +- .../closure-no-args.smir.json.expected | 82 +- .../const-arithm-simple.smir.json.expected | 62 +- .../programs/div.smir.json.expected | 88 +- .../double-ref-deref.smir.json.expected | 78 +- .../programs/fibonacci.smir.json.expected | 76 +- .../programs/float.smir.json.expected | 168 +- .../programs/modulo.smir.json.expected | 84 +- .../mutual_recursion.smir.json.expected | 82 +- .../primitive-type-bounds.smir.json.expected | 72 +- .../recursion-simple-match.smir.json.expected | 78 +- .../recursion-simple.smir.json.expected | 78 +- .../programs/ref-deref.smir.json.expected | 74 +- .../programs/shl_min.smir.json.expected | 602 +++-- .../programs/slice.smir.json.expected | 122 +- .../strange-ref-deref.smir.json.expected | 76 +- .../programs/struct.smir.json.expected | 88 +- .../programs/sum-to-n.smir.json.expected | 72 +- .../programs/tuple-eq.smir.json.expected | 130 +- .../programs/tuples-simple.smir.json.expected | 88 +- 23 files changed, 2209 insertions(+), 2317 deletions(-) diff --git a/tests/integration/normalise-filter.jq b/tests/integration/normalise-filter.jq index 7922606..41446a3 100644 --- a/tests/integration/normalise-filter.jq +++ b/tests/integration/normalise-filter.jq @@ -2,7 +2,7 @@ .functions = ( [ .functions[] | if .[1].NormalSym then .[1].NormalSym = .[1].NormalSym[:-17] else . end ] ) | .items = ( [ .items[] | if .symbol_name then .symbol_name = .symbol_name[:-17] else . end ] ) # delete unstable alloc, function, and type IDs - | .allocs = ( .allocs | map([.[1][1:]]) ) + | .allocs = ( .allocs | map(del(.alloc_id)) | map(del(.ty)) ) | .functions = ( [ .functions[] ] | map(del(.[0])) ) | .types = ( [ .types[] ] | map(del(.[0])) ) | diff --git a/tests/integration/programs/binop.smir.json.expected b/tests/integration/programs/binop.smir.json.expected index b56abfc..a750d49 100644 --- a/tests/integration/programs/binop.smir.json.expected +++ b/tests/integration/programs/binop.smir.json.expected @@ -1,1160 +1,1108 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 43, - 32, - 121, - 32, - 61, - 61, - 32, - 53, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 61, + 61, + 32, + 53, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 53, - 50, - 32, - 61, - 61, - 32, - 120, - 32, - 43, - 32, - 121 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 53, + 50, + 32, + 61, + 61, + 32, + 120, + 32, + 43, + 32, + 121 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 43, - 32, - 121, - 32, - 61, - 61, - 32, - 121, - 32, - 43, - 32, - 120 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 61, + 61, + 32, + 121, + 32, + 43, + 32, + 120 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 45, - 32, - 121, - 32, - 61, - 61, - 32, - 51, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 45, + 32, + 121, + 32, + 61, + 61, + 32, + 51, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 121, - 32, - 45, - 32, - 120, - 32, - 61, - 61, - 32, - 45, - 51, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 121, + 32, + 45, + 32, + 120, + 32, + 61, + 61, + 32, + 45, + 51, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 121, - 32, - 45, - 32, - 120, - 32, - 33, - 61, - 32, - 120, - 32, - 45, - 32, - 121 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 121, + 32, + 45, + 32, + 120, + 32, + 33, + 61, + 32, + 120, + 32, + 45, + 32, + 121 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 42, - 32, - 121, - 32, - 61, - 61, - 32, - 52, - 50, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 42, + 32, + 121, + 32, + 61, + 61, + 32, + 52, + 50, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 42, - 32, - 45, - 121, - 32, - 61, - 61, - 32, - 45, - 52, - 50, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 42, + 32, + 45, + 121, + 32, + 61, + 61, + 32, + 45, + 52, + 50, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 45, - 120, - 32, - 42, - 32, - 121, - 32, - 61, - 61, - 32, - 45, - 52, - 50, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 120, + 32, + 42, + 32, + 121, + 32, + 61, + 61, + 32, + 45, + 52, + 50, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 45, - 120, - 32, - 42, - 32, - 45, - 121, - 32, - 61, - 61, - 32, - 52, - 50, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 120, + 32, + 42, + 32, + 45, + 121, + 32, + 61, + 61, + 32, + 52, + 50, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 49, - 32, - 94, - 32, - 50, - 32, - 61, - 61, - 32, - 51 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 94, + 32, + 50, + 32, + 61, + 61, + 32, + 51 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 49, - 32, - 94, - 32, - 51, - 32, - 61, - 61, - 32, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 94, + 32, + 51, + 32, + 61, + 61, + 32, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 49, - 32, - 124, - 32, - 50, - 32, - 61, - 61, - 32, - 51 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 124, + 32, + 50, + 32, + 61, + 61, + 32, + 51 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 49, - 32, - 124, - 32, - 51, - 32, - 61, - 61, - 32, - 51 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 124, + 32, + 51, + 32, + 61, + 61, + 32, + 51 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 49, - 32, - 38, - 32, - 50, - 32, - 61, - 61, - 32, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 38, + 32, + 50, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 49, - 32, - 38, - 32, - 51, - 32, - 61, - 61, - 32, - 49 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 38, + 32, + 51, + 32, + 61, + 61, + 32, + 49 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 50, - 32, - 60, - 60, - 32, - 49, - 32, - 61, - 61, - 32, - 52 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 50, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 52 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 50, - 32, - 62, - 62, - 32, - 49, - 32, - 61, - 61, - 32, - 49 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 50, + 32, + 62, + 62, + 32, + 49, + 32, + 61, + 61, + 32, + 49 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 51, - 32, - 62, - 62, - 32, - 49, - 32, - 61, - 61, - 32, - 49 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 51, + 32, + 62, + 62, + 32, + 49, + 32, + 61, + 61, + 32, + 49 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 49, - 32, - 62, - 62, - 32, - 49, - 32, - 61, - 61, - 32, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 49, + 32, + 62, + 62, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 60, - 32, - 120, - 32, - 43, - 32, - 121 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 60, + 32, + 120, + 32, + 43, + 32, + 121 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 60, - 61, - 32, - 120, - 32, - 43, - 32, - 121 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 60, + 61, + 32, + 120, + 32, + 43, + 32, + 121 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 60, - 61, - 32, - 120, - 32, - 43, - 32, - 121, - 32, - 45, - 32, - 121 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 60, + 61, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 45, + 32, + 121 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 43, - 32, - 121, - 32, - 62, - 32, - 120 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 62, + 32, + 120 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 43, - 32, - 121, - 32, - 62, - 61, - 32, - 120 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 62, + 61, + 32, + 120 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 120, - 32, - 43, - 32, - 121, - 32, - 45, - 32, - 121, - 32, - 62, - 61, - 32, - 120 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 120, + 32, + 43, + 32, + 121, + 32, + 45, + 32, + 121, + 32, + 62, + 61, + 32, + 120 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ] + } + } ], "functions": [ [ diff --git a/tests/integration/programs/char-trivial.smir.json.expected b/tests/integration/programs/char-trivial.smir.json.expected index 43f799b..e67a0c1 100644 --- a/tests/integration/programs/char-trivial.smir.json.expected +++ b/tests/integration/programs/char-trivial.smir.json.expected @@ -1,46 +1,44 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 97, - 32, - 61, - 61, - 32, - 39, - 97, - 39 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 32, + 61, + 61, + 32, + 39, + 97, + 39 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ] + } + } ], "functions": [ [ diff --git a/tests/integration/programs/closure-args.smir.json.expected b/tests/integration/programs/closure-args.smir.json.expected index 7ba057a..3a87976 100644 --- a/tests/integration/programs/closure-args.smir.json.expected +++ b/tests/integration/programs/closure-args.smir.json.expected @@ -1,55 +1,53 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 115, - 117, - 109, - 40, - 50, - 48, - 44, - 32, - 50, - 50, - 41, - 32, - 61, - 61, - 32, - 52, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 115, + 117, + 109, + 40, + 50, + 48, + 44, + 32, + 50, + 50, + 41, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ] + } + } ], "functions": [ [ diff --git a/tests/integration/programs/closure-no-args.smir.json.expected b/tests/integration/programs/closure-no-args.smir.json.expected index 441b1de..50d126e 100644 --- a/tests/integration/programs/closure-no-args.smir.json.expected +++ b/tests/integration/programs/closure-no-args.smir.json.expected @@ -1,49 +1,47 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 115, - 117, - 109, - 40, - 41, - 32, - 61, - 61, - 32, - 52, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 115, + 117, + 109, + 40, + 41, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ] + } + } ], "functions": [ [ diff --git a/tests/integration/programs/const-arithm-simple.smir.json.expected b/tests/integration/programs/const-arithm-simple.smir.json.expected index dcfe0a5..1cf4652 100644 --- a/tests/integration/programs/const-arithm-simple.smir.json.expected +++ b/tests/integration/programs/const-arithm-simple.smir.json.expected @@ -1,39 +1,37 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 122 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 122 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ] + } + } ], "functions": [ [ diff --git a/tests/integration/programs/div.smir.json.expected b/tests/integration/programs/div.smir.json.expected index 21c08f6..67597fc 100644 --- a/tests/integration/programs/div.smir.json.expected +++ b/tests/integration/programs/div.smir.json.expected @@ -1,52 +1,50 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 52, - 50, - 48, - 32, - 47, - 32, - 49, - 48, - 32, - 61, - 61, - 32, - 52, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 52, + 50, + 48, + 32, + 47, + 32, + 49, + 48, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ] + } + } ], "functions": [ [ diff --git a/tests/integration/programs/double-ref-deref.smir.json.expected b/tests/integration/programs/double-ref-deref.smir.json.expected index ea76940..59e1a10 100644 --- a/tests/integration/programs/double-ref-deref.smir.json.expected +++ b/tests/integration/programs/double-ref-deref.smir.json.expected @@ -1,47 +1,45 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 42, - 42, - 99, - 32, - 61, - 61, - 32, - 52, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 42, + 42, + 99, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ] + } + } ], "functions": [ [ diff --git a/tests/integration/programs/fibonacci.smir.json.expected b/tests/integration/programs/fibonacci.smir.json.expected index 46f620d..db7fa9d 100644 --- a/tests/integration/programs/fibonacci.smir.json.expected +++ b/tests/integration/programs/fibonacci.smir.json.expected @@ -1,46 +1,44 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 97, - 110, - 115, - 32, - 61, - 61, - 32, - 53 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 110, + 115, + 32, + 61, + 61, + 32, + 53 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ] + } + } ], "functions": [ [ diff --git a/tests/integration/programs/float.smir.json.expected b/tests/integration/programs/float.smir.json.expected index 96a6d15..faacd19 100644 --- a/tests/integration/programs/float.smir.json.expected +++ b/tests/integration/programs/float.smir.json.expected @@ -1,95 +1,91 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 97, - 32, - 43, - 32, - 98, - 32, - 61, - 61, - 32, - 52, - 46, - 55 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 32, + 43, + 32, + 98, + 32, + 61, + 61, + 32, + 52, + 46, + 55 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 99, - 32, - 43, - 32, - 100, - 32, - 61, - 61, - 32, - 52, - 46, - 55 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 99, + 32, + 43, + 32, + 100, + 32, + 61, + 61, + 32, + 52, + 46, + 55 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ] + } + } ], "functions": [ [ diff --git a/tests/integration/programs/modulo.smir.json.expected b/tests/integration/programs/modulo.smir.json.expected index 4ffd985..8d97480 100644 --- a/tests/integration/programs/modulo.smir.json.expected +++ b/tests/integration/programs/modulo.smir.json.expected @@ -1,50 +1,48 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 52, - 50, - 32, - 37, - 32, - 49, - 48, - 32, - 61, - 61, - 32, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 52, + 50, + 32, + 37, + 32, + 49, + 48, + 32, + 61, + 61, + 32, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ] + } + } ], "functions": [ [ diff --git a/tests/integration/programs/mutual_recursion.smir.json.expected b/tests/integration/programs/mutual_recursion.smir.json.expected index 0ed536f..f8c4bbf 100644 --- a/tests/integration/programs/mutual_recursion.smir.json.expected +++ b/tests/integration/programs/mutual_recursion.smir.json.expected @@ -1,49 +1,47 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 97, - 110, - 115, - 32, - 61, - 61, - 32, - 116, - 114, - 117, - 101 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 110, + 115, + 32, + 61, + 61, + 32, + 116, + 114, + 117, + 101 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ] + } + } ], "functions": [ [ diff --git a/tests/integration/programs/primitive-type-bounds.smir.json.expected b/tests/integration/programs/primitive-type-bounds.smir.json.expected index e2643b8..520934a 100644 --- a/tests/integration/programs/primitive-type-bounds.smir.json.expected +++ b/tests/integration/programs/primitive-type-bounds.smir.json.expected @@ -1,44 +1,42 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 97, - 32, - 61, - 61, - 32, - 98 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 32, + 61, + 61, + 32, + 98 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ] + } + } ], "functions": [ [ diff --git a/tests/integration/programs/recursion-simple-match.smir.json.expected b/tests/integration/programs/recursion-simple-match.smir.json.expected index 4850293..425e894 100644 --- a/tests/integration/programs/recursion-simple-match.smir.json.expected +++ b/tests/integration/programs/recursion-simple-match.smir.json.expected @@ -1,47 +1,45 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 97, - 110, - 115, - 32, - 61, - 61, - 32, - 53, - 53 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 110, + 115, + 32, + 61, + 61, + 32, + 53, + 53 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ] + } + } ], "functions": [ [ diff --git a/tests/integration/programs/recursion-simple.smir.json.expected b/tests/integration/programs/recursion-simple.smir.json.expected index b296c71..b65e95a 100644 --- a/tests/integration/programs/recursion-simple.smir.json.expected +++ b/tests/integration/programs/recursion-simple.smir.json.expected @@ -1,47 +1,45 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 97, - 110, - 115, - 32, - 61, - 61, - 32, - 53, - 53 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 97, + 110, + 115, + 32, + 61, + 61, + 32, + 53, + 53 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ] + } + } ], "functions": [ [ diff --git a/tests/integration/programs/ref-deref.smir.json.expected b/tests/integration/programs/ref-deref.smir.json.expected index c3fac1e..a7439ae 100644 --- a/tests/integration/programs/ref-deref.smir.json.expected +++ b/tests/integration/programs/ref-deref.smir.json.expected @@ -1,45 +1,43 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 99, - 32, - 61, - 61, - 32, - 52, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 99, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ] + } + } ], "functions": [ [ diff --git a/tests/integration/programs/shl_min.smir.json.expected b/tests/integration/programs/shl_min.smir.json.expected index f7eb4e0..16eef87 100644 --- a/tests/integration/programs/shl_min.smir.json.expected +++ b/tests/integration/programs/shl_min.smir.json.expected @@ -1,321 +1,311 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 45, - 49, - 50, - 56, - 95, - 105, - 56, - 32, - 60, - 60, - 32, - 49, - 32, - 61, - 61, - 32, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 49, + 50, + 56, + 95, + 105, + 56, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 45, - 51, - 50, - 55, - 54, - 56, - 95, - 105, - 49, - 54, - 32, - 60, - 60, - 32, - 49, - 32, - 61, - 61, - 32, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 51, + 50, + 55, + 54, + 56, + 95, + 105, + 49, + 54, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 45, - 50, - 49, - 52, - 55, - 52, - 56, - 51, - 54, - 52, - 56, - 95, - 105, - 51, - 50, - 32, - 60, - 60, - 32, - 49, - 32, - 61, - 61, - 32, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 50, + 49, + 52, + 55, + 52, + 56, + 51, + 54, + 52, + 56, + 95, + 105, + 51, + 50, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 45, - 57, - 50, - 50, - 51, - 51, - 55, - 50, - 48, - 51, - 54, - 56, - 53, - 52, - 55, - 55, - 53, - 56, - 48, - 56, - 95, - 105, - 54, - 52, - 32, - 60, - 60, - 32, - 49, - 32, - 61, - 61, - 32, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 57, + 50, + 50, + 51, + 51, + 55, + 50, + 48, + 51, + 54, + 56, + 53, + 52, + 55, + 55, + 53, + 56, + 48, + 56, + 95, + 105, + 54, + 52, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 45, - 49, - 55, - 48, - 49, - 52, - 49, - 49, - 56, - 51, - 52, - 54, - 48, - 52, - 54, - 57, - 50, - 51, - 49, - 55, - 51, - 49, - 54, - 56, - 55, - 51, - 48, - 51, - 55, - 49, - 53, - 56, - 56, - 52, - 49, - 48, - 53, - 55, - 50, - 56, - 95, - 105, - 49, - 50, - 56, - 32, - 60, - 60, - 32, - 49, - 32, - 61, - 61, - 32, - 48 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 45, + 49, + 55, + 48, + 49, + 52, + 49, + 49, + 56, + 51, + 52, + 54, + 48, + 52, + 54, + 57, + 50, + 51, + 49, + 55, + 51, + 49, + 54, + 56, + 55, + 51, + 48, + 51, + 55, + 49, + 53, + 56, + 56, + 52, + 49, + 48, + 53, + 55, + 50, + 56, + 95, + 105, + 49, + 50, + 56, + 32, + 60, + 60, + 32, + 49, + 32, + 61, + 61, + 32, + 48 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ] + } + } ], "functions": [ [ diff --git a/tests/integration/programs/slice.smir.json.expected b/tests/integration/programs/slice.smir.json.expected index cb8d5ee..ee13217 100644 --- a/tests/integration/programs/slice.smir.json.expected +++ b/tests/integration/programs/slice.smir.json.expected @@ -1,72 +1,68 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 4, - "bytes": [ - 2, - 0, - 0, - 0, - 3, - 0, - 0, - 0 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + { + "alloc_info": { + "Memory": { + "align": 4, + "bytes": [ + 2, + 0, + 0, + 0, + 3, + 0, + 0, + 0 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 98, - 32, - 61, - 61, - 32, - 91, - 50, - 44, - 32, - 51, - 93 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 98, + 32, + 61, + 61, + 32, + 91, + 50, + 44, + 32, + 51, + 93 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ] + } + } ], "functions": [ [ diff --git a/tests/integration/programs/strange-ref-deref.smir.json.expected b/tests/integration/programs/strange-ref-deref.smir.json.expected index 1d658fa..0cace3c 100644 --- a/tests/integration/programs/strange-ref-deref.smir.json.expected +++ b/tests/integration/programs/strange-ref-deref.smir.json.expected @@ -1,46 +1,44 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 42, - 98, - 32, - 61, - 61, - 32, - 52, - 50 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 42, + 98, + 32, + 61, + 61, + 32, + 52, + 50 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ] + } + } ], "functions": [ [ diff --git a/tests/integration/programs/struct.smir.json.expected b/tests/integration/programs/struct.smir.json.expected index bdbdfa6..75235e5 100644 --- a/tests/integration/programs/struct.smir.json.expected +++ b/tests/integration/programs/struct.smir.json.expected @@ -1,52 +1,50 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 115, - 46, - 97, - 32, - 43, - 32, - 49, - 32, - 61, - 61, - 32, - 115, - 46, - 98 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 115, + 46, + 97, + 32, + 43, + 32, + 49, + 32, + 61, + 61, + 32, + 115, + 46, + 98 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ] + } + } ], "functions": [ [ diff --git a/tests/integration/programs/sum-to-n.smir.json.expected b/tests/integration/programs/sum-to-n.smir.json.expected index 1c5ad99..813f328 100644 --- a/tests/integration/programs/sum-to-n.smir.json.expected +++ b/tests/integration/programs/sum-to-n.smir.json.expected @@ -1,44 +1,42 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 115, - 117, - 99, - 101, - 115, - 115 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 115, + 117, + 99, + 101, + 115, + 115 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ] + } + } ], "functions": [ [ diff --git a/tests/integration/programs/tuple-eq.smir.json.expected b/tests/integration/programs/tuple-eq.smir.json.expected index 92a44be..93ad0da 100644 --- a/tests/integration/programs/tuple-eq.smir.json.expected +++ b/tests/integration/programs/tuple-eq.smir.json.expected @@ -1,76 +1,72 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 4, - "bytes": [ - 42, - 0, - 0, - 0, - 99, - 0, - 0, - 0 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + { + "alloc_info": { + "Memory": { + "align": 4, + "bytes": [ + 42, + 0, + 0, + 0, + 99, + 0, + 0, + 0 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ], - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 116, - 117, - 112, - 32, - 61, - 61, - 32, - 40, - 52, - 50, - 44, - 32, - 57, - 57, - 41 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + } + }, + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 116, + 117, + 112, + 32, + 61, + 61, + 32, + 40, + 52, + 50, + 44, + 32, + 57, + 57, + 41 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ] + } + } ], "functions": [ [ diff --git a/tests/integration/programs/tuples-simple.smir.json.expected b/tests/integration/programs/tuples-simple.smir.json.expected index 0fb0667..7c6a958 100644 --- a/tests/integration/programs/tuples-simple.smir.json.expected +++ b/tests/integration/programs/tuples-simple.smir.json.expected @@ -1,52 +1,50 @@ { "allocs": [ - [ - [ - { - "Memory": { - "align": 1, - "bytes": [ - 97, - 115, - 115, - 101, - 114, - 116, - 105, - 111, - 110, - 32, - 102, - 97, - 105, - 108, - 101, - 100, - 58, - 32, - 116, - 117, - 112, - 46, - 48, - 32, - 33, - 61, - 32, - 116, - 117, - 112, - 46, - 49 - ], - "mutability": "Not", - "provenance": { - "ptrs": [] - } + { + "alloc_info": { + "Memory": { + "align": 1, + "bytes": [ + 97, + 115, + 115, + 101, + 114, + 116, + 105, + 111, + 110, + 32, + 102, + 97, + 105, + 108, + 101, + 100, + 58, + 32, + 116, + 117, + 112, + 46, + 48, + 32, + 33, + 61, + 32, + 116, + 117, + 112, + 46, + 49 + ], + "mutability": "Not", + "provenance": { + "ptrs": [] } } - ] - ] + } + } ], "functions": [ [ From d4c75e7ee21b8f37f96a996229aa8ad8a63f3a23 Mon Sep 17 00:00:00 2001 From: dkcumming Date: Thu, 22 May 2025 18:09:06 -0400 Subject: [PATCH 14/15] AllocInfo changed to GlobalAlloc --- src/printer.rs | 44 ++++++++++++++++++-------------------------- 1 file changed, 18 insertions(+), 26 deletions(-) diff --git a/src/printer.rs b/src/printer.rs index b84c84e..298eb84 100644 --- a/src/printer.rs +++ b/src/printer.rs @@ -33,7 +33,10 @@ use rustc_span::{ use serde::{Serialize, Serializer}; use stable_mir::{ mir::mono::{Instance, InstanceKind, MonoItem}, - mir::{alloc::AllocId, visit::MirVisitor, Body, LocalDecl, Rvalue, Terminator, TerminatorKind}, + mir::{ + alloc::AllocId, alloc::GlobalAlloc, visit::MirVisitor, Body, LocalDecl, Rvalue, Terminator, + TerminatorKind, + }, ty::{AdtDef, Allocation, ConstDef, ForeignItemKind, IndexedVal, RigidTy, TyKind, VariantIdx}, visitor::{Visitable, Visitor}, CrateDef, CrateItem, ItemKind, @@ -473,18 +476,8 @@ impl Serialize for ItemSource { } } -#[derive(Serialize)] -pub enum AllocInfo { - Function(stable_mir::mir::mono::Instance), - VTable( - stable_mir::ty::Ty, - Option>, - ), - Static(stable_mir::mir::mono::StaticDef), - Memory(stable_mir::ty::Allocation), -} type LinkMap<'tcx> = HashMap, (ItemSource, FnSymType)>; -type AllocMap = HashMap; +type AllocMap = HashMap; type TyMap = HashMap)>; type SpanMap = HashMap; @@ -651,7 +644,6 @@ fn collect_alloc( ty: stable_mir::ty::Ty, val: stable_mir::mir::alloc::AllocId, ) { - use stable_mir::mir::alloc::GlobalAlloc; let entry = val_collector.visited_allocs.entry(val); if matches!(entry, std::collections::hash_map::Entry::Occupied(_)) { return; @@ -669,30 +661,30 @@ fn collect_alloc( global_alloc ); } - entry.or_insert((ty, AllocInfo::Memory(alloc.clone()))); + entry.or_insert((ty, global_alloc.clone())); alloc.provenance.ptrs.iter().for_each(|(_, prov)| { collect_alloc(val_collector, pointed_ty.unwrap(), prov.0); }); } - GlobalAlloc::Static(def) => { + GlobalAlloc::Static(_) => { assert!( kind.clone().builtin_deref(true).is_some(), "Allocated pointer is not a built-in pointer type: {:?}", kind ); - entry.or_insert((ty, AllocInfo::Static(def))); + entry.or_insert((ty, global_alloc.clone())); } - GlobalAlloc::VTable(ty, traitref) => { + GlobalAlloc::VTable(_, _) => { assert!( kind.clone().builtin_deref(true).is_some(), "Allocated pointer is not a built-in pointer type: {:?}", kind ); - entry.or_insert((ty, AllocInfo::VTable(ty, traitref))); + entry.or_insert((ty, global_alloc.clone())); } - GlobalAlloc::Function(inst) => { + GlobalAlloc::Function(_) => { assert!(kind.is_fn_ptr()); - entry.or_insert((ty, AllocInfo::Function(inst))); + entry.or_insert((ty, global_alloc.clone())); } }; } @@ -1090,7 +1082,7 @@ type SourceData = (String, usize, usize, usize, usize); pub struct SmirJson<'t> { pub name: String, pub crate_id: u64, - pub allocs: Vec, + pub allocs: Vec, pub functions: Vec<(LinkMapKey<'t>, FnSymType)>, pub uneval_consts: Vec<(ConstDef, String)>, pub items: Vec, @@ -1108,10 +1100,10 @@ pub struct SmirJsonDebugInfo<'t> { } #[derive(Serialize)] -pub struct AllocJson { +pub struct AllocInfo { alloc_id: AllocId, ty: stable_mir::ty::Ty, - alloc_info: AllocInfo, + global_alloc: GlobalAlloc, } // Serialization Entrypoint @@ -1127,7 +1119,7 @@ pub fn collect_smir(tcx: TyCtxt<'_>) -> SmirJson { // FIXME: We dump extra static items here --- this should be handled better for (_, alloc) in visited_allocs.iter() { - if let (_, AllocInfo::Static(def)) = alloc { + if let (_, GlobalAlloc::Static(def)) = alloc { let mono_item = stable_mir::mir::mono::MonoItem::Fn(stable_mir::mir::mono::Instance::from(*def)); let item_name = &mono_item_name(tcx, &mono_item); @@ -1162,10 +1154,10 @@ pub fn collect_smir(tcx: TyCtxt<'_>) -> SmirJson { .collect::>(); let mut allocs = visited_allocs .into_iter() - .map(|(alloc_id, (ty, alloc_info))| AllocJson { + .map(|(alloc_id, (ty, global_alloc))| AllocInfo { alloc_id, ty, - alloc_info, + global_alloc, }) .collect::>(); let crate_id = tcx.stable_crate_id(LOCAL_CRATE).as_u64(); From e8414b5e2d68d394674025ae25e10ed343eaf87b Mon Sep 17 00:00:00 2001 From: dkcumming Date: Thu, 22 May 2025 18:10:25 -0400 Subject: [PATCH 15/15] make golden --- .../programs/binop.smir.json.expected | 52 +++++++++---------- .../programs/char-trivial.smir.json.expected | 2 +- .../programs/closure-args.smir.json.expected | 2 +- .../closure-no-args.smir.json.expected | 2 +- .../const-arithm-simple.smir.json.expected | 2 +- .../programs/div.smir.json.expected | 2 +- .../double-ref-deref.smir.json.expected | 2 +- .../programs/fibonacci.smir.json.expected | 2 +- .../programs/float.smir.json.expected | 4 +- .../programs/modulo.smir.json.expected | 2 +- .../mutual_recursion.smir.json.expected | 2 +- .../primitive-type-bounds.smir.json.expected | 2 +- .../recursion-simple-match.smir.json.expected | 2 +- .../recursion-simple.smir.json.expected | 2 +- .../programs/ref-deref.smir.json.expected | 2 +- .../programs/shl_min.smir.json.expected | 10 ++-- .../programs/slice.smir.json.expected | 4 +- .../strange-ref-deref.smir.json.expected | 2 +- .../programs/struct.smir.json.expected | 2 +- .../programs/sum-to-n.smir.json.expected | 2 +- .../programs/tuple-eq.smir.json.expected | 4 +- .../programs/tuples-simple.smir.json.expected | 2 +- 22 files changed, 54 insertions(+), 54 deletions(-) diff --git a/tests/integration/programs/binop.smir.json.expected b/tests/integration/programs/binop.smir.json.expected index a750d49..3e48b95 100644 --- a/tests/integration/programs/binop.smir.json.expected +++ b/tests/integration/programs/binop.smir.json.expected @@ -1,7 +1,7 @@ { "allocs": [ { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -43,7 +43,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -85,7 +85,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -130,7 +130,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -172,7 +172,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -215,7 +215,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -260,7 +260,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -303,7 +303,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -348,7 +348,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -393,7 +393,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -438,7 +438,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -479,7 +479,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -520,7 +520,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -561,7 +561,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -602,7 +602,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -643,7 +643,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -684,7 +684,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -726,7 +726,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -768,7 +768,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -810,7 +810,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -852,7 +852,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -892,7 +892,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -933,7 +933,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -978,7 +978,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -1018,7 +1018,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -1059,7 +1059,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ diff --git a/tests/integration/programs/char-trivial.smir.json.expected b/tests/integration/programs/char-trivial.smir.json.expected index e67a0c1..aa31cf4 100644 --- a/tests/integration/programs/char-trivial.smir.json.expected +++ b/tests/integration/programs/char-trivial.smir.json.expected @@ -1,7 +1,7 @@ { "allocs": [ { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ diff --git a/tests/integration/programs/closure-args.smir.json.expected b/tests/integration/programs/closure-args.smir.json.expected index 3a87976..e7946e6 100644 --- a/tests/integration/programs/closure-args.smir.json.expected +++ b/tests/integration/programs/closure-args.smir.json.expected @@ -1,7 +1,7 @@ { "allocs": [ { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ diff --git a/tests/integration/programs/closure-no-args.smir.json.expected b/tests/integration/programs/closure-no-args.smir.json.expected index 50d126e..44cf507 100644 --- a/tests/integration/programs/closure-no-args.smir.json.expected +++ b/tests/integration/programs/closure-no-args.smir.json.expected @@ -1,7 +1,7 @@ { "allocs": [ { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ diff --git a/tests/integration/programs/const-arithm-simple.smir.json.expected b/tests/integration/programs/const-arithm-simple.smir.json.expected index 1cf4652..9995fb7 100644 --- a/tests/integration/programs/const-arithm-simple.smir.json.expected +++ b/tests/integration/programs/const-arithm-simple.smir.json.expected @@ -1,7 +1,7 @@ { "allocs": [ { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ diff --git a/tests/integration/programs/div.smir.json.expected b/tests/integration/programs/div.smir.json.expected index 67597fc..9eac071 100644 --- a/tests/integration/programs/div.smir.json.expected +++ b/tests/integration/programs/div.smir.json.expected @@ -1,7 +1,7 @@ { "allocs": [ { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ diff --git a/tests/integration/programs/double-ref-deref.smir.json.expected b/tests/integration/programs/double-ref-deref.smir.json.expected index 59e1a10..5c3b310 100644 --- a/tests/integration/programs/double-ref-deref.smir.json.expected +++ b/tests/integration/programs/double-ref-deref.smir.json.expected @@ -1,7 +1,7 @@ { "allocs": [ { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ diff --git a/tests/integration/programs/fibonacci.smir.json.expected b/tests/integration/programs/fibonacci.smir.json.expected index db7fa9d..1454e96 100644 --- a/tests/integration/programs/fibonacci.smir.json.expected +++ b/tests/integration/programs/fibonacci.smir.json.expected @@ -1,7 +1,7 @@ { "allocs": [ { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ diff --git a/tests/integration/programs/float.smir.json.expected b/tests/integration/programs/float.smir.json.expected index faacd19..25be1a3 100644 --- a/tests/integration/programs/float.smir.json.expected +++ b/tests/integration/programs/float.smir.json.expected @@ -1,7 +1,7 @@ { "allocs": [ { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -44,7 +44,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ diff --git a/tests/integration/programs/modulo.smir.json.expected b/tests/integration/programs/modulo.smir.json.expected index 8d97480..60b0d2a 100644 --- a/tests/integration/programs/modulo.smir.json.expected +++ b/tests/integration/programs/modulo.smir.json.expected @@ -1,7 +1,7 @@ { "allocs": [ { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ diff --git a/tests/integration/programs/mutual_recursion.smir.json.expected b/tests/integration/programs/mutual_recursion.smir.json.expected index f8c4bbf..98e6012 100644 --- a/tests/integration/programs/mutual_recursion.smir.json.expected +++ b/tests/integration/programs/mutual_recursion.smir.json.expected @@ -1,7 +1,7 @@ { "allocs": [ { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ diff --git a/tests/integration/programs/primitive-type-bounds.smir.json.expected b/tests/integration/programs/primitive-type-bounds.smir.json.expected index 520934a..60bd3a3 100644 --- a/tests/integration/programs/primitive-type-bounds.smir.json.expected +++ b/tests/integration/programs/primitive-type-bounds.smir.json.expected @@ -1,7 +1,7 @@ { "allocs": [ { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ diff --git a/tests/integration/programs/recursion-simple-match.smir.json.expected b/tests/integration/programs/recursion-simple-match.smir.json.expected index 425e894..d8f8ce3 100644 --- a/tests/integration/programs/recursion-simple-match.smir.json.expected +++ b/tests/integration/programs/recursion-simple-match.smir.json.expected @@ -1,7 +1,7 @@ { "allocs": [ { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ diff --git a/tests/integration/programs/recursion-simple.smir.json.expected b/tests/integration/programs/recursion-simple.smir.json.expected index b65e95a..cab6049 100644 --- a/tests/integration/programs/recursion-simple.smir.json.expected +++ b/tests/integration/programs/recursion-simple.smir.json.expected @@ -1,7 +1,7 @@ { "allocs": [ { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ diff --git a/tests/integration/programs/ref-deref.smir.json.expected b/tests/integration/programs/ref-deref.smir.json.expected index a7439ae..674aabd 100644 --- a/tests/integration/programs/ref-deref.smir.json.expected +++ b/tests/integration/programs/ref-deref.smir.json.expected @@ -1,7 +1,7 @@ { "allocs": [ { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ diff --git a/tests/integration/programs/shl_min.smir.json.expected b/tests/integration/programs/shl_min.smir.json.expected index 16eef87..0bdc119 100644 --- a/tests/integration/programs/shl_min.smir.json.expected +++ b/tests/integration/programs/shl_min.smir.json.expected @@ -1,7 +1,7 @@ { "allocs": [ { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -49,7 +49,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -100,7 +100,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -156,7 +156,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ @@ -221,7 +221,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ diff --git a/tests/integration/programs/slice.smir.json.expected b/tests/integration/programs/slice.smir.json.expected index ee13217..35aac31 100644 --- a/tests/integration/programs/slice.smir.json.expected +++ b/tests/integration/programs/slice.smir.json.expected @@ -1,7 +1,7 @@ { "allocs": [ { - "alloc_info": { + "global_alloc": { "Memory": { "align": 4, "bytes": [ @@ -22,7 +22,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ diff --git a/tests/integration/programs/strange-ref-deref.smir.json.expected b/tests/integration/programs/strange-ref-deref.smir.json.expected index 0cace3c..d6fa6f0 100644 --- a/tests/integration/programs/strange-ref-deref.smir.json.expected +++ b/tests/integration/programs/strange-ref-deref.smir.json.expected @@ -1,7 +1,7 @@ { "allocs": [ { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ diff --git a/tests/integration/programs/struct.smir.json.expected b/tests/integration/programs/struct.smir.json.expected index 75235e5..a183ab4 100644 --- a/tests/integration/programs/struct.smir.json.expected +++ b/tests/integration/programs/struct.smir.json.expected @@ -1,7 +1,7 @@ { "allocs": [ { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ diff --git a/tests/integration/programs/sum-to-n.smir.json.expected b/tests/integration/programs/sum-to-n.smir.json.expected index 813f328..29f8119 100644 --- a/tests/integration/programs/sum-to-n.smir.json.expected +++ b/tests/integration/programs/sum-to-n.smir.json.expected @@ -1,7 +1,7 @@ { "allocs": [ { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ diff --git a/tests/integration/programs/tuple-eq.smir.json.expected b/tests/integration/programs/tuple-eq.smir.json.expected index 93ad0da..9435f73 100644 --- a/tests/integration/programs/tuple-eq.smir.json.expected +++ b/tests/integration/programs/tuple-eq.smir.json.expected @@ -1,7 +1,7 @@ { "allocs": [ { - "alloc_info": { + "global_alloc": { "Memory": { "align": 4, "bytes": [ @@ -22,7 +22,7 @@ } }, { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [ diff --git a/tests/integration/programs/tuples-simple.smir.json.expected b/tests/integration/programs/tuples-simple.smir.json.expected index 7c6a958..20f3995 100644 --- a/tests/integration/programs/tuples-simple.smir.json.expected +++ b/tests/integration/programs/tuples-simple.smir.json.expected @@ -1,7 +1,7 @@ { "allocs": [ { - "alloc_info": { + "global_alloc": { "Memory": { "align": 1, "bytes": [