Skip to content

Int domain failures with many ikinds #575

@sim642

Description

@sim642
  • Interval rem fails with long and long long:

    test `integerset -> intervals (long): valid rem` failed on ≥ 1 cases:
    ([-1L], [-1L]) (after 124 shrink steps)
    
    test `integerset -> intervals (long long): valid rem` failed on ≥ 1 cases:
    ([-1L], [-1L]) (after 124 shrink steps)
    

    This is due to some precision improvement to it: Add ikind argument to IntDomain arbitraries, fix some bugs #568 (comment).

  • Def_exc bitnot fails with unsigned int:

    test `integerset -> def_exc (unsigned int): valid bitnot`
    failed on ≥ 1 cases: [0L] (after 63 shrink steps)
    
  • Congruence fails arithmetic with unsigned int:

    test `integerset -> congruences (unsigned int): valid bitnot`
    failed on ≥ 1 cases: [0L] (after 64 shrink steps)
    
    test `integerset -> congruences (unsigned int): valid sub`
    failed on ≥ 1 cases: ([0L], [7795773234L]) (after 92 shrink steps)
    
    test `integerset -> congruences (unsigned int): valid mul`
    failed on ≥ 1 cases: ([-1L], [7795773234L]) (after 91 shrink steps)
    
    test `integerset -> congruences (unsigned int): valid add`
    failed on ≥ 1 cases: ([0L], [7795773234L]) (after 92 shrink steps)
    
    test `integerset -> congruences (unsigned int): valid neg`
    failed on ≥ 1 cases: [-7458869127L] (after 30 shrink steps)
    
  • Enums fails comparisons with unsigned int:

    test `integerset -> enums (unsigned int): valid ge` failed on ≥ 1 cases:
    ([0L], [-1L]) (after 72 shrink steps)
    
    test `integerset -> enums (unsigned int): valid le` failed on ≥ 1 cases:
    ([0L], [-1L]) (after 72 shrink steps)
    
    test `integerset -> enums (unsigned int): valid gt` failed on ≥ 1 cases:
    ([0L], [-1L]) (after 72 shrink steps)
    
    test `integerset -> enums (unsigned int): valid lt` failed on ≥ 1 cases:
    ([0L], [-1L]) (after 72 shrink steps)
    
  • Interval fails comparisons and div/rem with unsigned int:

    test `integerset -> intervals (unsigned int): valid ge`
    failed on ≥ 1 cases: ([0L], [-1L]) (after 72 shrink steps)
    
    test `integerset -> intervals (unsigned int): valid le`
    failed on ≥ 1 cases: ([0L], [-1L]) (after 72 shrink steps)
    
    test `integerset -> intervals (unsigned int): valid gt`
    failed on ≥ 1 cases: ([0L], [-1L]) (after 72 shrink steps)
    
    test `integerset -> intervals (unsigned int): valid lt`
    failed on ≥ 1 cases: ([0L], [-1L]) (after 72 shrink steps)
    
    test `integerset -> intervals (unsigned int): valid rem`
    failed on ≥ 1 cases:
    ([72766417L], [589514379985750L]) (after 25 shrink steps)
    
    test `integerset -> intervals (unsigned int): valid div`
    failed on ≥ 1 cases:
    ([72766417L], [589514379985750L]) (after 25 shrink steps)
    
  • Similar failures for other unsigned types.

  • 46 failures for IBool.


Ideally all of this could be enabled and should succeed the domain tests:

let ikinds: Cil.ikind list = [
(* TODO: enable more, some seem to break things *)
IChar;
ISChar;
(* IUChar; *)
(* IBool; *)
IInt;
(* IUInt; *)
IShort;
(* IUShort; *)
(* ILong; *)
(* IULong; *)
(* ILongLong; *)
(* IULongLong; *)
]

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions