Skip to content
This repository was archived by the owner on Oct 3, 2021. It is now read-only.
This repository was archived by the owner on Oct 3, 2021. It is now read-only.

Use of __VERIFIER_nondet_* functions that aren't specified in SV-COMP rules #1304

@RyanGlScott

Description

@RyanGlScott

I've noticed that various programs in this repo use __VERIFIER_nondet_* functions that seemingly aren't mentioned anywhere in the SV-COMP rules. I'm using this section of the 2021 SV-COMP rules as a reference:

__VERIFIER_nondet_X(): In order to model nondeterministic values, the following functions can be assumed to return an arbitrary value of the indicated type: __VERIFIER_nondet_X() (and nondet_X(), deprecated) with X in {bool, char, int, float, double, loff_t, long, pchar, pthread_t, sector_t, short, size_t, u32, uchar, uint, ulong, unsigned, ushort} (no side effects, pointer for void *, etc.). The verification tool can assume that the functions are implemented according to the following template:
X __VERIFIER_nondet_X() { X val; return val; }

The following programs assume the existence of __VERIFIER_nondet_* that aren't in this list:

I'm unclear if the rules are incomplete or if these programs aren't following the SV-COMP rules.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions