Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# next -- TBA

This release supports [version
4](https://github.com/GaloisInc/mir-json/blob/master/SCHEMA_CHANGELOG.md#4) of
5](https://github.com/GaloisInc/mir-json/blob/master/SCHEMA_CHANGELOG.md#5) of
`mir-json`'s schema.

## Changes
Expand Down Expand Up @@ -105,8 +105,7 @@ This release supports [version
allows looking up MIR ADTs by their full, mangled names.
`mir_find_mangled_adt`'s use is discouraged in favor of using `mir_find_adt`
instead, but `mir_find_mangled_adt` can be useful in scenarios where
`mir_find_adt` isn't expressive enough to look up particular ADTs (e.g., ADTs
that use const generics).
`mir_find_adt` isn't expressive enough to look up particular ADTs.

* Add a `set_solver_cache_timeout : Int -> TopLevel ()` command that allows
configuring the solver result cache's timeout for database lookups and
Expand All @@ -119,6 +118,11 @@ This release supports [version
allows extracting a MIR function to a term. See the SAW manual for details on
what types of MIR functions are supported for extraction.

* Add a `mir_const : MIRType -> Term -> MIRType` function, which can be used to
specify a constant used to instantiate a const generic parameter. `mir_const`
is intended to be used in conjunction with `mir_find_adt` to look up
instantiations of const generic ADTs.

# Version 1.4 -- date still TBD

This release supports [version
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ compile Rust code using [`mir-json`](https://github.com/GaloisInc/mir-json), a
tool which compiles Rust code to a machine-readable, JSON-based format.

Currently, SAW supports [version
4](https://github.com/GaloisInc/mir-json/blob/master/SCHEMA_CHANGELOG.md#4) of
5](https://github.com/GaloisInc/mir-json/blob/master/SCHEMA_CHANGELOG.md#5) of
`mir-json`'s schema. Note that the schema versions produced by `mir-json` can
change over time as dictated by internal requirements and upstream changes. To
help smooth this over:
Expand Down
2 changes: 1 addition & 1 deletion deps/mir-json
Submodule mir-json updated 40 files
+9 −0 .github/workflows/ci.yml
+25 −0 Cargo.lock
+2 −0 Cargo.toml
+4 −1 Dockerfile
+26 −0 SCHEMA_CHANGELOG.md
+27 −0 doc/rustc.md
+10 −4 src/analyz/mod.rs
+59 −13 src/analyz/to_json.rs
+74 −28 src/analyz/ty_json.rs
+1 −0 src/bin/mir-json-rustc-wrapper.rs
+1 −0 src/bin/mir-json.rs
+3 −0 src/lib.rs
+1 −1 src/schema_ver.rs
+6 −0 tests/.gitignore
+35 −0 tests/common.sh
+2 −0 tests/disabled_tests.txt
+15 −0 tests/issues/test0128/README.md
+12 −0 tests/issues/test0128/test.rs
+7 −0 tests/issues/test0128/test.sh
+10 −0 tests/issues/test0129/README.md
+7 −0 tests/issues/test0129/test.rs
+7 −0 tests/issues/test0129/test.sh
+19 −0 tests/issues/test0166/README.md
+27 −0 tests/issues/test0166/test.rs
+7 −0 tests/issues/test0166/test.sh
+8 −0 tests/regression/test_computed_consts/README.md
+13 −0 tests/regression/test_computed_consts/test.rs
+5 −0 tests/regression/test_computed_consts/test.sh
+14 −0 tests/regression/test_consts_multiple_crates/Cargo.lock
+3 −0 tests/regression/test_consts_multiple_crates/Cargo.toml
+4 −0 tests/regression/test_consts_multiple_crates/README.md
+6 −0 tests/regression/test_consts_multiple_crates/a/Cargo.toml
+8 −0 tests/regression/test_consts_multiple_crates/a/src/lib.rs
+7 −0 tests/regression/test_consts_multiple_crates/b/Cargo.toml
+4 −0 tests/regression/test_consts_multiple_crates/b/src/lib.rs
+5 −0 tests/regression/test_consts_multiple_crates/test.sh
+23 −0 tests/regression/test_output-schema/README.md
+13 −0 tests/regression/test_output-schema/test.rs
+9 −0 tests/regression/test_output-schema/test.sh
+106 −0 tests/run-all.sh
Binary file modified doc/pdfs/saw-user-manual.pdf
Binary file not shown.
68 changes: 65 additions & 3 deletions doc/saw-user-manual/specification-based-verification.md
Original file line number Diff line number Diff line change
Expand Up @@ -1349,6 +1349,9 @@ let s_8_16 = mir_find_adt m "example::S" [mir_u8, mir_u16];
let s_32_64 = mir_find_adt m "example::S" [mir_u32, mir_u64];
:::

See also the [const generics](#const-generics) section for more details on how
to look up `MIRAdt`s that use const generics.

Note that there is also a command to look up ADTs by their full, _mangled_
identifiers that include the `_adt<num>` suffix:

Expand All @@ -1361,9 +1364,7 @@ identifier.
It is recommended to use `mir_find_adt` over `mir_find_mangled_adt` whenever
possible, as mangled identifiers can change easily when recompiling Rust code.
`mir_find_mangled_adt` is generally only needed to work around limitations in
what `mir_find_adt` can look up. For instance, SAW currently does not have a
way to look up instantiations of ADTs that use const generics, so
`mir_find_mangled_adt` is the only way to look up such ADTs at present.
what `mir_find_adt` can look up.

The `mir_adt` command (for constructing a struct type), `mir_struct_value` (for
constructing a struct value), and `mir_enum_value` (for constructing an enum
Expand Down Expand Up @@ -1448,6 +1449,67 @@ see [this issue](https://github.com/GaloisInc/mir-json/issues/58) for further
discussion on this point. If that issue is fixed, then we will likely remove
`mir_lifetime`, as it will no longer be necessary.

#### Const generics

Rust ADTs can have _const generic_ parameters that allow the ADT to be generic
over constant values.
For instance, the following Rust code declares a const generic parameter `N`
on the struct `S`, as well as on the functions `f` and `g` that compute `S`
values:

:::{code-block} rust
pub struct S<const N: usize> {
pub x: [u32; N]
}

pub fn f(y: [u32; 1]) -> S<1> {
S { x: y }
}

pub fn g(y: [u32; 2]) -> S<2> {
S { x: y }
}
:::

Like with other forms of Rust generics, instantiating `S` with different
constants will give rise to different identifiers in the compiled MIR code.
SAW provides a `mir_const` function for specifying the values of constants
used to instantiate const generic parameters:

- `mir_const : MIRType -> Term -> MIRType`

For instance, if order to look up `S<1>`, use `mir_const` in conjunction with
`mir_find_adt` like so:

:::{code-block} sawscript
s_adt = mir_find_adt m "example::S" [mir_const mir_usize {{ 1 : [64] }}]
:::

Unlike other forms of `MIRType`s, the type returned by `mir_const` is not a
type that you can create values with.
For instance, calling `mir_alloc` or `mir_fresh_var` at a type returned by
`mir_const` will raise an error.
`mir_const` is only useful for looking up ADTs via `mir_find_adt`.

At present, `mir_const` only supports looking up constant values with the types
listed
[here](https://doc.rust-lang.org/1.86.0/reference/items/generics.html#r-items.generics.const.allowed-types)
in the Rust Reference.
Specifically, the `MIRType` argument must be one of the following, subject to
the following restrictions:

- A primitive integer type, i.e., `mir_u{8,16,32,64,128,size}` or
`mir_i{8,16,32,64,128,size}`.
The `Term` argument must be a bitvector of the corresponding size.
For instance, if the `MIRType` is `mir_u8`, then the `Term` must be a
bitvector of type `[8]`.

- `mir_bool`.
The `Term` argument must be of type `Bit`.

- `mir_char`.
The `Term` argument must be of type `[32]`.

### Bitfields

SAW has experimental support for specifying `struct`s with bitfields, such as
Expand Down
2 changes: 1 addition & 1 deletion intTests/test1973/test.linked-mir.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"version":4,"fns":[{"abi":{"kind":"Rust"},"args":[{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::Ref::09160fe8e138d7e6"}],"body":{"blocks":[{"block":{"data":[{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::Ref::09160fe8e138d7e6"}},"pos":"test.rs:5:5: 5:6","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::Ref::09160fe8e138d7e6"}},"kind":"Copy"}}}],"terminator":{"kind":"Return","pos":"test.rs:6:2: 6:2"}},"blockid":"bb0"}],"vars":[{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::Ref::09160fe8e138d7e6"}]},"name":"test/9d303510::f","return_ty":"ty::Ref::09160fe8e138d7e6","spread_arg":null}],"adts":[{"kind":{"kind":"Struct"},"name":"test/9d303510::S::_adtc5a5405abab57fd5[0]","orig_args":[],"orig_def_id":"test/9d303510::S","repr_transparent":true,"size":1,"variants":[{"ctor_kind":{"kind":"Fn"},"discr":{"index":0,"kind":"Relative"},"discr_value":null,"fields":[{"name":"test/9d303510::S::0","ty":"ty::u8"}],"inhabited":true,"name":"test/9d303510::S"}]}],"statics":[],"vtables":[],"traits":[],"intrinsics":[{"inst":{"args":[],"def_id":"test/9d303510::f","kind":"Item"},"name":"test/9d303510::f"}],"tys":[{"layout":{"align":1,"size":1},"name":"ty::Adt::e6795b79183c638b","ty":{"args":[],"kind":"Adt","name":"test/9d303510::S::_adtc5a5405abab57fd5[0]","orig_def_id":"test/9d303510::S"}},{"layout":{"align":8,"size":8},"name":"ty::Ref::09160fe8e138d7e6","ty":{"kind":"Ref","mutability":{"kind":"Not"},"ty":"ty::Adt::e6795b79183c638b"}},{"layout":{"align":1,"size":1},"name":"ty::u8","ty":{"kind":"Uint","uintkind":{"kind":"U8"}}}],"lang_items":[],"roots":["test/9d303510::f"],"tests":[]}
{"version":5,"fns":[{"abi":{"kind":"Rust"},"args":[{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::Ref::09160fe8e138d7e6"}],"body":{"blocks":[{"block":{"data":[{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::Ref::09160fe8e138d7e6"}},"pos":"test.rs:5:5: 5:6","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::Ref::09160fe8e138d7e6"}},"kind":"Copy"}}}],"terminator":{"kind":"Return","pos":"test.rs:6:2: 6:2"}},"blockid":"bb0"}],"vars":[{"is_zst":false,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::Ref::09160fe8e138d7e6"}]},"name":"test/9d303510::f","return_ty":"ty::Ref::09160fe8e138d7e6","spread_arg":null}],"adts":[{"kind":{"kind":"Struct"},"name":"test/9d303510::S::_adtc5a5405abab57fd5[0]","orig_args":[],"orig_def_id":"test/9d303510::S","repr_transparent":true,"size":1,"variants":[{"ctor_kind":{"kind":"Fn"},"discr":{"index":0,"kind":"Relative"},"discr_value":null,"fields":[{"name":"test/9d303510::S::0","ty":"ty::u8"}],"inhabited":true,"name":"test/9d303510::S"}]}],"statics":[],"vtables":[],"traits":[],"intrinsics":[{"inst":{"args":[],"def_id":"test/9d303510::f","kind":"Item"},"name":"test/9d303510::f"}],"tys":[{"layout":{"align":1,"size":1},"name":"ty::Adt::e6795b79183c638b","ty":{"args":[],"kind":"Adt","name":"test/9d303510::S::_adtc5a5405abab57fd5[0]","orig_def_id":"test/9d303510::S"}},{"layout":{"align":8,"size":8},"name":"ty::Ref::09160fe8e138d7e6","ty":{"kind":"Ref","mutability":{"kind":"Not"},"ty":"ty::Adt::e6795b79183c638b"}},{"layout":{"align":1,"size":1},"name":"ty::u8","ty":{"kind":"Uint","uintkind":{"kind":"U8"}}}],"lang_items":[],"roots":["test/9d303510::f"],"tests":[]}
4 changes: 2 additions & 2 deletions intTests/test1973/test.linked-mir.json.FROM
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
versions
rustc 1.86.0-nightly (9cd60bd2c 2025-02-15)
mir-json mtime: Sep 4 15:08:19 2025
mir-json mtime: Oct 2 11:34:05 2025
mir-json version from cargo: mir-json v0.1.0
probable mir-json commit: 399d8d5460c711a070a21d55a0fc44d9fae679c9 from Thu Sep 4 19:07:00 2025 and/or Thu Sep 4 19:07:00 2025
probable mir-json commit: eb4b23f7307d95b775f61e2dc6cbb0689c20c30e from Mon Sep 22 13:20:33 2025 and/or Mon Sep 29 16:26:23 2025
versions-notes
Generated by update-from.sh version 1
2 changes: 1 addition & 1 deletion intTests/test1977/test.linked-mir.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"version":4,"fns":[{"abi":{"kind":"Rust"},"args":[{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::RawPtr::7eb89bf7df08af69"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_2","ty":"ty::RawPtr::7eb89bf7df08af69"}],"body":{"blocks":[{"block":{"data":[{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_3","ty":"ty::i32"}},"pos":"test.rs:9:19: 9:21","rhs":{"kind":"Use","usevar":{"data":{"data":[{"kind":"Deref"}],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::RawPtr::7eb89bf7df08af69"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::RawPtr::3c7f524bd716747e"}},"pos":"test.rs:10:20: 10:21","rhs":{"kind":"Cast","op":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_2","ty":"ty::RawPtr::7eb89bf7df08af69"}},"kind":"Copy"},"ty":"ty::RawPtr::3c7f524bd716747e","type":{"kind":"PtrToPtr"}}}],"terminator":{"args":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::RawPtr::3c7f524bd716747e"}},"kind":"Move"},{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::RawPtr::7eb89bf7df08af69"}},"kind":"Copy"}],"destination":[{"data":[],"var":{"is_zst":true,"mut":{"kind":"Not"},"name":"_4","ty":"ty::Tuple::e93222e871854c41"}},"bb1"],"func":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::37be931d7fff5b60"},"kind":"Constant"},"kind":"Call","pos":"test.rs:10:9: 10:25"}},"blockid":"bb0"},{"block":{"data":[{"kind":"Assign","lhs":{"data":[{"kind":"Deref"}],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_2","ty":"ty::RawPtr::7eb89bf7df08af69"}},"pos":"test.rs:11:9: 11:17","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_3","ty":"ty::i32"}},"kind":"Copy"}}}],"terminator":{"kind":"Return","pos":"test.rs:13:2: 13:2"}},"blockid":"bb1"}],"vars":[{"is_zst":true,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::Tuple::e93222e871854c41"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_3","ty":"ty::i32"},{"is_zst":true,"mut":{"kind":"Not"},"name":"_4","ty":"ty::Tuple::e93222e871854c41"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::RawPtr::3c7f524bd716747e"}]},"name":"test/34230c27::raw_swap","return_ty":"ty::Tuple::e93222e871854c41","spread_arg":null},{"abi":{"kind":"Rust"},"args":[{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::RawPtr::3c7f524bd716747e"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_2","ty":"ty::RawPtr::7eb89bf7df08af69"}],"body":{"blocks":[{"block":{"data":[{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::i32"}},"pos":"test.rs:3:17: 3:21","rhs":{"kind":"Use","usevar":{"data":{"data":[{"kind":"Deref"}],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::RawPtr::3c7f524bd716747e"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[{"kind":"Deref"}],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_2","ty":"ty::RawPtr::7eb89bf7df08af69"}},"pos":"test.rs:3:9: 3:21","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::i32"}},"kind":"Move"}}}],"terminator":{"kind":"Return","pos":"test.rs:5:2: 5:2"}},"blockid":"bb0"}],"vars":[{"is_zst":true,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::Tuple::e93222e871854c41"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::i32"}]},"name":"test/34230c27::raw_assign","return_ty":"ty::Tuple::e93222e871854c41","spread_arg":null}],"adts":[],"statics":[],"vtables":[],"traits":[],"intrinsics":[{"inst":{"args":[],"def_id":"test/34230c27::raw_swap","kind":"Item"},"name":"test/34230c27::raw_swap"},{"inst":{"args":[],"def_id":"test/34230c27::raw_assign","kind":"Item"},"name":"test/34230c27::raw_assign"}],"tys":[{"layout":{"align":4,"size":4},"name":"ty::i32","ty":{"intkind":{"kind":"I32"},"kind":"Int"}},{"layout":{"align":8,"size":8},"name":"ty::RawPtr::7eb89bf7df08af69","ty":{"kind":"RawPtr","mutability":{"kind":"Mut"},"ty":"ty::i32"}},{"layout":{"align":1,"size":0},"name":"ty::Tuple::e93222e871854c41","ty":{"kind":"Tuple","tys":[]}},{"layout":{"align":8,"size":8},"name":"ty::RawPtr::3c7f524bd716747e","ty":{"kind":"RawPtr","mutability":{"kind":"Not"},"ty":"ty::i32"}},{"layout":{"align":1,"size":0},"name":"ty::FnDef::37be931d7fff5b60","ty":{"defid":"test/34230c27::raw_assign","kind":"FnDef"}}],"lang_items":[],"roots":["test/34230c27::raw_assign","test/34230c27::raw_swap"],"tests":[]}
{"version":5,"fns":[{"abi":{"kind":"Rust"},"args":[{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::RawPtr::7eb89bf7df08af69"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_2","ty":"ty::RawPtr::7eb89bf7df08af69"}],"body":{"blocks":[{"block":{"data":[{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_3","ty":"ty::i32"}},"pos":"test.rs:9:19: 9:21","rhs":{"kind":"Use","usevar":{"data":{"data":[{"kind":"Deref"}],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::RawPtr::7eb89bf7df08af69"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::RawPtr::3c7f524bd716747e"}},"pos":"test.rs:10:20: 10:21","rhs":{"kind":"Cast","op":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_2","ty":"ty::RawPtr::7eb89bf7df08af69"}},"kind":"Copy"},"ty":"ty::RawPtr::3c7f524bd716747e","type":{"kind":"PtrToPtr"}}}],"terminator":{"args":[{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::RawPtr::3c7f524bd716747e"}},"kind":"Move"},{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::RawPtr::7eb89bf7df08af69"}},"kind":"Copy"}],"destination":[{"data":[],"var":{"is_zst":true,"mut":{"kind":"Not"},"name":"_4","ty":"ty::Tuple::e93222e871854c41"}},"bb1"],"func":{"data":{"rendered":{"kind":"zst"},"ty":"ty::FnDef::37be931d7fff5b60"},"kind":"Constant"},"kind":"Call","pos":"test.rs:10:9: 10:25"}},"blockid":"bb0"},{"block":{"data":[{"kind":"Assign","lhs":{"data":[{"kind":"Deref"}],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_2","ty":"ty::RawPtr::7eb89bf7df08af69"}},"pos":"test.rs:11:9: 11:17","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_3","ty":"ty::i32"}},"kind":"Copy"}}}],"terminator":{"kind":"Return","pos":"test.rs:13:2: 13:2"}},"blockid":"bb1"}],"vars":[{"is_zst":true,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::Tuple::e93222e871854c41"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_3","ty":"ty::i32"},{"is_zst":true,"mut":{"kind":"Not"},"name":"_4","ty":"ty::Tuple::e93222e871854c41"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_5","ty":"ty::RawPtr::3c7f524bd716747e"}]},"name":"test/34230c27::raw_swap","return_ty":"ty::Tuple::e93222e871854c41","spread_arg":null},{"abi":{"kind":"Rust"},"args":[{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::RawPtr::3c7f524bd716747e"},{"is_zst":false,"mut":{"kind":"Not"},"name":"_2","ty":"ty::RawPtr::7eb89bf7df08af69"}],"body":{"blocks":[{"block":{"data":[{"kind":"Assign","lhs":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::i32"}},"pos":"test.rs:3:17: 3:21","rhs":{"kind":"Use","usevar":{"data":{"data":[{"kind":"Deref"}],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_1","ty":"ty::RawPtr::3c7f524bd716747e"}},"kind":"Copy"}}},{"kind":"Assign","lhs":{"data":[{"kind":"Deref"}],"var":{"is_zst":false,"mut":{"kind":"Not"},"name":"_2","ty":"ty::RawPtr::7eb89bf7df08af69"}},"pos":"test.rs:3:9: 3:21","rhs":{"kind":"Use","usevar":{"data":{"data":[],"var":{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::i32"}},"kind":"Move"}}}],"terminator":{"kind":"Return","pos":"test.rs:5:2: 5:2"}},"blockid":"bb0"}],"vars":[{"is_zst":true,"mut":{"kind":"Mut"},"name":"_0","ty":"ty::Tuple::e93222e871854c41"},{"is_zst":false,"mut":{"kind":"Mut"},"name":"_3","ty":"ty::i32"}]},"name":"test/34230c27::raw_assign","return_ty":"ty::Tuple::e93222e871854c41","spread_arg":null}],"adts":[],"statics":[],"vtables":[],"traits":[],"intrinsics":[{"inst":{"args":[],"def_id":"test/34230c27::raw_swap","kind":"Item"},"name":"test/34230c27::raw_swap"},{"inst":{"args":[],"def_id":"test/34230c27::raw_assign","kind":"Item"},"name":"test/34230c27::raw_assign"}],"tys":[{"layout":{"align":4,"size":4},"name":"ty::i32","ty":{"intkind":{"kind":"I32"},"kind":"Int"}},{"layout":{"align":8,"size":8},"name":"ty::RawPtr::7eb89bf7df08af69","ty":{"kind":"RawPtr","mutability":{"kind":"Mut"},"ty":"ty::i32"}},{"layout":{"align":1,"size":0},"name":"ty::Tuple::e93222e871854c41","ty":{"kind":"Tuple","tys":[]}},{"layout":{"align":8,"size":8},"name":"ty::RawPtr::3c7f524bd716747e","ty":{"kind":"RawPtr","mutability":{"kind":"Not"},"ty":"ty::i32"}},{"layout":{"align":1,"size":0},"name":"ty::FnDef::37be931d7fff5b60","ty":{"defid":"test/34230c27::raw_assign","kind":"FnDef"}}],"lang_items":[],"roots":["test/34230c27::raw_assign","test/34230c27::raw_swap"],"tests":[]}
4 changes: 2 additions & 2 deletions intTests/test1977/test.linked-mir.json.FROM
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
versions
rustc 1.86.0-nightly (9cd60bd2c 2025-02-15)
mir-json mtime: Sep 4 15:08:20 2025
mir-json mtime: Oct 2 11:34:06 2025
mir-json version from cargo: mir-json v0.1.0
probable mir-json commit: 399d8d5460c711a070a21d55a0fc44d9fae679c9 from Thu Sep 4 19:07:00 2025 and/or Thu Sep 4 19:07:00 2025
probable mir-json commit: eb4b23f7307d95b775f61e2dc6cbb0689c20c30e from Mon Sep 22 13:20:33 2025 and/or Mon Sep 29 16:26:23 2025
versions-notes
Generated by update-from.sh version 1
2 changes: 1 addition & 1 deletion intTests/test1983/test.linked-mir.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions intTests/test1983/test.linked-mir.json.FROM
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
versions
rustc 1.86.0-nightly (9cd60bd2c 2025-02-15)
mir-json mtime: Sep 4 15:08:21 2025
mir-json mtime: Oct 2 11:34:07 2025
mir-json version from cargo: mir-json v0.1.0
probable mir-json commit: 399d8d5460c711a070a21d55a0fc44d9fae679c9 from Thu Sep 4 19:07:00 2025 and/or Thu Sep 4 19:07:00 2025
probable mir-json commit: eb4b23f7307d95b775f61e2dc6cbb0689c20c30e from Mon Sep 22 13:20:33 2025 and/or Mon Sep 29 16:26:23 2025
versions-notes
Generated by update-from.sh version 1
2 changes: 1 addition & 1 deletion intTests/test1998_mir/test.linked-mir.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions intTests/test1998_mir/test.linked-mir.json.FROM
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
versions
rustc 1.86.0-nightly (9cd60bd2c 2025-02-15)
mir-json mtime: Sep 4 15:08:22 2025
mir-json mtime: Oct 2 11:34:08 2025
mir-json version from cargo: mir-json v0.1.0
probable mir-json commit: 399d8d5460c711a070a21d55a0fc44d9fae679c9 from Thu Sep 4 19:07:00 2025 and/or Thu Sep 4 19:07:00 2025
probable mir-json commit: eb4b23f7307d95b775f61e2dc6cbb0689c20c30e from Mon Sep 22 13:20:33 2025 and/or Mon Sep 29 16:26:23 2025
versions-notes
Generated by update-from.sh version 1
2 changes: 1 addition & 1 deletion intTests/test1999/post-test-mut.linked-mir.json

Large diffs are not rendered by default.

Loading
Loading