size of long array can't be represented with OCaml int
ID0000522: This issue was created automatically from Mantis Issue 522. Further discussion may take place here.
Id | Project | Category | View | Due Date | Updated |
---|---|---|---|---|---|
ID0000522 | Frama-C | Kernel | public | 2010-06-28 | 2011-10-10 |
Reporter | Jochen | Assigned To | virgile | Resolution | fixed |
Priority | normal | Severity | crash | Reproducibility | always |
Platform | - | OS | - | OS Version | - |
Product Version | Frama-C Boron-20100401 | Target Version | - | Fixed in Version | Frama-C Nitrogen-20111001 |
Description :
When running the attached program, Jessie asked me to report a 'crash':
liveness_test.c:57:[jessie] failure: Unexpected exception. Please submit bug report (Ref. "Cil.SizeOfError("Array is so long that its size can't be represented with an OCaml int.", _)"). [kernel] The full backtrace is: Raised at file "src/kernel/log.ml", line 506, characters 30-31 Called from file "src/kernel/log.ml", line 500, characters 2-9 Re-raised at file "src/kernel/log.ml", line 503, characters 8-9 Called from file "src/lib/type.ml", line 746, characters 40-45 Called from file "queue.ml", line 134, characters 6-20 Called from file "src/kernel/boot.ml", line 50, characters 4-20 Called from file "src/kernel/cmdline.ml", line 170, characters 4-8
Plug-in jessie aborted because of an internal error.
Please report as 'crash' at http://bts.frama-c.com
In fact, the array "hist" in line 52 has a size of (4+4+4)*16777215=201326580, which is beyond the max value of a signed int. I'll just decrease the upper bound of that array as a workaround. (By the way: gcc has similar problems with large arrays.)