begin model shadow
| begin input variables
| end input variables;
| begin output variables
| end output variables;
| begin process 0
| | main function : main;
| | begin process variables
| | | x : int;
| | | | shadow.c 2.0--2.10: "int x = 7;"
| | end process variables;
| | begin function f
| | | | shadow.c 4.0--4.12: "int f(int x)"
| | | begin formal parameters
| | | | x : int;
| | | | | shadow.c 4.6--4.11: "int x"
| | | end formal parameters;
| | | start location : 0;
| | | begin location 0
| | | | kind : RETURN;
| | | | return x; goto location 1;
| | | | | shadow.c 5.2--5.11: "return x;"
| | | end location 0;
| | | begin location 1
| | | | kind : TERMINAL;
| | | end location 1;
| | end function f;
| | begin function main
| | | | shadow.c 8.0--8.11: "void main()"
| | | begin proper local variables
| | | | y : int;
| | | | | shadow.c 9.2--9.8: "int y;"
| | | end proper local variables;
| | | start location : 0;
| | | begin location 0
| | | | kind : INVOCATION;
| | | | y = f(1); goto location 1;
| | | | | shadow.c 11.2--11.11: "y = f(1);"
| | | end location 0;
| | | begin location 1
| | | | kind : ASSERTION;
| | | | assert y==1; goto location 2;
| | | | | shadow.c 12.15--12.29: "assert y == 1;"
| | | end location 1;
| | | begin location 2
| | | | kind : ASSERTION;
| | | | assert x==7; goto location 3;
| | | | | shadow.c 13.15--13.29: "assert x == 7;"
| | | end location 2;
| | | begin location 3
| | | | kind : RETURN;
| | | | return null; goto location 4;
| | | | | shadow.c 14.0--14.0: "}"
| | | end location 3;
| | | begin location 4
| | | | kind : TERMINAL;
| | | end location 4;
| | end function main;
| end process 0;
end model shadow.
