Skip to content
Snippets Groups Projects
  1. Oct 12, 2021
    • David Bühler's avatar
      [Eva] Emits indeterminate alarms on call arguments to builtins. · d80e4a34
      David Bühler authored
      'Indeterminate' alarms are alarms about uninitialized memory, escaping pointers
      and special floating-point values (infinite and NaN).
      
      These alarms are emitted for functions specified by -eva-warn-copy-indeterminate
      option, which is @all by default. These alarms can be disabled for some function
      by -eva-warn-copy-indeterminate=-f, in which case they are also disabled for
      the argument expressions of calls to [f].
      
      However:
      - the @all default value did not include functions without definition
        (for which a specification or a builtin is used).
      - 'indeterminate' alarms were emitted anyway for the arguments of calls to
        functions without definition, except for builtins.
      So no indeterminate alarms were emitted for the argument expressions of calls
      to builtins (unless their definitions were included).
      
      This commit fixes this behavior:
      the @all default of -eva-warn-copy-indeterminate option include all functions
      and special case for functions without definition or builtins are removed.
      
      It still avoids to emit surch alarms on Eva directives such as Frama_C_show_each.
      d80e4a34
    • David Bühler's avatar
  2. Oct 11, 2021
  3. Oct 07, 2021
  4. Oct 05, 2021
  5. Sep 21, 2021
    • David Bühler's avatar
      [Eva] Fixes a precision bug in the octagon domain. · e09106e4
      David Bühler authored
      Removes an heuristic that prevented the inference of octagons when the ival
      for [x±y] contains all possible values for the type of [x] or [y].
      This heuristic was too strong:
      - it prevented some inference of relations about unsigned variables, as it also
        checked incorrectly the negation of the given ival;
      - it could prevent the inference of relevant relations between signed variables,
        such as 200 < (int)cx + (int)cy < 200 where [cx] and [cy] have char types.
      
      Instead, we now only checks that a new inferred octagon is not redundant with
      the interval values, i.e. that the value for [x±y] cannot be computed solely
      from the intervals of [x] and [y].
      e09106e4
    • David Bühler's avatar
      [Eva] Fixes a soundness bug in the octagon domain on downcasts. · bbc6855f
      David Bühler authored
      On casts, uses option -warn-[un]signed-downcast (instead of
      -warn-[un]signed-overflow) to known if an integer wrap is possible.
      bbc6855f
  6. Sep 10, 2021
  7. Sep 09, 2021
    • David Bühler's avatar
      [Eva] Improves the precision of the symbolic locations domain. · 710a8df6
      David Bühler authored
      Changes the criterion according to which the symbolic domain retains the value
      of an expression:
      - if the expression is an lvalue with an imprecise location;
      - if the expression is a binary operation between two expressions, each
        containing an lvalue with an imprecise (non-singleton) value.
      
      Otherwise, the value should always be inferred by the cvalue domain, or can
      be precisely computed from values inferred by the cvalue domain.
      710a8df6
  8. Sep 07, 2021
  9. Sep 06, 2021
  10. Sep 01, 2021
  11. Jul 29, 2021
  12. Jul 26, 2021
Loading