scripts/cpa.sh -heap 50000M -noout -disable-java-assertions -predicateAnalysis-PredAbsRefiner-ABEl -setprop cpa.predicate.handlePointerAliasing=false -64 -timelimit 900s -stats -spec test/programs/benchmarks/ldv-linux-3.0/ALL.prp test/programs/benchmarks/ldv-linux-3.0/usb_urb-drivers-misc-c2port-core.ko_true-unreach-call.cil.out.i.pp.i -------------------------------------------------------------------------------- Running CPAchecker with Java heap of size 50000M. Using the following resource limits: CPU-time limit of 900s (ResourceLimitChecker.fromConfiguration, INFO) CPAchecker 1.4-svn (OpenJDK 64-Bit Server VM 1.7.0_65) started (CPAchecker.run, INFO) line 7082: Dead code detected: Goto: while_break (CFACreationUtils.addEdgeToCFA, INFO) Dead code detected: Label while_break is not reachable. (CFAFunctionBuilder.leave, INFO) line 7167: Dead code detected: Goto: while_break (CFACreationUtils.addEdgeToCFA, INFO) Dead code detected: Label while_break is not reachable. (CFAFunctionBuilder.leave, INFO) Inline assembler ignored, analysis is probably unsound! (CFABuilder.createCFA, WARNING) line 6672: Function pointer *(ops->access) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4746: Function pointer *(ops->c2d_dir) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4748: Function pointer *(ops->c2d_set) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4752: Function pointer *(ops->c2d_set) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4756: Function pointer *(ops->c2d_dir) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4779: Function pointer *(ops->c2d_get) with type int (*)(struct c2port_device *) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4931: Function pointer *(ops->c2d_dir) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4933: Function pointer *(ops->c2d_set) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4937: Function pointer *(ops->c2d_set) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4941: Function pointer *(ops->c2d_set) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4945: Function pointer *(ops->c2d_set) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4949: Function pointer *(ops->c2d_dir) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4961: Function pointer *(ops->c2d_get) with type int (*)(struct c2port_device *) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 5015: Function pointer *(ops->c2d_get) with type int (*)(struct c2port_device *) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4589: Function pointer *(ops->c2ck_set) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4593: Function pointer *(ops->c2ck_set) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 5302: Function pointer *(ops->c2ck_set) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 5309: Function pointer *(ops->access) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 5315: Function pointer *(ops->c2d_dir) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4644: Function pointer *(ops->c2ck_set) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4648: Function pointer *(ops->c2ck_set) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4686: Function pointer *(ops->c2d_dir) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4688: Function pointer *(ops->c2d_set) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4692: Function pointer *(ops->c2d_set) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4725: Function pointer *(ops->c2d_dir) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4711: Function pointer *(ops->c2d_set) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4816: Function pointer *(ops->c2d_dir) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4818: Function pointer *(ops->c2d_set) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4822: Function pointer *(ops->c2d_set) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4826: Function pointer *(ops->c2d_set) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4830: Function pointer *(ops->c2d_set) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4863: Function pointer *(ops->c2d_dir) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4875: Function pointer *(ops->c2d_get) with type int (*)(struct c2port_device *) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) line 4849: Function pointer *(ops->c2d_set) with type void (*)(struct c2port_device *, int) is called, but no possible target functions were found. (CFunctionPointerResolver.replaceFunctionPointerCall, WARNING) Handling of pointer aliasing is disabled, analysis is unsound if aliased pointers exist. (PredicateCPA:PathFormulaManagerImpl., WARNING) Using predicate analysis with SMTInterpol 2.1-174-ga199d47-comp and JFactory 1.21. (PredicateCPA:PredicateCPA., INFO) Using refinement for predicate analysis with PredicateAbstractionRefinementStrategy strategy. (PredicateCPA:PredicateCPARefiner., INFO) The following configuration options were specified but are not used: cpa.predicate.memoryAllocationsAlwaysSucceed cpa.predicate.maxPreFilledAllocationSize (CPAchecker.printConfigurationWarnings, WARNING) Starting analysis ... (CPAchecker.runAlgorithm, INFO) Assuming external function ldv_initialize to be a constant function. (PredicateCPA:ExpressionToFormulaVisitor.visit, INFO) Assuming external function __class_create to be a pure function. (PredicateCPA:ExpressionToFormulaVisitor.visit, INFO) Assuming external function dev_get_drvdata to be a pure function. (PredicateCPA:ExpressionToFormulaVisitor.visit, INFO) Assuming external function mutex_lock_nested to be a pure function. (PredicateCPA:ExpressionToFormulaVisitor.visit, INFO) Assuming external function trace_hardirqs_off to be a constant function. (PredicateCPA:ExpressionToFormulaVisitor.visit, INFO) line 4644: Ignoring function call through function pointer *(ops->c2ck_set): (*(ops->c2ck_set))(dev, 0); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) Assuming external function __const_udelay to be a pure function. (PredicateCPA:ExpressionToFormulaVisitor.visit, INFO) line 4648: Ignoring function call through function pointer *(ops->c2ck_set): (*(ops->c2ck_set))(dev, 1); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) Assuming external function trace_hardirqs_on to be a constant function. (PredicateCPA:ExpressionToFormulaVisitor.visit, INFO) line 4686: Ignoring function call through function pointer *(ops->c2d_dir): (*(ops->c2d_dir))(dev, 0); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4688: Ignoring function call through function pointer *(ops->c2d_set): (*(ops->c2d_set))(dev, 1); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4692: Ignoring function call through function pointer *(ops->c2d_set): (*(ops->c2d_set))(dev, 1); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4725: Ignoring function call through function pointer *(ops->c2d_dir): (*(ops->c2d_dir))(dev, 1); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4711: Ignoring function call through function pointer *(ops->c2d_set): (*(ops->c2d_set))(dev, ((int)addr) & 1); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4816: Ignoring function call through function pointer *(ops->c2d_dir): (*(ops->c2d_dir))(dev, 0); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4818: Ignoring function call through function pointer *(ops->c2d_set): (*(ops->c2d_set))(dev, 1); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4822: Ignoring function call through function pointer *(ops->c2d_set): (*(ops->c2d_set))(dev, 0); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4826: Ignoring function call through function pointer *(ops->c2d_set): (*(ops->c2d_set))(dev, 0); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4830: Ignoring function call through function pointer *(ops->c2d_set): (*(ops->c2d_set))(dev, 0); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4863: Ignoring function call through function pointer *(ops->c2d_dir): (*(ops->c2d_dir))(dev, 1); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4875: Ignoring function call through function pointer *(ops->c2d_get): tmp___7 = (*(ops->c2d_get))(dev); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4849: Ignoring function call through function pointer *(ops->c2d_set): (*(ops->c2d_set))(dev, ((int)data) & 1); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4746: Ignoring function call through function pointer *(ops->c2d_dir): (*(ops->c2d_dir))(dev, 0); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4748: Ignoring function call through function pointer *(ops->c2d_set): (*(ops->c2d_set))(dev, 0); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4752: Ignoring function call through function pointer *(ops->c2d_set): (*(ops->c2d_set))(dev, 1); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4756: Ignoring function call through function pointer *(ops->c2d_dir): (*(ops->c2d_dir))(dev, 1); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) Program contains array, or pointer (multiple level of indirection), or field (enable handleFieldAccess and handleFieldAliasing) access; analysis is imprecise in case of aliasing. (PredicateCPA:CtoFormulaConverter.makeVariableUnsafe, WARNING) line 4779: Ignoring function call through function pointer *(ops->c2d_get): tmp___7 = (*(ops->c2d_get))(dev); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4931: Ignoring function call through function pointer *(ops->c2d_dir): (*(ops->c2d_dir))(dev, 0); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4933: Ignoring function call through function pointer *(ops->c2d_set): (*(ops->c2d_set))(dev, 0); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4937: Ignoring function call through function pointer *(ops->c2d_set): (*(ops->c2d_set))(dev, 0); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4941: Ignoring function call through function pointer *(ops->c2d_set): (*(ops->c2d_set))(dev, 0); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4945: Ignoring function call through function pointer *(ops->c2d_set): (*(ops->c2d_set))(dev, 0); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4949: Ignoring function call through function pointer *(ops->c2d_dir): (*(ops->c2d_dir))(dev, 1); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 4961: Ignoring function call through function pointer *(ops->c2d_get): tmp___7 = (*(ops->c2d_get))(dev); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) line 5015: Ignoring function call through function pointer *(ops->c2d_get): tmp___8 = (*(ops->c2d_get))(dev); (PredicateCPA:ExpressionToFormulaVisitor.visit, WARNING) Assuming external function mutex_unlock to be a pure function. (PredicateCPA:ExpressionToFormulaVisitor.visit, INFO) Assuming external function dev_err to be a pure function. (PredicateCPA:ExpressionToFormulaVisitor.visit, INFO) Assuming external function class_destroy to be a pure function. (PredicateCPA:ExpressionToFormulaVisitor.visit, INFO) Stopping analysis ... (CPAchecker.runAlgorithm, INFO) PredicateCPA statistics ----------------------- Number of abstractions: 394 (1% of all post computations) Times abstraction was reused: 0 Because of function entry/exit: 0 (0%) Because of loop head: 394 (100%) Because of join nodes: 0 (0%) Because of threshold: 0 (0%) Times precision was empty: 236 (60%) Times precision was {false}: 0 (0%) Times result was cached: 40 (10%) Times cartesian abs was used: 0 (0%) Times boolean abs was used: 118 (30%) Times result was 'false': 6 (2%) Number of strengthen sat checks: 7 Times result was 'false': 6 (86%) Number of coverage checks: 911 BDD entailment checks: 231 Number of SMT sat checks: 7 trivial: 0 cached: 2 Max ABE block size: 74 Number of predicates discovered: 4 Number of abstraction locations: 0 Max number of predicates per location: 0 Avg number of predicates per location: 0 Total predicates per abstraction: 472 Max number of predicates per abstraction: 4 Avg number of predicates per abstraction: 4.00 Number of irrelevant predicates: 0 (0%) Number of preds handled by boolean abs: 472 (100%) Total number of models for allsat: 112 Max number of models for allsat: 1 Avg number of models for allsat: 0.95 Number of path formula cache hits: 11693 (41%) Time for post operator: 1.070s Time for path formula creation: 0.913s Actual computation: 0.818s Time for strengthen operator: 0.072s Time for satisfiability checks: 0.030s Time for prec operator: 1.054s Time for abstraction: 1.024s (Max: 0.044s, Count: 394) Boolean abstraction: 0.366s Solving time: 0.254s (Max: 0.039s) Model enumeration time: 0.039s Time for BDD construction: 0.002s (Max: 0.001s) Time for merge operator: 0.053s Time for coverage check: 0.004s Time for BDD entailment checks: 0.003s Total time for SMT solver (w/o itp): 0.323s Number of BDD nodes: 208 Size of BDD node table: 10007 Size of BDD node cleanup queue: 110 (count: 952, min: 0, max: 110, avg: 0,12) Time for BDD node cleanup: 0.000s Time for BDD garbage collection: 0.000s (in 0 runs) PrecisionBootstrap statistics ----------------------------- Init. function predicates: 0 Init. global predicates: 0 Init. location predicates: 0 AutomatonAnalysis (SVCOMP) statistics ------------------------------------- Number of states: 1 Total time for successor computation: 0.371s Automaton transfers with branching: 0 Automaton transfer successors: 59352 (count: 59352, min: 1, max: 1, avg: 1,00) [1 x 59352] CPA algorithm statistics ------------------------ Number of iterations: 27396 Max size of waitlist: 66 Average size of waitlist: 25 Number of computed successors: 27968 Max successors for one state: 2 Number of times merged: 340 Number of times stopped: 571 Number of times breaked: 1 Total time for CPA algorithm: 3.944s (Max: 2.621s) Time for choose from waitlist: 0.076s Time for precision adjustment: 1.220s Time for transfer relation: 1.982s Time for merge operator: 0.067s Time for stop operator: 0.078s Time for adding to reached set: 0.173s Predicate-Abstraction Refiner statistics ---------------------------------------- Avg. length of target path (in blocks): 2 (count: 1, min: 2, max: 2, avg: 2,00) Time for refinement: 0.277s Counterexample analysis: 0.006s (Max: 0.006s, Calls: 1) Refinement sat check: 0.005s Interpolant computation: 0.000s Error path post-processing: 0.000s Path-formulas extraction: 0.000s Building the counterexample trace: 0.007s Extracting precise counterexample: 0.000s Predicate creation: 0.000s Precision update: 0.000s ARG update: 0.000s Length of refined path (in blocks): 0 (count: 0, min: 0, max: 0, avg: 0,00) Number of affected states: 0 (count: 0, min: 0, max: 0, avg: 0,00) Length (states) of path with itp 'true': 0 (count: 0, min: 0, max: 0, avg: 0,00) Length (states) of path with itp non-trivial itp: 0 (count: 0, min: 0, max: 0, avg: 0,00) Length (states) of path with itp 'false': 0 (count: 0, min: 0, max: 0, avg: 0,00) Different non-trivial interpolants along paths: 0 (count: 0, min: 0, max: 0, avg: 0,00) Equal non-trivial interpolants along paths: 0 (count: 0, min: 0, max: 0, avg: 0,00) Different precisions along paths: 0 (count: 0, min: 0, max: 0, avg: 0,00) Equal precisions along paths: 0 (count: 0, min: 0, max: 0, avg: 0,00) Number of refs with location-based cutoff: 0 CEGAR algorithm statistics -------------------------- Number of refinements: 1 Number of successful refinements: 1 Number of failed refinements: 0 Max. size of reached set before ref.: 16221 Max. size of reached set after ref.: 1 Avg. size of reached set before ref.: 16221.00 Avg. size of reached set after ref.: 1.00 Total time for CEGAR algorithm: 4.232s Time for refinements: 0.287s Average time for refinement: 0.287s Max time for refinement: 0.287s Counterexample-Check Algorithm statistics ----------------------------------------- Number of counterexample checks: 0 CPAchecker general statistics ----------------------------- Number of program locations: 889 Number of functions: 50 Number of loops: 12 Size of reached set: 11178 Number of reached locations: 447 (50%) Avg states per location: 25 Max states per location: 207 (at node N0) Number of reached functions: 18 (36%) Number of partitions: 11178 Avg size of partitions: 1 Max size of partitions: 1 Number of target states: 0 Time for analysis setup: 3.435s Time for loading CPAs: 1.005s Time for loading parser: 0.352s Time for CFA construction: 1.755s Time for parsing file(s): 0.534s Time for AST to CFA: 0.753s Time for CFA sanity check: 0.000s Time for post-processing: 0.312s Time for var class.: 0.000s Time for Analysis: 4.240s CPU time for analysis: 9.470s Total time for CPAchecker: 7.679s Total CPU time for CPAchecker: 13.950s Time for Garbage Collector: 0.036s (in 1 runs) Garbage Collector(s) used: PS MarkSweep, PS Scavenge Used heap memory: 529MB ( 504 MiB) max; 259MB ( 247 MiB) avg; 573MB ( 546 MiB) peak Used non-heap memory: 24MB ( 23 MiB) max; 19MB ( 18 MiB) avg; 24MB ( 23 MiB) peak Used in PS Old Gen pool: 0MB ( 0 MiB) max; 0MB ( 0 MiB) avg; 0MB ( 0 MiB) peak Allocated heap memory: 2024MB ( 1930 MiB) max; 2024MB ( 1930 MiB) avg Allocated non-heap memory: 25MB ( 24 MiB) max; 24MB ( 23 MiB) avg Total process virtual memory: 57056MB ( 54413 MiB) max; 57054MB ( 54411 MiB) avg Verification result: TRUE. No property violation found by chosen configuration. More details about the verification run can be found in the directory "./output".