Skip to content

GitLab

  • Menu
Projects Groups 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
    • Contributors
    • Graph
    • Compare
  • Issues 204
    • Issues 204
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • Deployments
    • Deployments
    • Releases
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • 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
  • #60
Closed
Open
Created Dec 12, 2018 by mantis-gitlab-migration@mantis-gitlab-migration

Invalid label with spaghetti code and E-ACSL full mmodel

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


Id Project Category View Due Date Updated
ID0002417 Frama-C Plug-in > E-ACSL public 2018-12-12 2020-06-12
Reporter rmalak Assigned To bdesloges Resolution fixed
Priority normal Severity major Reproducibility always
Platform x86_64 OS Linux 4.18 OCaml 4.07.0 OS Version Debian Sid
Product Version Frama-C 18-Argon Target Version - Fixed in Version Frama-C 21-Scandium

Description :

Hi,

Don't know if this should go in E-ACSL or Kernel category.

/////////////////// spaghetti.c int check(void) { return 0; } int main(void) { if( !check() || check() ) { goto mylabel; } mylabel: return 0; } ////////////////////////

Additional Information :

There is no problem in the following cases :

  • remove -e-acsl-full-mmodel
  • remove bracket
  • substitution "!check()" with "check()"
  • substitution "goto mylabel;" with "(void)0;"

Steps To Reproduce :

$ frama-c spaguetti.c -e-acsl -e-acsl-full-mmodel -then-last -print -ocode spaguetti.e-acsl.c [kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl_gmp_api.h (with preprocessing) [kernel] Parsing FRAMAC_SHARE/e-acsl/e_acsl.h (with preprocessing) [kernel] Parsing spaguetti.c (with preprocessing) [e-acsl] beginning translation. [e-acsl] translation done in project "e-acsl". [kernel] User Error: Cannot find label for target of goto: _LOR: __e_acsl_store_block_duplicate((void *)(& tmp_0), (size_t)4); __e_acsl_delete_block((void *)(& tmp_0)); goto mylabel;

Attachments

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