You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fixes and improvements to the derivation of Arbitrary in the compiler
introduced in #4167, along with a fix for #4189 and some other small
improvements to autoharness that I noticed along the way. Best reviewed
commit by commit.
Resolves#4189
Towards #3832
By submitting this pull request, I confirm that my contribution is made
under the terms of the Apache 2.0 and MIT licenses.
/// Transform the dummy body of an automatic_harness Kani intrinsic to be a proof harness for a given function.
263
265
#[derive(Debug)]
264
266
pubstructAutomaticHarnessPass{
265
-
/// The FnDef of KaniModel::Any
266
267
kani_any:FnDef,
267
268
init_contracts_hook:Instance,
268
-
/// All of the automatic harness Instances that we generated in the CodegenUnits constructor
269
-
automatic_harnesses:Vec<Instance>,
269
+
kani_autoharness_intrinsic:FnDef,
270
270
}
271
271
272
272
implAutomaticHarnessPass{
273
-
// FIXME: this is a bit clunky.
274
-
// Historically, in codegen_crate, we reset the BodyTransformation cache on a per-unit basis,
275
-
// so the BodyTransformation constructor only accepts a CodegenUnit and thus this constructor can only accept a unit.
276
-
// Later, we changed codegen to reset the cache on a per-harness basis (for uninitialized memory instrumentation).
277
-
// So BodyTransformation should really be changed to reflect that, so that this constructor can just save the one automatic harness it should transform
0 commit comments