Frama-C Bug Tracking System - Frama-C | |||||
View Issue Details | |||||
ID | Project | Category | View Status | Date Submitted | Last Update |
0000393 | Frama-C | Plug-in > slicing | public | 2010-02-04 14:04 | 2010-04-13 15:33 |
Reporter | pascal | ||||
---|---|---|---|---|---|
Assigned To | Anne | ||||
Priority | normal | Severity | feature | Reproducibility | always |
Status | closed | Resolution | fixed | ||
Platform | OS | OS Version | |||
Product Version | |||||
Target Version | Fixed in Version | Frama-C Boron-20100401 | |||
Summary | 0000393: assigns clauses are missing from the sliced program | ||||
Description | When the original program contains assigns clauses for functions with code, the assigns are always omitted from the generated sliced program. On the other hand pre- and post-conditions seem to be properly included. In the attached example, the command produces a sliced program that contains: /*@ requires \valid(p); behavior default: ensures (p->a > p->b); */ void g_slice_1(las *p ) { ... The expected behavior is for g_slice_1 to contain in its contract the clause: assigns p->a; in addition to the requires and ensures. | ||||
Additional Information | frama-c -slicing-level 3 -slicing-keep-annotations -slice-assert main -slice-print -ocode slice.foo.c -main main -lib-entry -no-unicode -context-valid-pointers foo.c # pragma JessieIntegerModel(exact) typedef struct las { int a; int b; } las; /*@ requires \valid(p); assigns p->a; ensures p->a>p->b; */ void f(las * p){ p->a = p->b + 1;} /*@ requires \valid(p); assigns p->a; ensures p->a>p->b; */ void g(las * p) { f(p); } /*@ requires \valid(p); assigns p->a; ensures p->a>p->b; */ void main(las * p) { g(p); //@ assert p->a>p->b; } | ||||
Tags | No tags attached. | ||||
Relationships | |||||
Attached Files |
Notes | |||||
|
|||||
|
|
||||
|
|||||
|
|
||||
|
|||||
|
|
Issue History | |||||
Date Modified | Username | Field | Change | ||
---|---|---|---|---|---|
2010-02-04 14:04 | pascal | New Issue | |||
2010-02-04 14:04 | pascal | Status | new => assigned | ||
2010-02-04 14:04 | pascal | Assigned To | => Anne | ||
2010-02-04 14:07 | pascal | Status | assigned => acknowledged | ||
2010-02-04 16:09 | patrick | Note Added: 0000667 | |||
2010-02-04 16:39 | patrick | Note Added: 0000668 | |||
2010-02-04 16:39 | patrick | Status | acknowledged => closed | ||
2010-02-04 16:39 | patrick | Resolution | open => fixed | ||
2010-02-04 16:39 | patrick | Fixed in Version | => Frama-C svn, precise the release id | ||
2010-02-04 16:45 | signoles | Status | closed => resolved | ||
2010-02-04 16:45 | signoles | Note Added: 0000670 | |||
2010-04-13 15:30 | signoles | Status | resolved => new | ||
2010-04-13 15:31 | signoles | Status | new => closed | ||
2010-04-13 15:33 | signoles | Fixed in Version | Frama-C svn, precise the release id => Frama-C Boron |