Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Incorrect TRUE for warning: ignoring bswap #38

Open
lucasccordeiro opened this issue Dec 4, 2017 · 4 comments
Open

Incorrect TRUE for warning: ignoring bswap #38

lucasccordeiro opened this issue Dec 4, 2017 · 4 comments
Labels

Comments

@lucasccordeiro
Copy link
Collaborator

./cbmc --graphml-witness witness.graphml --64 --propertyfile ../../sv-benchmarks/c/Systems_DeviceDriversLinux64_ReachSafety.prp ../../sv-benchmarks/c/ldv-linux-4.0-rc1-mav/linux-4.0-rc1---net--netfilter--nfnetlink_log.ko_false-unreach-call.cil.c

Passing problem to propositional reduction
converting SSA
warning: ignoring bswap
  * type: unsignedbv
      * width: 32
      * #c_type: unsigned_int
  * #source_location: 
    * file: ../../sv-benchmarks/c/ldv-linux-4.0-rc1-mav/linux-4.0-rc1---net--netfilter--nfnetlink_log.ko_false-unreach-call.cil.c
    * line: 7012
    * function: __fswab32
    * working_directory: /tmp/vcloud-vcloud-master/worker/working_dir_100fb440-a49d-470a-945c-070576e16c64/bin-2018/cbmc
  0: symbol
      * type: unsignedbv
          * width: 32
          * #c_type: unsigned_int
      * identifier: __fswab32::val!0@1#1
      * expression: symbol
          * type: unsignedbv
              * width: 32
              * #c_type: unsigned_int
          * identifier: __fswab32::val
      * L0: 0
      * L1: 1
      * L2: 1
      * L1_object_identifier: __fswab32::val!0@1
      * #SSA_symbol: 1
warning: ignoring bswap
  * type: unsignedbv
      * width: 32
      * #c_type: unsigned_int
  * #source_location: 
    * file: ../../sv-benchmarks/c/ldv-linux-4.0-rc1-mav/linux-4.0-rc1---net--netfilter--nfnetlink_log.ko_false-unreach-call.cil.c
    * line: 7012
    * function: __fswab32
    * working_directory: /tmp/vcloud-vcloud-master/worker/working_dir_100fb440-a49d-470a-945c-070576e16c64/bin-2018/cbmc
  0: symbol
      * type: unsignedbv
          * width: 32
          * #c_type: unsigned_int
      * identifier: __fswab32::val!0@2#1
      * expression: symbol
          * type: unsignedbv
              * width: 32
              * #c_type: unsigned_int
          * identifier: __fswab32::val
      * L0: 0
      * L1: 2
      * L2: 1
      * L1_object_identifier: __fswab32::val!0@2
      * #SSA_symbol: 1
warning: ignoring bswap
  * type: unsignedbv
      * width: 32
      * #c_type: unsigned_int
  * #source_location: 
    * file: ../../sv-benchmarks/c/ldv-linux-4.0-rc1-mav/linux-4.0-rc1---net--netfilter--nfnetlink_log.ko_false-unreach-call.cil.c
    * line: 7012
    * function: __fswab32
    * working_directory: /tmp/vcloud-vcloud-master/worker/working_dir_100fb440-a49d-470a-945c-070576e16c64/bin-2018/cbmc
  0: symbol
      * type: unsignedbv
          * width: 32
          * #c_type: unsigned_int
      * identifier: __fswab32::val!0@3#1
      * expression: symbol
          * type: unsignedbv
              * width: 32
              * #c_type: unsigned_int
          * identifier: __fswab32::val
      * L0: 0
      * L1: 3
      * L2: 1
      * L1_object_identifier: __fswab32::val!0@3
      * #SSA_symbol: 1
warning: ignoring bswap
  * type: unsignedbv
      * width: 32
      * #c_type: unsigned_int
  * #source_location: 
    * file: ../../sv-benchmarks/c/ldv-linux-4.0-rc1-mav/linux-4.0-rc1---net--netfilter--nfnetlink_log.ko_false-unreach-call.cil.c
    * line: 7012
    * function: __fswab32
    * working_directory: /tmp/vcloud-vcloud-master/worker/working_dir_100fb440-a49d-470a-945c-070576e16c64/bin-2018/cbmc
  0: symbol
      * type: unsignedbv
          * width: 32
          * #c_type: unsigned_int
      * identifier: __fswab32::val!0@4#1
      * expression: symbol
          * type: unsignedbv
              * width: 32
              * #c_type: unsigned_int
          * identifier: __fswab32::val
      * L0: 0
      * L1: 4
      * L2: 1
      * L1_object_identifier: __fswab32::val!0@4
      * #SSA_symbol: 1
