java -Xmx6000000000 -jar ./plugins/org.eclipse.equinox.launcher_1.3.100.v20150511-1540.jar -data ./data --generate-csv --csv-dir ../../../releaseScripts/default/UAutomizer-linux/csv -tc ../../../trunk/examples/toolchains/AbstractInterpretationC.xml -s ../../../trunk/examples/settings/ai/eq-bench/svcomp-DerefFreeMemtrack-32bit-Automizer_Camel+AI_EQ_imprecise.epf -i ../../../trunk/examples/svcomp/memsafety/test-0521_true-valid-memsafety.i -------------------------------------------------------------------------------- This is Ultimate 0.1.23-6b94a2f [2018-01-24 16:26:51,336 INFO L170 SettingsManager]: Resetting all preferences to default values... [2018-01-24 16:26:51,338 INFO L174 SettingsManager]: Resetting UltimateCore preferences to default values [2018-01-24 16:26:51,352 INFO L177 SettingsManager]: Ultimate Commandline Interface provides no preferences, ignoring... [2018-01-24 16:26:51,352 INFO L174 SettingsManager]: Resetting Boogie Preprocessor preferences to default values [2018-01-24 16:26:51,353 INFO L174 SettingsManager]: Resetting Boogie Procedure Inliner preferences to default values [2018-01-24 16:26:51,354 INFO L174 SettingsManager]: Resetting Abstract Interpretation preferences to default values [2018-01-24 16:26:51,356 INFO L174 SettingsManager]: Resetting LassoRanker preferences to default values [2018-01-24 16:26:51,357 INFO L174 SettingsManager]: Resetting Reaching Definitions preferences to default values [2018-01-24 16:26:51,358 INFO L174 SettingsManager]: Resetting SyntaxChecker preferences to default values [2018-01-24 16:26:51,359 INFO L177 SettingsManager]: Büchi Program Product provides no preferences, ignoring... [2018-01-24 16:26:51,360 INFO L174 SettingsManager]: Resetting LTL2Aut preferences to default values [2018-01-24 16:26:51,361 INFO L174 SettingsManager]: Resetting BlockEncodingV2 preferences to default values [2018-01-24 16:26:51,362 INFO L174 SettingsManager]: Resetting AutomataScriptInterpreter preferences to default values [2018-01-24 16:26:51,363 INFO L174 SettingsManager]: Resetting BuchiAutomizer preferences to default values [2018-01-24 16:26:51,366 INFO L174 SettingsManager]: Resetting CACSL2BoogieTranslator preferences to default values [2018-01-24 16:26:51,368 INFO L174 SettingsManager]: Resetting CodeCheck preferences to default values [2018-01-24 16:26:51,370 INFO L174 SettingsManager]: Resetting InvariantSynthesis preferences to default values [2018-01-24 16:26:51,371 INFO L174 SettingsManager]: Resetting RCFGBuilder preferences to default values [2018-01-24 16:26:51,373 INFO L174 SettingsManager]: Resetting TraceAbstraction preferences to default values [2018-01-24 16:26:51,375 INFO L177 SettingsManager]: TraceAbstractionConcurrent provides no preferences, ignoring... [2018-01-24 16:26:51,376 INFO L177 SettingsManager]: TraceAbstractionWithAFAs provides no preferences, ignoring... [2018-01-24 16:26:51,376 INFO L174 SettingsManager]: Resetting IcfgTransformer preferences to default values [2018-01-24 16:26:51,377 INFO L174 SettingsManager]: Resetting Boogie Printer preferences to default values [2018-01-24 16:26:51,378 INFO L174 SettingsManager]: Resetting Witness Printer preferences to default values [2018-01-24 16:26:51,379 INFO L177 SettingsManager]: Boogie PL CUP Parser provides no preferences, ignoring... [2018-01-24 16:26:51,379 INFO L174 SettingsManager]: Resetting CDTParser preferences to default values [2018-01-24 16:26:51,380 INFO L177 SettingsManager]: PEA to Boogie provides no preferences, ignoring... [2018-01-24 16:26:51,380 INFO L177 SettingsManager]: AutomataScriptParser provides no preferences, ignoring... [2018-01-24 16:26:51,381 INFO L174 SettingsManager]: Resetting Witness Parser preferences to default values [2018-01-24 16:26:51,381 INFO L181 SettingsManager]: Finished resetting all preferences to default values... [2018-01-24 16:26:51,382 INFO L98 SettingsManager]: Beginning loading settings from /storage/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/settings/ai/eq-bench/svcomp-DerefFreeMemtrack-32bit-Automizer_Camel+AI_EQ_imprecise.epf [2018-01-24 16:26:51,390 INFO L110 SettingsManager]: Loading preferences was successful [2018-01-24 16:26:51,391 INFO L112 SettingsManager]: Preferences different from defaults after loading the file: [2018-01-24 16:26:51,392 INFO L131 SettingsManager]: Preferences of Boogie Procedure Inliner differ from their defaults: [2018-01-24 16:26:51,392 INFO L133 SettingsManager]: * to procedures, called more than once=true [2018-01-24 16:26:51,392 INFO L131 SettingsManager]: Preferences of Abstract Interpretation differ from their defaults: [2018-01-24 16:26:51,392 INFO L133 SettingsManager]: * Deactivate Weak Equivalences=true [2018-01-24 16:26:51,392 INFO L133 SettingsManager]: * Abstract domain for RCFG-of-the-future=VPDomain [2018-01-24 16:26:51,392 INFO L133 SettingsManager]: * Use the RCFG-of-the-future interface=true [2018-01-24 16:26:51,393 INFO L131 SettingsManager]: Preferences of CACSL2BoogieTranslator differ from their defaults: [2018-01-24 16:26:51,393 INFO L133 SettingsManager]: * sizeof long=4 [2018-01-24 16:26:51,393 INFO L133 SettingsManager]: * Check unreachability of error function in SV-COMP mode=false [2018-01-24 16:26:51,393 INFO L133 SettingsManager]: * Overapproximate operations on floating types=true [2018-01-24 16:26:51,393 INFO L133 SettingsManager]: * sizeof POINTER=4 [2018-01-24 16:26:51,394 INFO L133 SettingsManager]: * Check division by zero=IGNORE [2018-01-24 16:26:51,394 INFO L133 SettingsManager]: * Check for the main procedure if all allocated memory was freed=true [2018-01-24 16:26:51,394 INFO L133 SettingsManager]: * Bitprecise bitfields=true [2018-01-24 16:26:51,394 INFO L133 SettingsManager]: * SV-COMP memtrack compatibility mode=true [2018-01-24 16:26:51,394 INFO L133 SettingsManager]: * If two pointers are subtracted or compared they have the same base address=IGNORE [2018-01-24 16:26:51,394 INFO L133 SettingsManager]: * sizeof long double=12 [2018-01-24 16:26:51,394 INFO L131 SettingsManager]: Preferences of RCFGBuilder differ from their defaults: [2018-01-24 16:26:51,395 INFO L133 SettingsManager]: * Size of a code block=SequenceOfStatements [2018-01-24 16:26:51,395 INFO L133 SettingsManager]: * To the following directory=./dump/ [2018-01-24 16:26:51,395 INFO L133 SettingsManager]: * Add additional assume for each assert=false [2018-01-24 16:26:51,395 INFO L133 SettingsManager]: * SMT solver=External_DefaultMode [2018-01-24 16:26:51,395 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-01-24 16:26:51,396 INFO L131 SettingsManager]: Preferences of TraceAbstraction differ from their defaults: [2018-01-24 16:26:51,396 INFO L133 SettingsManager]: * Interpolant automaton=TWOTRACK [2018-01-24 16:26:51,396 INFO L133 SettingsManager]: * Compute Interpolants along a Counterexample=FPandBP [2018-01-24 16:26:51,396 INFO L133 SettingsManager]: * Positions where we compute the Hoare Annotation=LoopsAndPotentialCycles [2018-01-24 16:26:51,396 INFO L133 SettingsManager]: * Trace refinement strategy=CAMEL [2018-01-24 16:26:51,396 INFO L133 SettingsManager]: * SMT solver=External_ModelsAndUnsatCoreMode [2018-01-24 16:26:51,396 INFO L133 SettingsManager]: * Command for external solver=z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in [2018-01-24 16:26:51,397 INFO L133 SettingsManager]: * Compute Hoare Annotation of negated interpolant automaton, abstraction and CFG=true [2018-01-24 16:26:51,397 INFO L131 SettingsManager]: Preferences of IcfgTransformer differ from their defaults: [2018-01-24 16:26:51,397 INFO L133 SettingsManager]: * TransformationType=HEAP_SEPARATOR [2018-01-24 16:26:51,432 INFO L81 nceAwareModelManager]: Repository-Root is: /tmp [2018-01-24 16:26:51,443 INFO L266 ainManager$Toolchain]: [Toolchain 1]: Parser(s) successfully initialized [2018-01-24 16:26:51,446 INFO L222 ainManager$Toolchain]: [Toolchain 1]: Toolchain data selected. [2018-01-24 16:26:51,448 INFO L271 PluginConnector]: Initializing CDTParser... [2018-01-24 16:26:51,448 INFO L276 PluginConnector]: CDTParser initialized [2018-01-24 16:26:51,449 INFO L431 ainManager$Toolchain]: [Toolchain 1]: Parsing single file: /storage/ultimate/releaseScripts/default/UAutomizer-linux/../../../trunk/examples/svcomp/memsafety/test-0521_true-valid-memsafety.i [2018-01-24 16:26:51,616 INFO L304 ainManager$Toolchain]: ####################### [Toolchain 1] ####################### [2018-01-24 16:26:51,620 INFO L131 ToolchainWalker]: Walking toolchain with 4 elements. [2018-01-24 16:26:51,621 INFO L113 PluginConnector]: ------------------------CACSL2BoogieTranslator---------------------------- [2018-01-24 16:26:51,621 INFO L271 PluginConnector]: Initializing CACSL2BoogieTranslator... [2018-01-24 16:26:51,626 INFO L276 PluginConnector]: CACSL2BoogieTranslator initialized [2018-01-24 16:26:51,627 INFO L185 PluginConnector]: Executing the observer ACSLObjectContainerObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 24.01 04:26:51" (1/1) ... [2018-01-24 16:26:51,630 INFO L205 PluginConnector]: Invalid model from CACSL2BoogieTranslator for observer de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator.ACSLObjectContainerObserver@170f2f5c and model type de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 24.01 04:26:51, skipping insertion in model container [2018-01-24 16:26:51,630 INFO L185 PluginConnector]: Executing the observer CACSL2BoogieTranslatorObserver from plugin CACSL2BoogieTranslator for "CDTParser AST 24.01 04:26:51" (1/1) ... [2018-01-24 16:26:51,644 INFO L153 Dispatcher]: Using SV-COMP mode [2018-01-24 16:26:51,686 INFO L153 Dispatcher]: Using SV-COMP mode [2018-01-24 16:26:51,812 INFO L450 PostProcessor]: Settings: Checked method=main [2018-01-24 16:26:51,839 INFO L450 PostProcessor]: Settings: Checked method=main [2018-01-24 16:26:51,849 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 24.01 04:26:51 WrapperNode [2018-01-24 16:26:51,849 INFO L132 PluginConnector]: ------------------------ END CACSL2BoogieTranslator---------------------------- [2018-01-24 16:26:51,850 INFO L113 PluginConnector]: ------------------------Boogie Preprocessor---------------------------- [2018-01-24 16:26:51,850 INFO L271 PluginConnector]: Initializing Boogie Preprocessor... [2018-01-24 16:26:51,850 INFO L276 PluginConnector]: Boogie Preprocessor initialized [2018-01-24 16:26:51,864 INFO L185 PluginConnector]: Executing the observer EnsureBoogieModelObserver from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 24.01 04:26:51" (1/1) ... [2018-01-24 16:26:51,865 INFO L185 PluginConnector]: Executing the observer TypeChecker from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 24.01 04:26:51" (1/1) ... [2018-01-24 16:26:51,876 INFO L185 PluginConnector]: Executing the observer ConstExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 24.01 04:26:51" (1/1) ... [2018-01-24 16:26:51,876 INFO L185 PluginConnector]: Executing the observer StructExpander from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 24.01 04:26:51" (1/1) ... [2018-01-24 16:26:51,886 INFO L185 PluginConnector]: Executing the observer UnstructureCode from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 24.01 04:26:51" (1/1) ... [2018-01-24 16:26:51,893 INFO L185 PluginConnector]: Executing the observer FunctionInliner from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 24.01 04:26:51" (1/1) ... [2018-01-24 16:26:51,896 INFO L185 PluginConnector]: Executing the observer BoogieSymbolTableConstructor from plugin Boogie Preprocessor for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 24.01 04:26:51" (1/1) ... [2018-01-24 16:26:51,900 INFO L132 PluginConnector]: ------------------------ END Boogie Preprocessor---------------------------- [2018-01-24 16:26:51,901 INFO L113 PluginConnector]: ------------------------RCFGBuilder---------------------------- [2018-01-24 16:26:51,901 INFO L271 PluginConnector]: Initializing RCFGBuilder... [2018-01-24 16:26:51,901 INFO L276 PluginConnector]: RCFGBuilder initialized [2018-01-24 16:26:51,902 INFO L185 PluginConnector]: Executing the observer RCFGBuilderObserver from plugin RCFGBuilder for "de.uni_freiburg.informatik.ultimate.plugins.generator.cacsl2boogietranslator AST 24.01 04:26:51" (1/1) ... No working directory specified, using /storage/ultimate/releaseScripts/default/UAutomizer-linux/z3 Starting monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 (exit command is (exit), workingDir is null) Waiting until toolchain timeout for monitored process 1 with z3 SMTLIB2_COMPLIANT=true -memory:2024 -smt2 -in -t:2000 [2018-01-24 16:26:51,953 INFO L136 BoogieDeclarations]: Found implementation of procedure ULTIMATE.init [2018-01-24 16:26:51,953 INFO L136 BoogieDeclarations]: Found implementation of procedure ULTIMATE.start [2018-01-24 16:26:51,954 INFO L136 BoogieDeclarations]: Found implementation of procedure main [2018-01-24 16:26:51,954 INFO L128 BoogieDeclarations]: Found specification of procedure write~$Pointer$ [2018-01-24 16:26:51,954 INFO L128 BoogieDeclarations]: Found specification of procedure read~$Pointer$ [2018-01-24 16:26:51,954 INFO L128 BoogieDeclarations]: Found specification of procedure write~int [2018-01-24 16:26:51,954 INFO L128 BoogieDeclarations]: Found specification of procedure read~int [2018-01-24 16:26:51,954 INFO L128 BoogieDeclarations]: Found specification of procedure ULTIMATE.free [2018-01-24 16:26:51,954 INFO L128 BoogieDeclarations]: Found specification of procedure ULTIMATE.dealloc [2018-01-24 16:26:51,955 INFO L128 BoogieDeclarations]: Found specification of procedure #Ultimate.alloc [2018-01-24 16:26:51,955 INFO L128 BoogieDeclarations]: Found specification of procedure free [2018-01-24 16:26:51,955 INFO L128 BoogieDeclarations]: Found specification of procedure abort [2018-01-24 16:26:51,955 INFO L128 BoogieDeclarations]: Found specification of procedure __VERIFIER_nondet_int [2018-01-24 16:26:51,955 INFO L128 BoogieDeclarations]: Found specification of procedure main [2018-01-24 16:26:51,955 INFO L128 BoogieDeclarations]: Found specification of procedure ULTIMATE.init [2018-01-24 16:26:51,956 INFO L128 BoogieDeclarations]: Found specification of procedure ULTIMATE.start [2018-01-24 16:26:52,822 INFO L257 CfgBuilder]: Using the 1 location(s) as analysis (start of procedure ULTIMATE.start) [2018-01-24 16:26:52,823 INFO L202 PluginConnector]: Adding new model de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 24.01 04:26:52 BoogieIcfgContainer [2018-01-24 16:26:52,823 INFO L132 PluginConnector]: ------------------------ END RCFGBuilder---------------------------- [2018-01-24 16:26:52,823 INFO L113 PluginConnector]: ------------------------Abstract Interpretation---------------------------- [2018-01-24 16:26:52,823 INFO L271 PluginConnector]: Initializing Abstract Interpretation... [2018-01-24 16:26:52,824 INFO L276 PluginConnector]: Abstract Interpretation initialized [2018-01-24 16:26:52,824 INFO L185 PluginConnector]: Executing the observer AbstractInterpretationRcfgObserver from plugin Abstract Interpretation for "de.uni_freiburg.informatik.ultimate.plugins.generator.rcfgbuilder CFG 24.01 04:26:52" (1/1) ... [2018-01-24 16:26:52,875 INFO L101 FixpointEngine]: Starting fixpoint engine with domain VPDomain (maxUnwinding=3, maxParallelStates=2) [2018-01-24 16:27:04,846 INFO L259 AbstractInterpreter]: Some error location(s) were reachable [2018-01-24 16:27:04,893 WARN L343 cessorBacktranslator]: Generated EnsuresSpecification ensures #valid == old(#valid); is not ensure(true) [2018-01-24 16:27:04,947 INFO L268 AbstractInterpreter]: Visited 284 different actions 1866 times. Merged at 244 different actions 1195 times. Widened at 15 different actions 32 times. Found 206 fixpoints after 69 different actions. Largest state had 138 variables. [2018-01-24 16:27:04,950 INFO L132 PluginConnector]: ------------------------ END Abstract Interpretation---------------------------- [2018-01-24 16:27:04,951 INFO L168 Benchmark]: Toolchain (without parser) took 13334.29 ms. Allocated memory was 304.1 MB in the beginning and 1.7 GB in the end (delta: 1.4 GB). Free memory was 264.1 MB in the beginning and 1.4 GB in the end (delta: -1.2 GB). Peak memory consumption was 200.5 MB. Max. memory is 5.3 GB. [2018-01-24 16:27:04,951 INFO L168 Benchmark]: CDTParser took 0.13 ms. Allocated memory is still 304.1 MB. Free memory is still 270.1 MB. There was no memory consumed. Max. memory is 5.3 GB. [2018-01-24 16:27:04,952 INFO L168 Benchmark]: CACSL2BoogieTranslator took 229.15 ms. Allocated memory is still 304.1 MB. Free memory was 263.1 MB in the beginning and 251.1 MB in the end (delta: 12.1 MB). Peak memory consumption was 12.1 MB. Max. memory is 5.3 GB. [2018-01-24 16:27:04,952 INFO L168 Benchmark]: Boogie Preprocessor took 50.30 ms. Allocated memory is still 304.1 MB. Free memory was 251.1 MB in the beginning and 248.1 MB in the end (delta: 3.0 MB). Peak memory consumption was 3.0 MB. Max. memory is 5.3 GB. [2018-01-24 16:27:04,952 INFO L168 Benchmark]: RCFGBuilder took 921.99 ms. Allocated memory is still 304.1 MB. Free memory was 248.1 MB in the beginning and 190.0 MB in the end (delta: 58.1 MB). Peak memory consumption was 58.1 MB. Max. memory is 5.3 GB. [2018-01-24 16:27:04,952 INFO L168 Benchmark]: Abstract Interpretation took 12126.80 ms. Allocated memory was 304.1 MB in the beginning and 1.7 GB in the end (delta: 1.4 GB). Free memory was 190.0 MB in the beginning and 1.4 GB in the end (delta: -1.2 GB). Peak memory consumption was 126.3 MB. Max. memory is 5.3 GB. [2018-01-24 16:27:04,954 INFO L344 ainManager$Toolchain]: ####################### End [Toolchain 1] ####################### --- Results --- * Results from de.uni_freiburg.informatik.ultimate.core: - StatisticsResult: Toolchain Benchmarks Benchmark results are: * CDTParser took 0.13 ms. Allocated memory is still 304.1 MB. Free memory is still 270.1 MB. There was no memory consumed. Max. memory is 5.3 GB. * CACSL2BoogieTranslator took 229.15 ms. Allocated memory is still 304.1 MB. Free memory was 263.1 MB in the beginning and 251.1 MB in the end (delta: 12.1 MB). Peak memory consumption was 12.1 MB. Max. memory is 5.3 GB. * Boogie Preprocessor took 50.30 ms. Allocated memory is still 304.1 MB. Free memory was 251.1 MB in the beginning and 248.1 MB in the end (delta: 3.0 MB). Peak memory consumption was 3.0 MB. Max. memory is 5.3 GB. * RCFGBuilder took 921.99 ms. Allocated memory is still 304.1 MB. Free memory was 248.1 MB in the beginning and 190.0 MB in the end (delta: 58.1 MB). Peak memory consumption was 58.1 MB. Max. memory is 5.3 GB. * Abstract Interpretation took 12126.80 ms. Allocated memory was 304.1 MB in the beginning and 1.7 GB in the end (delta: 1.4 GB). Free memory was 190.0 MB in the beginning and 1.4 GB in the end (delta: -1.2 GB). Peak memory consumption was 126.3 MB. Max. memory is 5.3 GB. * Results from de.uni_freiburg.informatik.ultimate.plugins.analysis.abstractinterpretationv2: - StatisticsResult: ArrayEqualityDomainStatistics #Locations : 227 LocStat_MAX_WEQGRAPH_SIZE : 0 LocStat_MAX_SIZEOF_WEQEDGELABEL : 0 LocStat_NO_SUPPORTING_EQUALITIES : 3271 LocStat_NO_SUPPORTING_DISEQUALITIES : 601 LocStat_NO_DISJUNCTIONS : -454 LocStat_MAX_NO_DISJUNCTIONS : -1 #Transitions : 288 TransStat_MAX_WEQGRAPH_SIZE : 0 TransStat_MAX_SIZEOF_WEQEDGELABEL : 0 TransStat_NO_SUPPORTING_EQUALITIES : 515 TransStat_NO_SUPPORTING_DISEQUALITIES : 136 TransStat_NO_DISJUNCTIONS : 365 TransStat_MAX_NO_DISJUNCTIONS : 4 - StatisticsResult: EqConstraintFactoryStatistics CONJOIN_DISJUNCTIVE(MILLISECONDS) : 0.524532 RENAME_VARIABLES(MILLISECONDS) : 0.146092 UNFREEZE(MILLISECONDS) : 0.000000 CONJOIN(MILLISECONDS) : 0.238600 PROJECTAWAY(MILLISECONDS) : 0.028325 ADD_WEAK_EQUALITY(MILLISECONDS) : 0.001013 DISJOIN(MILLISECONDS) : 0.593364 RENAME_VARIABLES_DISJUNCTIVE(MILLISECONDS) : 0.168150 ADD_EQUALITY(MILLISECONDS) : 0.011682 DISJOIN_DISJUNCTIVE(MILLISECONDS) : 0.000000 ADD_DISEQUALITY(MILLISECONDS) : 0.015074 #CONJOIN_DISJUNCTIVE : 3311 #RENAME_VARIABLES : 7187 #UNFREEZE : 0 #CONJOIN : 4506 #PROJECTAWAY : 3810 #ADD_WEAK_EQUALITY : 95 #DISJOIN : 772 #RENAME_VARIABLES_DISJUNCTIVE : 6366 #ADD_EQUALITY : 521 #DISJOIN_DISJUNCTIVE : 0 #ADD_DISEQUALITY : 118 - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] FCALL list->slist - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] FCALL current->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] FCALL current->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND FALSE !((iter.node = current->next)) [L667] FCALL iter.list->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND TRUE (node) [L676] COND FALSE !(!iter.list) [L679] struct node *current = iter.node; [L680] FCALL current->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND TRUE (node) [L676] COND FALSE !(!iter.list) [L679] struct node *current = iter.node; [L680] FCALL current->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND FALSE !((iter.node = current->next)) [L667] EXPR, FCALL iter.list->next [L667] EXPR iter.list = iter.list->next [L667] COND TRUE (iter.list = iter.list->next) [L668] FCALL iter.list->slist - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND FALSE !((iter.node = current->next)) [L667] EXPR, FCALL iter.list->next [L667] EXPR iter.list = iter.list->next [L667] COND TRUE (iter.list = iter.list->next) [L668] FCALL iter.list->slist - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND TRUE (node) [L676] COND FALSE !(!iter.list) [L679] struct node *current = iter.node; [L680] EXPR, FCALL current->next [L680] EXPR iter.node = current->next [L680] COND FALSE !((iter.node = current->next)) [L683] FCALL iter.list->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND TRUE (node) [L676] COND FALSE !(!iter.list) [L679] struct node *current = iter.node; [L680] EXPR, FCALL current->next [L680] EXPR iter.node = current->next [L680] COND FALSE !((iter.node = current->next)) [L683] FCALL iter.list->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] FCALL list->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] FCALL list->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND TRUE (node) [L676] COND FALSE !(!iter.list) [L679] struct node *current = iter.node; [L680] EXPR, FCALL current->next [L680] EXPR iter.node = current->next [L680] COND FALSE !((iter.node = current->next)) [L683] EXPR, FCALL iter.list->next [L683] EXPR iter.list = iter.list->next [L683] COND TRUE (iter.list = iter.list->next) [L684] FCALL iter.list->slist - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND TRUE (node) [L676] COND FALSE !(!iter.list) [L679] struct node *current = iter.node; [L680] EXPR, FCALL current->next [L680] EXPR iter.node = current->next [L680] COND FALSE !((iter.node = current->next)) [L683] EXPR, FCALL iter.list->next [L683] EXPR iter.list = iter.list->next [L683] COND TRUE (iter.list = iter.list->next) [L684] FCALL iter.list->slist - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND TRUE (iter.list = list) [L733] FCALL list->slist - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND TRUE (iter.list = list) [L733] FCALL list->slist - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] FCALL list->slist - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] FCALL list->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND TRUE (iter.list = list) [L733] EXPR, FCALL list->slist [L733] iter.node = list->slist [L735] struct node *node; [L737] COND FALSE !(!iter.list) [L740] struct node *current = iter.node; [L741] FCALL current->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND TRUE (iter.list = list) [L733] EXPR, FCALL list->slist [L733] iter.node = list->slist [L735] struct node *node; [L737] COND FALSE !(!iter.list) [L740] struct node *current = iter.node; [L741] FCALL current->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND TRUE !next [L698] FCALL list->next = dst - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND FALSE !((iter.node = current->next)) [L667] EXPR, FCALL iter.list->next [L667] EXPR iter.list = iter.list->next [L667] COND FALSE !((iter.list = iter.list->next)) [L669] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] FCALL list->next - UnprovableResult [Line: 632]: Unable to prove that all allocated memory was freed Unable to prove that all allocated memory was freed Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND FALSE !((iter.list = list)) [L735] struct node *node; [L737] COND TRUE !iter.list [L738] node = ((void *)0) [L750] COND FALSE !((node)) [L769] COND FALSE !(\read(*data)) [L781] return 0; - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND TRUE (iter.list = list) [L733] EXPR, FCALL list->slist [L733] iter.node = list->slist [L735] struct node *node; [L737] COND FALSE !(!iter.list) [L740] struct node *current = iter.node; [L741] EXPR, FCALL current->next [L741] EXPR iter.node = current->next [L741] COND FALSE !((iter.node = current->next)) [L744] FCALL iter.list->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] FCALL list->slist - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] FCALL list->slist - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND TRUE (iter.list = list) [L733] EXPR, FCALL list->slist [L733] iter.node = list->slist [L735] struct node *node; [L737] COND FALSE !(!iter.list) [L740] struct node *current = iter.node; [L741] EXPR, FCALL current->next [L741] EXPR iter.node = current->next [L741] COND TRUE (iter.node = current->next) [L742] node = current [L750] COND TRUE (node) [L753] COND FALSE !(!iter.list) [L756] struct node *current = iter.node; [L757] FCALL current->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND TRUE (iter.list = list) [L733] EXPR, FCALL list->slist [L733] iter.node = list->slist [L735] struct node *node; [L737] COND FALSE !(!iter.list) [L740] struct node *current = iter.node; [L741] EXPR, FCALL current->next [L741] EXPR iter.node = current->next [L741] COND TRUE (iter.node = current->next) [L742] node = current [L750] COND TRUE (node) [L753] COND FALSE !(!iter.list) [L756] struct node *current = iter.node; [L757] FCALL current->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND TRUE (iter.list = list) [L733] EXPR, FCALL list->slist [L733] iter.node = list->slist [L735] struct node *node; [L737] COND FALSE !(!iter.list) [L740] struct node *current = iter.node; [L741] EXPR, FCALL current->next [L741] EXPR iter.node = current->next [L741] COND FALSE !((iter.node = current->next)) [L744] EXPR, FCALL iter.list->next [L744] EXPR iter.list = iter.list->next [L744] COND TRUE (iter.list = iter.list->next) [L745] FCALL iter.list->slist - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND TRUE (iter.list = list) [L733] EXPR, FCALL list->slist [L733] iter.node = list->slist [L735] struct node *node; [L737] COND FALSE !(!iter.list) [L740] struct node *current = iter.node; [L741] EXPR, FCALL current->next [L741] EXPR iter.node = current->next [L741] COND FALSE !((iter.node = current->next)) [L744] EXPR, FCALL iter.list->next [L744] EXPR iter.list = iter.list->next [L744] COND TRUE (iter.list = iter.list->next) [L745] FCALL iter.list->slist - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND TRUE (iter.list = list) [L733] EXPR, FCALL list->slist [L733] iter.node = list->slist [L735] struct node *node; [L737] COND FALSE !(!iter.list) [L740] struct node *current = iter.node; [L741] EXPR, FCALL current->next [L741] EXPR iter.node = current->next [L741] COND TRUE (iter.node = current->next) [L742] node = current [L750] COND FALSE !((node)) [L769] COND TRUE \read(*data) [L770] FCALL data->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND FALSE !((iter.node = current->next)) [L667] EXPR, FCALL iter.list->next [L667] EXPR iter.list = iter.list->next [L667] COND FALSE !((iter.list = iter.list->next)) [L669] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND FALSE !((iter.list = list)) [L735] struct node *node; [L737] COND FALSE !(!iter.list) [L740] struct node *current = iter.node; [L741] EXPR, FCALL current->next [L741] EXPR iter.node = current->next [L741] COND FALSE !((iter.node = current->next)) [L744] FCALL iter.list->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] FCALL next->slist - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] FCALL next->slist - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND TRUE (iter.list = list) [L733] EXPR, FCALL list->slist [L733] iter.node = list->slist [L735] struct node *node; [L737] COND FALSE !(!iter.list) [L740] struct node *current = iter.node; [L741] EXPR, FCALL current->next [L741] EXPR iter.node = current->next [L741] COND TRUE (iter.node = current->next) [L742] node = current [L750] COND FALSE !((node)) [L769] COND TRUE \read(*data) [L770] EXPR, FCALL data->next [L770] struct list *next = data->next; [L771] FCALL data->slist - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND TRUE (iter.list = list) [L733] EXPR, FCALL list->slist [L733] iter.node = list->slist [L735] struct node *node; [L737] COND FALSE !(!iter.list) [L740] struct node *current = iter.node; [L741] EXPR, FCALL current->next [L741] EXPR iter.node = current->next [L741] COND TRUE (iter.node = current->next) [L742] node = current [L750] COND TRUE (node) [L753] COND FALSE !(!iter.list) [L756] struct node *current = iter.node; [L757] EXPR, FCALL current->next [L757] EXPR iter.node = current->next [L757] COND FALSE !((iter.node = current->next)) [L760] FCALL iter.list->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] EXPR, FCALL next->slist [L704] FCALL struct node *sub2 = next->slist; - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND FALSE !((iter.node = current->next)) [L667] EXPR, FCALL iter.list->next [L667] EXPR iter.list = iter.list->next [L667] COND TRUE (iter.list = iter.list->next) [L668] EXPR, FCALL iter.list->slist [L668] iter.node = iter.list->slist [L669] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND FALSE !((iter.list = list)) [L735] struct node *node; [L737] COND TRUE !iter.list [L738] node = ((void *)0) [L750] COND FALSE !((node)) [L769] COND TRUE \read(*data) [L770] FCALL data->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND TRUE (iter.list = list) [L733] EXPR, FCALL list->slist [L733] iter.node = list->slist [L735] struct node *node; [L737] COND FALSE !(!iter.list) [L740] struct node *current = iter.node; [L741] EXPR, FCALL current->next [L741] EXPR iter.node = current->next [L741] COND TRUE (iter.node = current->next) [L742] node = current [L750] COND TRUE (node) [L753] COND FALSE !(!iter.list) [L756] struct node *current = iter.node; [L757] EXPR, FCALL current->next [L757] EXPR iter.node = current->next [L757] COND FALSE !((iter.node = current->next)) [L760] EXPR, FCALL iter.list->next [L760] EXPR iter.list = iter.list->next [L760] COND TRUE (iter.list = iter.list->next) [L761] FCALL iter.list->slist - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND TRUE (iter.list = list) [L733] EXPR, FCALL list->slist [L733] iter.node = list->slist [L735] struct node *node; [L737] COND FALSE !(!iter.list) [L740] struct node *current = iter.node; [L741] EXPR, FCALL current->next [L741] EXPR iter.node = current->next [L741] COND TRUE (iter.node = current->next) [L742] node = current [L750] COND TRUE (node) [L753] COND FALSE !(!iter.list) [L756] struct node *current = iter.node; [L757] EXPR, FCALL current->next [L757] EXPR iter.node = current->next [L757] COND FALSE !((iter.node = current->next)) [L760] EXPR, FCALL iter.list->next [L760] EXPR iter.list = iter.list->next [L760] COND TRUE (iter.list = iter.list->next) [L761] FCALL iter.list->slist - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] EXPR, FCALL next->slist [L704] FCALL struct node *sub2 = next->slist; [L705] FCALL \read(*sub1) - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] EXPR, FCALL next->slist [L704] FCALL struct node *sub2 = next->slist; [L705] FCALL \read(*sub1) - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND FALSE !((iter.node = current->next)) [L667] EXPR, FCALL iter.list->next [L667] EXPR iter.list = iter.list->next [L667] COND TRUE (iter.list = iter.list->next) [L668] EXPR, FCALL iter.list->slist [L668] iter.node = iter.list->slist [L669] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND FALSE !((iter.list = list)) [L735] struct node *node; [L737] COND TRUE !iter.list [L738] node = ((void *)0) [L750] COND TRUE (node) [L753] COND FALSE !(!iter.list) [L756] struct node *current = iter.node; [L757] EXPR, FCALL current->next [L757] EXPR iter.node = current->next [L757] COND FALSE !((iter.node = current->next)) [L760] FCALL iter.list->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] EXPR, FCALL next->slist [L704] FCALL struct node *sub2 = next->slist; [L705] EXPR, FCALL \read(*sub1) [L705] sub1 || sub2 [L705] FCALL \read(*sub2) - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] EXPR, FCALL next->slist [L704] FCALL struct node *sub2 = next->slist; [L705] EXPR, FCALL \read(*sub1) [L705] sub1 || sub2 [L705] COND TRUE sub1 || sub2 [L706] struct node ***pdst = &dst; [L707] struct node **pdata; [L708] FCALL \read(*sub2) - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND FALSE !((iter.node = current->next)) [L667] EXPR, FCALL iter.list->next [L667] EXPR iter.list = iter.list->next [L667] COND TRUE (iter.list = iter.list->next) [L668] EXPR, FCALL iter.list->slist [L668] iter.node = iter.list->slist [L669] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND FALSE !((iter.list = list)) [L735] struct node *node; [L737] COND TRUE !iter.list [L738] node = ((void *)0) [L750] COND FALSE !((node)) [L769] COND TRUE \read(*data) [L770] EXPR, FCALL data->next [L770] struct list *next = data->next; [L771] EXPR, FCALL data->slist [L771] struct node *node = data->slist; [L772] COND TRUE \read(*node) [L773] FCALL node->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND FALSE !((iter.node = current->next)) [L667] EXPR, FCALL iter.list->next [L667] EXPR iter.list = iter.list->next [L667] COND TRUE (iter.list = iter.list->next) [L668] EXPR, FCALL iter.list->slist [L668] iter.node = iter.list->slist [L669] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND FALSE !((iter.list = list)) [L735] struct node *node; [L737] COND TRUE !iter.list [L738] node = ((void *)0) [L750] COND FALSE !((node)) [L769] COND TRUE \read(*data) [L770] EXPR, FCALL data->next [L770] struct list *next = data->next; [L771] EXPR, FCALL data->slist [L771] struct node *node = data->slist; [L772] COND TRUE \read(*node) [L773] FCALL node->next - UnprovableResult [Line: 1]: Unable to prove that free always succeeds Unable to prove that free always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND FALSE !((iter.node = current->next)) [L667] EXPR, FCALL iter.list->next [L667] EXPR iter.list = iter.list->next [L667] COND TRUE (iter.list = iter.list->next) [L668] EXPR, FCALL iter.list->slist [L668] iter.node = iter.list->slist [L669] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND FALSE !((iter.list = list)) [L735] struct node *node; [L737] COND TRUE !iter.list [L738] node = ((void *)0) [L750] COND FALSE !((node)) [L769] COND TRUE \read(*data) [L770] EXPR, FCALL data->next [L770] struct list *next = data->next; [L771] EXPR, FCALL data->slist [L771] struct node *node = data->slist; [L772] COND TRUE \read(*node) [L773] EXPR, FCALL node->next [L773] struct node *snext = node->next; [L774] FCALL free(node) - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] EXPR, FCALL next->slist [L704] FCALL struct node *sub2 = next->slist; [L705] EXPR, FCALL \read(*sub1) [L705] sub1 || sub2 [L705] COND TRUE sub1 || sub2 [L706] struct node ***pdst = &dst; [L707] struct node **pdata; [L708] EXPR, FCALL \read(*sub2) [L708] !sub2 || (sub1 && __VERIFIER_nondet_int()) [L708] FCALL \read(*sub1) - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] EXPR, FCALL next->slist [L704] FCALL struct node *sub2 = next->slist; [L705] EXPR, FCALL \read(*sub1) [L705] sub1 || sub2 [L705] COND TRUE sub1 || sub2 [L706] struct node ***pdst = &dst; [L707] struct node **pdata; [L708] EXPR, FCALL \read(*sub2) [L708] !sub2 || (sub1 && __VERIFIER_nondet_int()) [L708] COND TRUE !sub2 || (sub1 && __VERIFIER_nondet_int()) [L709] pdata = &sub1 [L712] FCALL \read(**pdata) - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] EXPR, FCALL next->slist [L704] FCALL struct node *sub2 = next->slist; [L705] EXPR, FCALL \read(*sub1) [L705] sub1 || sub2 [L705] COND TRUE sub1 || sub2 [L706] struct node ***pdst = &dst; [L707] struct node **pdata; [L708] EXPR, FCALL \read(*sub2) [L708] !sub2 || (sub1 && __VERIFIER_nondet_int()) [L708] COND TRUE !sub2 || (sub1 && __VERIFIER_nondet_int()) [L709] pdata = &sub1 [L712] EXPR, FCALL \read(**pdata) [L712] struct node *node = *pdata; [L713] FCALL node->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] EXPR, FCALL next->slist [L704] FCALL struct node *sub2 = next->slist; [L705] EXPR, FCALL \read(*sub1) [L705] sub1 || sub2 [L705] COND TRUE sub1 || sub2 [L706] struct node ***pdst = &dst; [L707] struct node **pdata; [L708] EXPR, FCALL \read(*sub2) [L708] !sub2 || (sub1 && __VERIFIER_nondet_int()) [L708] COND TRUE !sub2 || (sub1 && __VERIFIER_nondet_int()) [L709] pdata = &sub1 [L712] EXPR, FCALL \read(**pdata) [L712] struct node *node = *pdata; [L713] FCALL node->next - UnprovableResult [Line: 1]: Unable to prove that free always succeeds Unable to prove that free always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND FALSE !((iter.node = current->next)) [L667] EXPR, FCALL iter.list->next [L667] EXPR iter.list = iter.list->next [L667] COND TRUE (iter.list = iter.list->next) [L668] EXPR, FCALL iter.list->slist [L668] iter.node = iter.list->slist [L669] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND FALSE !((iter.list = list)) [L735] struct node *node; [L737] COND TRUE !iter.list [L738] node = ((void *)0) [L750] COND FALSE !((node)) [L769] COND TRUE \read(*data) [L770] EXPR, FCALL data->next [L770] struct list *next = data->next; [L771] EXPR, FCALL data->slist [L771] struct node *node = data->slist; [L772] COND TRUE \read(*node) [L773] EXPR, FCALL node->next [L773] struct node *snext = node->next; [L774] FCALL free(node) [L775] node = snext [L772] COND FALSE !(\read(*node)) [L777] FCALL free(data) - UnprovableResult [Line: 1]: Unable to prove that free always succeeds Unable to prove that free always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] COND FALSE !(list && list->next) [L726] data = list [L729] struct iterator iter; [L731] struct list *list = data; [L732] EXPR iter.list = list [L732] COND TRUE (iter.list = list) [L733] EXPR, FCALL list->slist [L733] iter.node = list->slist [L735] struct node *node; [L737] COND FALSE !(!iter.list) [L740] struct node *current = iter.node; [L741] EXPR, FCALL current->next [L741] EXPR iter.node = current->next [L741] COND TRUE (iter.node = current->next) [L742] node = current [L750] COND FALSE !((node)) [L769] COND TRUE \read(*data) [L770] EXPR, FCALL data->next [L770] struct list *next = data->next; [L771] EXPR, FCALL data->slist [L771] struct node *node = data->slist; [L772] COND FALSE !(\read(*node)) [L777] FCALL free(data) [L778] data = next [L769] COND TRUE \read(*data) [L770] EXPR, FCALL data->next [L770] struct list *next = data->next; [L771] EXPR, FCALL data->slist [L771] struct node *node = data->slist; [L772] COND FALSE !(\read(*node)) [L777] FCALL free(data) - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] EXPR, FCALL next->slist [L704] FCALL struct node *sub2 = next->slist; [L705] EXPR, FCALL \read(*sub1) [L705] sub1 || sub2 [L705] COND TRUE sub1 || sub2 [L706] struct node ***pdst = &dst; [L707] struct node **pdata; [L708] EXPR, FCALL \read(*sub2) [L708] !sub2 || (sub1 && __VERIFIER_nondet_int()) [L708] COND TRUE !sub2 || (sub1 && __VERIFIER_nondet_int()) [L709] pdata = &sub1 [L712] EXPR, FCALL \read(**pdata) [L712] struct node *node = *pdata; [L713] EXPR, FCALL node->next [L713] FCALL *pdata = node->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] EXPR, FCALL next->slist [L704] FCALL struct node *sub2 = next->slist; [L705] EXPR, FCALL \read(*sub1) [L705] sub1 || sub2 [L705] EXPR, FCALL \read(*sub2) [L705] sub1 || sub2 [L705] COND FALSE !(sub1 || sub2) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L719] FCALL list->next = dst - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] EXPR, FCALL next->slist [L704] FCALL struct node *sub2 = next->slist; [L705] EXPR, FCALL \read(*sub1) [L705] sub1 || sub2 [L705] EXPR, FCALL \read(*sub2) [L705] sub1 || sub2 [L705] COND FALSE !(sub1 || sub2) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L719] FCALL list->next = dst - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] EXPR, FCALL next->slist [L704] FCALL struct node *sub2 = next->slist; [L705] EXPR, FCALL \read(*sub1) [L705] sub1 || sub2 [L705] COND TRUE sub1 || sub2 [L706] struct node ***pdst = &dst; [L707] struct node **pdata; [L708] EXPR, FCALL \read(*sub2) [L708] !sub2 || (sub1 && __VERIFIER_nondet_int()) [L708] COND TRUE !sub2 || (sub1 && __VERIFIER_nondet_int()) [L709] pdata = &sub1 [L712] EXPR, FCALL \read(**pdata) [L712] struct node *node = *pdata; [L713] EXPR, FCALL node->next [L713] FCALL *pdata = node->next [L714] FCALL node->next = ((void *)0) - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] EXPR, FCALL next->slist [L704] FCALL struct node *sub2 = next->slist; [L705] EXPR, FCALL \read(*sub1) [L705] sub1 || sub2 [L705] EXPR, FCALL \read(*sub2) [L705] sub1 || sub2 [L705] COND FALSE !(sub1 || sub2) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L719] FCALL list->next = dst [L720] dst = list [L721] FCALL next->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] EXPR, FCALL next->slist [L704] FCALL struct node *sub2 = next->slist; [L705] EXPR, FCALL \read(*sub1) [L705] sub1 || sub2 [L705] EXPR, FCALL \read(*sub2) [L705] sub1 || sub2 [L705] COND FALSE !(sub1 || sub2) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L719] FCALL list->next = dst [L720] dst = list [L721] FCALL next->next - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] EXPR, FCALL next->slist [L704] FCALL struct node *sub2 = next->slist; [L705] EXPR, FCALL \read(*sub1) [L705] sub1 || sub2 [L705] COND TRUE sub1 || sub2 [L706] struct node ***pdst = &dst; [L707] struct node **pdata; [L708] EXPR, FCALL \read(*sub2) [L708] !sub2 || (sub1 && __VERIFIER_nondet_int()) [L708] COND TRUE !sub2 || (sub1 && __VERIFIER_nondet_int()) [L709] pdata = &sub1 [L712] EXPR, FCALL \read(**pdata) [L712] struct node *node = *pdata; [L713] EXPR, FCALL node->next [L713] FCALL *pdata = node->next [L714] FCALL node->next = ((void *)0) [L715] FCALL \read(***pdst) - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] EXPR, FCALL next->slist [L704] FCALL struct node *sub2 = next->slist; [L705] EXPR, FCALL \read(*sub1) [L705] sub1 || sub2 [L705] COND TRUE sub1 || sub2 [L706] struct node ***pdst = &dst; [L707] struct node **pdata; [L708] EXPR, FCALL \read(*sub2) [L708] !sub2 || (sub1 && __VERIFIER_nondet_int()) [L708] COND TRUE !sub2 || (sub1 && __VERIFIER_nondet_int()) [L709] pdata = &sub1 [L712] EXPR, FCALL \read(**pdata) [L712] struct node *node = *pdata; [L713] EXPR, FCALL node->next [L713] FCALL *pdata = node->next [L714] FCALL node->next = ((void *)0) [L715] FCALL \read(***pdst) - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] EXPR, FCALL next->slist [L704] FCALL struct node *sub2 = next->slist; [L705] EXPR, FCALL \read(*sub1) [L705] sub1 || sub2 [L705] COND TRUE sub1 || sub2 [L706] struct node ***pdst = &dst; [L707] struct node **pdata; [L708] EXPR, FCALL \read(*sub2) [L708] !sub2 || (sub1 && __VERIFIER_nondet_int()) [L708] COND TRUE !sub2 || (sub1 && __VERIFIER_nondet_int()) [L709] pdata = &sub1 [L712] EXPR, FCALL \read(**pdata) [L712] struct node *node = *pdata; [L713] EXPR, FCALL node->next [L713] FCALL *pdata = node->next [L714] FCALL node->next = ((void *)0) [L715] EXPR, FCALL \read(***pdst) [L715] FCALL **pdst = node - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] EXPR, FCALL next->slist [L704] FCALL struct node *sub2 = next->slist; [L705] EXPR, FCALL \read(*sub1) [L705] sub1 || sub2 [L705] COND TRUE sub1 || sub2 [L706] struct node ***pdst = &dst; [L707] struct node **pdata; [L708] EXPR, FCALL \read(*sub2) [L708] !sub2 || (sub1 && __VERIFIER_nondet_int()) [L708] COND TRUE !sub2 || (sub1 && __VERIFIER_nondet_int()) [L709] pdata = &sub1 [L712] EXPR, FCALL \read(**pdata) [L712] struct node *node = *pdata; [L713] EXPR, FCALL node->next [L713] FCALL *pdata = node->next [L714] FCALL node->next = ((void *)0) [L715] EXPR, FCALL \read(***pdst) [L715] FCALL **pdst = node - UnprovableResult [Line: 1]: Unable to prove that free always succeeds Unable to prove that free always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] EXPR, FCALL next->slist [L704] FCALL struct node *sub2 = next->slist; [L705] EXPR, FCALL \read(*sub1) [L705] sub1 || sub2 [L705] EXPR, FCALL \read(*sub2) [L705] sub1 || sub2 [L705] COND FALSE !(sub1 || sub2) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L719] FCALL list->next = dst [L720] dst = list [L721] EXPR, FCALL next->next [L721] list = next->next [L722] FCALL free(next) - UnprovableResult [Line: 1]: Unable to prove that pointer dereference always succeeds Unable to prove that pointer dereference always succeeds Reason: abstract domain could reach this error location. Possible FailurePath: [L634] struct list *data = ((void *)0); [L636] COND TRUE __VERIFIER_nondet_int() [L638] EXPR, FCALL malloc(sizeof *node) [L638] struct node *node = malloc(sizeof *node); [L639] COND FALSE !(!node) [L641] FCALL node->next = ((void *)0) [L642] FCALL node->value = __VERIFIER_nondet_int() [L643] EXPR, FCALL malloc(sizeof *item) [L643] struct list *item = malloc(sizeof *item); [L644] COND FALSE !(!item) [L646] FCALL item->slist = node [L647] FCALL item->next = data [L648] data = item [L636] COND FALSE !(__VERIFIER_nondet_int()) [L652] struct iterator iter; [L654] struct list *list = data; [L655] EXPR iter.list = list [L655] COND TRUE (iter.list = list) [L656] EXPR, FCALL list->slist [L656] iter.node = list->slist [L658] struct node *node; [L660] COND FALSE !(!iter.list) [L663] struct node *current = iter.node; [L664] EXPR, FCALL current->next [L664] EXPR iter.node = current->next [L664] COND TRUE (iter.node = current->next) [L665] node = current [L673] COND FALSE !((node)) [L692] struct list *list = data; [L693] list && list->next [L693] EXPR, FCALL list->next [L693] list && list->next [L693] COND TRUE list && list->next [L694] struct list *dst = ((void *)0); [L695] COND TRUE \read(*list) [L696] EXPR, FCALL list->next [L696] struct list *next = list->next; [L697] COND FALSE !(!next) [L702] FCALL struct node **dst = &list->slist; [L703] FCALL struct node *sub1 = list->slist; [L703] EXPR, FCALL list->slist [L703] FCALL struct node *sub1 = list->slist; [L704] FCALL struct node *sub2 = next->slist; [L704] EXPR, FCALL next->slist [L704] FCALL struct node *sub2 = next->slist; [L705] EXPR, FCALL \read(*sub1) [L705] sub1 || sub2 [L705] COND TRUE sub1 || sub2 [L706] struct node ***pdst = &dst; [L707] struct node **pdata; [L708] EXPR, FCALL \read(*sub2) [L708] !sub2 || (sub1 && __VERIFIER_nondet_int()) [L708] COND TRUE !sub2 || (sub1 && __VERIFIER_nondet_int()) [L709] pdata = &sub1 [L712] EXPR, FCALL \read(**pdata) [L712] struct node *node = *pdata; [L713] EXPR, FCALL node->next [L713] FCALL *pdata = node->next [L714] FCALL node->next = ((void *)0) [L715] EXPR, FCALL \read(***pdst) [L715] FCALL **pdst = node [L716] FCALL *pdst = &node->next - PositiveResult [Line: 1]: pointer dereference always succeeds For all program executions holds that pointer dereference always succeeds at this location - PositiveResult [Line: 1]: pointer dereference always succeeds For all program executions holds that pointer dereference always succeeds at this location - PositiveResult [Line: 1]: pointer dereference always succeeds For all program executions holds that pointer dereference always succeeds at this location - PositiveResult [Line: 1]: pointer dereference always succeeds For all program executions holds that pointer dereference always succeeds at this location - PositiveResult [Line: 1]: free always succeeds For all program executions holds that free always succeeds at this location - PositiveResult [Line: 1]: pointer dereference always succeeds For all program executions holds that pointer dereference always succeeds at this location - PositiveResult [Line: 1]: pointer dereference always succeeds For all program executions holds that pointer dereference always succeeds at this location - PositiveResult [Line: 1]: pointer dereference always succeeds For all program executions holds that pointer dereference always succeeds at this location - PositiveResult [Line: 1]: pointer dereference always succeeds For all program executions holds that pointer dereference always succeeds at this location - PositiveResult [Line: 1]: pointer dereference always succeeds For all program executions holds that pointer dereference always succeeds at this location - PositiveResult [Line: 1]: pointer dereference always succeeds For all program executions holds that pointer dereference always succeeds at this location - PositiveResult [Line: 1]: pointer dereference always succeeds For all program executions holds that pointer dereference always succeeds at this location - PositiveResult [Line: 1]: pointer dereference always succeeds For all program executions holds that pointer dereference always succeeds at this location - PositiveResult [Line: 1]: pointer dereference always succeeds For all program executions holds that pointer dereference always succeeds at this location - PositiveResult [Line: 1]: pointer dereference always succeeds For all program executions holds that pointer dereference always succeeds at this location - PositiveResult [Line: 1]: pointer dereference always succeeds For all program executions holds that pointer dereference always succeeds at this location - PositiveResult [Line: 1]: pointer dereference always succeeds For all program executions holds that pointer dereference always succeeds at this location - PositiveResult [Line: 1]: free always succeeds For all program executions holds that free always succeeds at this location - PositiveResult [Line: 1]: pointer dereference always succeeds For all program executions holds that pointer dereference always succeeds at this location * Results from de.uni_freiburg.informatik.ultimate.boogie.preprocessor: - GenericResult: Unfinished Backtranslation Generated EnsuresSpecification ensures #valid == old(#valid); is not ensure(true) RESULT: Ultimate could not prove your program: unable to determine feasibility of some traces Written .csv to /storage/ultimate/releaseScripts/default/UAutomizer-linux/../../../releaseScripts/default/UAutomizer-linux/csv/test-0521_true-valid-memsafety.i_svcomp-DerefFreeMemtrack-32bit-Automizer_Camel+AI_EQ_imprecise.epf_AbstractInterpretationC.xml/Csv-Benchmark-0-2018-01-24_16-27-04-965.csv Written .csv to /storage/ultimate/releaseScripts/default/UAutomizer-linux/../../../releaseScripts/default/UAutomizer-linux/csv/test-0521_true-valid-memsafety.i_svcomp-DerefFreeMemtrack-32bit-Automizer_Camel+AI_EQ_imprecise.epf_AbstractInterpretationC.xml/Csv-VPDomainBenchmark-0-2018-01-24_16-27-04-965.csv Written .csv to /storage/ultimate/releaseScripts/default/UAutomizer-linux/../../../releaseScripts/default/UAutomizer-linux/csv/test-0521_true-valid-memsafety.i_svcomp-DerefFreeMemtrack-32bit-Automizer_Camel+AI_EQ_imprecise.epf_AbstractInterpretationC.xml/Csv-BenchmarkWithCounters-0-2018-01-24_16-27-04-965.csv Received shutdown request...