goblint / analyzer

Static analysis framework for C
https://goblint.in.tum.de
MIT License
185 stars 75 forks source link

sv-benchmarks unsoundness with loop unrolling #900

Closed sim642 closed 2 years ago

sim642 commented 2 years ago

The unsound cases are all LDV-related, maybe you can have a look @sim642 since you looked into some similar ones as well.

At this point I am fairly convinced that the tasks are at fault, and would propose to merge this regardless (and in the worst case if we can not fix the benchmarks before keep the autotuner option for loop unrolling off for sv-comp).

Originally posted by @michael-schwarz in https://github.com/goblint/analyzer/issues/896#issuecomment-1309966941

sim642 commented 2 years ago

c/ldv-linux-3.16-rc1/205_9a_array_unsafes_linux-3.16-rc1.tar.xz-205_9a-drivers--net--wan--hdlc_cisco.ko-entry_point.cil.out.i

Originally posted by @michael-schwarz in https://github.com/goblint/analyzer/issues/896#issuecomment-1310160957

Same reasoning:

michael-schwarz commented 2 years ago
michael-schwarz commented 2 years ago
michael-schwarz commented 2 years ago

c/ldv-linux-4.2-rc1/linux-4.2-rc1.tar.xz-08_1a-drivers--md--dm-cache.ko-entry_point.cil.out.yml

Thus ldv_module_refcounter is never modified and the assert should hold due to always assuming argc is 0

michael-schwarz commented 2 years ago

c/ldv-linux-4.2-rc1/linux-4.2-rc1.tar.xz-08_1a-drivers--staging--comedi--comedi.ko-entry_point.cil.out.yml

Thus the issue is that comedi_board_minor_table is not properly intialized.

michael-schwarz commented 2 years ago

Corresponding upstream PR was merged.