warning: ignoring bswap
  * type: unsignedbv
      * width: 32
      * #c_type: unsigned_int
  * #source_location: 
    * file: ../../sv-benchmarks/c/ldv-linux-4.0-rc1-mav/linux-4.0-rc1---net--netfilter--nfnetlink_log.ko_false-unreach-call.cil.c
    * line: 7012
    * function: __fswab32
    * working_directory: /tmp/vcloud-vcloud-master/worker/working_dir_100fb440-a49d-470a-945c-070576e16c64/bin-2018/cbmc
  0: symbol
      * type: unsignedbv
          * width: 32
          * #c_type: unsigned_int
      * identifier: __fswab32::val!0@5#1
      * expression: symbol
          * type: unsignedbv
              * width: 32
              * #c_type: unsigned_int
          * identifier: __fswab32::val
      * L0: 0
      * L1: 5
      * L2: 1
      * L1_object_identifier: __fswab32::val!0@5
      * #SSA_symbol: 1
warning: ignoring bswap
  * type: unsignedbv
      * width: 32
      * #c_type: unsigned_int
  * #source_location: 
    * file: ../../sv-benchmarks/c/ldv-linux-4.0-rc1-mav/linux-4.0-rc1---net--netfilter--nfnetlink_log.ko_false-unreach-call.cil.c
    * line: 7012
    * function: __fswab32
    * working_directory: /tmp/vcloud-vcloud-master/worker/working_dir_100fb440-a49d-470a-945c-070576e16c64/bin-2018/cbmc
  0: symbol
      * type: unsignedbv
          * width: 32
          * #c_type: unsigned_int
      * identifier: __fswab32::val!0@6#1
      * expression: symbol
          * type: unsignedbv
              * width: 32
              * #c_type: unsigned_int
          * identifier: __fswab32::val
      * L0: 0
      * L1: 6
      * L2: 1
      * L1_object_identifier: __fswab32::val!0@6
      * #SSA_symbol: 1
warning: ignoring bswap
  * type: unsignedbv
      * width: 32
      * #c_type: unsigned_int
  * #source_location: 
    * file: ../../sv-benchmarks/c/ldv-linux-4.0-rc1-mav/linux-4.0-rc1---net--netfilter--nfnetlink_log.ko_false-unreach-call.cil.c
    * line: 7012
    * function: __fswab32
    * working_directory: /tmp/vcloud-vcloud-master/worker/working_dir_100fb440-a49d-470a-945c-070576e16c64/bin-2018/cbmc
  0: symbol
      * type: unsignedbv
          * width: 32
          * #c_type: unsigned_int
      * identifier: __fswab32::val!0@7#1
      * expression: symbol
          * type: unsignedbv
              * width: 32
              * #c_type: unsigned_int
          * identifier: __fswab32::val
      * L0: 0
      * L1: 7
      * L2: 1
      * L1_object_identifier: __fswab32::val!0@7
      * #SSA_symbol: 1
warning: ignoring bswap
  * type: unsignedbv
      * width: 32
      * #c_type: unsigned_int
  * #source_location: 
    * file: ../../sv-benchmarks/c/ldv-linux-4.0-rc1-mav/linux-4.0-rc1---net--netfilter--nfnetlink_log.ko_false-unreach-call.cil.c
    * line: 7012
    * function: __fswab32
    * working_directory: /tmp/vcloud-vcloud-master/worker/working_dir_100fb440-a49d-470a-945c-070576e16c64/bin-2018/cbmc
  0: symbol
      * type: unsignedbv
          * width: 32
          * #c_type: unsigned_int
      * identifier: __fswab32::val!0@8#1
      * expression: symbol
          * type: unsignedbv
              * width: 32
              * #c_type: unsigned_int
          * identifier: __fswab32::val
      * L0: 0
      * L1: 8
      * L2: 1
      * L1_object_identifier: __fswab32::val!0@8
      * #SSA_symbol: 1
Running propositional reduction
Post-processing
Solving with Glucose Syrup with simplifier
2288405 variables, 7357188 clauses
SAT checker: instance is UNSATISFIABLE
Runtime decision procedure: 3.301s
VERIFICATION SUCCESSFUL
EC=0
TRUE
@lucasccordeiro
Copy link
Collaborator Author

@tautschnig: I think I have seen one of your PRs related to bswap.

@tautschnig
Copy link
Collaborator

Yes, but 1) should that be the root cause then there's a problem with the benchmark as it would rely on GCC built-ins; 2) I believe we would generate non-deterministic values in such a case, and thus over-approximate rather than introduce an error. Also, the solver terminates VERY quickly, so I'd be a bit surprised if it were related to bswap.

@lucasccordeiro
Copy link
Collaborator Author

lucasccordeiro commented Dec 4, 2017 via email

@marek-trtik
Copy link
Owner

marek-trtik commented Dec 4, 2017

Here are results of my investigation:

  • I failed to manually prove or disprove the classification of the benchmark, because the benchmark is big and messy, and no short property-violating error trace exists (I failed to find any).
  • For low unwind constant CBMC terminates with TRUE, for larger constants (e.g. 40) it timeouts (15min).
  • I checked other tools for error traces, namely CPA-seq, SMACK, ESBMC, UAutomizer. But none of them successfully analysed the benchmarks (typically timeouts).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants