Crash with multiple incompatible declarations
ID0000990: This issue was created automatically from Mantis Issue 990. Further discussion may take place here.
Id | Project | Category | View | Due Date | Updated |
---|---|---|---|---|---|
ID0000990 | Frama-C | Kernel | public | 2011-10-19 | 2014-02-12 |
Reporter | pascal | Assigned To | virgile | Resolution | fixed |
Priority | normal | Severity | crash | Reproducibility | always |
Platform | - | OS | - | OS Version | - |
Product Version | Frama-C Nitrogen-20111001 | Target Version | - | Fixed in Version | Frama-C Oxygen-20120901 |
Description :
~/ppc/bzip2-1.0.6 $ cat f1.c
char s[100];
void perror(const char *);
void f(void){
perror(s);
}
~/ppc/bzip2-1.0.6 $ cat f2.c
char *s;
void perror(const char *);
void g(void){
perror(s);
}
~/ppc/bzip2-1.0.6 $ ~/ppc/bin/toplevel.opt f2.c f1.c
[kernel] warning: cannot load 4 plug-ins (incompatible with Nitrogen-20111001+dev).
Aorai; Obfuscator; Security_slicing;
Wp
[kernel] preprocessing with "gcc -C -E -I. f2.c"
[kernel] preprocessing with "gcc -C -E -I. f1.c"
f2.c:1:[kernel] warning: Incompatible declaration for s (included from f2.c). Previous was at f1.c:1
(include from f1.c) (different type constructors: char [100] vs. char *)]
f1.c:6:[kernel] failure: typeOf: StartOf on a non-array
[kernel] error occurring when exiting Frama-C: stopping exit procedure.
The full backtrace is:
Raised at file "src/kernel/log.ml", line 509, characters 30-31
Called from file "src/kernel/log.ml", line 503, characters 9-16
Re-raised at file "src/kernel/log.ml", line 506, characters 15-16
Called from file "cil/src/mergecil.ml", line 1643, characters 36-48
Called from file "cil/src/cil.ml", line 2256, characters 12-53
Called from file "cil/src/cil.ml", line 1489, characters 13-16
Called from file "cil/src/cil.ml", line 2395, characters 38-57
Called from file "cil/src/cil.ml", line 1489, characters 13-16
Called from file "cil/src/cil.ml", line 1534, characters 24-57
Called from file "cil/src/cil.ml", line 2380, characters 5-52
Called from file "cil/src/cil.ml", line 2506, characters 14-21
Called from file "cil/src/cil.ml", line 1466, characters 21-41
Called from file "cil/src/cil.ml", line 2424, characters 5-86
Called from file "cil/src/cil.ml", line 1489, characters 13-16
Called from file "cil/src/cil.ml", line 2558, characters 16-40
Called from file "cil/src/cil.ml", line 1466, characters 21-41
Called from file "cil/src/cil.ml", line 2771, characters 14-39
Called from file "cil/src/cil.ml", line 1466, characters 21-41
Called from file "cil/src/cil.ml", line 2746, characters 5-91
Called from file "cil/src/cil.ml", line 2822, characters 16-38
Called from file "cil/src/cil.ml", line 1489, characters 13-16
Called from file "cil/src/cil.ml", line 1534, characters 24-57
Called from file "cil/src/cil.ml", line 2816, characters 5-53
Called from file "cil/src/mergecil.ml", line 2181, characters 11-41
Called from file "list.ml", line 69, characters 12-15
Called from file "cil/src/mergecil.ml", line 2465, characters 2-38
Called from file "cil/src/mergecil.ml", line 2612, characters 22-36
Called from file "list.ml", line 69, characters 12-15
Called from file "cil/src/mergecil.ml", line 2612, characters 2-61
Called from file "src/kernel/file.ml", line 830, characters 20-56
Called from file "src/kernel/file.ml", line 1327, characters 12-30
Called from file "src/kernel/file.ml", line 1412, characters 4-27
Called from file "src/kernel/ast.ml", line 64, characters 2-28
Called from file "src/kernel/ast.ml", line 71, characters 53-71
Called from file "queue.ml", line 134, characters 6-20
Called from file "src/kernel/cmdline.ml", line 174, characters 6-23
Frama-C aborted because of internal error.
Please report as 'crash' at http://bts.frama-c.com/.
Your Frama-C version is Nitrogen-20111001+dev.
Note that a version and a backtrace alone often does not have information
to understand the bug. Guidelines for reporting bugs are at:
http://bts.frama-c.com/dokuwiki/doku.php?id=mantis:frama-c:bug_reporting_guidelines
~/ppc/bzip2-1.0.6 $
Additional Information :
I think it would be ok just to be stricter for multiple incompatible declarations.
Edited by Allan Blanchard