\documentclass[a4paper,twoside]{article}
\usepackage[procnames,noindent]{lgrind}
\usepackage{fancyhdr,a4wide}
\usepackage{german}
\usepackage{makeidx}
\pagestyle{fancy}

\makeindex

\begin{document}
\renewcommand{\footrulewidth}{0.4pt}
\fancyhead[C]{\lgrindhead}
\fancyhead[LO,RE]{\lgrindfilesize~Bytes\\\lgrindmodtime}
\fancyhead[RO,LE]{\bfseries \lgrindfilename\\\lgrindmodday.\lgrindmodmonth.\lgrindmodyear}
\fancyfoot[C]{\bfseries\thepage}
\setlength{\headheight}{24pt}
\begin{lgrind}
\BGfont
\File{preparedoit.cpp}{2005}{11}{30}{11:19}{3411}
\index{preparet::doit}\Proc{preparet::doit}\L{\LB{\K{bool}_\V{preparet::doit}()}}
\L{\LB{\{}}
\L{\LB{}\Tab{2}{\V{options}.\V{set\_option}(\S{}\3bounds\-check\3\SE{},_!\V{cmdline}.\V{isset}(\S{}\3no\-bounds\-check\3\SE{}));}}
\L{\LB{}\Tab{2}{\V{options}.\V{set\_option}(\S{}\3div\-by\-zero\-check\3\SE{},_!\V{cmdline}.\V{isset}(\S{}\3no\-div\-by\-zero\-check\3\SE{}));}}
\L{\LB{}\Tab{2}{\V{options}.\V{set\_option}(\S{}\3pointer\-check\3\SE{},_!\V{cmdline}.\V{isset}(\S{}\3no\-pointer\-check\3\SE{}));}}
\L{\LB{}\Tab{2}{\V{options}.\V{set\_option}(\S{}\3assertions\3\SE{},_!\V{cmdline}.\V{isset}(\S{}\3no\-assertions\3\SE{}));}}
\L{\LB{}\Tab{2}{\V{options}.\V{set\_option}(\S{}\3simplify\3\SE{},_!\V{cmdline}.\V{isset}(\S{}\3no\-simplify\3\SE{}));}}
\L{\LB{}\Tab{2}{\V{options}.\V{set\_option}(\S{}\3overflow\-check\3\SE{},_\V{cmdline}.\V{isset}(\S{}\3overflow\-check\3\SE{}));}}
\L{\LB{}}
\L{\LB{}\Tab{2}{\C{}//\CE{}}}
\L{\LB{}\Tab{2}{\C{}//_parsing\CE{}}}
\L{\LB{}\Tab{2}{\C{}//\CE{}}}
\L{\LB{}}
\L{\LB{}\Tab{2}{\K{if}(\V{parse}())_\K{return}_\K{true};}}
\L{\LB{}}
\L{\LB{}\Tab{2}{\C{}//\CE{}}}
\L{\LB{}\Tab{2}{\C{}//_type_checking\CE{}}}
\L{\LB{}\Tab{2}{\C{}//\CE{}}}
\L{\LB{}}
\L{\LB{}\Tab{2}{\K{if}(\V{typecheck}())_\K{return}_\K{true};}}
\L{\LB{}}
\L{\LB{}\Tab{2}{\C{}//\CE{}}}
\L{\LB{}\Tab{2}{\C{}//_final_adjustments\CE{}}}
\L{\LB{}\Tab{2}{\C{}//\CE{}}}
\L{\LB{}}
\L{\LB{}\Tab{2}{\K{if}(\V{final}())_\K{return}_\K{true};}}
\L{\LB{}}
\L{\LB{}\Tab{2}{\C{}//_get_\3main\3_function\CE{}}}
\L{\LB{}\Tab{2}{\K{if}(\V{make\_sequent}(\V{get\_main\_symbol}(),_\V{sequent}))_\K{return}_\K{true};}}
\L{\LB{}}
\L{\LB{}\Tab{2}{\C{}//_we_no_longer_need_any_parse_trees_or_language_files\CE{}}}
\L{\LB{}\Tab{2}{\V{clear\_parse}();}}
\L{\LB{}}
\L{\LB{}\Tab{2}{\K{try}}}
\L{\LB{}\Tab{2}{\{}}
\L{\LB{}\Tab{8}{\C{}//_get_extra_transition_systems\CE{}}}
\L{\LB{}\Tab{8}{\V{get\_modules}();}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\V{status}(\S{}\3Generating_GOTO_Program\3\SE{});}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\V{goto\_functionst}_\V{goto\_functions};}}
\L{\LB{}\Tab{8}{\V{goto\_convert}(\V{sequent},_\V{context},_\V{goto\_functions},_\V{std::cerr});}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\K{if}(\V{cmdline}.\V{isset}(\S{}\3show\-goto\-functions\3\SE{}))}}
\L{\LB{}\Tab{8}{\{}}
\L{\LB{}\Tab{10}{\V{goto\_functions}.\V{output}(\V{ns},_\V{std::cout});}}
\L{\LB{}\Tab{10}{\K{return}_\K{true};}}
\L{\LB{}\Tab{8}{\}}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\C{}//_inline_functions\CE{}}}
\L{\LB{}\Tab{8}{\V{goto\_inline}(\V{goto\_functions},_\V{ns},_\V{concrete\_model}.\V{goto\_program},_\V{std::cerr});}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\C{}//_apply_replace\_map_to_goto_program\CE{}}}
\L{\LB{}\Tab{8}{\V{replace}(\V{concrete\_model}.\V{replace\_map},_\V{concrete\_model}.\V{goto\_program});}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\C{}//_show_it?\CE{}}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\K{if}(\V{cmdline}.\V{isset}(\S{}\3show\-pointer\-goto\-program\3\SE{}))}}
\L{\LB{}\Tab{8}{\{}}
\L{\LB{}\Tab{10}{\V{concrete\_model}.\V{goto\_program}.\V{output}(\V{ns},_\V{std::cout});}}
\L{\LB{}\Tab{10}{\K{return}_\K{true};}}
\L{\LB{}\Tab{8}{\}}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\K{\#if}_\N{0}}}
\L{\LB{}\Tab{8}{\C{}//_Seperate_into_basic_blocks\CE{}}}
\L{\LB{}\Tab{8}{\V{basic\_blocks}(\V{concrete\_model}.\V{goto\_program},_\V{MAX\_BLOCK\_SIZE});}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\C{}//_show_it?\CE{}}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\K{if}(\V{cmdline}.\V{isset}(\S{}\3show\-basic\-blocks\3\SE{}))}}
\L{\LB{}\Tab{8}{\{}}
\L{\LB{}\Tab{10}{\V{concrete\_model}.\V{goto\_program}.\V{output}(\V{ns},_\V{std::cout});}}
\L{\LB{}\Tab{10}{\K{return}_\K{true};}}
\L{\LB{}\Tab{8}{\}}}
\L{\LB{}\Tab{8}{\K{\#endif}}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\C{}//_do_value_propagation\CE{}}}
\L{\LB{}\Tab{8}{\K{if}(!\V{cmdline}.\V{isset}(\S{}\3no\-value\-sets\3\SE{}))}}
\L{\LB{}\Tab{8}{\{}}
\L{\LB{}\Tab{10}{\V{status}(\S{}\3Pointer_Analysis\3\SE{});}}
\L{\LB{}\Tab{10}{\V{concrete\_model}.\V{value\_propagation}.}}
\L{\LB{}\Tab{16}{\V{compute}(\V{concrete\_model}.\V{goto\_program},_\V{ns});}}
\L{\LB{}\Tab{8}{\}}}
\L{\LB{}\Tab{8}{\K{else}}}
\L{\LB{}\Tab{8}{\{}}
\L{\LB{}\Tab{10}{\V{concrete\_model}.\V{value\_propagation}.\V{make\_all\_any}(}}
\L{\LB{}\Tab{16}{\V{concrete\_model}.\V{goto\_program});}}
\L{\LB{}\Tab{8}{\}}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\K{if}(\V{cmdline}.\V{isset}(\S{}\3show\-value\-sets\3\SE{}))}}
\L{\LB{}\Tab{8}{\{}}
\L{\LB{}\Tab{10}{\V{concrete\_model}.\V{value\_propagation}.\V{output}(}}
\L{\LB{}\Tab{16}{\V{ns},_\V{concrete\_model}.\V{goto\_program},_\V{std::cout});}}
\L{\LB{}\Tab{10}{\K{return}_\K{true};}}
\L{\LB{}\Tab{8}{\}}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\C{}//_add_pointer_checks\CE{}}}
\L{\LB{}\Tab{8}{\V{pointer\_checks}(}}
\L{\LB{}\Tab{10}{\V{concrete\_model}.\V{goto\_program},_\V{ns},}}
\L{\LB{}\Tab{10}{\V{options},_\V{concrete\_model}.\V{value\_propagation});}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\C{}//_add_checks\CE{}}}
\L{\LB{}\Tab{8}{\V{goto\_check}(\V{ns},_\V{options},_\V{concrete\_model}.\V{goto\_program});}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\V{concrete\_model}.\V{value\_propagation}.\V{update}(\V{concrete\_model}.\V{goto\_program},_\V{ns});}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\C{}//_show_it?\CE{}}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\K{if}(\V{cmdline}.\V{isset}(\S{}\3show\-goto\-program\3\SE{}))}}
\L{\LB{}\Tab{8}{\{}}
\L{\LB{}\Tab{10}{\V{concrete\_model}.\V{goto\_program}.\V{output}(\V{ns},_\V{std::cout});}}
\L{\LB{}\Tab{10}{\K{return}_\K{true};}}
\L{\LB{}\Tab{8}{\}}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\C{}//_do_invariant_propagation\CE{}}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\V{invariant\_propagationt}_\V{invariant\_propagation};}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\K{if}(!\V{cmdline}.\V{isset}(\S{}\3no\-invariant\-sets\3\SE{}))}}
\L{\LB{}\Tab{8}{\{}}
\L{\LB{}\Tab{10}{\V{invariant\_propagation}.\V{compute}(\V{concrete\_model}.\V{goto\_program},}}
\L{\LB{}\Tab{72}{\V{concrete\_model}.\V{value\_propagation});}}
\L{\LB{}\Tab{8}{\}}}
\L{\LB{}\Tab{8}{\K{else}}}
\L{\LB{}\Tab{8}{\{}}
\L{\LB{}\Tab{10}{\V{invariant\_propagation}.\V{make\_all\_true}(\V{concrete\_model}.\V{goto\_program});}}
\L{\LB{}\Tab{8}{\}}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\K{if}(\V{cmdline}.\V{isset}(\S{}\3show\-invariant\-sets\3\SE{}))}}
\L{\LB{}\Tab{8}{\{}}
\L{\LB{}\Tab{10}{\V{show\_invariant\_sets}(\V{invariant\_propagation});}}
\L{\LB{}\Tab{10}{\K{return}_\K{true};}}
\L{\LB{}\Tab{8}{\}}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\K{if}(\V{cmdline}.\V{isset}(\S{}\3show\-claims\3\SE{}))}}
\L{\LB{}\Tab{8}{\{}}
\L{\LB{}\Tab{10}{\V{show\_claims}();}}
\L{\LB{}\Tab{10}{\K{return}_\K{true};}}
\L{\LB{}\Tab{8}{\}}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\K{if}(\V{cmdline}.\V{isset}(\S{}\3claim\3\SE{}))}}
\L{\LB{}\Tab{10}{\V{set\_claim}(\V{atoi}(\V{cmdline}.\V{getval}(\S{}\3claim\3\SE{})));}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\C{}//_get_the_user_provided_predicates\CE{}}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\K{if}(\V{cmdline}.\V{isset}(\S{}\3predicates\3\SE{}))}}
\L{\LB{}\Tab{10}{\V{get\_predicates}();}}
\L{\LB{}}
\L{\LB{}\Tab{8}{\K{if}(\V{cmdline}.\V{isset}(\S{}\3initial\-state\3\SE{}))}}
\L{\LB{}\Tab{10}{\V{get\_initial\_state}();}}
\L{\LB{}\Tab{2}{\}}}
\L{\LB{}}
\L{\LB{}\Tab{2}{\K{catch}(\K{const}_\K{char}_*\V{e})}}
\L{\LB{}\Tab{2}{\{}}
\L{\LB{}\Tab{8}{\V{error}(\V{e});}}
\L{\LB{}\Tab{8}{\K{return}_\K{true};}}
\L{\LB{}\Tab{2}{\}}}
\L{\LB{}}
\L{\LB{}\Tab{2}{\K{catch}(\K{const}_\V{std::string}_\V{e})}}
\L{\LB{}\Tab{2}{\{}}
\L{\LB{}\Tab{8}{\V{error}(\V{e});}}
\L{\LB{}\Tab{8}{\K{return}_\K{true};}}
\L{\LB{}\Tab{2}{\}}}
\L{\LB{}}
\L{\LB{}\Tab{2}{\K{catch}(\K{int})}}
\L{\LB{}\Tab{2}{\{}}
\L{\LB{}\Tab{8}{\K{return}_\K{true};}}
\L{\LB{}\Tab{2}{\}}}
\L{\LB{}}
\L{\LB{}\Tab{2}{\K{return}_\K{false};}}
\L{\LB{\}}}
\end{lgrind}
\printindex
\end{document}