Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
  • F frama-c
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 168
    • Issues 168
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
    • Model experiments
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • Repository
  • Wiki
    • Wiki
  • Activity
  • Graph
  • Create a new issue
  • Commits
  • Issue Boards
Collapse sidebar
  • pub
  • frama-c
  • Issues
  • #1541
Closed
Open
Issue created Jan 20, 2010 by Dillon Pariente@dillon

Burstall-Bornat style on array init

ID0000377: This issue was created automatically from Mantis Issue 377. Further discussion may take place here.


Id Project Category View Due Date Updated
ID0000377 Frama-C Plug-in > jessie public 2010-01-20 2014-02-12
Reporter dpariente Assigned To cmarche Resolution fixed
Priority normal Severity minor Reproducibility always
Platform - OS - OS Version -
Product Version Frama-C Beryllium-20090902 Target Version - Fixed in Version -

Description :

(This issue was previously discussed with Frama-C team, and its solution - if not distorted too much - provided by CM)

On the following code:

void f() { float t[100]={0.,1.,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14., ...}; //@ assert t[0]==0.; }

analyzed with : frama-c -jessie foo.c

PO generated for assert clause contains "nested" memory stores: mem1 == store(mem0, t[0], 0.) mem2 == store(mem1, t[1], 1.) mem3 == store(mem2, t[2], 2.) ... which can make difficult discharging by automatic theorem provers.

This could be avoided by replacing these nested stores by something like: select(mem0, t[0]) == 0. select(mem0, t[1]) == 1. select(mem0, t[2]) == 2. ...

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking