DRIVER: TVLA Initialization... Blast 2.0. Copyright 2005 Regents of the University of California at Berkeley This program contains Foci, Copyright 2003 Cadence Berkeley Laboratories, Cadence Design Systems. All rights reserved. Begin Parsing files: alternating_list.c Initializing CIL Putting in initializer __BLAST_initialize_alternating_list.c Finished Parsing Begin Building CFA Initializing BLAST Encountered function exit Finished converting function exit Encountered function main ********* function call: __BLAST_initialize_alternating_list.cQuery : (a@main == 0=>false) Query : (a@main == 0=>false) querying exp: (a@main == 0=>false) convertToSimplifySyntax exp = (a@main == 0=>false) Simplify: (IMPLIES (EQ v1 0) FALSE) Forking Simplify process... (Adding axioms) (BG_PUSH (FORALL (x y) (EQ (select (addrOf x y) 0) x))) (BG_PUSH (FORALL (x y d1) (IMPLIES (EQ (foffset x d1) (foffset y d1)) (EQ x y)))) (BG_PUSH (FORALL (x y) (NEQ (addrOf x y) 0))) (BG_PUSH (FORALL (x y) (EQ (* (Div x y) y) x )) ) (BG_PUSH (FORALL (x) (NEQ (_STRINGCONSTANT x) 0 ))) done! Simplify : in isValid Simplify says: > > > > > > 1: Invalid. false Query : (a@main != 0=>false) querying exp: (a@main != 0=>false) convertToSimplifySyntax exp = (a@main != 0=>false) Simplify: (IMPLIES (NEQ v1 0) FALSE) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 2: Invalid. false ********* function call: exitQuery : (flag@main != 0=>false) querying exp: (flag@main != 0=>false) convertToSimplifySyntax exp = (flag@main != 0=>false) Simplify: (IMPLIES (NEQ v1 0) FALSE) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 3: Invalid. false Query : (flag@main == 0=>false) querying exp: (flag@main == 0=>false) convertToSimplifySyntax exp = (flag@main == 0=>false) Simplify: (IMPLIES (EQ v1 0) FALSE) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 4: Invalid. false Query : (t@main == 0=>false) querying exp: (t@main == 0=>false) convertToSimplifySyntax exp = (t@main == 0=>false) Simplify: (IMPLIES (EQ v1 0) FALSE) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 5: Invalid. false Query : (t@main != 0=>false) querying exp: (t@main != 0=>false) convertToSimplifySyntax exp = (t@main != 0=>false) Simplify: (IMPLIES (NEQ v1 0) FALSE) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 6: Invalid. false ********* function call: exitQuery : (* (p@main ).h != 3=>false) querying exp: (* (p@main ).h != 3=>false) convertToSimplifySyntax exp = (* (p@main ).h != 3=>false) Simplify: (IMPLIES (NEQ (select (select v2 0) v1) 3) FALSE) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 7: Invalid. false Query : (* (p@main ).h == 3=>false) querying exp: (* (p@main ).h == 3=>false) convertToSimplifySyntax exp = (* (p@main ).h == 3=>false) Simplify: (IMPLIES (EQ (select (select v2 0) v1) 3) FALSE) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 8: Invalid. false Query : (flag@main != 0=>false) querying exp: (flag@main != 0=>false) convertToSimplifySyntax exp = (flag@main != 0=>false) Simplify: (IMPLIES (NEQ v1 0) FALSE) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 9: Invalid. false Query : (flag@main == 0=>false) querying exp: (flag@main == 0=>false) convertToSimplifySyntax exp = (flag@main == 0=>false) Simplify: (IMPLIES (EQ v1 0) FALSE) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 10: Invalid. false Query : (* (p@main ).h != 1=>false) querying exp: (* (p@main ).h != 1=>false) convertToSimplifySyntax exp = (* (p@main ).h != 1=>false) Simplify: (IMPLIES (NEQ (select (select v2 0) v1) 1) FALSE) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 11: Invalid. false Query : (* (p@main ).h == 1=>false) querying exp: (* (p@main ).h == 1=>false) convertToSimplifySyntax exp = (* (p@main ).h == 1=>false) Simplify: (IMPLIES (EQ (select (select v2 0) v1) 1) FALSE) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 12: Invalid. false ********* function call: printfQuery : (* (p@main ).h != 2=>false) querying exp: (* (p@main ).h != 2=>false) convertToSimplifySyntax exp = (* (p@main ).h != 2=>false) Simplify: (IMPLIES (NEQ (select (select v2 0) v1) 2) FALSE) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 13: Invalid. false Query : (* (p@main ).h == 2=>false) querying exp: (* (p@main ).h == 2=>false) convertToSimplifySyntax exp = (* (p@main ).h == 2=>false) Simplify: (IMPLIES (EQ (select (select v2 0) v1) 2) FALSE) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 14: Invalid. false Finished converting function main Encountered function __BLAST_initialize_alternating_list.c Finished converting function __BLAST_initialize_alternating_list.c Start Building Callgraph-ocp Unknown called fun: malloc Unknown called fun: printf Unknown called fun: malloc Filling SCC info SCC 1: main SCC 2: exit SCC 3: __BLAST_initialize_alternating_list.c SCC info filled Post 1 : 2, 3 Post 2 : Post 3 : SCC sinks: 2, 3 Done Building Callgraph-ocp In output_call_paths cr Checking for cycles in the call graph. cr Done checking for cycles in the call graph. Call Graph Paths: 7 Visited functions: 3 Visited existing functions: 3 Defined functions: main exit __BLAST_initialize_alternating_list.c Loop head : (0,1) Loop head : (1,24) Loop head : (1,11) Finished Building CFA Printing System Description Functions are: __BLAST_initialize_alternating_list.c exit main Function: __BLAST_initialize_alternating_list.c Formals: [] Labels: Location: Location: id=2#1 src="alternating_list.c"; line=0 Attributes: Outgoing edges: Location: id=2#1 src="alternating_list.c"; line=0--- Block(Return(0);)--->Location: id=2#0 (Artificial) Ingoing edges: Location: Location: id=2#0 (Artificial) Attributes: Outgoing edges: Ingoing edges: Location: id=2#1 src="alternating_list.c"; line=0--- Block(Return(0);)--->Location: id=2#0 (Artificial) Function: exit Formals: [s@exit] Labels: _EXIT: Location: id=0#1 src="alternating_list.c"; line=14 Location: Location: id=0#1 src="alternating_list.c"; line=14 Attributes: Outgoing edges: Location: id=0#1 src="alternating_list.c"; line=14--- Skip--->Location: id=0#1 src="alternating_list.c"; line=14 Ingoing edges: Location: id=0#1 src="alternating_list.c"; line=14--- Skip--->Location: id=0#1 src="alternating_list.c"; line=14 Function: main Formals: [] Labels: ERROR: Location: id=1#30 src="alternating_list.c"; line=60 Location: Location: id=1#1 src="alternating_list.c"; line=0 Attributes: Outgoing edges: Location: id=1#1 src="alternating_list.c"; line=0--- FunctionCall(__BLAST_initialize_alternating_list.c())---> Location: id=1#2 (Artificial) Ingoing edges: Location: Location: id=1#2 (Artificial) Attributes: Outgoing edges: Location: id=1#2 (Artificial)---Skip--->Location: id=1#3 src="alternating_list.c"; line=19 Ingoing edges: Location: id=1#1 src="alternating_list.c"; line=0--- FunctionCall(__BLAST_initialize_alternating_list.c())---> Location: id=1#2 (Artificial) Location: Location: id=1#3 src="alternating_list.c"; line=19 Attributes: Outgoing edges: Location: id=1#3 src="alternating_list.c"; line=19--- Block(flag@main = 1;)--->Location: id=1#4 src="alternating_list.c"; line=22 Ingoing edges: Location: id=1#2 (Artificial)---Skip--->Location: id=1#3 src="alternating_list.c"; line=19 Location: Location: id=1#4 src="alternating_list.c"; line=22 Attributes: Outgoing edges: Location: id=1#4 src="alternating_list.c"; line=22--- FunctionCall(tmp@main = malloc(512))--->Location: id=1#5 src="alternating_list.c"; line=22 Ingoing edges: Location: id=1#3 src="alternating_list.c"; line=19--- Block(flag@main = 1;)--->Location: id=1#4 src="alternating_list.c"; line=22 Location: Location: id=1#5 src="alternating_list.c"; line=22 Attributes: Outgoing edges: Location: id=1#5 src="alternating_list.c"; line=22--- Block(a@main = tmp@main;)--->Location: id=1#6 src="alternating_list.c"; line=23 Ingoing edges: Location: id=1#4 src="alternating_list.c"; line=22--- FunctionCall(tmp@main = malloc(512))--->Location: id=1#5 src="alternating_list.c"; line=22 Location: Location: id=1#6 src="alternating_list.c"; line=23 Attributes: Outgoing edges: Location: id=1#6 src="alternating_list.c"; line=23--- Pred(a@main == 0)--->Location: id=1#7 src="alternating_list.c"; line=23 Location: id=1#6 src="alternating_list.c"; line=23--- Pred(a@main != 0)--->Location: id=1#10 src="alternating_list.c"; line=25 Ingoing edges: Location: id=1#5 src="alternating_list.c"; line=22--- Block(a@main = tmp@main;)--->Location: id=1#6 src="alternating_list.c"; line=23 Location: Location: id=1#7 src="alternating_list.c"; line=23 Attributes: Outgoing edges: Location: id=1#7 src="alternating_list.c"; line=23--- FunctionCall(exit(1))--->Location: id=1#9 (Artificial) Ingoing edges: Location: id=1#6 src="alternating_list.c"; line=23--- Pred(a@main == 0)--->Location: id=1#7 src="alternating_list.c"; line=23 Location: Location: id=1#9 (Artificial) Attributes: Outgoing edges: Location: id=1#9 (Artificial)---Skip--->Location: id=1#10 src="alternating_list.c"; line=25 Ingoing edges: Location: id=1#7 src="alternating_list.c"; line=23--- FunctionCall(exit(1))--->Location: id=1#9 (Artificial) Location: Location: id=1#10 src="alternating_list.c"; line=25 Attributes: Outgoing edges: Location: id=1#10 src="alternating_list.c"; line=25--- Block(p@main = a@main;)--->Location: id=1#11 src="alternating_list.c"; line=26 Ingoing edges: Location: id=1#9 (Artificial)---Skip--->Location: id=1#10 src="alternating_list.c"; line=25 Location: id=1#6 src="alternating_list.c"; line=23--- Pred(a@main != 0)--->Location: id=1#10 src="alternating_list.c"; line=25 Location: Location: id=1#11 src="alternating_list.c"; line=26 Attributes: Outgoing edges: Location: id=1#11 src="alternating_list.c"; line=26--- Pred(true)--->Location: id=1#12 src="alternating_list.c"; line=27 Location: id=1#11 src="alternating_list.c"; line=26--- Pred(true)--->Location: id=1#13 src="alternating_list.c"; line=39 Ingoing edges: Location: id=1#10 src="alternating_list.c"; line=25--- Block(p@main = a@main;)--->Location: id=1#11 src="alternating_list.c"; line=26 Location: id=1#21 src="alternating_list.c"; line=36--- Block(* (p@main ).n = t@main;p@main = * (p@main ).n;)---> Location: id=1#11 src="alternating_list.c"; line=26 Location: Location: id=1#12 src="alternating_list.c"; line=27 Attributes: Outgoing edges: Location: id=1#12 src="alternating_list.c"; line=27--- Pred(flag@main != 0)--->Location: id=1#14 src="alternating_list.c"; line=28 Location: id=1#12 src="alternating_list.c"; line=27--- Pred(flag@main == 0)--->Location: id=1#15 src="alternating_list.c"; line=31 Ingoing edges: Location: id=1#11 src="alternating_list.c"; line=26--- Pred(true)--->Location: id=1#12 src="alternating_list.c"; line=27 Location: Location: id=1#14 src="alternating_list.c"; line=28 Attributes: Outgoing edges: Location: id=1#14 src="alternating_list.c"; line=28--- Block(* (p@main ).h = 1;flag@main = 0;)--->Location: id=1#16 src="alternating_list.c"; line=34 Ingoing edges: Location: id=1#12 src="alternating_list.c"; line=27--- Pred(flag@main != 0)--->Location: id=1#14 src="alternating_list.c"; line=28 Location: Location: id=1#16 src="alternating_list.c"; line=34 Attributes: Outgoing edges: Location: id=1#16 src="alternating_list.c"; line=34--- FunctionCall(t@main = malloc(512))--->Location: id=1#17 src="alternating_list.c"; line=35 Ingoing edges: Location: id=1#14 src="alternating_list.c"; line=28--- Block(* (p@main ).h = 1;flag@main = 0;)--->Location: id=1#16 src="alternating_list.c"; line=34 Location: id=1#15 src="alternating_list.c"; line=31--- Block(* (p@main ).h = 2;flag@main = 1;)--->Location: id=1#16 src="alternating_list.c"; line=34 Location: Location: id=1#17 src="alternating_list.c"; line=35 Attributes: Outgoing edges: Location: id=1#17 src="alternating_list.c"; line=35--- Pred(t@main == 0)--->Location: id=1#18 src="alternating_list.c"; line=35 Location: id=1#17 src="alternating_list.c"; line=35--- Pred(t@main != 0)--->Location: id=1#21 src="alternating_list.c"; line=36 Ingoing edges: Location: id=1#16 src="alternating_list.c"; line=34--- FunctionCall(t@main = malloc(512))--->Location: id=1#17 src="alternating_list.c"; line=35 Location: Location: id=1#18 src="alternating_list.c"; line=35 Attributes: Outgoing edges: Location: id=1#18 src="alternating_list.c"; line=35--- FunctionCall(exit(1))--->Location: id=1#20 (Artificial) Ingoing edges: Location: id=1#17 src="alternating_list.c"; line=35--- Pred(t@main == 0)--->Location: id=1#18 src="alternating_list.c"; line=35 Location: Location: id=1#20 (Artificial) Attributes: Outgoing edges: Location: id=1#20 (Artificial)---Skip--->Location: id=1#21 src="alternating_list.c"; line=36 Ingoing edges: Location: id=1#18 src="alternating_list.c"; line=35--- FunctionCall(exit(1))--->Location: id=1#20 (Artificial) Location: Location: id=1#21 src="alternating_list.c"; line=36 Attributes: Outgoing edges: Location: id=1#21 src="alternating_list.c"; line=36--- Block(* (p@main ).n = t@main;p@main = * (p@main ).n;)---> Location: id=1#11 src="alternating_list.c"; line=26 Ingoing edges: Location: id=1#20 (Artificial)---Skip--->Location: id=1#21 src="alternating_list.c"; line=36 Location: id=1#17 src="alternating_list.c"; line=35--- Pred(t@main != 0)--->Location: id=1#21 src="alternating_list.c"; line=36 Location: Location: id=1#15 src="alternating_list.c"; line=31 Attributes: Outgoing edges: Location: id=1#15 src="alternating_list.c"; line=31--- Block(* (p@main ).h = 2;flag@main = 1;)--->Location: id=1#16 src="alternating_list.c"; line=34 Ingoing edges: Location: id=1#12 src="alternating_list.c"; line=27--- Pred(flag@main == 0)--->Location: id=1#15 src="alternating_list.c"; line=31 Location: Location: id=1#13 src="alternating_list.c"; line=39 Attributes: Outgoing edges: Location: id=1#13 src="alternating_list.c"; line=39--- Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;)---> Location: id=1#24 src="alternating_list.c"; line=44 Ingoing edges: Location: id=1#11 src="alternating_list.c"; line=26--- Pred(true)--->Location: id=1#13 src="alternating_list.c"; line=39 Location: Location: id=1#24 src="alternating_list.c"; line=44 Attributes: Outgoing edges: Location: id=1#24 src="alternating_list.c"; line=44--- Pred(* (p@main ).h != 3)--->Location: id=1#25 src="alternating_list.c"; line=45 Location: id=1#24 src="alternating_list.c"; line=44--- Pred(* (p@main ).h == 3)--->Location: id=1#26 src="alternating_list.c"; line=57 Ingoing edges: Location: id=1#13 src="alternating_list.c"; line=39--- Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;)---> Location: id=1#24 src="alternating_list.c"; line=44 Location: id=1#31 src="alternating_list.c"; line=54--- Block(p@main = * (p@main ).n;)--->Location: id=1#24 src="alternating_list.c"; line=44 Location: Location: id=1#25 src="alternating_list.c"; line=45 Attributes: Outgoing edges: Location: id=1#25 src="alternating_list.c"; line=45--- Pred(flag@main != 0)--->Location: id=1#27 src="alternating_list.c"; line=46 Location: id=1#25 src="alternating_list.c"; line=45--- Pred(flag@main == 0)--->Location: id=1#28 src="alternating_list.c"; line=50 Ingoing edges: Location: id=1#24 src="alternating_list.c"; line=44--- Pred(* (p@main ).h != 3)--->Location: id=1#25 src="alternating_list.c"; line=45 Location: Location: id=1#27 src="alternating_list.c"; line=46 Attributes: Outgoing edges: Location: id=1#27 src="alternating_list.c"; line=46--- Block(flag@main = 0;)--->Location: id=1#29 src="alternating_list.c"; line=47 Ingoing edges: Location: id=1#25 src="alternating_list.c"; line=45--- Pred(flag@main != 0)--->Location: id=1#27 src="alternating_list.c"; line=46 Location: Location: id=1#29 src="alternating_list.c"; line=47 Attributes: Outgoing edges: Location: id=1#29 src="alternating_list.c"; line=47--- Pred(* (p@main ).h != 1)--->Location: id=1#30 src="alternating_list.c"; line=60 Location: id=1#29 src="alternating_list.c"; line=47--- Pred(* (p@main ).h == 1)--->Location: id=1#31 src="alternating_list.c"; line=54 Ingoing edges: Location: id=1#27 src="alternating_list.c"; line=46--- Block(flag@main = 0;)--->Location: id=1#29 src="alternating_list.c"; line=47 Location: Location: id=1#30 src="alternating_list.c"; line=60 Attributes: Outgoing edges: Location: id=1#30 src="alternating_list.c"; line=60--- FunctionCall(printf("Alternation violation found.\n"))---> Location: id=1#32 (Artificial) Ingoing edges: Location: id=1#29 src="alternating_list.c"; line=47--- Pred(* (p@main ).h != 1)--->Location: id=1#30 src="alternating_list.c"; line=60 Location: id=1#36 src="alternating_list.c"; line=51--- Pred(* (p@main ).h != 2)--->Location: id=1#30 src="alternating_list.c"; line=60 Location: Location: id=1#32 (Artificial) Attributes: Outgoing edges: Location: id=1#32 (Artificial)---Skip--->Location: id=1#33 src="alternating_list.c"; line=61 Ingoing edges: Location: id=1#30 src="alternating_list.c"; line=60--- FunctionCall(printf("Alternation violation found.\n"))---> Location: id=1#32 (Artificial) Location: Location: id=1#33 src="alternating_list.c"; line=61 Attributes: Outgoing edges: Location: id=1#33 src="alternating_list.c"; line=61--- Block(__retres@main = 1;)--->Location: id=1#34 src="alternating_list.c"; line=17 Ingoing edges: Location: id=1#32 (Artificial)---Skip--->Location: id=1#33 src="alternating_list.c"; line=61 Location: Location: id=1#34 src="alternating_list.c"; line=17 Attributes: Outgoing edges: Location: id=1#34 src="alternating_list.c"; line=17--- Block(Return(__retres@main);)--->Location: id=1#0 (Artificial) Ingoing edges: Location: id=1#33 src="alternating_list.c"; line=61--- Block(__retres@main = 1;)--->Location: id=1#34 src="alternating_list.c"; line=17 Location: id=1#26 src="alternating_list.c"; line=57--- Block(__retres@main = 0;)--->Location: id=1#34 src="alternating_list.c"; line=17 Location: Location: id=1#0 (Artificial) Attributes: Outgoing edges: Ingoing edges: Location: id=1#34 src="alternating_list.c"; line=17--- Block(Return(__retres@main);)--->Location: id=1#0 (Artificial) Location: Location: id=1#31 src="alternating_list.c"; line=54 Attributes: Outgoing edges: Location: id=1#31 src="alternating_list.c"; line=54--- Block(p@main = * (p@main ).n;)--->Location: id=1#24 src="alternating_list.c"; line=44 Ingoing edges: Location: id=1#29 src="alternating_list.c"; line=47--- Pred(* (p@main ).h == 1)--->Location: id=1#31 src="alternating_list.c"; line=54 Location: id=1#36 src="alternating_list.c"; line=51--- Pred(* (p@main ).h == 2)--->Location: id=1#31 src="alternating_list.c"; line=54 Location: Location: id=1#28 src="alternating_list.c"; line=50 Attributes: Outgoing edges: Location: id=1#28 src="alternating_list.c"; line=50--- Block(flag@main = 1;)--->Location: id=1#36 src="alternating_list.c"; line=51 Ingoing edges: Location: id=1#25 src="alternating_list.c"; line=45--- Pred(flag@main == 0)--->Location: id=1#28 src="alternating_list.c"; line=50 Location: Location: id=1#36 src="alternating_list.c"; line=51 Attributes: Outgoing edges: Location: id=1#36 src="alternating_list.c"; line=51--- Pred(* (p@main ).h != 2)--->Location: id=1#30 src="alternating_list.c"; line=60 Location: id=1#36 src="alternating_list.c"; line=51--- Pred(* (p@main ).h == 2)--->Location: id=1#31 src="alternating_list.c"; line=54 Ingoing edges: Location: id=1#28 src="alternating_list.c"; line=50--- Block(flag@main = 1;)--->Location: id=1#36 src="alternating_list.c"; line=51 Location: Location: id=1#26 src="alternating_list.c"; line=57 Attributes: Outgoing edges: Location: id=1#26 src="alternating_list.c"; line=57--- Block(__retres@main = 0;)--->Location: id=1#34 src="alternating_list.c"; line=17 Ingoing edges: Location: id=1#24 src="alternating_list.c"; line=44--- Pred(* (p@main ).h == 3)--->Location: id=1#26 src="alternating_list.c"; line=57 Global variables are: Lvalues are: Lval (* (p@main)).n Lval a@main Lval __retres@main Lval __BLAST_initialize_alternating_list.c Lval * (p@main) Lval (* (p@main)).h Lval tmp@main Lval p@main Lval malloc Lval printf Lval __BLAST_NONDET@main Lval flag@main Lval exit Lval t@main Attribute table Starting the alias analysis In do_bdd_alias Number of BDD variables = 4 a@main __BLAST_initialize_alternating_list.c t@main flag@main tmp@main __bddptsto_mem0 p@main __bddptsto_mem1 exit main __retres@main s@exit bdd_pts_to: Starting iteration. In assign_alloc ptarget is t@main In assign_alloc ptarget is tmp@main In assign_alloc ptarget is t@main In assign_alloc ptarget is tmp@main In assign_alloc ptarget is t@main In assign_alloc ptarget is tmp@main In assign_alloc ptarget is t@main In assign_alloc ptarget is tmp@main In assign_alloc ptarget is t@main In assign_alloc ptarget is tmp@main In assign_alloc ptarget is t@main In assign_alloc ptarget is tmp@main Number of edges (flow insensitive) 10.000000 Finished Building Aliases Finished Building Must Aliases Proc. scc--2 Compute scc_mods: 2 : 1 : exit Direct Wr:2:exit COMP MOD iter1 done COMP MOD iter2 done Proc. scc--3 Compute scc_mods: 3 : 1 : __BLAST_initialize_alternating_list.c Direct Wr:3:__BLAST_initialize_alternating_list.c COMP MOD iter1 done COMP MOD iter2 done Proc. scc--1 Compute scc_mods: 1 : 1 : main Call exit effects Call exit effects Call malloc effects Call printf effects Call malloc effects Call __BLAST_initialize_alternating_list.c effects Direct Wr:1:main get_lval_aliases_iter: flag@main Alias query for * (p@main) and flag@main After peeling: * (p@main) and flag@main The types are different. Hence not aliased. QueryAlias * (p@main) flag@main (false) Alias query for a@main and flag@main After peeling: a@main and flag@main Alias query for t@main and flag@main After peeling: t@main and flag@main Alias query for (* (p@main)).h and flag@main After peeling: (* (p@main)).h and flag@main QueryAlias (* (p@main)).h flag@main (false) Alias query for flag@main and flag@main After peeling: flag@main and flag@main Alias query for tmp@main and flag@main After peeling: tmp@main and flag@main Alias query for __BLAST_NONDET@main and flag@main After peeling: __BLAST_NONDET@main and flag@main Alias query for p@main and flag@main After peeling: p@main and flag@main Alias query for __retres@main and flag@main After peeling: __retres@main and flag@main Alias query for (* (p@main)).n and flag@main After peeling: (* (p@main)).n and flag@main The types are different. Hence not aliased. QueryAlias (* (p@main)).n flag@main (false) Alias query for __BLAST_initialize_alternating_list.c and flag@main After peeling: __BLAST_initialize_alternating_list.c and flag@main Alias query for printf and flag@main After peeling: printf and flag@main Alias query for exit and flag@main After peeling: exit and flag@main Alias query for malloc and flag@main After peeling: malloc and flag@main alias set: flag@main get_lval_aliases_iter: tmp@main Alias query for * (p@main) and tmp@main After peeling: * (p@main) and tmp@main The types are different. Hence not aliased. QueryAlias * (p@main) tmp@main (false) Alias query for a@main and tmp@main After peeling: a@main and tmp@main Alias query for t@main and tmp@main After peeling: t@main and tmp@main Alias query for (* (p@main)).h and tmp@main After peeling: (* (p@main)).h and tmp@main The types are different. Hence not aliased. QueryAlias (* (p@main)).h tmp@main (false) Alias query for flag@main and tmp@main After peeling: flag@main and tmp@main Alias query for tmp@main and tmp@main After peeling: tmp@main and tmp@main Alias query for __BLAST_NONDET@main and tmp@main After peeling: __BLAST_NONDET@main and tmp@main Alias query for p@main and tmp@main After peeling: p@main and tmp@main Alias query for __retres@main and tmp@main After peeling: __retres@main and tmp@main Alias query for (* (p@main)).n and tmp@main After peeling: (* (p@main)).n and tmp@main QueryAlias (* (p@main)).n tmp@main (false) Alias query for __BLAST_initialize_alternating_list.c and tmp@main After peeling: __BLAST_initialize_alternating_list.c and tmp@main Alias query for printf and tmp@main After peeling: printf and tmp@main Alias query for exit and tmp@main After peeling: exit and tmp@main Alias query for malloc and tmp@main After peeling: malloc and tmp@main alias set: tmp@main get_lval_aliases_iter: a@main Alias query for * (p@main) and a@main After peeling: * (p@main) and a@main The types are different. Hence not aliased. QueryAlias * (p@main) a@main (false) Alias query for a@main and a@main After peeling: a@main and a@main Alias query for t@main and a@main After peeling: t@main and a@main Alias query for (* (p@main)).h and a@main After peeling: (* (p@main)).h and a@main The types are different. Hence not aliased. QueryAlias (* (p@main)).h a@main (false) Alias query for flag@main and a@main After peeling: flag@main and a@main Alias query for tmp@main and a@main After peeling: tmp@main and a@main Alias query for __BLAST_NONDET@main and a@main After peeling: __BLAST_NONDET@main and a@main Alias query for p@main and a@main After peeling: p@main and a@main Alias query for __retres@main and a@main After peeling: __retres@main and a@main Alias query for (* (p@main)).n and a@main After peeling: (* (p@main)).n and a@main QueryAlias (* (p@main)).n a@main (false) Alias query for __BLAST_initialize_alternating_list.c and a@main After peeling: __BLAST_initialize_alternating_list.c and a@main Alias query for printf and a@main After peeling: printf and a@main Alias query for exit and a@main After peeling: exit and a@main Alias query for malloc and a@main After peeling: malloc and a@main alias set: a@main get_lval_aliases_iter: p@main Alias query for * (p@main) and p@main After peeling: * (p@main) and p@main The types are different. Hence not aliased. QueryAlias * (p@main) p@main (false) Alias query for a@main and p@main After peeling: a@main and p@main Alias query for t@main and p@main After peeling: t@main and p@main Alias query for (* (p@main)).h and p@main After peeling: (* (p@main)).h and p@main The types are different. Hence not aliased. QueryAlias (* (p@main)).h p@main (false) Alias query for flag@main and p@main After peeling: flag@main and p@main Alias query for tmp@main and p@main After peeling: tmp@main and p@main Alias query for __BLAST_NONDET@main and p@main After peeling: __BLAST_NONDET@main and p@main Alias query for p@main and p@main After peeling: p@main and p@main Alias query for __retres@main and p@main After peeling: __retres@main and p@main Alias query for (* (p@main)).n and p@main After peeling: (* (p@main)).n and p@main QueryAlias (* (p@main)).n p@main (false) Alias query for __BLAST_initialize_alternating_list.c and p@main After peeling: __BLAST_initialize_alternating_list.c and p@main Alias query for printf and p@main After peeling: printf and p@main Alias query for exit and p@main After peeling: exit and p@main Alias query for malloc and p@main After peeling: malloc and p@main alias set: p@main get_lval_aliases_iter: (* (p@main)).h Alias query for * (p@main) and (* (p@main)).h After peeling: * (p@main) and (* (p@main)).h The types are different. Hence not aliased. QueryAlias * (p@main) (* (p@main)).h (false) Alias query for a@main and (* (p@main)).h After peeling: a@main and (* (p@main)).h The types are different. Hence not aliased. QueryAlias a@main (* (p@main)).h (false) Alias query for t@main and (* (p@main)).h After peeling: t@main and (* (p@main)).h The types are different. Hence not aliased. QueryAlias t@main (* (p@main)).h (false) Alias query for (* (p@main)).h and (* (p@main)).h After peeling: (* (p@main)).h and (* (p@main)).h QueryAlias (* (p@main)).h (* (p@main)).h (false) Alias query for flag@main and (* (p@main)).h After peeling: flag@main and (* (p@main)).h QueryAlias flag@main (* (p@main)).h (false) Alias query for tmp@main and (* (p@main)).h After peeling: tmp@main and (* (p@main)).h The types are different. Hence not aliased. QueryAlias tmp@main (* (p@main)).h (false) Alias query for __BLAST_NONDET@main and (* (p@main)).h After peeling: __BLAST_NONDET@main and (* (p@main)).h Warning:Error raised in checkAliasFI!:Not_found for inputs __BLAST_NONDET@main and (* (p@main)).h QueryAlias __BLAST_NONDET@main (* (p@main)).h (false) Alias query for p@main and (* (p@main)).h After peeling: p@main and (* (p@main)).h The types are different. Hence not aliased. QueryAlias p@main (* (p@main)).h (false) Alias query for __retres@main and (* (p@main)).h After peeling: __retres@main and (* (p@main)).h QueryAlias __retres@main (* (p@main)).h (false) Alias query for (* (p@main)).n and (* (p@main)).h After peeling: (* (p@main)).n and (* (p@main)).h The types are different. Hence not aliased. QueryAlias (* (p@main)).n (* (p@main)).h (false) Alias query for __BLAST_initialize_alternating_list.c and (* (p@main)).h After peeling: __BLAST_initialize_alternating_list.c and (* (p@main)).h The types are different. Hence not aliased. QueryAlias __BLAST_initialize_alternating_list.c (* (p@main)).h (false) Alias query for printf and (* (p@main)).h After peeling: printf and (* (p@main)).h The types are different. Hence not aliased. QueryAlias printf (* (p@main)).h (false) Alias query for exit and (* (p@main)).h After peeling: exit and (* (p@main)).h The types are different. Hence not aliased. QueryAlias exit (* (p@main)).h (false) Alias query for malloc and (* (p@main)).h After peeling: malloc and (* (p@main)).h The types are different. Hence not aliased. QueryAlias malloc (* (p@main)).h (false) alias set: (* (p@main)).h get_lval_aliases_iter: p@main get_lval_aliases_iter: flag@main get_lval_aliases_iter: __retres@main Alias query for * (p@main) and __retres@main After peeling: * (p@main) and __retres@main The types are different. Hence not aliased. QueryAlias * (p@main) __retres@main (false) Alias query for a@main and __retres@main After peeling: a@main and __retres@main Alias query for t@main and __retres@main After peeling: t@main and __retres@main Alias query for (* (p@main)).h and __retres@main After peeling: (* (p@main)).h and __retres@main QueryAlias (* (p@main)).h __retres@main (false) Alias query for flag@main and __retres@main After peeling: flag@main and __retres@main Alias query for tmp@main and __retres@main After peeling: tmp@main and __retres@main Alias query for __BLAST_NONDET@main and __retres@main After peeling: __BLAST_NONDET@main and __retres@main Alias query for p@main and __retres@main After peeling: p@main and __retres@main Alias query for __retres@main and __retres@main After peeling: __retres@main and __retres@main Alias query for (* (p@main)).n and __retres@main After peeling: (* (p@main)).n and __retres@main The types are different. Hence not aliased. QueryAlias (* (p@main)).n __retres@main (false) Alias query for __BLAST_initialize_alternating_list.c and __retres@main After peeling: __BLAST_initialize_alternating_list.c and __retres@main Alias query for printf and __retres@main After peeling: printf and __retres@main Alias query for exit and __retres@main After peeling: exit and __retres@main Alias query for malloc and __retres@main After peeling: malloc and __retres@main alias set: __retres@main get_lval_aliases_iter: flag@main get_lval_aliases_iter: p@main get_lval_aliases_iter: __retres@main get_lval_aliases_iter: flag@main get_lval_aliases_iter: (* (p@main)).h get_lval_aliases_iter: flag@main get_lval_aliases_iter: t@main Alias query for * (p@main) and t@main After peeling: * (p@main) and t@main The types are different. Hence not aliased. QueryAlias * (p@main) t@main (false) Alias query for a@main and t@main After peeling: a@main and t@main Alias query for t@main and t@main After peeling: t@main and t@main Alias query for (* (p@main)).h and t@main After peeling: (* (p@main)).h and t@main The types are different. Hence not aliased. QueryAlias (* (p@main)).h t@main (false) Alias query for flag@main and t@main After peeling: flag@main and t@main Alias query for tmp@main and t@main After peeling: tmp@main and t@main Alias query for __BLAST_NONDET@main and t@main After peeling: __BLAST_NONDET@main and t@main Alias query for p@main and t@main After peeling: p@main and t@main Alias query for __retres@main and t@main After peeling: __retres@main and t@main Alias query for (* (p@main)).n and t@main After peeling: (* (p@main)).n and t@main QueryAlias (* (p@main)).n t@main (false) Alias query for __BLAST_initialize_alternating_list.c and t@main After peeling: __BLAST_initialize_alternating_list.c and t@main Alias query for printf and t@main After peeling: printf and t@main Alias query for exit and t@main After peeling: exit and t@main Alias query for malloc and t@main After peeling: malloc and t@main alias set: t@main get_lval_aliases_iter: (* (p@main)).n Alias query for * (p@main) and (* (p@main)).n After peeling: * (p@main) and (* (p@main)).n The types are different. Hence not aliased. QueryAlias * (p@main) (* (p@main)).n (false) Alias query for a@main and (* (p@main)).n After peeling: a@main and (* (p@main)).n QueryAlias a@main (* (p@main)).n (false) Alias query for t@main and (* (p@main)).n After peeling: t@main and (* (p@main)).n QueryAlias t@main (* (p@main)).n (false) Alias query for (* (p@main)).h and (* (p@main)).n After peeling: (* (p@main)).h and (* (p@main)).n The types are different. Hence not aliased. QueryAlias (* (p@main)).h (* (p@main)).n (false) Alias query for flag@main and (* (p@main)).n After peeling: flag@main and (* (p@main)).n The types are different. Hence not aliased. QueryAlias flag@main (* (p@main)).n (false) Alias query for tmp@main and (* (p@main)).n After peeling: tmp@main and (* (p@main)).n QueryAlias tmp@main (* (p@main)).n (false) Alias query for __BLAST_NONDET@main and (* (p@main)).n After peeling: __BLAST_NONDET@main and (* (p@main)).n The types are different. Hence not aliased. QueryAlias __BLAST_NONDET@main (* (p@main)).n (false) Alias query for p@main and (* (p@main)).n After peeling: p@main and (* (p@main)).n QueryAlias p@main (* (p@main)).n (false) Alias query for __retres@main and (* (p@main)).n After peeling: __retres@main and (* (p@main)).n The types are different. Hence not aliased. QueryAlias __retres@main (* (p@main)).n (false) Alias query for (* (p@main)).n and (* (p@main)).n After peeling: (* (p@main)).n and (* (p@main)).n QueryAlias (* (p@main)).n (* (p@main)).n (false) Alias query for __BLAST_initialize_alternating_list.c and (* (p@main)).n After peeling: __BLAST_initialize_alternating_list.c and (* (p@main)).n The types are different. Hence not aliased. QueryAlias __BLAST_initialize_alternating_list.c (* (p@main)).n (false) Alias query for printf and (* (p@main)).n After peeling: printf and (* (p@main)).n The types are different. Hence not aliased. QueryAlias printf (* (p@main)).n (false) Alias query for exit and (* (p@main)).n After peeling: exit and (* (p@main)).n The types are different. Hence not aliased. QueryAlias exit (* (p@main)).n (false) Alias query for malloc and (* (p@main)).n After peeling: malloc and (* (p@main)).n The types are different. Hence not aliased. QueryAlias malloc (* (p@main)).n (false) alias set: (* (p@main)).n get_lval_aliases_iter: p@main get_lval_aliases_iter: (* (p@main)).h get_lval_aliases_iter: flag@main COMP MOD iter1 done COMP MOD iter2 done Done computing mods Write mods to : alternating_list.mods.gl Done writing to :alternating_list.mods.gl Write mods to : alternating_list.mods.fl Done writing to :alternating_list.mods.fl Write mods to : alternating_list.mods.mmb Done writing to :alternating_list.mods.mmb Write mods to : alternating_list.mods.ceef Done writing to :alternating_list.mods.ceef Done writing mods In add_symbolic_hooks [add_symbolic_hooks] Processing function: __BLAST_initialize_alternating_list.c [add_symbolic_hooks] Processing function: exit Done post-alias-analysis back from post_alias_analysis Unknown called fun: malloc Unknown called fun: printf Unknown called fun: malloc Start Building Callgraph-ocp Done Building Callgraph-ocp In output_call_paths cr Checking for cycles in the call graph. cr Done checking for cycles in the call graph. Call Graph Paths: 7 Visited functions: 3 Visited existing functions: 3 Defined functions: main exit __BLAST_initialize_alternating_list.c Unknown fun : DRIVER: TVLA Initialization... DRIVER: TVLA Initialization... Initialized Abstraction SA> Initialization! SA: Add predicate sm SA: Add predicate eq SA: Add predicate isnew In Deconstruct_fc :exit(,1) In Deconstruct_fc :exit(,1) SA> Shape-alias pair found: p@main, t@main SA> Shape-alias pair found: p@main, p@main In Deconstruct_fc :malloc(,512) SA> Shape-alias pair found: t@main, Returned(NOT_IMPLEMENTED_FUNCTION) In Deconstruct_fc :malloc(,512) In Deconstruct_fc :printf(,"Alternation violation found.\n") SA> Shape-alias pair found: a@main, p@main SA> Shape-alias pair found: a@main, tmp@main In Deconstruct_fc :malloc(,512) SA> Shape-alias pair found: tmp@main, Returned(NOT_IMPLEMENTED_FUNCTION) In Deconstruct_fc :malloc(,512) In Deconstruct_fc :__BLAST_initialize_alternating_list.c() SA> Switching SC: old = <>; new = <(default)> SA> Restoring state from SC <(default)> UL> Shape Analysis enabled Done adding seed predicates ********** Now running the model-checker ********** Glob useful preds Glob useful preds Entering parallel_model_check init region: [AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] error region: [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Setting signal for 2000 seconds **************************************************************************** Next iteration of model-check's big while-loop 1 Now processing tree node: Node(edge=NONE, data=Data(id=0; kind=Entry; mark=Processed_Was_Covered_To_Reprocess(time_stamp=0; region=[AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] ))) RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#1 src="alternating_list.c"; line=0 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Top RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=NONE, data=Data(id=0; kind=Entry; mark=Processed_Was_Covered_To_Reprocess(time_stamp=0; region=[AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] ))) Updating the node's marking This node now looks like: Node(edge=NONE, data=Data(id=0; kind=Entry; mark=Processed_Uncovered(time_stamp=0; region=[AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] ))) cfLMC enters: __BLAST_initialize_alternating_list.c In post -- arguments are: [AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] Location: id=1#1 src="alternating_list.c"; line=0---FunctionCall(__BLAST_initialize_alternating_list.c())---> Location: id=1#2 (Artificial) tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In Deconstruct_fc :__BLAST_initialize_alternating_list.c() In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Top FunctionCall(__BLAST_initialize_alternating_list.c()) location (1,1) absdatapost postloc: (2,2) UL> Running post on command: UL> FunctionCall(__BLAST_initialize_alternating_list.c()) SA> Post of SA is called! SA> Post from top... starting from no information... SA> Switching SC: old = <(default)>; new = <(default)> SA> Saving state to SC <(default)> SA> Restoring state from SC <(default)> In Deconstruct_fc :__BLAST_initialize_alternating_list.c() UL> Post returning predicates: UL> And [] Writing back post region New entry point for __BLAST_initialize_alternating_list.c lift_and_propagate Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 2 Now processing tree node: Node(edge=Location: id=1#1 src="alternating_list.c"; line=0---FunctionCall(__BLAST_initialize_alternating_list.c())---> Location: id=1#2 (Artificial), data=Data(id=2; kind=Entry; mark=Processed_Was_Covered_To_Reprocess(time_stamp=1; region=[AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))) RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=2#2 (Artificial) RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> [Location: id=1#1 src="alternating_list.c"; line=0]] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#1 src="alternating_list.c"; line=0---FunctionCall(__BLAST_initialize_alternating_list.c())---> Location: id=1#2 (Artificial), data=Data(id=2; kind=Entry; mark=Processed_Was_Covered_To_Reprocess(time_stamp=1; region=[AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))) Updating the node's marking This node now looks like: Node(edge=Location: id=1#1 src="alternating_list.c"; line=0---FunctionCall(__BLAST_initialize_alternating_list.c())---> Location: id=1#2 (Artificial), data=Data(id=2; kind=Entry; mark=Processed_Uncovered(time_stamp=1; region=[AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:1 Node(edge=Location: id=2#2 (Artificial)---SymHook(__BLAST_initialize_alternating_list.c)---> Location: id=2#1 src="alternating_list.c"; line=0, data=Data(id=3; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 3 Now processing tree node: Node(edge=Location: id=2#2 (Artificial)---SymHook(__BLAST_initialize_alternating_list.c)---> Location: id=2#1 src="alternating_list.c"; line=0, data=Data(id=3; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] Location: id=2#2 (Artificial)---SymHook(__BLAST_initialize_alternating_list.c)---> Location: id=2#1 src="alternating_list.c"; line=0 tos_fname: __BLAST_initialize_alternating_list.c, tos_2_fname: main In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] SymHook(__BLAST_initialize_alternating_list.c) location (2,2) absdatapost postloc: (2,1) UL> Running post on command: UL> SymHook(__BLAST_initialize_alternating_list.c) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=2#1 src="alternating_list.c"; line=0 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> [Location: id=1#1 src="alternating_list.c"; line=0]] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=2#2 (Artificial)---SymHook(__BLAST_initialize_alternating_list.c)---> Location: id=2#1 src="alternating_list.c"; line=0, data=Data(id=3; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=2#2 (Artificial)---SymHook(__BLAST_initialize_alternating_list.c)---> Location: id=2#1 src="alternating_list.c"; line=0, data=Data(id=3; kind=Node; mark=Processed_Uncovered(time_stamp=2; region=[AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))) It's a new exit point for __BLAST_initialize_alternating_list.c ! |entries| = 1 New summary edges to exit node. New summary edge! Node(edge=Location: id=1#1 src="alternating_list.c"; line=0---FunctionCall(__BLAST_initialize_alternating_list.c())---> Location: id=1#2 (Artificial), data=Data(id=2; kind=Entry; mark=Processed_Uncovered(time_stamp=1; region=[AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))) --> Node(edge=Location: id=2#1 src="alternating_list.c"; line=0---Block(Return(0);)---> Location: id=2#0 (Artificial), data=Data(id=4; kind=Exit; mark=Processed_Uncovered(time_stamp=3; region=[AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))) by way of lift_and_propagate In Region.leq -- arguments are: (suppressed-RJ) [AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] [AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] SA> TVLA: Cover result: YES SA> Cover -> YES A call site matched in lift_and_propagate. Node(edge=NONE, data=Data(id=0; kind=Entry; mark=Processed_Uncovered(time_stamp=0; region=[AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] ))) Now caller has 1 children.@. Summary edge added Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 4 Now processing tree node: Node(edge=SUMMARY Node(edge=Location: id=2#1 src="alternating_list.c"; line=0--- Block(Return(0);)--->Location: id=2#0 (Artificial), data=Data(id=4; kind=Exit; mark=Processed_Uncovered(time_stamp=3; region=[AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))), data=Data(id=5; kind=Node; mark=Unprocessed)) Summary Post Printing abstract data regions: [AtomicRegion: Location: id=1#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] [AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] In Deconstruct_fc :__BLAST_initialize_alternating_list.c() Target: * (sizeof(<0>)) Trivial post RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#2 (Artificial) RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=SUMMARY Node(edge=Location: id=2#1 src="alternating_list.c"; line=0--- Block(Return(0);)--->Location: id=2#0 (Artificial), data=Data(id=4; kind=Exit; mark=Processed_Uncovered(time_stamp=3; region=[AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))), data=Data(id=5; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=SUMMARY Node(edge=Location: id=2#1 src="alternating_list.c"; line=0--- Block(Return(0);)--->Location: id=2#0 (Artificial), data=Data(id=4; kind=Exit; mark=Processed_Uncovered(time_stamp=3; region=[AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))), data=Data(id=5; kind=Node; mark=Processed_Uncovered(time_stamp=4; region=[AtomicRegion: Location: id=1#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:1 Node(edge=Location: id=1#2 (Artificial)---Skip--->Location: id=1#3 src="alternating_list.c"; line=19, data=Data(id=6; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 5 Now processing tree node: Node(edge=Location: id=1#2 (Artificial)---Skip--->Location: id=1#3 src="alternating_list.c"; line=19, data=Data(id=6; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#2 (Artificial)---Skip--->Location: id=1#3 src="alternating_list.c"; line=19 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Skip location (1,2) absdatapost postloc: (1,3) UL> Running post on command: UL> Skip SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#3 src="alternating_list.c"; line=19 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#3 src="alternating_list.c"; line=19 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#3 src="alternating_list.c"; line=19 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#2 (Artificial)---Skip--->Location: id=1#3 src="alternating_list.c"; line=19, data=Data(id=6; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#2 (Artificial)---Skip--->Location: id=1#3 src="alternating_list.c"; line=19, data=Data(id=6; kind=Node; mark=Processed_Uncovered(time_stamp=5; region=[AtomicRegion: Location: id=1#3 src="alternating_list.c"; line=19 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:1 Node(edge=Location: id=1#3 src="alternating_list.c"; line=19---Block(flag@main = 1;)---> Location: id=1#4 src="alternating_list.c"; line=22, data=Data(id=7; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 6 Now processing tree node: Node(edge=Location: id=1#3 src="alternating_list.c"; line=19---Block(flag@main = 1;)---> Location: id=1#4 src="alternating_list.c"; line=22, data=Data(id=7; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#3 src="alternating_list.c"; line=19 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#3 src="alternating_list.c"; line=19---Block(flag@main = 1;)---> Location: id=1#4 src="alternating_list.c"; line=22 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Block(flag@main = 1;) location (1,3) absdatapost postloc: (1,4) UL> Running post on command: UL> Block(flag@main = 1;) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#4 src="alternating_list.c"; line=22 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#4 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#4 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#3 src="alternating_list.c"; line=19---Block(flag@main = 1;)---> Location: id=1#4 src="alternating_list.c"; line=22, data=Data(id=7; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#3 src="alternating_list.c"; line=19---Block(flag@main = 1;)---> Location: id=1#4 src="alternating_list.c"; line=22, data=Data(id=7; kind=Node; mark=Processed_Uncovered(time_stamp=6; region=[AtomicRegion: Location: id=1#4 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:1 Node(edge=Location: id=1#4 src="alternating_list.c"; line=22---FunctionCall(tmp@main = malloc(512))---> Location: id=1#5 src="alternating_list.c"; line=22, data=Data(id=8; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 7 Now processing tree node: Node(edge=Location: id=1#4 src="alternating_list.c"; line=22---FunctionCall(tmp@main = malloc(512))---> Location: id=1#5 src="alternating_list.c"; line=22, data=Data(id=8; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#4 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#4 src="alternating_list.c"; line=22---FunctionCall(tmp@main = malloc(512))---> Location: id=1#5 src="alternating_list.c"; line=22 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In Deconstruct_fc :tmp@main=malloc(,512) In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] FunctionCall(tmp@main = malloc(512)) location (1,4) absdatapost postloc: (1,5) UL> Running post on command: UL> FunctionCall(tmp@main = malloc(512)) SA> Post of SA is called! In Deconstruct_fc :tmp@main=malloc(,512) SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#5 src="alternating_list.c"; line=22 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#5 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#5 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#4 src="alternating_list.c"; line=22---FunctionCall(tmp@main = malloc(512))---> Location: id=1#5 src="alternating_list.c"; line=22, data=Data(id=8; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#4 src="alternating_list.c"; line=22---FunctionCall(tmp@main = malloc(512))---> Location: id=1#5 src="alternating_list.c"; line=22, data=Data(id=8; kind=Node; mark=Processed_Uncovered(time_stamp=7; region=[AtomicRegion: Location: id=1#5 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:1 Node(edge=Location: id=1#5 src="alternating_list.c"; line=22---Block(a@main = tmp@main;)---> Location: id=1#6 src="alternating_list.c"; line=23, data=Data(id=9; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 8 Now processing tree node: Node(edge=Location: id=1#5 src="alternating_list.c"; line=22---Block(a@main = tmp@main;)---> Location: id=1#6 src="alternating_list.c"; line=23, data=Data(id=9; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#5 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#5 src="alternating_list.c"; line=22---Block(a@main = tmp@main;)--->Location: id=1#6 src="alternating_list.c"; line=23 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Block(a@main = tmp@main;) location (1,5) absdatapost postloc: (1,6) UL> Running post on command: UL> Block(a@main = tmp@main;) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#6 src="alternating_list.c"; line=23 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#6 src="alternating_list.c"; line=23 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#6 src="alternating_list.c"; line=23 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#5 src="alternating_list.c"; line=22---Block(a@main = tmp@main;)---> Location: id=1#6 src="alternating_list.c"; line=23, data=Data(id=9; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#5 src="alternating_list.c"; line=22---Block(a@main = tmp@main;)---> Location: id=1#6 src="alternating_list.c"; line=23, data=Data(id=9; kind=Node; mark=Processed_Uncovered(time_stamp=8; region=[AtomicRegion: Location: id=1#6 src="alternating_list.c"; line=23 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:1 Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=10; kind=Node; mark=Unprocessed)) Adding the children to the set of pending unprocessed#nodes Remaining nodes:2 Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main != 0)---> Location: id=1#10 src="alternating_list.c"; line=25, data=Data(id=11; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=10; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 9 Now processing tree node: Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main != 0)---> Location: id=1#10 src="alternating_list.c"; line=25, data=Data(id=11; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#6 src="alternating_list.c"; line=23 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main != 0)---> Location: id=1#10 src="alternating_list.c"; line=25 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Pred(a@main != 0) location (1,6) absdatapost postloc: (1,10) UL> Running post on command: UL> Pred(a@main != 0) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#10 src="alternating_list.c"; line=25 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#10 src="alternating_list.c"; line=25 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#10 src="alternating_list.c"; line=25 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main != 0)---> Location: id=1#10 src="alternating_list.c"; line=25, data=Data(id=11; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main != 0)---> Location: id=1#10 src="alternating_list.c"; line=25, data=Data(id=11; kind=Node; mark=Processed_Uncovered(time_stamp=9; region=[AtomicRegion: Location: id=1#10 src="alternating_list.c"; line=25 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:2 Node(edge=Location: id=1#10 src="alternating_list.c"; line=25---Block(p@main = a@main;)---> Location: id=1#11 src="alternating_list.c"; line=26, data=Data(id=12; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=10; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 10 Now processing tree node: Node(edge=Location: id=1#10 src="alternating_list.c"; line=25---Block(p@main = a@main;)---> Location: id=1#11 src="alternating_list.c"; line=26, data=Data(id=12; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#10 src="alternating_list.c"; line=25 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#10 src="alternating_list.c"; line=25---Block(p@main = a@main;)---> Location: id=1#11 src="alternating_list.c"; line=26 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Block(p@main = a@main;) location (1,10) absdatapost postloc: (1,11) UL> Running post on command: UL> Block(p@main = a@main;) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#11 src="alternating_list.c"; line=26 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#11 src="alternating_list.c"; line=26 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#11 src="alternating_list.c"; line=26 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#10 src="alternating_list.c"; line=25---Block(p@main = a@main;)---> Location: id=1#11 src="alternating_list.c"; line=26, data=Data(id=12; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#10 src="alternating_list.c"; line=25---Block(p@main = a@main;)---> Location: id=1#11 src="alternating_list.c"; line=26, data=Data(id=12; kind=Node; mark=Processed_Uncovered(time_stamp=10; region=[AtomicRegion: Location: id=1#11 src="alternating_list.c"; line=26 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:2 Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=13; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=10; kind=Node; mark=Unprocessed)) Adding the children to the set of pending unprocessed#nodes Remaining nodes:3 Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#13 src="alternating_list.c"; line=39, data=Data(id=14; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=13; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=10; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 11 Now processing tree node: Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#13 src="alternating_list.c"; line=39, data=Data(id=14; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#11 src="alternating_list.c"; line=26 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)--->Location: id=1#13 src="alternating_list.c"; line=39 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Pred(true) location (1,11) absdatapost postloc: (1,13) UL> Running post on command: UL> Pred(true) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#13 src="alternating_list.c"; line=39 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#13 src="alternating_list.c"; line=39, data=Data(id=14; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#13 src="alternating_list.c"; line=39, data=Data(id=14; kind=Node; mark=Processed_Uncovered(time_stamp=11; region=[AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:3 Node(edge=Location: id=1#13 src="alternating_list.c"; line=39---Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;)---> Location: id=1#24 src="alternating_list.c"; line=44, data=Data(id=15; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=13; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=10; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 12 Now processing tree node: Node(edge=Location: id=1#13 src="alternating_list.c"; line=39---Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;)---> Location: id=1#24 src="alternating_list.c"; line=44, data=Data(id=15; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#13 src="alternating_list.c"; line=39---Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;)---> Location: id=1#24 src="alternating_list.c"; line=44 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;) location (1,13) absdatapost postloc: (1,24) UL> Running post on command: UL> Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#24 src="alternating_list.c"; line=44 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#13 src="alternating_list.c"; line=39---Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;)---> Location: id=1#24 src="alternating_list.c"; line=44, data=Data(id=15; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#13 src="alternating_list.c"; line=39---Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;)---> Location: id=1#24 src="alternating_list.c"; line=44, data=Data(id=15; kind=Node; mark=Processed_Uncovered(time_stamp=12; region=[AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:3 Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=16; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=13; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=10; kind=Node; mark=Unprocessed)) Adding the children to the set of pending unprocessed#nodes Remaining nodes:4 Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h == 3)---> Location: id=1#26 src="alternating_list.c"; line=57, data=Data(id=17; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=16; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=13; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=10; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 13 Now processing tree node: Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h == 3)---> Location: id=1#26 src="alternating_list.c"; line=57, data=Data(id=17; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#24 src="alternating_list.c"; line=44---Pred(* (p@main ).h == 3)--->Location: id=1#26 src="alternating_list.c"; line=57 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Pred(* (p@main ).h == 3) location (1,24) absdatapost postloc: (1,26) UL> Running post on command: UL> Pred(* (p@main ).h == 3) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#26 src="alternating_list.c"; line=57 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#26 src="alternating_list.c"; line=57 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#26 src="alternating_list.c"; line=57 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h == 3)---> Location: id=1#26 src="alternating_list.c"; line=57, data=Data(id=17; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h == 3)---> Location: id=1#26 src="alternating_list.c"; line=57, data=Data(id=17; kind=Node; mark=Processed_Uncovered(time_stamp=13; region=[AtomicRegion: Location: id=1#26 src="alternating_list.c"; line=57 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:4 Node(edge=Location: id=1#26 src="alternating_list.c"; line=57---Block(__retres@main = 0;)---> Location: id=1#34 src="alternating_list.c"; line=17, data=Data(id=18; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=16; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=13; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=10; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 14 Now processing tree node: Node(edge=Location: id=1#26 src="alternating_list.c"; line=57---Block(__retres@main = 0;)---> Location: id=1#34 src="alternating_list.c"; line=17, data=Data(id=18; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#26 src="alternating_list.c"; line=57 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#26 src="alternating_list.c"; line=57---Block(__retres@main = 0;)--->Location: id=1#34 src="alternating_list.c"; line=17 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Block(__retres@main = 0;) location (1,26) absdatapost postloc: (1,34) UL> Running post on command: UL> Block(__retres@main = 0;) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#34 src="alternating_list.c"; line=17 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#34 src="alternating_list.c"; line=17 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#34 src="alternating_list.c"; line=17 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#26 src="alternating_list.c"; line=57---Block(__retres@main = 0;)---> Location: id=1#34 src="alternating_list.c"; line=17, data=Data(id=18; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#26 src="alternating_list.c"; line=57---Block(__retres@main = 0;)---> Location: id=1#34 src="alternating_list.c"; line=17, data=Data(id=18; kind=Node; mark=Processed_Uncovered(time_stamp=14; region=[AtomicRegion: Location: id=1#34 src="alternating_list.c"; line=17 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) It's a new exit point for main ! |entries| = 1 New summary edges to exit node. New summary edge! Node(edge=NONE, data=Data(id=0; kind=Entry; mark=Processed_Uncovered(time_stamp=0; region=[AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] ))) --> Node(edge=Location: id=1#34 src="alternating_list.c"; line=17---Block(Return(__retres@main);)---> Location: id=1#0 (Artificial), data=Data(id=19; kind=Exit; mark=Processed_Uncovered(time_stamp=15; region=[AtomicRegion: Location: id=1#34 src="alternating_list.c"; line=17 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) by way of Summary edge added Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 15 Now processing tree node: Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=16; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#24 src="alternating_list.c"; line=44---Pred(* (p@main ).h != 3)--->Location: id=1#25 src="alternating_list.c"; line=45 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Pred(* (p@main ).h != 3) location (1,24) absdatapost postloc: (1,25) UL> Running post on command: UL> Pred(* (p@main ).h != 3) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#25 src="alternating_list.c"; line=45 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=16; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=16; kind=Node; mark=Processed_Uncovered(time_stamp=16; region=[AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:3 Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main != 0)---> Location: id=1#27 src="alternating_list.c"; line=46, data=Data(id=20; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=13; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=10; kind=Node; mark=Unprocessed)) Adding the children to the set of pending unprocessed#nodes Remaining nodes:4 Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main == 0)---> Location: id=1#28 src="alternating_list.c"; line=50, data=Data(id=21; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main != 0)---> Location: id=1#27 src="alternating_list.c"; line=46, data=Data(id=20; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=13; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=10; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 16 Now processing tree node: Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main == 0)---> Location: id=1#28 src="alternating_list.c"; line=50, data=Data(id=21; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#25 src="alternating_list.c"; line=45---Pred(flag@main == 0)---> Location: id=1#28 src="alternating_list.c"; line=50 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Pred(flag@main == 0) location (1,25) absdatapost postloc: (1,28) UL> Running post on command: UL> Pred(flag@main == 0) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#28 src="alternating_list.c"; line=50 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#28 src="alternating_list.c"; line=50 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#28 src="alternating_list.c"; line=50 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main == 0)---> Location: id=1#28 src="alternating_list.c"; line=50, data=Data(id=21; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main == 0)---> Location: id=1#28 src="alternating_list.c"; line=50, data=Data(id=21; kind=Node; mark=Processed_Uncovered(time_stamp=17; region=[AtomicRegion: Location: id=1#28 src="alternating_list.c"; line=50 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:4 Node(edge=Location: id=1#28 src="alternating_list.c"; line=50---Block(flag@main = 1;)---> Location: id=1#36 src="alternating_list.c"; line=51, data=Data(id=22; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main != 0)---> Location: id=1#27 src="alternating_list.c"; line=46, data=Data(id=20; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=13; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=10; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 17 Now processing tree node: Node(edge=Location: id=1#28 src="alternating_list.c"; line=50---Block(flag@main = 1;)---> Location: id=1#36 src="alternating_list.c"; line=51, data=Data(id=22; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#28 src="alternating_list.c"; line=50 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#28 src="alternating_list.c"; line=50---Block(flag@main = 1;)---> Location: id=1#36 src="alternating_list.c"; line=51 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Block(flag@main = 1;) location (1,28) absdatapost postloc: (1,36) UL> Running post on command: UL> Block(flag@main = 1;) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#36 src="alternating_list.c"; line=51 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#36 src="alternating_list.c"; line=51 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#36 src="alternating_list.c"; line=51 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#28 src="alternating_list.c"; line=50---Block(flag@main = 1;)---> Location: id=1#36 src="alternating_list.c"; line=51, data=Data(id=22; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#28 src="alternating_list.c"; line=50---Block(flag@main = 1;)---> Location: id=1#36 src="alternating_list.c"; line=51, data=Data(id=22; kind=Node; mark=Processed_Uncovered(time_stamp=18; region=[AtomicRegion: Location: id=1#36 src="alternating_list.c"; line=51 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:4 Node(edge=Location: id=1#36 src="alternating_list.c"; line=51---Pred( * (p@main ).h != 2)---> Location: id=1#30 src="alternating_list.c"; line=60, data=Data(id=23; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main != 0)---> Location: id=1#27 src="alternating_list.c"; line=46, data=Data(id=20; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=13; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=10; kind=Node; mark=Unprocessed)) Adding the children to the set of pending unprocessed#nodes Remaining nodes:5 Node(edge=Location: id=1#36 src="alternating_list.c"; line=51---Pred( * (p@main ).h == 2)---> Location: id=1#31 src="alternating_list.c"; line=54, data=Data(id=24; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#36 src="alternating_list.c"; line=51---Pred( * (p@main ).h != 2)---> Location: id=1#30 src="alternating_list.c"; line=60, data=Data(id=23; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main != 0)---> Location: id=1#27 src="alternating_list.c"; line=46, data=Data(id=20; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=13; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=10; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 18 Now processing tree node: Node(edge=Location: id=1#36 src="alternating_list.c"; line=51---Pred( * (p@main ).h == 2)---> Location: id=1#31 src="alternating_list.c"; line=54, data=Data(id=24; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#36 src="alternating_list.c"; line=51 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#36 src="alternating_list.c"; line=51---Pred(* (p@main ).h == 2)--->Location: id=1#31 src="alternating_list.c"; line=54 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Pred(* (p@main ).h == 2) location (1,36) absdatapost postloc: (1,31) UL> Running post on command: UL> Pred(* (p@main ).h == 2) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#31 src="alternating_list.c"; line=54 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#31 src="alternating_list.c"; line=54 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#31 src="alternating_list.c"; line=54 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#36 src="alternating_list.c"; line=51---Pred( * (p@main ).h == 2)---> Location: id=1#31 src="alternating_list.c"; line=54, data=Data(id=24; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#36 src="alternating_list.c"; line=51---Pred( * (p@main ).h == 2)---> Location: id=1#31 src="alternating_list.c"; line=54, data=Data(id=24; kind=Node; mark=Processed_Uncovered(time_stamp=19; region=[AtomicRegion: Location: id=1#31 src="alternating_list.c"; line=54 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:5 Node(edge=Location: id=1#31 src="alternating_list.c"; line=54---Block(p@main = * (p@main ).n;)---> Location: id=1#24 src="alternating_list.c"; line=44, data=Data(id=25; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#36 src="alternating_list.c"; line=51---Pred( * (p@main ).h != 2)---> Location: id=1#30 src="alternating_list.c"; line=60, data=Data(id=23; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main != 0)---> Location: id=1#27 src="alternating_list.c"; line=46, data=Data(id=20; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=13; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=10; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 19 Now processing tree node: Node(edge=Location: id=1#31 src="alternating_list.c"; line=54---Block(p@main = * (p@main ).n;)---> Location: id=1#24 src="alternating_list.c"; line=44, data=Data(id=25; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#31 src="alternating_list.c"; line=54 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#31 src="alternating_list.c"; line=54---Block(p@main = * (p@main ).n;)---> Location: id=1#24 src="alternating_list.c"; line=44 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Block(p@main = * (p@main ).n;) location (1,31) absdatapost postloc: (1,24) UL> Running post on command: UL> Block(p@main = * (p@main ).n;) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#24 src="alternating_list.c"; line=44 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov In Region.leq -- arguments are: (suppressed-RJ) [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] SA> TVLA: Cover result: YES SA> Cover -> YES In Region.leq -- arguments are: (suppressed-RJ) [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] SA> TVLA: Cover result: YES SA> Cover -> YES In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is covered *** COVERED [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] BY: Node(edge=Location: id=1#13 src="alternating_list.c"; line=39---Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;)---> Location: id=1#24 src="alternating_list.c"; line=44, data=Data(id=15; kind=Node; mark=Processed_Uncovered(time_stamp=12; region=[AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) NEW SUMMARIES 1 vs. 1 New summary edge! Node(edge=NONE, data=Data(id=0; kind=Entry; mark=Processed_Uncovered(time_stamp=0; region=[AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] ))) --> Node(edge=Location: id=1#34 src="alternating_list.c"; line=17---Block(Return(__retres@main);)---> Location: id=1#0 (Artificial), data=Data(id=19; kind=Exit; mark=Processed_Uncovered(time_stamp=15; region=[AtomicRegion: Location: id=1#34 src="alternating_list.c"; line=17 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) by way of Summary edge added **************************************************************************** Next iteration of model-check's big while-loop 20 Now processing tree node: Node(edge=Location: id=1#36 src="alternating_list.c"; line=51---Pred( * (p@main ).h != 2)---> Location: id=1#30 src="alternating_list.c"; line=60, data=Data(id=23; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#36 src="alternating_list.c"; line=51 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#36 src="alternating_list.c"; line=51---Pred(* (p@main ).h != 2)--->Location: id=1#30 src="alternating_list.c"; line=60 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Pred(* (p@main ).h != 2) location (1,36) absdatapost postloc: (1,30) UL> Running post on command: UL> Pred(* (p@main ).h != 2) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#30 src="alternating_list.c"; line=60 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Error found : checking validity. Error at depth14 Error node: 23 Error found at this node Testing whether this error is a real one path_to_root: Node(edge=Location: id=1#36 src="alternating_list.c"; line=51---Pred( * (p@main ).h != 2)---> Location: id=1#30 src="alternating_list.c"; line=60, data=Data(id=23; kind=Node; mark=Processed_Was_Covered_To_Reprocess(time_stamp=21; region=[AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) path_to_root: Node(edge=Location: id=1#28 src="alternating_list.c"; line=50---Block(flag@main = 1;)---> Location: id=1#36 src="alternating_list.c"; line=51, data=Data(id=22; kind=Node; mark=Processed_Uncovered(time_stamp=18; region=[AtomicRegion: Location: id=1#36 src="alternating_list.c"; line=51 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) path_to_root: Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main == 0)---> Location: id=1#28 src="alternating_list.c"; line=50, data=Data(id=21; kind=Node; mark=Processed_Uncovered(time_stamp=17; region=[AtomicRegion: Location: id=1#28 src="alternating_list.c"; line=50 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) path_to_root: Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=16; kind=Node; mark=Processed_Uncovered(time_stamp=16; region=[AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) path_to_root: Node(edge=Location: id=1#13 src="alternating_list.c"; line=39---Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;)---> Location: id=1#24 src="alternating_list.c"; line=44, data=Data(id=15; kind=Node; mark=Processed_Uncovered(time_stamp=12; region=[AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) path_to_root: Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#13 src="alternating_list.c"; line=39, data=Data(id=14; kind=Node; mark=Processed_Uncovered(time_stamp=11; region=[AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) path_to_root: Node(edge=Location: id=1#10 src="alternating_list.c"; line=25---Block(p@main = a@main;)---> Location: id=1#11 src="alternating_list.c"; line=26, data=Data(id=12; kind=Node; mark=Processed_Uncovered(time_stamp=10; region=[AtomicRegion: Location: id=1#11 src="alternating_list.c"; line=26 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) path_to_root: Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main != 0)---> Location: id=1#10 src="alternating_list.c"; line=25, data=Data(id=11; kind=Node; mark=Processed_Uncovered(time_stamp=9; region=[AtomicRegion: Location: id=1#10 src="alternating_list.c"; line=25 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) path_to_root: Node(edge=Location: id=1#5 src="alternating_list.c"; line=22---Block(a@main = tmp@main;)---> Location: id=1#6 src="alternating_list.c"; line=23, data=Data(id=9; kind=Node; mark=Processed_Uncovered(time_stamp=8; region=[AtomicRegion: Location: id=1#6 src="alternating_list.c"; line=23 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) path_to_root: Node(edge=Location: id=1#4 src="alternating_list.c"; line=22---FunctionCall(tmp@main = malloc(512))---> Location: id=1#5 src="alternating_list.c"; line=22, data=Data(id=8; kind=Node; mark=Processed_Uncovered(time_stamp=7; region=[AtomicRegion: Location: id=1#5 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) path_to_root: Node(edge=Location: id=1#3 src="alternating_list.c"; line=19---Block(flag@main = 1;)---> Location: id=1#4 src="alternating_list.c"; line=22, data=Data(id=7; kind=Node; mark=Processed_Uncovered(time_stamp=6; region=[AtomicRegion: Location: id=1#4 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) path_to_root: Node(edge=Location: id=1#2 (Artificial)---Skip--->Location: id=1#3 src="alternating_list.c"; line=19, data=Data(id=6; kind=Node; mark=Processed_Uncovered(time_stamp=5; region=[AtomicRegion: Location: id=1#3 src="alternating_list.c"; line=19 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) path_to_root: Node(edge=SUMMARY Node(edge=Location: id=2#1 src="alternating_list.c"; line=0--- Block(Return(0);)--->Location: id=2#0 (Artificial), data=Data(id=4; kind=Exit; mark=Processed_Uncovered(time_stamp=3; region=[AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))), data=Data(id=5; kind=Node; mark=Processed_Uncovered(time_stamp=4; region=[AtomicRegion: Location: id=1#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) path_to_root: Node(edge=NONE, data=Data(id=0; kind=Entry; mark=Processed_Uncovered(time_stamp=0; region=[AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] ))) path_to_root terminates; no matching call site Node(edge=NONE, data=Data(id=0; kind=Entry; mark=Processed_Uncovered(time_stamp=0; region=[AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] ))) Node(edge=SUMMARY Node(edge=Location: id=2#1 src="alternating_list.c"; line=0--- Block(Return(0);)--->Location: id=2#0 (Artificial), data=Data(id=4; kind=Exit; mark=Processed_Uncovered(time_stamp=3; region=[AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))), data=Data(id=5; kind=Node; mark=Processed_Uncovered(time_stamp=4; region=[AtomicRegion: Location: id=1#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#2 (Artificial)---Skip--->Location: id=1#3 src="alternating_list.c"; line=19, data=Data(id=6; kind=Node; mark=Processed_Uncovered(time_stamp=5; region=[AtomicRegion: Location: id=1#3 src="alternating_list.c"; line=19 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#3 src="alternating_list.c"; line=19---Block(flag@main = 1;)---> Location: id=1#4 src="alternating_list.c"; line=22, data=Data(id=7; kind=Node; mark=Processed_Uncovered(time_stamp=6; region=[AtomicRegion: Location: id=1#4 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#4 src="alternating_list.c"; line=22---FunctionCall(tmp@main = malloc(512))---> Location: id=1#5 src="alternating_list.c"; line=22, data=Data(id=8; kind=Node; mark=Processed_Uncovered(time_stamp=7; region=[AtomicRegion: Location: id=1#5 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#5 src="alternating_list.c"; line=22---Block(a@main = tmp@main;)---> Location: id=1#6 src="alternating_list.c"; line=23, data=Data(id=9; kind=Node; mark=Processed_Uncovered(time_stamp=8; region=[AtomicRegion: Location: id=1#6 src="alternating_list.c"; line=23 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main != 0)---> Location: id=1#10 src="alternating_list.c"; line=25, data=Data(id=11; kind=Node; mark=Processed_Uncovered(time_stamp=9; region=[AtomicRegion: Location: id=1#10 src="alternating_list.c"; line=25 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#10 src="alternating_list.c"; line=25---Block(p@main = a@main;)---> Location: id=1#11 src="alternating_list.c"; line=26, data=Data(id=12; kind=Node; mark=Processed_Uncovered(time_stamp=10; region=[AtomicRegion: Location: id=1#11 src="alternating_list.c"; line=26 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#13 src="alternating_list.c"; line=39, data=Data(id=14; kind=Node; mark=Processed_Uncovered(time_stamp=11; region=[AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#13 src="alternating_list.c"; line=39---Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;)---> Location: id=1#24 src="alternating_list.c"; line=44, data=Data(id=15; kind=Node; mark=Processed_Uncovered(time_stamp=12; region=[AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=16; kind=Node; mark=Processed_Uncovered(time_stamp=16; region=[AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main == 0)---> Location: id=1#28 src="alternating_list.c"; line=50, data=Data(id=21; kind=Node; mark=Processed_Uncovered(time_stamp=17; region=[AtomicRegion: Location: id=1#28 src="alternating_list.c"; line=50 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#28 src="alternating_list.c"; line=50---Block(flag@main = 1;)---> Location: id=1#36 src="alternating_list.c"; line=51, data=Data(id=22; kind=Node; mark=Processed_Uncovered(time_stamp=18; region=[AtomicRegion: Location: id=1#36 src="alternating_list.c"; line=51 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#36 src="alternating_list.c"; line=51---Pred( * (p@main ).h != 2)---> Location: id=1#30 src="alternating_list.c"; line=60, data=Data(id=23; kind=Node; mark=Processed_Was_Covered_To_Reprocess(time_stamp=21; region=[AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Expanding a summary edge Node: Node(edge=Location: id=1#1 src="alternating_list.c"; line=0---FunctionCall(__BLAST_initialize_alternating_list.c())---> Location: id=1#2 (Artificial), data=Data(id=2; kind=Entry; mark=Processed_Uncovered(time_stamp=1; region=[AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))) Node: Node(edge=Location: id=2#2 (Artificial)---SymHook(__BLAST_initialize_alternating_list.c)---> Location: id=2#1 src="alternating_list.c"; line=0, data=Data(id=3; kind=Node; mark=Processed_Uncovered(time_stamp=2; region=[AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))) Done expanding. Node(edge=NONE, data=Data(id=0; kind=Entry; mark=Processed_Uncovered(time_stamp=0; region=[AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] ))) Node(edge=Location: id=1#1 src="alternating_list.c"; line=0---FunctionCall(__BLAST_initialize_alternating_list.c())---> Location: id=1#2 (Artificial), data=Data(id=2; kind=Entry; mark=Processed_Uncovered(time_stamp=1; region=[AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))) Node(edge=Location: id=2#2 (Artificial)---SymHook(__BLAST_initialize_alternating_list.c)---> Location: id=2#1 src="alternating_list.c"; line=0, data=Data(id=3; kind=Node; mark=Processed_Uncovered(time_stamp=2; region=[AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))) Node(edge=SUMMARY Node(edge=Location: id=2#1 src="alternating_list.c"; line=0--- Block(Return(0);)--->Location: id=2#0 (Artificial), data=Data(id=4; kind=Exit; mark=Processed_Uncovered(time_stamp=3; region=[AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))), data=Data(id=5; kind=Node; mark=Processed_Uncovered(time_stamp=4; region=[AtomicRegion: Location: id=1#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#2 (Artificial)---Skip--->Location: id=1#3 src="alternating_list.c"; line=19, data=Data(id=6; kind=Node; mark=Processed_Uncovered(time_stamp=5; region=[AtomicRegion: Location: id=1#3 src="alternating_list.c"; line=19 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#3 src="alternating_list.c"; line=19---Block(flag@main = 1;)---> Location: id=1#4 src="alternating_list.c"; line=22, data=Data(id=7; kind=Node; mark=Processed_Uncovered(time_stamp=6; region=[AtomicRegion: Location: id=1#4 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#4 src="alternating_list.c"; line=22---FunctionCall(tmp@main = malloc(512))---> Location: id=1#5 src="alternating_list.c"; line=22, data=Data(id=8; kind=Node; mark=Processed_Uncovered(time_stamp=7; region=[AtomicRegion: Location: id=1#5 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#5 src="alternating_list.c"; line=22---Block(a@main = tmp@main;)---> Location: id=1#6 src="alternating_list.c"; line=23, data=Data(id=9; kind=Node; mark=Processed_Uncovered(time_stamp=8; region=[AtomicRegion: Location: id=1#6 src="alternating_list.c"; line=23 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main != 0)---> Location: id=1#10 src="alternating_list.c"; line=25, data=Data(id=11; kind=Node; mark=Processed_Uncovered(time_stamp=9; region=[AtomicRegion: Location: id=1#10 src="alternating_list.c"; line=25 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#10 src="alternating_list.c"; line=25---Block(p@main = a@main;)---> Location: id=1#11 src="alternating_list.c"; line=26, data=Data(id=12; kind=Node; mark=Processed_Uncovered(time_stamp=10; region=[AtomicRegion: Location: id=1#11 src="alternating_list.c"; line=26 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#13 src="alternating_list.c"; line=39, data=Data(id=14; kind=Node; mark=Processed_Uncovered(time_stamp=11; region=[AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#13 src="alternating_list.c"; line=39---Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;)---> Location: id=1#24 src="alternating_list.c"; line=44, data=Data(id=15; kind=Node; mark=Processed_Uncovered(time_stamp=12; region=[AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=16; kind=Node; mark=Processed_Uncovered(time_stamp=16; region=[AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main == 0)---> Location: id=1#28 src="alternating_list.c"; line=50, data=Data(id=21; kind=Node; mark=Processed_Uncovered(time_stamp=17; region=[AtomicRegion: Location: id=1#28 src="alternating_list.c"; line=50 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#28 src="alternating_list.c"; line=50---Block(flag@main = 1;)---> Location: id=1#36 src="alternating_list.c"; line=51, data=Data(id=22; kind=Node; mark=Processed_Uncovered(time_stamp=18; region=[AtomicRegion: Location: id=1#36 src="alternating_list.c"; line=51 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#36 src="alternating_list.c"; line=51---Pred( * (p@main ).h != 2)---> Location: id=1#30 src="alternating_list.c"; line=60, data=Data(id=23; kind=Node; mark=Processed_Was_Covered_To_Reprocess(time_stamp=21; region=[AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) r_path Node(edge=NONE, data=Data(id=0; kind=Entry; mark=Processed_Uncovered(time_stamp=0; region=[AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] ))) Node(edge=Location: id=1#1 src="alternating_list.c"; line=0---FunctionCall(__BLAST_initialize_alternating_list.c())---> Location: id=1#2 (Artificial), data=Data(id=2; kind=Entry; mark=Processed_Uncovered(time_stamp=1; region=[AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))) Node(edge=Location: id=2#2 (Artificial)---SymHook(__BLAST_initialize_alternating_list.c)---> Location: id=2#1 src="alternating_list.c"; line=0, data=Data(id=3; kind=Node; mark=Processed_Uncovered(time_stamp=2; region=[AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))) Node(edge=SUMMARY Node(edge=Location: id=2#1 src="alternating_list.c"; line=0--- Block(Return(0);)--->Location: id=2#0 (Artificial), data=Data(id=4; kind=Exit; mark=Processed_Uncovered(time_stamp=3; region=[AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))), data=Data(id=5; kind=Node; mark=Processed_Uncovered(time_stamp=4; region=[AtomicRegion: Location: id=1#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#2 (Artificial)---Skip--->Location: id=1#3 src="alternating_list.c"; line=19, data=Data(id=6; kind=Node; mark=Processed_Uncovered(time_stamp=5; region=[AtomicRegion: Location: id=1#3 src="alternating_list.c"; line=19 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#3 src="alternating_list.c"; line=19---Block(flag@main = 1;)---> Location: id=1#4 src="alternating_list.c"; line=22, data=Data(id=7; kind=Node; mark=Processed_Uncovered(time_stamp=6; region=[AtomicRegion: Location: id=1#4 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#4 src="alternating_list.c"; line=22---FunctionCall(tmp@main = malloc(512))---> Location: id=1#5 src="alternating_list.c"; line=22, data=Data(id=8; kind=Node; mark=Processed_Uncovered(time_stamp=7; region=[AtomicRegion: Location: id=1#5 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#5 src="alternating_list.c"; line=22---Block(a@main = tmp@main;)---> Location: id=1#6 src="alternating_list.c"; line=23, data=Data(id=9; kind=Node; mark=Processed_Uncovered(time_stamp=8; region=[AtomicRegion: Location: id=1#6 src="alternating_list.c"; line=23 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main != 0)---> Location: id=1#10 src="alternating_list.c"; line=25, data=Data(id=11; kind=Node; mark=Processed_Uncovered(time_stamp=9; region=[AtomicRegion: Location: id=1#10 src="alternating_list.c"; line=25 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#10 src="alternating_list.c"; line=25---Block(p@main = a@main;)---> Location: id=1#11 src="alternating_list.c"; line=26, data=Data(id=12; kind=Node; mark=Processed_Uncovered(time_stamp=10; region=[AtomicRegion: Location: id=1#11 src="alternating_list.c"; line=26 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#13 src="alternating_list.c"; line=39, data=Data(id=14; kind=Node; mark=Processed_Uncovered(time_stamp=11; region=[AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#13 src="alternating_list.c"; line=39---Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;)---> Location: id=1#24 src="alternating_list.c"; line=44, data=Data(id=15; kind=Node; mark=Processed_Uncovered(time_stamp=12; region=[AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=16; kind=Node; mark=Processed_Uncovered(time_stamp=16; region=[AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main == 0)---> Location: id=1#28 src="alternating_list.c"; line=50, data=Data(id=21; kind=Node; mark=Processed_Uncovered(time_stamp=17; region=[AtomicRegion: Location: id=1#28 src="alternating_list.c"; line=50 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#28 src="alternating_list.c"; line=50---Block(flag@main = 1;)---> Location: id=1#36 src="alternating_list.c"; line=51, data=Data(id=22; kind=Node; mark=Processed_Uncovered(time_stamp=18; region=[AtomicRegion: Location: id=1#36 src="alternating_list.c"; line=51 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#36 src="alternating_list.c"; line=51---Pred( * (p@main ).h != 2)---> Location: id=1#30 src="alternating_list.c"; line=60, data=Data(id=23; kind=Node; mark=Processed_Was_Covered_To_Reprocess(time_stamp=21; region=[AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) block_analyze_trace In block_a_t:15 Projected lengths: pre_reg_l 15 post_reg_l 15 op_l 15 BNum: 0 Pre reg: [AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] OP: Location: id=1#1 src="alternating_list.c"; line=0---FunctionCall(__BLAST_initialize_alternating_list.c())---> Location: id=1#2 (Artificial) Post reg: [AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] BNum: 1 Pre reg: [AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] OP: Location: id=2#2 (Artificial)---SymHook(__BLAST_initialize_alternating_list.c)---> Location: id=2#1 src="alternating_list.c"; line=0 Post reg: [AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] BNum: 2 Pre reg: [AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] OP: Location: id=2#1 src="alternating_list.c"; line=0---Block(Return(0);)---> Location: id=2#0 (Artificial) Post reg: [AtomicRegion: Location: id=1#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] BNum: 3 Pre reg: [AtomicRegion: Location: id=1#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] OP: Location: id=1#2 (Artificial)---Skip--->Location: id=1#3 src="alternating_list.c"; line=19 Post reg: [AtomicRegion: Location: id=1#3 src="alternating_list.c"; line=19 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] BNum: 4 Pre reg: [AtomicRegion: Location: id=1#3 src="alternating_list.c"; line=19 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] OP: Location: id=1#3 src="alternating_list.c"; line=19---Block(flag@main = 1;)---> Location: id=1#4 src="alternating_list.c"; line=22 Post reg: [AtomicRegion: Location: id=1#4 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] BNum: 5 Pre reg: [AtomicRegion: Location: id=1#4 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] OP: Location: id=1#4 src="alternating_list.c"; line=22---FunctionCall(tmp@main = malloc(512))---> Location: id=1#5 src="alternating_list.c"; line=22 Post reg: [AtomicRegion: Location: id=1#5 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] BNum: 6 Pre reg: [AtomicRegion: Location: id=1#5 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] OP: Location: id=1#5 src="alternating_list.c"; line=22---Block(a@main = tmp@main;)--->Location: id=1#6 src="alternating_list.c"; line=23 Post reg: [AtomicRegion: Location: id=1#6 src="alternating_list.c"; line=23 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] BNum: 7 Pre reg: [AtomicRegion: Location: id=1#6 src="alternating_list.c"; line=23 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] OP: Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main != 0)---> Location: id=1#10 src="alternating_list.c"; line=25 Post reg: [AtomicRegion: Location: id=1#10 src="alternating_list.c"; line=25 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] BNum: 8 Pre reg: [AtomicRegion: Location: id=1#10 src="alternating_list.c"; line=25 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] OP: Location: id=1#10 src="alternating_list.c"; line=25---Block(p@main = a@main;)---> Location: id=1#11 src="alternating_list.c"; line=26 Post reg: [AtomicRegion: Location: id=1#11 src="alternating_list.c"; line=26 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] BNum: 9 Pre reg: [AtomicRegion: Location: id=1#11 src="alternating_list.c"; line=26 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] OP: Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)--->Location: id=1#13 src="alternating_list.c"; line=39 Post reg: [AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] BNum: 10 Pre reg: [AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] OP: Location: id=1#13 src="alternating_list.c"; line=39---Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;)---> Location: id=1#24 src="alternating_list.c"; line=44 Post reg: [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] BNum: 11 Pre reg: [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] OP: Location: id=1#24 src="alternating_list.c"; line=44---Pred(* (p@main ).h != 3)--->Location: id=1#25 src="alternating_list.c"; line=45 Post reg: [AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] BNum: 12 Pre reg: [AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] OP: Location: id=1#25 src="alternating_list.c"; line=45---Pred(flag@main == 0)---> Location: id=1#28 src="alternating_list.c"; line=50 Post reg: [AtomicRegion: Location: id=1#28 src="alternating_list.c"; line=50 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] BNum: 13 Pre reg: [AtomicRegion: Location: id=1#28 src="alternating_list.c"; line=50 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] OP: Location: id=1#28 src="alternating_list.c"; line=50---Block(flag@main = 1;)---> Location: id=1#36 src="alternating_list.c"; line=51 Post reg: [AtomicRegion: Location: id=1#36 src="alternating_list.c"; line=51 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] BNum: 14 Pre reg: [AtomicRegion: Location: id=1#36 src="alternating_list.c"; line=51 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] OP: Location: id=1#36 src="alternating_list.c"; line=51---Pred(* (p@main ).h != 2)--->Location: id=1#30 src="alternating_list.c"; line=60 Post reg: [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] block_a_t: building blocks start bs_reset Call __BLAST_initialize_alternating_list.c Return In load_lv_table In Deconstruct_fc :__BLAST_initialize_alternating_list.c() In Deconstruct_fc :__BLAST_initialize_alternating_list.c() Funcall assignment Symvars: Adding to lv_table: Adding Fields Adding to lv_table: Adding Fields In Deconstruct_fc :tmp@main=malloc(,512) In Deconstruct_fc :tmp@main=malloc(,512) Funcall assignment Symvars: Adding to lv_table: Adding Fields Adding to lv_table: tmp@main Adding Fields Adding to lv_table: a@main Adding Fields Adding to lv_table: a@main Adding Fields Adding to lv_table: Adding Fields Adding to lv_table: Adding Fields Adding to lv_table: a@main Adding Fields Adding to lv_table: Adding Fields Adding to lv_table: (* (p@main)).h Adding Fields h Adding stamp field: all? true :h Adding to lv_table: flag@main Adding Fields Adding to lv_table: Adding Fields Adding to lv_table: (* (p@main)).h Adding Fields h cons_folder !posn = 14 In block_concrete_data_pre -- arguments are: fname is main [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Pred(* (p@main ).h != 2) Location: id=1#36 src="alternating_list.c"; line=51---Pred(* (p@main ).h != 2)--->Location: id=1#30 src="alternating_list.c"; line=60 plvmap: now normalize plvmap: now normalize bs_assert: <<* ( ), 1>.h, 1> != 2 simplify_assume sstk:0 convertToSimplifySyntax exp = <<* ( ), 1>.h, 1> != 2 Simplify Assuming: (NEQ chlval1 2) Done Assume bs_assert: true simplify_assume sstk:1 convertToSimplifySyntax exp = true Simplify Assuming: TRUE Done Assume simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > 15: Invalid. false Contra ? false bs_pop simplify_pnf sstk:2 Simplify Popping done pop_pnf cons_folder !posn = 13 In block_concrete_data_pre -- arguments are: fname is main [AtomicRegion: Location: id=1#36 src="alternating_list.c"; line=51 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Block(flag@main = 1;) Location: id=1#28 src="alternating_list.c"; line=50---Block(flag@main = 1;)---> Location: id=1#36 src="alternating_list.c"; line=51 Frames: 1, 0 Must aliases of flag@main are Alias pushed candidates: flag@main Formals : Aliases in scope of flag@main : flag@main Exp closure: cld = 3, e = flag@main, clos = flag@main Warning:bad arg to lv_of_expr1 plvmap: now normalize bs_assert: == 1 simplify_assume sstk:1 convertToSimplifySyntax exp = == 1 Simplify Assuming: (EQ chlval2 1) Done Assume bs_assert: true simplify_assume sstk:2 convertToSimplifySyntax exp = true Simplify Assuming: TRUE Done Assume simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > > 16: Invalid. false Contra ? false bs_pop simplify_pnf sstk:3 Simplify Popping done pop_pnf cons_folder !posn = 12 In block_concrete_data_pre -- arguments are: fname is main [AtomicRegion: Location: id=1#28 src="alternating_list.c"; line=50 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Pred(flag@main == 0) Location: id=1#25 src="alternating_list.c"; line=45---Pred(flag@main == 0)---> Location: id=1#28 src="alternating_list.c"; line=50 plvmap: now normalize plvmap: now normalize bs_assert: == 0 simplify_assume sstk:2 convertToSimplifySyntax exp = == 0 Simplify Assuming: (EQ chlval3 0) Done Assume bs_assert: true simplify_assume sstk:3 convertToSimplifySyntax exp = true Simplify Assuming: TRUE Done Assume simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > > 17: Invalid. false Contra ? false bs_pop simplify_pnf sstk:4 Simplify Popping done pop_pnf cons_folder !posn = 11 In block_concrete_data_pre -- arguments are: fname is main [AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Pred(* (p@main ).h != 3) Location: id=1#24 src="alternating_list.c"; line=44---Pred(* (p@main ).h != 3)--->Location: id=1#25 src="alternating_list.c"; line=45 plvmap: now normalize plvmap: now normalize bs_assert: <<* ( ), 1>.h, 1> != 3 simplify_assume sstk:3 convertToSimplifySyntax exp = <<* ( ), 1>.h, 1> != 3 Simplify Assuming: (NEQ chlval1 3) Done Assume bs_assert: true simplify_assume sstk:4 convertToSimplifySyntax exp = true Simplify Assuming: TRUE Done Assume simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > > 18: Invalid. false Contra ? false bs_pop simplify_pnf sstk:5 Simplify Popping done pop_pnf cons_folder !posn = 10 In block_concrete_data_pre -- arguments are: fname is main [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;) Location: id=1#13 src="alternating_list.c"; line=39---Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;)---> Location: id=1#24 src="alternating_list.c"; line=44 Frames: 1, 0 Must aliases of flag@main are Alias pushed candidates: flag@main Formals : Aliases in scope of flag@main : flag@main Warning:bad arg to lv_of_expr1 Frames: 1, 0 Must aliases of p@main are Alias pushed candidates: p@main Formals : Aliases in scope of p@main : p@main check field : h , true , true check field : n , false , true Exp closure: cld = 3, e = p@main, clos = p@main, * (p@main), (* (p@main)).h Frames: 1, 0 Must aliases of (* (p@main)).h are Alias pushed candidates: (* (p@main)).h Formals : Aliases in scope of (* (p@main)).h : (* (p@main)).h Exp closure: cld = 3, e = (* (p@main)).h, clos = (* (p@main)).h Warning:bad arg to lv_of_expr3 plvmap: now normalize bs_assert: And [<<* ( ), 4_>.h, 5_> == 3, == 1, == , <* ( ), 1> == <* ( ), 1>, <<* ( ), 1>.h, 1> == <<* ( ), 1>.h, 1>] simplify_assume sstk:4 convertToSimplifySyntax exp = And [<<* ( ), 4_>.h, 5_> == 3, == 1, == , <* ( ), 1> == <* ( ), 1>, <<* ( ), 1>.h, 1> == <<* ( ), 1>.h, 1>] Simplify Assuming: (AND (EQ chlval1 chlval9) (AND (EQ chlval8 chlval7) (AND (EQ chlval6 chlval5) (AND (EQ chlval3 1) (AND (EQ chlval4 3) TRUE))))) Done Assume bs_assert: true simplify_assume sstk:5 convertToSimplifySyntax exp = true Simplify Assuming: TRUE Done Assume simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > > 19: Valid. true Contra ? true bs_pop simplify_pnf sstk:6 Simplify Popping done pop_pnf Found unsat at level10 bs_reset simplify_pop sstk:5 Simplify Popping Done pop simplify_pop sstk:4 Simplify Popping Done pop simplify_pop sstk:3 Simplify Popping Done pop simplify_pop sstk:2 Simplify Popping Done pop simplify_pop sstk:1 Simplify Popping Done pop THE CONSTRAINTS ARE: true true true true true true true true true true And [<<* ( ), 4_>.h, 5_> == 3, == 1, == , <* ( ), 1> == <* ( ), 1>, <<* ( ), 1>.h, 1> == <<* ( ), 1>.h, 1>] <<* ( ), 1>.h, 1> != 3 == 0 == 1 <<* ( ), 1>.h, 1> != 2 END CONSTRAINTS block_a_t: building blocks end get_useful_blocks: size =15 0 :: 0: FunctionCall(__BLAST_initialize_alternating_list.c()) :: -1 -1 :: -1: SymHook(__BLAST_initialize_alternating_list.c) :: 0 0 :: 0: Block(Return(0);) :: -1 -1 :: -1: Skip :: 19 19 :: 19: Block(flag@main = 1;) :: 22 22 :: 22: FunctionCall(tmp@main = malloc(512 , )) :: 22 22 :: 22: Block(a@main = tmp@main;) :: 23 23 :: 23: Pred(a@main != 0) :: 25 25 :: 25: Block(p@main = a@main;) :: 26 26 :: 26: Pred(true) :: 39 39 :: 39: Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;) :: 44 44 :: 44: Pred(* (p@main ).h != 3) :: 45 45 :: 45: Pred(flag@main == 0) :: 50 50 :: 50: Block(flag@main = 1;) :: 51 51 :: 51: Pred(* (p@main ).h != 2) :: 60 Assert end condition bs_assert: true simplify_assume sstk:0 convertToSimplifySyntax exp = true Simplify Assuming: TRUE Done Assume bs_assert: true simplify_assume sstk:1 convertToSimplifySyntax exp = true Simplify Assuming: TRUE Done Assume simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > > > > > > > 20: Invalid. false Contra ? false pos = 14 bs_pop simplify_pnf sstk:2 Simplify Popping done pop_pnf bs_assert: <<* ( ), 1>.h, 1> != 2 simplify_assume sstk:1 convertToSimplifySyntax exp = <<* ( ), 1>.h, 1> != 2 Simplify Assuming: (NEQ chlval1 2) Done Assume bs_assert: true simplify_assume sstk:2 convertToSimplifySyntax exp = true Simplify Assuming: TRUE Done Assume simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > > 21: Invalid. false Contra ? false pos = 13 bs_pop simplify_pnf sstk:3 Simplify Popping done pop_pnf bs_assert: == 1 simplify_assume sstk:2 convertToSimplifySyntax exp = == 1 Simplify Assuming: (EQ chlval2 1) Done Assume bs_assert: true simplify_assume sstk:3 convertToSimplifySyntax exp = true Simplify Assuming: TRUE Done Assume simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > > 22: Invalid. false Contra ? false pos = 12 bs_pop simplify_pnf sstk:4 Simplify Popping done pop_pnf bs_assert: == 0 simplify_assume sstk:3 convertToSimplifySyntax exp = == 0 Simplify Assuming: (EQ chlval3 0) Done Assume bs_assert: true simplify_assume sstk:4 convertToSimplifySyntax exp = true Simplify Assuming: TRUE Done Assume simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > > 23: Invalid. false Contra ? false pos = 11 bs_pop simplify_pnf sstk:5 Simplify Popping done pop_pnf bs_assert: <<* ( ), 1>.h, 1> != 3 simplify_assume sstk:4 convertToSimplifySyntax exp = <<* ( ), 1>.h, 1> != 3 Simplify Assuming: (NEQ chlval1 3) Done Assume bs_assert: true simplify_assume sstk:5 convertToSimplifySyntax exp = true Simplify Assuming: TRUE Done Assume simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > > 24: Invalid. false Contra ? false pos = 10 bs_pop simplify_pnf sstk:6 Simplify Popping done pop_pnf bs_assert: And [<<* ( ), 4_>.h, 5_> == 3, == 1, == , <* ( ), 1> == <* ( ), 1>, <<* ( ), 1>.h, 1> == <<* ( ), 1>.h, 1>] simplify_assume sstk:5 convertToSimplifySyntax exp = And [<<* ( ), 4_>.h, 5_> == 3, == 1, == , <* ( ), 1> == <* ( ), 1>, <<* ( ), 1>.h, 1> == <<* ( ), 1>.h, 1>] Simplify Assuming: (AND (EQ chlval1 chlval9) (AND (EQ chlval8 chlval7) (AND (EQ chlval6 chlval5) (AND (EQ chlval3 1) (AND (EQ chlval4 3) TRUE))))) Done Assume bs_assert: true simplify_assume sstk:6 convertToSimplifySyntax exp = true Simplify Assuming: TRUE Done Assume simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > > 25: Valid. true Contra ? true simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 26: Valid. true Contra ? true bs_reset simplify_pop sstk:7 Simplify Popping Done pop simplify_pop sstk:6 Simplify Popping Done pop simplify_pop sstk:5 Simplify Popping Done pop simplify_pop sstk:4 Simplify Popping Done pop simplify_pop sstk:3 Simplify Popping Done pop simplify_pop sstk:2 Simplify Popping Done pop simplify_pop sstk:1 Simplify Popping Done pop bs_assert: true simplify_assume sstk:0 convertToSimplifySyntax exp = true Simplify Assuming: TRUE Done Assume bs_assert: true simplify_assume sstk:1 convertToSimplifySyntax exp = true Simplify Assuming: TRUE Done Assume bs_assert: And [<<* ( ), 4_>.h, 5_> == 3, == 1, == , <* ( ), 1> == <* ( ), 1>, <<* ( ), 1>.h, 1> == <<* ( ), 1>.h, 1>] simplify_assume sstk:2 convertToSimplifySyntax exp = And [<<* ( ), 4_>.h, 5_> == 3, == 1, == , <* ( ), 1> == <* ( ), 1>, <<* ( ), 1>.h, 1> == <<* ( ), 1>.h, 1>] Simplify Assuming: (AND (EQ chlval8 chlval7) (AND (EQ chlval6 chlval5) (AND (EQ chlval4 chlval3) (AND (EQ chlval2 1) (AND (EQ chlval1 3) TRUE))))) Done Assume simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > > > > > > > > > 27: Invalid. false Contra ? false simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 28: Invalid. false Contra ? false Now asserting block: 14 bs_assert: <<* ( ), 1>.h, 1> != 2 simplify_assume sstk:3 convertToSimplifySyntax exp = <<* ( ), 1>.h, 1> != 2 Simplify Assuming: (NEQ chlval8 2) Done Assume simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > 29: Invalid. false Contra ? false Now asserting block: 13 bs_assert: == 1 simplify_assume sstk:4 convertToSimplifySyntax exp = == 1 Simplify Assuming: (EQ chlval9 1) Done Assume simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > 30: Invalid. false Contra ? false Now asserting block: 12 bs_assert: == 0 simplify_assume sstk:5 convertToSimplifySyntax exp = == 0 Simplify Assuming: (EQ chlval2 0) Done Assume simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > 31: Valid. true Contra ? true bs_reset simplify_pop sstk:6 Simplify Popping Done pop simplify_pop sstk:5 Simplify Popping Done pop simplify_pop sstk:4 Simplify Popping Done pop simplify_pop sstk:3 Simplify Popping Done pop simplify_pop sstk:2 Simplify Popping Done pop simplify_pop sstk:1 Simplify Popping Done pop bs_assert: true simplify_assume sstk:0 convertToSimplifySyntax exp = true Simplify Assuming: TRUE Done Assume bs_assert: true simplify_assume sstk:1 convertToSimplifySyntax exp = true Simplify Assuming: TRUE Done Assume bs_assert: == 0 simplify_assume sstk:2 convertToSimplifySyntax exp = == 0 Simplify Assuming: (EQ chlval1 0) Done Assume bs_assert: And [<<* ( ), 4_>.h, 5_> == 3, == 1, == , <* ( ), 1> == <* ( ), 1>, <<* ( ), 1>.h, 1> == <<* ( ), 1>.h, 1>] simplify_assume sstk:3 convertToSimplifySyntax exp = And [<<* ( ), 4_>.h, 5_> == 3, == 1, == , <* ( ), 1> == <* ( ), 1>, <<* ( ), 1>.h, 1> == <<* ( ), 1>.h, 1>] Simplify Assuming: (AND (EQ chlval8 chlval7) (AND (EQ chlval6 chlval5) (AND (EQ chlval4 chlval3) (AND (EQ chlval1 1) (AND (EQ chlval2 3) TRUE))))) Done Assume simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > > > > > > > > > 32: Valid. true Contra ? true bs_reset simplify_pop sstk:4 Simplify Popping Done pop simplify_pop sstk:3 Simplify Popping Done pop simplify_pop sstk:2 Simplify Popping Done pop simplify_pop sstk:1 Simplify Popping Done pop get_useful_blocks done. Conflicting Blocks [INF] 10 : 39: Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;) [INF] 12 : 45: Pred(flag@main == 0) [BAT] Done setting arrays for cutting #block sets = 1 [BAT] Calling refiner Inside cf interpolant refine:2 bs_assert: And [And [<<* ( ), 4_>.h, 5_> == 3, == 1, == , <* ( ), 1> == <* ( ), 1>, <<* ( ), 1>.h, 1> == <<* ( ), 1>.h, 1>], == 0] simplify_assume sstk:0 convertToSimplifySyntax exp = And [And [<<* ( ), 4_>.h, 5_> == 3, == 1, == , <* ( ), 1> == <* ( ), 1>, <<* ( ), 1>.h, 1> == <<* ( ), 1>.h, 1>], == 0] Simplify Assuming: (AND (EQ chlval2 0) (AND (AND (EQ chlval8 chlval7) (AND (EQ chlval6 chlval5) (AND (EQ chlval4 chlval3) (AND (EQ chlval2 1) (AND (EQ chlval1 3) TRUE))))) TRUE)) Done Assume simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > > > > 33: Valid. true Contra ? true bs_pop simplify_pnf sstk:1 Simplify Popping done pop_pnf scp, i, l_i, r_i, b = -1 14 -1 -1 true scp, i, l_i, r_i, b = -1 13 -1 -1 true scp, i, l_i, r_i, b = -1 12 -1 -1 true scp, i, l_i, r_i, b = -1 11 -1 -1 true scp, i, l_i, r_i, b = -1 10 -1 -1 true scp, i, l_i, r_i, b = -1 9 -1 -1 true scp, i, l_i, r_i, b = -1 8 -1 -1 true scp, i, l_i, r_i, b = -1 7 -1 -1 true scp, i, l_i, r_i, b = -1 6 -1 -1 true scp, i, l_i, r_i, b = -1 5 -1 -1 true scp, i, l_i, r_i, b = -1 4 -1 -1 true scp, i, l_i, r_i, b = -1 3 -1 -1 true scp, i, l_i, r_i, b = -1 2 -1 -1 true scp, i, l_i, r_i, b = -1 1 0 2 false scp, i, l_i, r_i, b = -1 0 0 2 false In cf process cut at:0 b : false start_cons : true Past Constraints: Future Constraints: And [,<(<* (),4_>).h,5_>==3,==1,==,<* (),1>==<* (),1>,<(<* (),1>).h,1>==<(<* (),1>).h,1>] ==0 bs_assert: And [] simplify_assume sstk:0 convertToSimplifySyntax exp = And [] Simplify Assuming: TRUE Done Assume simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > 34: Invalid. false Contra ? false bs_pop simplify_pnf sstk:1 Simplify Popping done pop_pnf bs_assert: And [true, And [<<* ( ), 4_>.h, 5_> == 3, == 1, == , <* ( ), 1> == <* ( ), 1>, <<* ( ), 1>.h, 1> == <<* ( ), 1>.h, 1>], == 0] simplify_assume sstk:0 convertToSimplifySyntax exp = And [true, And [<<* ( ), 4_>.h, 5_> == 3, == 1, == , <* ( ), 1> == <* ( ), 1>, <<* ( ), 1>.h, 1> == <<* ( ), 1>.h, 1>], == 0] Simplify Assuming: (AND (EQ chlval2 0) (AND (AND (EQ chlval8 chlval7) (AND (EQ chlval6 chlval5) (AND (EQ chlval4 chlval3) (AND (EQ chlval2 1) (AND (EQ chlval1 3) TRUE))))) (AND TRUE TRUE))) Done Assume simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > 35: Valid. true Contra ? true bs_pop simplify_pnf sstk:1 Simplify Popping done pop_pnf extraction done #Added preds 0 In cf process cut at:1 b : false start_cons : true Past Constraints: Future Constraints: And [,<(<* (),4_>).h,5_>==3,==1,==,<* (),1>==<* (),1>,<(<* (),1>).h,1>==<(<* (),1>).h,1>] ==0 extraction done #Added preds 0 In cf process cut at:2 b : true start_cons : true Past Constraints: Future Constraints: And [,<(<* (),4_>).h,5_>==3,==1,==,<* (),1>==<* (),1>,<(<* (),1>).h,1>==<(<* (),1>).h,1>] ==0 extraction done #Added preds 0 In cf process cut at:3 b : true start_cons : true Past Constraints: Future Constraints: And [,<(<* (),4_>).h,5_>==3,==1,==,<* (),1>==<* (),1>,<(<* (),1>).h,1>==<(<* (),1>).h,1>] ==0 extraction done #Added preds 0 In cf process cut at:4 b : true start_cons : true Past Constraints: Future Constraints: And [,<(<* (),4_>).h,5_>==3,==1,==,<* (),1>==<* (),1>,<(<* (),1>).h,1>==<(<* (),1>).h,1>] ==0 extraction done #Added preds 0 In cf process cut at:5 b : true start_cons : true Past Constraints: Future Constraints: And [,<(<* (),4_>).h,5_>==3,==1,==,<* (),1>==<* (),1>,<(<* (),1>).h,1>==<(<* (),1>).h,1>] ==0 extraction done #Added preds 0 In cf process cut at:6 b : true start_cons : true Past Constraints: Future Constraints: And [,<(<* (),4_>).h,5_>==3,==1,==,<* (),1>==<* (),1>,<(<* (),1>).h,1>==<(<* (),1>).h,1>] ==0 extraction done #Added preds 0 In cf process cut at:7 b : true start_cons : true Past Constraints: Future Constraints: And [,<(<* (),4_>).h,5_>==3,==1,==,<* (),1>==<* (),1>,<(<* (),1>).h,1>==<(<* (),1>).h,1>] ==0 extraction done #Added preds 0 In cf process cut at:8 b : true start_cons : true Past Constraints: Future Constraints: And [,<(<* (),4_>).h,5_>==3,==1,==,<* (),1>==<* (),1>,<(<* (),1>).h,1>==<(<* (),1>).h,1>] ==0 extraction done #Added preds 0 In cf process cut at:9 b : true start_cons : true Past Constraints: Future Constraints: And [,<(<* (),4_>).h,5_>==3,==1,==,<* (),1>==<* (),1>,<(<* (),1>).h,1>==<(<* (),1>).h,1>] ==0 extraction done #Added preds 0 In cf process cut at:10 b : true start_cons : true Past Constraints: And [,<(<* (),4_>).h,5_>==3,==1,==,<* (),1>==<* (),1>,<(<* (),1>).h,1>==<(<* (),1>).h,1>] Future Constraints: ==0 bs_assert: And [true, And [<<* ( ), 4_>.h, 5_> == 3, == 1, == , <* ( ), 1> == <* ( ), 1>, <<* ( ), 1>.h, 1> == <<* ( ), 1>.h, 1>]] simplify_assume sstk:0 convertToSimplifySyntax exp = And [true, And [<<* ( ), 4_>.h, 5_> == 3, == 1, == , <* ( ), 1> == <* ( ), 1>, <<* ( ), 1>.h, 1> == <<* ( ), 1>.h, 1>]] Simplify Assuming: (AND (AND (EQ chlval8 chlval7) (AND (EQ chlval6 chlval5) (AND (EQ chlval4 chlval3) (AND (EQ chlval2 1) (AND (EQ chlval1 3) TRUE))))) (AND TRUE TRUE)) Done Assume simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > 36: Invalid. false Contra ? false bs_pop simplify_pnf sstk:1 Simplify Popping done pop_pnf bs_assert: And [ == 0] simplify_assume sstk:0 convertToSimplifySyntax exp = And [ == 0] Simplify Assuming: (AND (EQ chlval2 0) TRUE) Done Assume simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > 37: Invalid. false Contra ? false bs_pop simplify_pnf sstk:1 Simplify Popping done pop_pnf In extract_and_process_interpolant And [true, And [<<* ( ), 4_>.h, 5_> == 3, == 1, == , <* ( ), 1> == <* ( ), 1>, <<* ( ), 1>.h, 1> == <<* ( ), 1>.h, 1>]] And [ == 0] foci_UF_string: in = select, out = select foci_UF_string: in = addrOf, out = addrOf foci_UF_string: in = select, out = select foci_UF_string: in = addrOf, out = addrOf >>>>>>>>>>>> calling foci & [ & [ true & [ (= 'foci1' 3) (= 'foci2' 1) (= 'foci4' 'foci3') (= 'foci6' 'foci5') (= 'foci8' 'foci7')]]] ; & [ & [ (= 'foci2' 0)]] >>>>>>>>>>>> foci done Symbol foci2 occurs formulas 0 and 1 UNSAT! Prover calls: 1 case splits: 0 Finished computing interpolant. Size = 9 Finished substituting simplified size: 1 Finished simplifying Foci yields Interpolant: (= 'foci2' 1) int_map_from1 returns: 1 Foci yields b_Interpolant: ==1 raw foci preds ==1 post-proc foci preds ==1 cleaned foci preds flag@main==1 Adding imp_lval:flag@main //addPred:0: adding predicate flag@main==1; addPred: 0: (gui) adding predicate flag@main==1 to the system addPred: 0: (gui) adding predicate flag@main==1 to the system extraction done 0 #Added preds 1 0 In cf process cut at:11 b : true start_cons : true Past Constraints: And [,<(<* (),4_>).h,5_>==3,==1,==,<* (),1>==<* (),1>,<(<* (),1>).h,1>==<(<* (),1>).h,1>] Future Constraints: ==0 extraction done 0 #Added preds 1 0 In cf process cut at:12 b : true start_cons : true Past Constraints: And [,<(<* (),4_>).h,5_>==3,==1,==,<* (),1>==<* (),1>,<(<* (),1>).h,1>==<(<* (),1>).h,1>] ==0 Future Constraints: bs_assert: And [true, And [<<* ( ), 4_>.h, 5_> == 3, == 1, == , <* ( ), 1> == <* ( ), 1>, <<* ( ), 1>.h, 1> == <<* ( ), 1>.h, 1>], == 0] simplify_assume sstk:0 convertToSimplifySyntax exp = And [true, And [<<* ( ), 4_>.h, 5_> == 3, == 1, == , <* ( ), 1> == <* ( ), 1>, <<* ( ), 1>.h, 1> == <<* ( ), 1>.h, 1>], == 0] Simplify Assuming: (AND (EQ chlval2 0) (AND (AND (EQ chlval8 chlval7) (AND (EQ chlval6 chlval5) (AND (EQ chlval4 chlval3) (AND (EQ chlval2 1) (AND (EQ chlval1 3) TRUE))))) (AND TRUE TRUE))) Done Assume simplify check contra querying exp: false convertToSimplifySyntax exp = false Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > 38: Valid. true Contra ? true bs_pop simplify_pnf sstk:1 Simplify Popping done pop_pnf extraction done #Added preds 0 In cf process cut at:13 b : true start_cons : true Past Constraints: And [,<(<* (),4_>).h,5_>==3,==1,==,<* (),1>==<* (),1>,<(<* (),1>).h,1>==<(<* (),1>).h,1>] ==0 Future Constraints: extraction done #Added preds 0 In cf process cut at:14 b : true start_cons : true Past Constraints: And [,<(<* (),4_>).h,5_>==3,==1,==,<* (),1>==<* (),1>,<(<* (),1>).h,1>==<(<* (),1>).h,1>] ==0 Future Constraints: extraction done #Added preds 0 [BAT] Done refiner Leaving block_a_t refine from 10 bs_reset Non-trivial functions1 This is a false error (seq) The check_error function ended up with at ancestor: Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#13 src="alternating_list.c"; line=39, data=Data(id=14; kind=Node; mark=Processed_Uncovered(time_stamp=11; region=[AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) along the path (from the ancestor to the current node): Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#13 src="alternating_list.c"; line=39, data=Data(id=14; kind=Node; mark=Processed_Uncovered(time_stamp=11; region=[AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#10 src="alternating_list.c"; line=25---Block(p@main = a@main;)---> Location: id=1#11 src="alternating_list.c"; line=26, data=Data(id=12; kind=Node; mark=Processed_Uncovered(time_stamp=10; region=[AtomicRegion: Location: id=1#11 src="alternating_list.c"; line=26 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main != 0)---> Location: id=1#10 src="alternating_list.c"; line=25, data=Data(id=11; kind=Node; mark=Processed_Uncovered(time_stamp=9; region=[AtomicRegion: Location: id=1#10 src="alternating_list.c"; line=25 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#5 src="alternating_list.c"; line=22---Block(a@main = tmp@main;)---> Location: id=1#6 src="alternating_list.c"; line=23, data=Data(id=9; kind=Node; mark=Processed_Uncovered(time_stamp=8; region=[AtomicRegion: Location: id=1#6 src="alternating_list.c"; line=23 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#4 src="alternating_list.c"; line=22---FunctionCall(tmp@main = malloc(512))---> Location: id=1#5 src="alternating_list.c"; line=22, data=Data(id=8; kind=Node; mark=Processed_Uncovered(time_stamp=7; region=[AtomicRegion: Location: id=1#5 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#3 src="alternating_list.c"; line=19---Block(flag@main = 1;)---> Location: id=1#4 src="alternating_list.c"; line=22, data=Data(id=7; kind=Node; mark=Processed_Uncovered(time_stamp=6; region=[AtomicRegion: Location: id=1#4 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=1#2 (Artificial)---Skip--->Location: id=1#3 src="alternating_list.c"; line=19, data=Data(id=6; kind=Node; mark=Processed_Uncovered(time_stamp=5; region=[AtomicRegion: Location: id=1#3 src="alternating_list.c"; line=19 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=SUMMARY Node(edge=Location: id=2#1 src="alternating_list.c"; line=0--- Block(Return(0);)--->Location: id=2#0 (Artificial), data=Data(id=4; kind=Exit; mark=Processed_Uncovered(time_stamp=3; region=[AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))), data=Data(id=5; kind=Node; mark=Processed_Uncovered(time_stamp=4; region=[AtomicRegion: Location: id=1#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Node(edge=Location: id=2#2 (Artificial)---SymHook(__BLAST_initialize_alternating_list.c)---> Location: id=2#1 src="alternating_list.c"; line=0, data=Data(id=3; kind=Node; mark=Processed_Uncovered(time_stamp=2; region=[AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))) Node(edge=Location: id=1#1 src="alternating_list.c"; line=0---FunctionCall(__BLAST_initialize_alternating_list.c())---> Location: id=1#2 (Artificial), data=Data(id=2; kind=Entry; mark=Processed_Uncovered(time_stamp=1; region=[AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))) Node(edge=NONE, data=Data(id=0; kind=Entry; mark=Processed_Uncovered(time_stamp=0; region=[AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] ))) Let's refine the nodes along that path anc_region is: [AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Done calling Focus The focused region for the ancestor is: [AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] REFINING with region [AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Subtree cut refinement starting at: Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#13 src="alternating_list.c"; line=39, data=Data(id=14; kind=Node; mark=Processed_Uncovered(time_stamp=11; region=[AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) This ancestor now looks like: Now deleting subtree: Entry points to %s:__BLAST_initialize_alternating_list.c Node(edge=Location: id=1#1 src="alternating_list.c"; line=0---FunctionCall(__BLAST_initialize_alternating_list.c())---> Location: id=1#2 (Artificial), data=Data(id=2; kind=Entry; mark=Processed_Uncovered(time_stamp=1; region=[AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))) Entry points to %s:main Node(edge=NONE, data=Data(id=0; kind=Entry; mark=Processed_Uncovered(time_stamp=0; region=[AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] ))) backup: Node(edge=Location: id=1#36 src="alternating_list.c"; line=51---Pred( * (p@main ).h != 2)---> Location: id=1#30 src="alternating_list.c"; line=60, data=Data(id=23; kind=Node; mark=Processed_Was_Covered_To_Reprocess(time_stamp=21; region=[AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) backup: Node(edge=Location: id=1#28 src="alternating_list.c"; line=50---Block(flag@main = 1;)---> Location: id=1#36 src="alternating_list.c"; line=51, data=Data(id=22; kind=Node; mark=Processed_Uncovered(time_stamp=18; region=[AtomicRegion: Location: id=1#36 src="alternating_list.c"; line=51 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) backup: Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main == 0)---> Location: id=1#28 src="alternating_list.c"; line=50, data=Data(id=21; kind=Node; mark=Processed_Uncovered(time_stamp=17; region=[AtomicRegion: Location: id=1#28 src="alternating_list.c"; line=50 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) backup: Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=16; kind=Node; mark=Processed_Uncovered(time_stamp=16; region=[AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) backup: Node(edge=Location: id=1#13 src="alternating_list.c"; line=39---Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;)---> Location: id=1#24 src="alternating_list.c"; line=44, data=Data(id=15; kind=Node; mark=Processed_Uncovered(time_stamp=12; region=[AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) backup: Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#13 src="alternating_list.c"; line=39, data=Data(id=14; kind=Node; mark=Processed_Uncovered(time_stamp=11; region=[AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) first_stamp = 0 Updating the ancestor's region... Delete children of Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#13 src="alternating_list.c"; line=39, data=Data(id=14; kind=Node; mark=Processed_Uncovered(time_stamp=11; region=[AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Now re-adding children: add_children The children are: Node(edge=Location: id=1#13 src="alternating_list.c"; line=39---Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;)---> Location: id=1#24 src="alternating_list.c"; line=44, data=Data(id=26; kind=Node; mark=Unprocessed)) Anc: Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#13 src="alternating_list.c"; line=39, data=Data(id=14; kind=Node; mark=Processed_Uncovered(time_stamp=11; region=[AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Updating the currently reached region Updating tree after refinement.... Start over again! Refinement complete. **************************************************************************** Next iteration of model-check's big while-loop 21 Now processing tree node: Node(edge=NONE, data=Data(id=0; kind=Entry; mark=Processed_Was_Covered_To_Reprocess(time_stamp=0; region=[AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] ))) RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#1 src="alternating_list.c"; line=0 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Top RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=NONE, data=Data(id=0; kind=Entry; mark=Processed_Was_Covered_To_Reprocess(time_stamp=0; region=[AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] ))) Updating the node's marking This node now looks like: Node(edge=NONE, data=Data(id=0; kind=Entry; mark=Processed_Uncovered(time_stamp=0; region=[AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] ))) cfLMC enters: __BLAST_initialize_alternating_list.c In post -- arguments are: [AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] Location: id=1#1 src="alternating_list.c"; line=0---FunctionCall(__BLAST_initialize_alternating_list.c())---> Location: id=1#2 (Artificial) tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In Deconstruct_fc :__BLAST_initialize_alternating_list.c() In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Top FunctionCall(__BLAST_initialize_alternating_list.c()) location (1,1) absdatapost postloc: (2,2) UL> Running post on command: UL> FunctionCall(__BLAST_initialize_alternating_list.c()) SA> Post of SA is called! SA> Post from top... starting from no information... In Deconstruct_fc :__BLAST_initialize_alternating_list.c() UL> Post returning predicates: UL> And [] Writing back post region New entry point for __BLAST_initialize_alternating_list.c lift_and_propagate Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 22 Now processing tree node: Node(edge=Location: id=1#1 src="alternating_list.c"; line=0---FunctionCall(__BLAST_initialize_alternating_list.c())---> Location: id=1#2 (Artificial), data=Data(id=28; kind=Entry; mark=Processed_Was_Covered_To_Reprocess(time_stamp=22; region=[AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))) RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=2#2 (Artificial) RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> [Location: id=1#1 src="alternating_list.c"; line=0]] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#1 src="alternating_list.c"; line=0---FunctionCall(__BLAST_initialize_alternating_list.c())---> Location: id=1#2 (Artificial), data=Data(id=28; kind=Entry; mark=Processed_Was_Covered_To_Reprocess(time_stamp=22; region=[AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))) Updating the node's marking This node now looks like: Node(edge=Location: id=1#1 src="alternating_list.c"; line=0---FunctionCall(__BLAST_initialize_alternating_list.c())---> Location: id=1#2 (Artificial), data=Data(id=28; kind=Entry; mark=Processed_Uncovered(time_stamp=22; region=[AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:1 Node(edge=Location: id=2#2 (Artificial)---SymHook(__BLAST_initialize_alternating_list.c)---> Location: id=2#1 src="alternating_list.c"; line=0, data=Data(id=29; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 23 Now processing tree node: Node(edge=Location: id=2#2 (Artificial)---SymHook(__BLAST_initialize_alternating_list.c)---> Location: id=2#1 src="alternating_list.c"; line=0, data=Data(id=29; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] Location: id=2#2 (Artificial)---SymHook(__BLAST_initialize_alternating_list.c)---> Location: id=2#1 src="alternating_list.c"; line=0 tos_fname: __BLAST_initialize_alternating_list.c, tos_2_fname: main In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] SymHook(__BLAST_initialize_alternating_list.c) location (2,2) absdatapost postloc: (2,1) UL> Running post on command: UL> SymHook(__BLAST_initialize_alternating_list.c) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=2#1 src="alternating_list.c"; line=0 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> [Location: id=1#1 src="alternating_list.c"; line=0]] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=2#2 (Artificial)---SymHook(__BLAST_initialize_alternating_list.c)---> Location: id=2#1 src="alternating_list.c"; line=0, data=Data(id=29; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=2#2 (Artificial)---SymHook(__BLAST_initialize_alternating_list.c)---> Location: id=2#1 src="alternating_list.c"; line=0, data=Data(id=29; kind=Node; mark=Processed_Uncovered(time_stamp=23; region=[AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))) It's a new exit point for __BLAST_initialize_alternating_list.c ! |entries| = 1 New summary edges to exit node. New summary edge! Node(edge=Location: id=1#1 src="alternating_list.c"; line=0---FunctionCall(__BLAST_initialize_alternating_list.c())---> Location: id=1#2 (Artificial), data=Data(id=28; kind=Entry; mark=Processed_Uncovered(time_stamp=22; region=[AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))) --> Node(edge=Location: id=2#1 src="alternating_list.c"; line=0---Block(Return(0);)---> Location: id=2#0 (Artificial), data=Data(id=30; kind=Exit; mark=Processed_Uncovered(time_stamp=24; region=[AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))) by way of lift_and_propagate In Region.leq -- arguments are: (suppressed-RJ) [AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] [AtomicRegion: Location: id=2#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] SA> TVLA: Cover result: YES SA> Cover -> YES A call site matched in lift_and_propagate. Node(edge=NONE, data=Data(id=0; kind=Entry; mark=Processed_Uncovered(time_stamp=0; region=[AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] ))) Now caller has 1 children.@. Summary edge added Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 24 Now processing tree node: Node(edge=SUMMARY Node(edge=Location: id=2#1 src="alternating_list.c"; line=0--- Block(Return(0);)--->Location: id=2#0 (Artificial), data=Data(id=30; kind=Exit; mark=Processed_Uncovered(time_stamp=24; region=[AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))), data=Data(id=31; kind=Node; mark=Unprocessed)) Summary Post Printing abstract data regions: [AtomicRegion: Location: id=1#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] [AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] In Deconstruct_fc :__BLAST_initialize_alternating_list.c() Target: * (sizeof(<0>)) Trivial post RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#2 (Artificial) RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=SUMMARY Node(edge=Location: id=2#1 src="alternating_list.c"; line=0--- Block(Return(0);)--->Location: id=2#0 (Artificial), data=Data(id=30; kind=Exit; mark=Processed_Uncovered(time_stamp=24; region=[AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))), data=Data(id=31; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=SUMMARY Node(edge=Location: id=2#1 src="alternating_list.c"; line=0--- Block(Return(0);)--->Location: id=2#0 (Artificial), data=Data(id=30; kind=Exit; mark=Processed_Uncovered(time_stamp=24; region=[AtomicRegion: Location: id=2#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: [Location: id=1#1 src="alternating_list.c"; line=0]] ))), data=Data(id=31; kind=Node; mark=Processed_Uncovered(time_stamp=25; region=[AtomicRegion: Location: id=1#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:1 Node(edge=Location: id=1#2 (Artificial)---Skip--->Location: id=1#3 src="alternating_list.c"; line=19, data=Data(id=32; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 25 Now processing tree node: Node(edge=Location: id=1#2 (Artificial)---Skip--->Location: id=1#3 src="alternating_list.c"; line=19, data=Data(id=32; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#2 (Artificial) AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#2 (Artificial)---Skip--->Location: id=1#3 src="alternating_list.c"; line=19 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Skip location (1,2) absdatapost postloc: (1,3) Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#3 src="alternating_list.c"; line=19 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#3 src="alternating_list.c"; line=19 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#3 src="alternating_list.c"; line=19 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#2 (Artificial)---Skip--->Location: id=1#3 src="alternating_list.c"; line=19, data=Data(id=32; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#2 (Artificial)---Skip--->Location: id=1#3 src="alternating_list.c"; line=19, data=Data(id=32; kind=Node; mark=Processed_Uncovered(time_stamp=26; region=[AtomicRegion: Location: id=1#3 src="alternating_list.c"; line=19 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:1 Node(edge=Location: id=1#3 src="alternating_list.c"; line=19---Block(flag@main = 1;)---> Location: id=1#4 src="alternating_list.c"; line=22, data=Data(id=33; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 26 Now processing tree node: Node(edge=Location: id=1#3 src="alternating_list.c"; line=19---Block(flag@main = 1;)---> Location: id=1#4 src="alternating_list.c"; line=22, data=Data(id=33; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#3 src="alternating_list.c"; line=19 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#3 src="alternating_list.c"; line=19---Block(flag@main = 1;)---> Location: id=1#4 src="alternating_list.c"; line=22 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Block(flag@main = 1;) location (1,3) absdatapost postloc: (1,4) UL> Running post on command: UL> Block(flag@main = 1;) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] In _H of abstract_data_post, bdd = true tos=__BLAST_DUMMY_FUNCTION , tos2=__BLAST_DUMMY_FUNCTION , call=false In concrete_data_pre -- arguments are: ConcrDatRgn: Predicates: flag@main == 1 Block(flag@main = 1;) implicit wp Alias candidates In concrete_data_pre -- arguments are: ConcrDatRgn: Predicates: flag@main != 1 Block(flag@main = 1;) implicit wp Alias candidates In postBdd.. post of assumeNO Bdd = true List of predicates = flag@main==1 1==1 1!=1 true Will split on: In _check_Cube simplify_assume sstk:0 convertToSimplifySyntax exp = true Simplify Assuming: TRUE Done Assume 1==1 querying exp: 1 == 1 convertToSimplifySyntax exp = 1 == 1 Simplify: TRUE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > 39: Valid. true 1!=1 querying exp: 1 != 1 convertToSimplifySyntax exp = 1 != 1 Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 40: Invalid. false simplify_pop sstk:1 Simplify Popping Done pop Returning from Post-Bdd = flag@main==1 Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#4 src="alternating_list.c"; line=22 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#4 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#4 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#3 src="alternating_list.c"; line=19---Block(flag@main = 1;)---> Location: id=1#4 src="alternating_list.c"; line=22, data=Data(id=33; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#3 src="alternating_list.c"; line=19---Block(flag@main = 1;)---> Location: id=1#4 src="alternating_list.c"; line=22, data=Data(id=33; kind=Node; mark=Processed_Uncovered(time_stamp=27; region=[AtomicRegion: Location: id=1#4 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:1 Node(edge=Location: id=1#4 src="alternating_list.c"; line=22---FunctionCall(tmp@main = malloc(512))---> Location: id=1#5 src="alternating_list.c"; line=22, data=Data(id=34; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 27 Now processing tree node: Node(edge=Location: id=1#4 src="alternating_list.c"; line=22---FunctionCall(tmp@main = malloc(512))---> Location: id=1#5 src="alternating_list.c"; line=22, data=Data(id=34; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#4 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#4 src="alternating_list.c"; line=22---FunctionCall(tmp@main = malloc(512))---> Location: id=1#5 src="alternating_list.c"; line=22 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In Deconstruct_fc :tmp@main=malloc(,512) In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] FunctionCall(tmp@main = malloc(512)) location (1,4) absdatapost postloc: (1,5) NEW CDP In Deconstruct_fc :tmp@main=malloc(,512) In Deconstruct_fc :tmp@main=malloc(,512) Funcall assignment Symvars: UL> Running post on command: UL> FunctionCall(tmp@main = malloc(512)) SA> Post of SA is called! In Deconstruct_fc :tmp@main=malloc(,512) SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] In _H of abstract_data_post, bdd = flag@main==1 tos=malloc , tos2=__BLAST_DUMMY_FUNCTION , call=true In concrete_data_pre -- arguments are: ConcrDatRgn: Predicates: flag@main == 1 Block(tmp@main = ;) implicit wp Alias candidates In concrete_data_pre -- arguments are: ConcrDatRgn: Predicates: flag@main != 1 Block(tmp@main = ;) implicit wp Alias candidates In postBdd.. post of assumeNO Bdd = flag@main==1 List of predicates = flag@main==1 flag@main==1 flag@main!=1 true Will split on: In _check_Cube simplify_assume sstk:0 convertToSimplifySyntax exp = flag@main == 1 Simplify Assuming: (EQ v1 1) Done Assume simplify_pop sstk:1 Simplify Popping Done pop Returning from Post-Bdd = flag@main==1 Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#5 src="alternating_list.c"; line=22 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#5 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#5 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#4 src="alternating_list.c"; line=22---FunctionCall(tmp@main = malloc(512))---> Location: id=1#5 src="alternating_list.c"; line=22, data=Data(id=34; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#4 src="alternating_list.c"; line=22---FunctionCall(tmp@main = malloc(512))---> Location: id=1#5 src="alternating_list.c"; line=22, data=Data(id=34; kind=Node; mark=Processed_Uncovered(time_stamp=28; region=[AtomicRegion: Location: id=1#5 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:1 Node(edge=Location: id=1#5 src="alternating_list.c"; line=22---Block(a@main = tmp@main;)---> Location: id=1#6 src="alternating_list.c"; line=23, data=Data(id=35; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 28 Now processing tree node: Node(edge=Location: id=1#5 src="alternating_list.c"; line=22---Block(a@main = tmp@main;)---> Location: id=1#6 src="alternating_list.c"; line=23, data=Data(id=35; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#5 src="alternating_list.c"; line=22 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#5 src="alternating_list.c"; line=22---Block(a@main = tmp@main;)--->Location: id=1#6 src="alternating_list.c"; line=23 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Block(a@main = tmp@main;) location (1,5) absdatapost postloc: (1,6) UL> Running post on command: UL> Block(a@main = tmp@main;) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] In _H of abstract_data_post, bdd = flag@main==1 tos=__BLAST_DUMMY_FUNCTION , tos2=__BLAST_DUMMY_FUNCTION , call=false In concrete_data_pre -- arguments are: ConcrDatRgn: Predicates: flag@main == 1 Block(a@main = tmp@main;) implicit wp Alias candidates In concrete_data_pre -- arguments are: ConcrDatRgn: Predicates: flag@main != 1 Block(a@main = tmp@main;) implicit wp Alias candidates In postBdd.. post of assumeNO Bdd = flag@main==1 List of predicates = flag@main==1 flag@main==1 flag@main!=1 true Will split on: In _check_Cube simplify_assume sstk:0 convertToSimplifySyntax exp = flag@main == 1 Simplify Assuming: (EQ v1 1) Done Assume simplify_pop sstk:1 Simplify Popping Done pop Returning from Post-Bdd = flag@main==1 Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#6 src="alternating_list.c"; line=23 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#6 src="alternating_list.c"; line=23 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#6 src="alternating_list.c"; line=23 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#5 src="alternating_list.c"; line=22---Block(a@main = tmp@main;)---> Location: id=1#6 src="alternating_list.c"; line=23, data=Data(id=35; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#5 src="alternating_list.c"; line=22---Block(a@main = tmp@main;)---> Location: id=1#6 src="alternating_list.c"; line=23, data=Data(id=35; kind=Node; mark=Processed_Uncovered(time_stamp=29; region=[AtomicRegion: Location: id=1#6 src="alternating_list.c"; line=23 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:1 Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=36; kind=Node; mark=Unprocessed)) Adding the children to the set of pending unprocessed#nodes Remaining nodes:2 Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main != 0)---> Location: id=1#10 src="alternating_list.c"; line=25, data=Data(id=37; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=36; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 29 Now processing tree node: Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main != 0)---> Location: id=1#10 src="alternating_list.c"; line=25, data=Data(id=37; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#6 src="alternating_list.c"; line=23 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main != 0)---> Location: id=1#10 src="alternating_list.c"; line=25 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Pred(a@main != 0) location (1,6) absdatapost postloc: (1,10) calling _H UL> Running post on command: UL> Pred(a@main != 0) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] In _H of abstract_data_post, bdd = flag@main==1 tos=__BLAST_DUMMY_FUNCTION , tos2=__BLAST_DUMMY_FUNCTION , call=false In postBdd.. post of assumeYES:a@main!=0 Bdd = flag@main==1 List of predicates = flag@main==1 flag@main==1 flag@main!=1 true Will split on: In _check_Cube Query : (And [flag@main == 1, a@main != 0]=>false) querying exp: (And [flag@main == 1, a@main != 0]=>false) convertToSimplifySyntax exp = (And [flag@main == 1, a@main != 0]=>false) Simplify: (IMPLIES (AND (NEQ v2 0) (AND (EQ v1 1) TRUE)) FALSE) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > > > > 41: Invalid. false simplify_assume sstk:0 convertToSimplifySyntax exp = And [flag@main == 1, a@main != 0] Simplify Assuming: (AND (NEQ v2 0) (AND (EQ v1 1) TRUE)) Done Assume simplify_pop sstk:1 Simplify Popping Done pop Returning from Post-Bdd = flag@main==1 Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#10 src="alternating_list.c"; line=25 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#10 src="alternating_list.c"; line=25 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#10 src="alternating_list.c"; line=25 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main != 0)---> Location: id=1#10 src="alternating_list.c"; line=25, data=Data(id=37; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main != 0)---> Location: id=1#10 src="alternating_list.c"; line=25, data=Data(id=37; kind=Node; mark=Processed_Uncovered(time_stamp=30; region=[AtomicRegion: Location: id=1#10 src="alternating_list.c"; line=25 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:2 Node(edge=Location: id=1#10 src="alternating_list.c"; line=25---Block(p@main = a@main;)---> Location: id=1#11 src="alternating_list.c"; line=26, data=Data(id=38; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=36; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 30 Now processing tree node: Node(edge=Location: id=1#10 src="alternating_list.c"; line=25---Block(p@main = a@main;)---> Location: id=1#11 src="alternating_list.c"; line=26, data=Data(id=38; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#10 src="alternating_list.c"; line=25 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#10 src="alternating_list.c"; line=25---Block(p@main = a@main;)---> Location: id=1#11 src="alternating_list.c"; line=26 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Block(p@main = a@main;) location (1,10) absdatapost postloc: (1,11) UL> Running post on command: UL> Block(p@main = a@main;) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] In _H of abstract_data_post, bdd = flag@main==1 tos=__BLAST_DUMMY_FUNCTION , tos2=__BLAST_DUMMY_FUNCTION , call=false In concrete_data_pre -- arguments are: ConcrDatRgn: Predicates: flag@main == 1 Block(p@main = a@main;) implicit wp Alias candidates In concrete_data_pre -- arguments are: ConcrDatRgn: Predicates: flag@main != 1 Block(p@main = a@main;) implicit wp Alias candidates In postBdd.. post of assumeNO Bdd = flag@main==1 List of predicates = flag@main==1 flag@main==1 flag@main!=1 true Will split on: In _check_Cube simplify_assume sstk:0 convertToSimplifySyntax exp = flag@main == 1 Simplify Assuming: (EQ v1 1) Done Assume simplify_pop sstk:1 Simplify Popping Done pop Returning from Post-Bdd = flag@main==1 Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#11 src="alternating_list.c"; line=26 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#11 src="alternating_list.c"; line=26 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#11 src="alternating_list.c"; line=26 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#10 src="alternating_list.c"; line=25---Block(p@main = a@main;)---> Location: id=1#11 src="alternating_list.c"; line=26, data=Data(id=38; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#10 src="alternating_list.c"; line=25---Block(p@main = a@main;)---> Location: id=1#11 src="alternating_list.c"; line=26, data=Data(id=38; kind=Node; mark=Processed_Uncovered(time_stamp=31; region=[AtomicRegion: Location: id=1#11 src="alternating_list.c"; line=26 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:2 Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=39; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=36; kind=Node; mark=Unprocessed)) Adding the children to the set of pending unprocessed#nodes Remaining nodes:3 Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#13 src="alternating_list.c"; line=39, data=Data(id=40; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=39; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=36; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 31 Now processing tree node: Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#13 src="alternating_list.c"; line=39, data=Data(id=40; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#11 src="alternating_list.c"; line=26 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)--->Location: id=1#13 src="alternating_list.c"; line=39 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Pred(true) location (1,11) absdatapost postloc: (1,13) thinks its true! Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#13 src="alternating_list.c"; line=39 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#13 src="alternating_list.c"; line=39, data=Data(id=40; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#13 src="alternating_list.c"; line=39, data=Data(id=40; kind=Node; mark=Processed_Uncovered(time_stamp=32; region=[AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:3 Node(edge=Location: id=1#13 src="alternating_list.c"; line=39---Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;)---> Location: id=1#24 src="alternating_list.c"; line=44, data=Data(id=41; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=39; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=36; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 32 Now processing tree node: Node(edge=Location: id=1#13 src="alternating_list.c"; line=39---Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;)---> Location: id=1#24 src="alternating_list.c"; line=44, data=Data(id=41; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#13 src="alternating_list.c"; line=39 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#13 src="alternating_list.c"; line=39---Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;)---> Location: id=1#24 src="alternating_list.c"; line=44 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;) location (1,13) absdatapost postloc: (1,24) UL> Running post on command: UL> Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] In _H of abstract_data_post, bdd = flag@main==1 tos=__BLAST_DUMMY_FUNCTION , tos2=__BLAST_DUMMY_FUNCTION , call=false In concrete_data_pre -- arguments are: ConcrDatRgn: Predicates: flag@main == 1 Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;) implicit wp Alias candidates implicit wp Alias candidates implicit wp Alias candidates In concrete_data_pre -- arguments are: ConcrDatRgn: Predicates: flag@main != 1 Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;) implicit wp Alias candidates implicit wp Alias candidates implicit wp Alias candidates In concrete_data_pre -- arguments are: ConcrDatRgn: Predicates: flag@main == 1 Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;) implicit wp Alias candidates implicit wp Alias candidates implicit wp Alias candidates In concrete_data_pre -- arguments are: ConcrDatRgn: Predicates: flag@main != 1 Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;) implicit wp Alias candidates implicit wp Alias candidates implicit wp Alias candidates In postBdd.. post of assumeNO Bdd = flag@main==1 List of predicates = flag@main==1 1==1 1!=1 true Will split on: flag@main==1 1==1 1!=1 true In _check_Cube simplify_assume sstk:0 convertToSimplifySyntax exp = flag@main == 1 Simplify Assuming: (EQ v1 1) Done Assume 1==1 querying exp: 1 == 1 convertToSimplifySyntax exp = 1 == 1 Simplify: TRUE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > > > > 42: Valid. true 1!=1 querying exp: 1 != 1 convertToSimplifySyntax exp = 1 != 1 Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 43: Invalid. false 1==1 querying exp: 1 == 1 convertToSimplifySyntax exp = 1 == 1 Simplify: TRUE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 44: Valid. true 1!=1 querying exp: 1 != 1 convertToSimplifySyntax exp = 1 != 1 Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 45: Invalid. false simplify_pop sstk:1 Simplify Popping Done pop Returning from Post-Bdd = flag@main==1 Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#24 src="alternating_list.c"; line=44 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#13 src="alternating_list.c"; line=39---Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;)---> Location: id=1#24 src="alternating_list.c"; line=44, data=Data(id=41; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#13 src="alternating_list.c"; line=39---Block(* (p@main ).h = 3;p@main = a@main;flag@main = 1;)---> Location: id=1#24 src="alternating_list.c"; line=44, data=Data(id=41; kind=Node; mark=Processed_Uncovered(time_stamp=33; region=[AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:3 Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=42; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=39; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=36; kind=Node; mark=Unprocessed)) Adding the children to the set of pending unprocessed#nodes Remaining nodes:4 Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h == 3)---> Location: id=1#26 src="alternating_list.c"; line=57, data=Data(id=43; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=42; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=39; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=36; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 33 Now processing tree node: Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h == 3)---> Location: id=1#26 src="alternating_list.c"; line=57, data=Data(id=43; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#24 src="alternating_list.c"; line=44---Pred(* (p@main ).h == 3)--->Location: id=1#26 src="alternating_list.c"; line=57 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Pred(* (p@main ).h == 3) location (1,24) absdatapost postloc: (1,26) calling _H UL> Running post on command: UL> Pred(* (p@main ).h == 3) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] In _H of abstract_data_post, bdd = flag@main==1 tos=__BLAST_DUMMY_FUNCTION , tos2=__BLAST_DUMMY_FUNCTION , call=false In postBdd.. post of assumeYES:(* (p@main)).h==3 Bdd = flag@main==1 List of predicates = flag@main==1 flag@main==1 flag@main!=1 true Will split on: In _check_Cube Query : (And [flag@main == 1, * (p@main ).h == 3]=>false) querying exp: (And [flag@main == 1, * (p@main ).h == 3]=>false) convertToSimplifySyntax exp = (And [flag@main == 1, * (p@main ).h == 3]=>false) Simplify: (IMPLIES (AND (EQ (select (select v3 0) v2) 3) (AND (EQ v1 1) TRUE)) FALSE) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > 46: Invalid. false simplify_assume sstk:0 convertToSimplifySyntax exp = And [flag@main == 1, * (p@main ).h == 3] Simplify Assuming: (AND (EQ (select (select v3 0) v2) 3) (AND (EQ v1 1) TRUE)) Done Assume simplify_pop sstk:1 Simplify Popping Done pop Returning from Post-Bdd = flag@main==1 Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#26 src="alternating_list.c"; line=57 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#26 src="alternating_list.c"; line=57 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#26 src="alternating_list.c"; line=57 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h == 3)---> Location: id=1#26 src="alternating_list.c"; line=57, data=Data(id=43; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h == 3)---> Location: id=1#26 src="alternating_list.c"; line=57, data=Data(id=43; kind=Node; mark=Processed_Uncovered(time_stamp=34; region=[AtomicRegion: Location: id=1#26 src="alternating_list.c"; line=57 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:4 Node(edge=Location: id=1#26 src="alternating_list.c"; line=57---Block(__retres@main = 0;)---> Location: id=1#34 src="alternating_list.c"; line=17, data=Data(id=44; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=42; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=39; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=36; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 34 Now processing tree node: Node(edge=Location: id=1#26 src="alternating_list.c"; line=57---Block(__retres@main = 0;)---> Location: id=1#34 src="alternating_list.c"; line=17, data=Data(id=44; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#26 src="alternating_list.c"; line=57 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#26 src="alternating_list.c"; line=57---Block(__retres@main = 0;)--->Location: id=1#34 src="alternating_list.c"; line=17 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Block(__retres@main = 0;) location (1,26) absdatapost postloc: (1,34) UL> Running post on command: UL> Block(__retres@main = 0;) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] In _H of abstract_data_post, bdd = flag@main==1 tos=__BLAST_DUMMY_FUNCTION , tos2=__BLAST_DUMMY_FUNCTION , call=false In concrete_data_pre -- arguments are: ConcrDatRgn: Predicates: flag@main == 1 Block(__retres@main = 0;) implicit wp Alias candidates In concrete_data_pre -- arguments are: ConcrDatRgn: Predicates: flag@main != 1 Block(__retres@main = 0;) implicit wp Alias candidates In postBdd.. post of assumeNO Bdd = flag@main==1 List of predicates = flag@main==1 flag@main==1 flag@main!=1 true Will split on: In _check_Cube simplify_assume sstk:0 convertToSimplifySyntax exp = flag@main == 1 Simplify Assuming: (EQ v1 1) Done Assume simplify_pop sstk:1 Simplify Popping Done pop Returning from Post-Bdd = flag@main==1 Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#34 src="alternating_list.c"; line=17 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#34 src="alternating_list.c"; line=17 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#34 src="alternating_list.c"; line=17 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#26 src="alternating_list.c"; line=57---Block(__retres@main = 0;)---> Location: id=1#34 src="alternating_list.c"; line=17, data=Data(id=44; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#26 src="alternating_list.c"; line=57---Block(__retres@main = 0;)---> Location: id=1#34 src="alternating_list.c"; line=17, data=Data(id=44; kind=Node; mark=Processed_Uncovered(time_stamp=35; region=[AtomicRegion: Location: id=1#34 src="alternating_list.c"; line=17 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) It's a new exit point for main ! |entries| = 1 New summary edges to exit node. New summary edge! Node(edge=NONE, data=Data(id=0; kind=Entry; mark=Processed_Uncovered(time_stamp=0; region=[AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] ))) --> Node(edge=Location: id=1#34 src="alternating_list.c"; line=17---Block(Return(__retres@main);)---> Location: id=1#0 (Artificial), data=Data(id=45; kind=Exit; mark=Processed_Uncovered(time_stamp=36; region=[AtomicRegion: Location: id=1#34 src="alternating_list.c"; line=17 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) by way of Summary edge added Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 35 Now processing tree node: Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=42; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#24 src="alternating_list.c"; line=44---Pred(* (p@main ).h != 3)--->Location: id=1#25 src="alternating_list.c"; line=45 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Pred(* (p@main ).h != 3) location (1,24) absdatapost postloc: (1,25) calling _H UL> Running post on command: UL> Pred(* (p@main ).h != 3) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] In _H of abstract_data_post, bdd = flag@main==1 tos=__BLAST_DUMMY_FUNCTION , tos2=__BLAST_DUMMY_FUNCTION , call=false In postBdd.. post of assumeYES:(* (p@main)).h!=3 Bdd = flag@main==1 List of predicates = flag@main==1 flag@main==1 flag@main!=1 true Will split on: flag@main==1 flag@main==1 flag@main!=1 true In _check_Cube Query : (And [flag@main == 1, * (p@main ).h != 3]=>false) querying exp: (And [flag@main == 1, * (p@main ).h != 3]=>false) convertToSimplifySyntax exp = (And [flag@main == 1, * (p@main ).h != 3]=>false) Simplify: (IMPLIES (AND (NEQ (select (select v3 0) v2) 3) (AND (EQ v1 1) TRUE)) FALSE) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > > > 47: Invalid. false simplify_assume sstk:0 convertToSimplifySyntax exp = And [flag@main == 1, * (p@main ).h != 3] Simplify Assuming: (AND (NEQ (select (select v3 0) v2) 3) (AND (EQ v1 1) TRUE)) Done Assume flag@main==1 querying exp: flag@main == 1 convertToSimplifySyntax exp = flag@main == 1 Simplify: (EQ v1 1) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > 48: Valid. true flag@main!=1 querying exp: flag@main != 1 convertToSimplifySyntax exp = flag@main != 1 Simplify: (NEQ v1 1) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 49: Invalid. false simplify_pop sstk:1 Simplify Popping Done pop Returning from Post-Bdd = flag@main==1 Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#25 src="alternating_list.c"; line=45 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=42; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=42; kind=Node; mark=Processed_Uncovered(time_stamp=37; region=[AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:3 Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main != 0)---> Location: id=1#27 src="alternating_list.c"; line=46, data=Data(id=46; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=39; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=36; kind=Node; mark=Unprocessed)) Adding the children to the set of pending unprocessed#nodes Remaining nodes:4 Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main == 0)---> Location: id=1#28 src="alternating_list.c"; line=50, data=Data(id=47; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main != 0)---> Location: id=1#27 src="alternating_list.c"; line=46, data=Data(id=46; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=39; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=36; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 36 Now processing tree node: Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main == 0)---> Location: id=1#28 src="alternating_list.c"; line=50, data=Data(id=47; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#25 src="alternating_list.c"; line=45---Pred(flag@main == 0)---> Location: id=1#28 src="alternating_list.c"; line=50 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Pred(flag@main == 0) location (1,25) absdatapost postloc: (1,28) calling _H UL> Running post on command: UL> Pred(flag@main == 0) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] In _H of abstract_data_post, bdd = flag@main==1 tos=__BLAST_DUMMY_FUNCTION , tos2=__BLAST_DUMMY_FUNCTION , call=false In postBdd.. post of assumeYES:flag@main==0 Bdd = flag@main==1 List of predicates = flag@main==1 flag@main==1 flag@main!=1 true Will split on: In _check_Cube Query : (And [flag@main == 1, flag@main == 0]=>false) querying exp: (And [flag@main == 1, flag@main == 0]=>false) convertToSimplifySyntax exp = (And [flag@main == 1, flag@main == 0]=>false) Simplify: (IMPLIES (AND (EQ v1 0) (AND (EQ v1 1) TRUE)) FALSE) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > 50: Valid. true Returning from Post-Bdd = false Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#28 src="alternating_list.c"; line=50 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#28 src="alternating_list.c"; line=50 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#28 src="alternating_list.c"; line=50 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] **************************************************************************** Next iteration of model-check's big while-loop 37 Now processing tree node: Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main != 0)---> Location: id=1#27 src="alternating_list.c"; line=46, data=Data(id=46; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#25 src="alternating_list.c"; line=45---Pred(flag@main != 0)---> Location: id=1#27 src="alternating_list.c"; line=46 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Pred(flag@main != 0) location (1,25) absdatapost postloc: (1,27) calling _H UL> Running post on command: UL> Pred(flag@main != 0) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] In _H of abstract_data_post, bdd = flag@main==1 tos=__BLAST_DUMMY_FUNCTION , tos2=__BLAST_DUMMY_FUNCTION , call=false In postBdd.. post of assumeYES:flag@main!=0 Bdd = flag@main==1 List of predicates = flag@main==1 flag@main==1 flag@main!=1 true Will split on: In _check_Cube Query : (And [flag@main == 1, flag@main != 0]=>false) querying exp: (And [flag@main == 1, flag@main != 0]=>false) convertToSimplifySyntax exp = (And [flag@main == 1, flag@main != 0]=>false) Simplify: (IMPLIES (AND (NEQ v1 0) (AND (EQ v1 1) TRUE)) FALSE) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 51: Invalid. false simplify_assume sstk:0 convertToSimplifySyntax exp = And [flag@main == 1, flag@main != 0] Simplify Assuming: (AND (NEQ v1 0) (AND (EQ v1 1) TRUE)) Done Assume flag@main==1 querying exp: flag@main == 1 convertToSimplifySyntax exp = flag@main == 1 Simplify: (EQ v1 1) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > 52: Valid. true flag@main!=1 querying exp: flag@main != 1 convertToSimplifySyntax exp = flag@main != 1 Simplify: (NEQ v1 1) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 53: Invalid. false simplify_pop sstk:1 Simplify Popping Done pop Returning from Post-Bdd = flag@main==1 Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#27 src="alternating_list.c"; line=46 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#27 src="alternating_list.c"; line=46 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#27 src="alternating_list.c"; line=46 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main != 0)---> Location: id=1#27 src="alternating_list.c"; line=46, data=Data(id=46; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main != 0)---> Location: id=1#27 src="alternating_list.c"; line=46, data=Data(id=46; kind=Node; mark=Processed_Uncovered(time_stamp=39; region=[AtomicRegion: Location: id=1#27 src="alternating_list.c"; line=46 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:3 Node(edge=Location: id=1#27 src="alternating_list.c"; line=46---Block(flag@main = 0;)---> Location: id=1#29 src="alternating_list.c"; line=47, data=Data(id=48; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=39; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=36; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 38 Now processing tree node: Node(edge=Location: id=1#27 src="alternating_list.c"; line=46---Block(flag@main = 0;)---> Location: id=1#29 src="alternating_list.c"; line=47, data=Data(id=48; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#27 src="alternating_list.c"; line=46 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#27 src="alternating_list.c"; line=46---Block(flag@main = 0;)---> Location: id=1#29 src="alternating_list.c"; line=47 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Block(flag@main = 0;) location (1,27) absdatapost postloc: (1,29) UL> Running post on command: UL> Block(flag@main = 0;) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] In _H of abstract_data_post, bdd = flag@main==1 tos=__BLAST_DUMMY_FUNCTION , tos2=__BLAST_DUMMY_FUNCTION , call=false In concrete_data_pre -- arguments are: ConcrDatRgn: Predicates: flag@main == 1 Block(flag@main = 0;) implicit wp Alias candidates In concrete_data_pre -- arguments are: ConcrDatRgn: Predicates: flag@main != 1 Block(flag@main = 0;) implicit wp Alias candidates In postBdd.. post of assumeNO Bdd = flag@main==1 List of predicates = flag@main==1 0==1 0!=1 true Will split on: In _check_Cube simplify_assume sstk:0 convertToSimplifySyntax exp = flag@main == 1 Simplify Assuming: (EQ v1 1) Done Assume 0==1 querying exp: 0 == 1 convertToSimplifySyntax exp = 0 == 1 Simplify: FALSE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > 54: Invalid. false 0!=1 querying exp: 0 != 1 convertToSimplifySyntax exp = 0 != 1 Simplify: TRUE Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 55: Valid. true simplify_pop sstk:1 Simplify Popping Done pop Returning from Post-Bdd = flag@main!=1 Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#29 src="alternating_list.c"; line=47 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#29 src="alternating_list.c"; line=47 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#29 src="alternating_list.c"; line=47 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#27 src="alternating_list.c"; line=46---Block(flag@main = 0;)---> Location: id=1#29 src="alternating_list.c"; line=47, data=Data(id=48; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#27 src="alternating_list.c"; line=46---Block(flag@main = 0;)---> Location: id=1#29 src="alternating_list.c"; line=47, data=Data(id=48; kind=Node; mark=Processed_Uncovered(time_stamp=40; region=[AtomicRegion: Location: id=1#29 src="alternating_list.c"; line=47 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:3 Node(edge=Location: id=1#29 src="alternating_list.c"; line=47---Pred( * (p@main ).h != 1)---> Location: id=1#30 src="alternating_list.c"; line=60, data=Data(id=49; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=39; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=36; kind=Node; mark=Unprocessed)) Adding the children to the set of pending unprocessed#nodes Remaining nodes:4 Node(edge=Location: id=1#29 src="alternating_list.c"; line=47---Pred( * (p@main ).h == 1)---> Location: id=1#31 src="alternating_list.c"; line=54, data=Data(id=50; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#29 src="alternating_list.c"; line=47---Pred( * (p@main ).h != 1)---> Location: id=1#30 src="alternating_list.c"; line=60, data=Data(id=49; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=39; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=36; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 39 Now processing tree node: Node(edge=Location: id=1#29 src="alternating_list.c"; line=47---Pred( * (p@main ).h == 1)---> Location: id=1#31 src="alternating_list.c"; line=54, data=Data(id=50; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#29 src="alternating_list.c"; line=47 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#29 src="alternating_list.c"; line=47---Pred(* (p@main ).h == 1)--->Location: id=1#31 src="alternating_list.c"; line=54 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Pred(* (p@main ).h == 1) location (1,29) absdatapost postloc: (1,31) calling _H UL> Running post on command: UL> Pred(* (p@main ).h == 1) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] In _H of abstract_data_post, bdd = flag@main!=1 tos=__BLAST_DUMMY_FUNCTION , tos2=__BLAST_DUMMY_FUNCTION , call=false In postBdd.. post of assumeYES:(* (p@main)).h==1 Bdd = flag@main!=1 List of predicates = flag@main==1 flag@main==1 flag@main!=1 true Will split on: In _check_Cube Query : (And [flag@main != 1, * (p@main ).h == 1]=>false) querying exp: (And [flag@main != 1, * (p@main ).h == 1]=>false) convertToSimplifySyntax exp = (And [flag@main != 1, * (p@main ).h == 1]=>false) Simplify: (IMPLIES (AND (EQ (select (select v3 0) v2) 1) (AND (NEQ v1 1) TRUE)) FALSE) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > 56: Invalid. false simplify_assume sstk:0 convertToSimplifySyntax exp = And [flag@main != 1, * (p@main ).h == 1] Simplify Assuming: (AND (EQ (select (select v3 0) v2) 1) (AND (NEQ v1 1) TRUE)) Done Assume simplify_pop sstk:1 Simplify Popping Done pop Returning from Post-Bdd = flag@main!=1 Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#31 src="alternating_list.c"; line=54 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#31 src="alternating_list.c"; line=54 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#31 src="alternating_list.c"; line=54 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#29 src="alternating_list.c"; line=47---Pred( * (p@main ).h == 1)---> Location: id=1#31 src="alternating_list.c"; line=54, data=Data(id=50; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#29 src="alternating_list.c"; line=47---Pred( * (p@main ).h == 1)---> Location: id=1#31 src="alternating_list.c"; line=54, data=Data(id=50; kind=Node; mark=Processed_Uncovered(time_stamp=41; region=[AtomicRegion: Location: id=1#31 src="alternating_list.c"; line=54 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:4 Node(edge=Location: id=1#31 src="alternating_list.c"; line=54---Block(p@main = * (p@main ).n;)---> Location: id=1#24 src="alternating_list.c"; line=44, data=Data(id=51; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#29 src="alternating_list.c"; line=47---Pred( * (p@main ).h != 1)---> Location: id=1#30 src="alternating_list.c"; line=60, data=Data(id=49; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=39; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=36; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 40 Now processing tree node: Node(edge=Location: id=1#31 src="alternating_list.c"; line=54---Block(p@main = * (p@main ).n;)---> Location: id=1#24 src="alternating_list.c"; line=44, data=Data(id=51; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#31 src="alternating_list.c"; line=54 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#31 src="alternating_list.c"; line=54---Block(p@main = * (p@main ).n;)---> Location: id=1#24 src="alternating_list.c"; line=44 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Block(p@main = * (p@main ).n;) location (1,31) absdatapost postloc: (1,24) UL> Running post on command: UL> Block(p@main = * (p@main ).n;) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] In _H of abstract_data_post, bdd = flag@main!=1 tos=__BLAST_DUMMY_FUNCTION , tos2=__BLAST_DUMMY_FUNCTION , call=false In concrete_data_pre -- arguments are: ConcrDatRgn: Predicates: flag@main == 1 Block(p@main = * (p@main ).n;) implicit wp Alias candidates In concrete_data_pre -- arguments are: ConcrDatRgn: Predicates: flag@main != 1 Block(p@main = * (p@main ).n;) implicit wp Alias candidates In concrete_data_pre -- arguments are: ConcrDatRgn: Predicates: flag@main == 1 Block(p@main = * (p@main ).n;) implicit wp Alias candidates In concrete_data_pre -- arguments are: ConcrDatRgn: Predicates: flag@main != 1 Block(p@main = * (p@main ).n;) implicit wp Alias candidates In postBdd.. post of assumeNO Bdd = flag@main!=1 List of predicates = flag@main==1 flag@main==1 flag@main!=1 true Will split on: flag@main==1 flag@main==1 flag@main!=1 true In _check_Cube simplify_assume sstk:0 convertToSimplifySyntax exp = flag@main != 1 Simplify Assuming: (NEQ v1 1) Done Assume flag@main==1 querying exp: flag@main == 1 convertToSimplifySyntax exp = flag@main == 1 Simplify: (EQ v1 1) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > > 57: Invalid. false flag@main!=1 querying exp: flag@main != 1 convertToSimplifySyntax exp = flag@main != 1 Simplify: (NEQ v1 1) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 58: Valid. true simplify_pop sstk:1 Simplify Popping Done pop Returning from Post-Bdd = flag@main!=1 Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#24 src="alternating_list.c"; line=44 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov In Region.leq -- arguments are: (suppressed-RJ) [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] SA> TVLA: Cover result: YES SA> Cover -> YES found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#31 src="alternating_list.c"; line=54---Block(p@main = * (p@main ).n;)---> Location: id=1#24 src="alternating_list.c"; line=44, data=Data(id=51; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#31 src="alternating_list.c"; line=54---Block(p@main = * (p@main ).n;)---> Location: id=1#24 src="alternating_list.c"; line=44, data=Data(id=51; kind=Node; mark=Processed_Uncovered(time_stamp=42; region=[AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:4 Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=52; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#29 src="alternating_list.c"; line=47---Pred( * (p@main ).h != 1)---> Location: id=1#30 src="alternating_list.c"; line=60, data=Data(id=49; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=39; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=36; kind=Node; mark=Unprocessed)) Adding the children to the set of pending unprocessed#nodes Remaining nodes:5 Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h == 3)---> Location: id=1#26 src="alternating_list.c"; line=57, data=Data(id=53; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=52; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#29 src="alternating_list.c"; line=47---Pred( * (p@main ).h != 1)---> Location: id=1#30 src="alternating_list.c"; line=60, data=Data(id=49; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=39; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=36; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 41 Now processing tree node: Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h == 3)---> Location: id=1#26 src="alternating_list.c"; line=57, data=Data(id=53; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#24 src="alternating_list.c"; line=44---Pred(* (p@main ).h == 3)--->Location: id=1#26 src="alternating_list.c"; line=57 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Pred(* (p@main ).h == 3) location (1,24) absdatapost postloc: (1,26) calling _H UL> Running post on command: UL> Pred(* (p@main ).h == 3) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] In _H of abstract_data_post, bdd = flag@main!=1 tos=__BLAST_DUMMY_FUNCTION , tos2=__BLAST_DUMMY_FUNCTION , call=false In postBdd.. post of assumeYES:(* (p@main)).h==3 Bdd = flag@main!=1 List of predicates = flag@main==1 flag@main==1 flag@main!=1 true Will split on: In _check_Cube Query : (And [flag@main != 1, * (p@main ).h == 3]=>false) querying exp: (And [flag@main != 1, * (p@main ).h == 3]=>false) convertToSimplifySyntax exp = (And [flag@main != 1, * (p@main ).h == 3]=>false) Simplify: (IMPLIES (AND (EQ (select (select v3 0) v2) 3) (AND (NEQ v1 1) TRUE)) FALSE) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > 59: Invalid. false simplify_assume sstk:0 convertToSimplifySyntax exp = And [flag@main != 1, * (p@main ).h == 3] Simplify Assuming: (AND (EQ (select (select v3 0) v2) 3) (AND (NEQ v1 1) TRUE)) Done Assume simplify_pop sstk:1 Simplify Popping Done pop Returning from Post-Bdd = flag@main!=1 Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#26 src="alternating_list.c"; line=57 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#26 src="alternating_list.c"; line=57 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov In Region.leq -- arguments are: (suppressed-RJ) [AtomicRegion: Location: id=1#26 src="alternating_list.c"; line=57 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#26 src="alternating_list.c"; line=57 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] SA> TVLA: Cover result: YES SA> Cover -> YES found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#26 src="alternating_list.c"; line=57 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h == 3)---> Location: id=1#26 src="alternating_list.c"; line=57, data=Data(id=53; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h == 3)---> Location: id=1#26 src="alternating_list.c"; line=57, data=Data(id=53; kind=Node; mark=Processed_Uncovered(time_stamp=43; region=[AtomicRegion: Location: id=1#26 src="alternating_list.c"; line=57 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:5 Node(edge=Location: id=1#26 src="alternating_list.c"; line=57---Block(__retres@main = 0;)---> Location: id=1#34 src="alternating_list.c"; line=17, data=Data(id=54; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=52; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#29 src="alternating_list.c"; line=47---Pred( * (p@main ).h != 1)---> Location: id=1#30 src="alternating_list.c"; line=60, data=Data(id=49; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=39; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=36; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 42 Now processing tree node: Node(edge=Location: id=1#26 src="alternating_list.c"; line=57---Block(__retres@main = 0;)---> Location: id=1#34 src="alternating_list.c"; line=17, data=Data(id=54; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#26 src="alternating_list.c"; line=57 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#26 src="alternating_list.c"; line=57---Block(__retres@main = 0;)--->Location: id=1#34 src="alternating_list.c"; line=17 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Block(__retres@main = 0;) location (1,26) absdatapost postloc: (1,34) UL> Running post on command: UL> Block(__retres@main = 0;) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] In _H of abstract_data_post, bdd = flag@main!=1 tos=__BLAST_DUMMY_FUNCTION , tos2=__BLAST_DUMMY_FUNCTION , call=false In concrete_data_pre -- arguments are: ConcrDatRgn: Predicates: flag@main == 1 Block(__retres@main = 0;) implicit wp Alias candidates In concrete_data_pre -- arguments are: ConcrDatRgn: Predicates: flag@main != 1 Block(__retres@main = 0;) implicit wp Alias candidates In postBdd.. post of assumeNO Bdd = flag@main!=1 List of predicates = flag@main==1 flag@main==1 flag@main!=1 true Will split on: In _check_Cube simplify_assume sstk:0 convertToSimplifySyntax exp = flag@main != 1 Simplify Assuming: (NEQ v1 1) Done Assume simplify_pop sstk:1 Simplify Popping Done pop Returning from Post-Bdd = flag@main!=1 Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#34 src="alternating_list.c"; line=17 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#34 src="alternating_list.c"; line=17 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov In Region.leq -- arguments are: (suppressed-RJ) [AtomicRegion: Location: id=1#34 src="alternating_list.c"; line=17 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#34 src="alternating_list.c"; line=17 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] SA> TVLA: Cover result: YES SA> Cover -> YES found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#34 src="alternating_list.c"; line=17 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#26 src="alternating_list.c"; line=57---Block(__retres@main = 0;)---> Location: id=1#34 src="alternating_list.c"; line=17, data=Data(id=54; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#26 src="alternating_list.c"; line=57---Block(__retres@main = 0;)---> Location: id=1#34 src="alternating_list.c"; line=17, data=Data(id=54; kind=Node; mark=Processed_Uncovered(time_stamp=44; region=[AtomicRegion: Location: id=1#34 src="alternating_list.c"; line=17 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) It's a new exit point for main ! |entries| = 1 New summary edges to exit node. New summary edge! Node(edge=NONE, data=Data(id=0; kind=Entry; mark=Processed_Uncovered(time_stamp=0; region=[AtomicRegion: Location: id=1#1 src="alternating_list.c"; line=0 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: []] ))) --> Node(edge=Location: id=1#34 src="alternating_list.c"; line=17---Block(Return(__retres@main);)---> Location: id=1#0 (Artificial), data=Data(id=55; kind=Exit; mark=Processed_Uncovered(time_stamp=45; region=[AtomicRegion: Location: id=1#34 src="alternating_list.c"; line=17 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) by way of Summary edge added Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 43 Now processing tree node: Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=52; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#24 src="alternating_list.c"; line=44 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#24 src="alternating_list.c"; line=44---Pred(* (p@main ).h != 3)--->Location: id=1#25 src="alternating_list.c"; line=45 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Pred(* (p@main ).h != 3) location (1,24) absdatapost postloc: (1,25) calling _H UL> Running post on command: UL> Pred(* (p@main ).h != 3) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] In _H of abstract_data_post, bdd = flag@main!=1 tos=__BLAST_DUMMY_FUNCTION , tos2=__BLAST_DUMMY_FUNCTION , call=false In postBdd.. post of assumeYES:(* (p@main)).h!=3 Bdd = flag@main!=1 List of predicates = flag@main==1 flag@main==1 flag@main!=1 true Will split on: flag@main==1 flag@main==1 flag@main!=1 true In _check_Cube Query : (And [flag@main != 1, * (p@main ).h != 3]=>false) querying exp: (And [flag@main != 1, * (p@main ).h != 3]=>false) convertToSimplifySyntax exp = (And [flag@main != 1, * (p@main ).h != 3]=>false) Simplify: (IMPLIES (AND (NEQ (select (select v3 0) v2) 3) (AND (NEQ v1 1) TRUE)) FALSE) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > > > > 60: Invalid. false simplify_assume sstk:0 convertToSimplifySyntax exp = And [flag@main != 1, * (p@main ).h != 3] Simplify Assuming: (AND (NEQ (select (select v3 0) v2) 3) (AND (NEQ v1 1) TRUE)) Done Assume flag@main==1 querying exp: flag@main == 1 convertToSimplifySyntax exp = flag@main == 1 Simplify: (EQ v1 1) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > > 61: Invalid. false flag@main!=1 querying exp: flag@main != 1 convertToSimplifySyntax exp = flag@main != 1 Simplify: (NEQ v1 1) Simplify : in isValid Simplify says: Simplify : in isValid Simplify says: > 62: Valid. true simplify_pop sstk:1 Simplify Popping Done pop Returning from Post-Bdd = flag@main!=1 Writing back post region RGN> Processed node's region: RGN> [AtomicRegion: RGN> Location: id=1#25 src="alternating_list.c"; line=45 RGN> AbstrDatRgn: RGN> Predicates: [...] RGN> Lattice: RGN> Lattice = RGN> shape class of function (default) RGN> %n = {} RGN> %p = { RGN> } RGN> Stack = RGN> RGN> Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] RGN> ] RGN> RGN> Stack: RGN> []] RGN> In Region.cap -- arguments are: [AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#30 src="alternating_list.c"; line=60 AbstrDatRgn: Predicates: [...] Lattice: Top Stack: Everystack ] Error region at this node: Bottom In Region.is_empty -- argument is: Bottom No error found at this node Let's test whether this node is covered findExactCov In Region.leq -- arguments are: (suppressed-RJ) [AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] [AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] SA> TVLA: Cover result: YES SA> Cover -> YES found no exact coverer In Region.is_empty -- argument is: [AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] This node is not covered Constructing its successor children... This node looks like: (before updating) Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=52; kind=Node; mark=Unprocessed)) Updating the node's marking This node now looks like: Node(edge=Location: id=1#24 src="alternating_list.c"; line=44---Pred( * (p@main ).h != 3)---> Location: id=1#25 src="alternating_list.c"; line=45, data=Data(id=52; kind=Node; mark=Processed_Uncovered(time_stamp=46; region=[AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] ))) Adding the children to the set of pending unprocessed#nodes Remaining nodes:4 Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main != 0)---> Location: id=1#27 src="alternating_list.c"; line=46, data=Data(id=56; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#29 src="alternating_list.c"; line=47---Pred( * (p@main ).h != 1)---> Location: id=1#30 src="alternating_list.c"; line=60, data=Data(id=49; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=39; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=36; kind=Node; mark=Unprocessed)) Adding the children to the set of pending unprocessed#nodes Remaining nodes:5 Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main == 0)---> Location: id=1#28 src="alternating_list.c"; line=50, data=Data(id=57; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main != 0)---> Location: id=1#27 src="alternating_list.c"; line=46, data=Data(id=56; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#29 src="alternating_list.c"; line=47---Pred( * (p@main ).h != 1)---> Location: id=1#30 src="alternating_list.c"; line=60, data=Data(id=49; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#11 src="alternating_list.c"; line=26---Pred(true)---> Location: id=1#12 src="alternating_list.c"; line=27, data=Data(id=39; kind=Node; mark=Unprocessed)) Node(edge=Location: id=1#6 src="alternating_list.c"; line=23---Pred(a@main == 0)---> Location: id=1#7 src="alternating_list.c"; line=23, data=Data(id=36; kind=Node; mark=Unprocessed)) Updating the currently reached region Here: addCov **************************************************************************** Next iteration of model-check's big while-loop 44 Now processing tree node: Node(edge=Location: id=1#25 src="alternating_list.c"; line=45---Pred( flag@main == 0)---> Location: id=1#28 src="alternating_list.c"; line=50, data=Data(id=57; kind=Node; mark=Unprocessed)) In post -- arguments are: [AtomicRegion: Location: id=1#25 src="alternating_list.c"; line=45 AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Stack: []] Location: id=1#25 src="alternating_list.c"; line=45---Pred(flag@main == 0)---> Location: id=1#28 src="alternating_list.c"; line=50 tos_fname: __BLAST_DUMMY_FUNCTION, tos_2_fname: __BLAST_DUMMY_FUNCTION In abstract_data_post GRAF_SAIDI_POST -- arguments are: AbstrDatRgn: Predicates: [...] Lattice: Lattice = shape class of function (default) %n = {} %p = { } Stack = Callstack: [* (sizeof(<0>)) <(default)> = __BLAST_initialize_alternating_list.c()] ] Pred(flag@main == 0) location (1,25) absdatapost postloc: (1,28) calling _H UL> Running post on command: UL> Pred(flag@main == 0) SA> Post of SA is called! SA> No action has been scheduled for this post! UL> Post returning predicates: UL> And [] In _H of abstract_data_post, bdd = flag@main!=1 tos=__BLAST_DUMMY_FUNCTION , tos2=__BLAST_DUMMY_FUNCTION , call=false In postBdd.. post of assumeYES:flag@main==0 Bdd = flag@main!=1 List of predicates = flag@main==1 flag@main==1 flag@main!=1 true