Skip to content

Permissions in function precondition not correctly checked when using --enableMoreCompleteExhale #523

@mschwerhoff

Description

@mschwerhoff

@niomaster reported that the following snippet unsoundly verifies when using the experimental option --enableMoreCompleteExhale:

field f: Int

function req(x: Ref): Bool
  requires acc(x.f, 2/1)
{ true }

method test(x: Ref) {
  inhale acc(x.f)
  assert req(x) // Fails only without --enableMoreCompleteExhale (and should fail)
  assert false  // Fails even with --enableMoreCompleteExhale (and should fail)
}

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions