Skip to content

False invariants in correctness witnesses generated by Goblint #1926

@jprotopopov-ut

Description

@jprotopopov-ut

This issue will be used to report false invariants contained in Goblint witnesses, as discovered by https://github.com/sws-lab/clang-witness-inject tool. Most of the issues are seemingly arbitrary, so I won't open separate ticket per each. The tool purpose is instrumenting program source code with assertions taken from correctness witnesses, and validating the assertions via compiling and running the program.

False invariants

  - invariant:
      type: location_invariant
      location:
        file_name: main.c
        line: 1538
        column: 3
        function: strncat_s_safe_c
      value: dmax == 64U
      format: c_expression
  - invariant:
      type: location_invariant
      location:
        file_name: main.c
        line: 4103
        column: 5
        function: mdb_env_close
      value: dp == 0
      format: c_expression

False invariants while Function definition missing error appears

For the following program, Goblint produced false invariant(s) while issuing Function definition missing error. For completeness, I am documenting such cases too:

  - invariant:
      type: location_invariant
      location:
        file_name: main.c
        line: 8929
        column: 3
        function: twist_
      value: # Value omitted for brevity
      format: c_expression

Other issues

Furthermore, there are multiple programs for which Goblint (revision and config as above) fails with the error Fatal error: exception Cilfacade.TypeOfError(typeOffset: Index on a non-array (0, struct __anonstruct_conn_t_702709736 )). In particular, axel, per-thread-array-join-counter

Metadata

Metadata

Assignees

No one assigned

    Labels

    sv-compSV-COMP (analyses, results), witnesses

    Type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions