validity of a field defined in an abstract struct typedef
ID0001486: This issue was created automatically from Mantis Issue 1486. Further discussion may take place here.
Id | Project | Category | View | Due Date | Updated |
---|---|---|---|---|---|
ID0001486 | Frama-C | Plug-in > Eva | public | 2013-09-26 | 2014-03-13 |
Reporter | dpariente | Assigned To | yakobowski | Resolution | fixed |
Priority | normal | Severity | major | Reproducibility | always |
Platform | - | OS | - | OS Version | - |
Product Version | Frama-C Fluorine-20130501 | Target Version | - | Fixed in Version | Frama-C Neon-20140301 |
Description :
[STANCE]
The small source code snippet is extracted from an Apache server module.
//------------------------------------ struct core_dir_config { int server_signature; } core_dir_config; typedef struct core_dir_config core_dir_config;
struct request_rec { struct ap_conf_vector_t *per_dir_config; } request_rec; typedef struct request_rec request_rec;
//@ requires \valid(r->per_dir_config); const char * app(request_rec *r) { core_dir_config *conf; conf = (core_dir_config *)(((void **)(r->per_dir_config))[0]); if (conf->server_signature == 1) { return ""; } return " "; } //------------------------------------
When analyzed by: frama-c -val -main app bug.c -lib-entry -no-unicode
Value generates an error: $ Internal error 835; debug info: {{ NULL -> {0}; S_r -> {0} }} (size:<32>)
Is it "abstract struct type" related? Is there any workaround?