<html><head> <link rel="stylesheet" href="style.css" type="text/css"> <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"> <link rel="Start" href="index.html"> <link title="Index of types" rel=Appendix href="index_types.html"> <link title="Index of exceptions" rel=Appendix href="index_exceptions.html"> <link title="Index of values" rel=Appendix href="index_values.html"> <link title="Index of class methods" rel=Appendix href="index_methods.html"> <link title="Index of classes" rel=Appendix href="index_classes.html"> <link title="Index of class types" rel=Appendix href="index_class_types.html"> <link title="Index of modules" rel=Appendix href="index_modules.html"> <link title="Index of module types" rel=Appendix href="index_module_types.html"> <link title="Pretty" rel="Chapter" href="Pretty.html"> <link title="Errormsg" rel="Chapter" href="Errormsg.html"> <link title="Clist" rel="Chapter" href="Clist.html"> <link title="Stats" rel="Chapter" href="Stats.html"> <link title="Cil" rel="Chapter" href="Cil.html"> <link title="Formatcil" rel="Chapter" href="Formatcil.html"> <link title="Alpha" rel="Chapter" href="Alpha.html"> <link title="Cillower" rel="Chapter" href="Cillower.html"> <link title="Cfg" rel="Chapter" href="Cfg.html"> <link title="Dataflow" rel="Chapter" href="Dataflow.html"> <link title="Dominators" rel="Chapter" href="Dominators.html"><title>CIL API Documentation (version 1.3.7) : Cil</title> </head> <body> <code class="code"><span class="keyword">sig</span><br> <span class="keyword">val</span> initCIL : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> cilVersion : string<br> <span class="keyword">val</span> cilVersionMajor : int<br> <span class="keyword">val</span> cilVersionMinor : int<br> <span class="keyword">val</span> cilVersionRevision : int<br> <span class="keyword">type</span> file = {<br> <span class="keyword">mutable</span> fileName : string;<br> <span class="keyword">mutable</span> globals : <span class="constructor">Cil</span>.global list;<br> <span class="keyword">mutable</span> globinit : <span class="constructor">Cil</span>.fundec option;<br> <span class="keyword">mutable</span> globinitcalled : bool;<br> }<br> <span class="keyword">and</span> comment = <span class="constructor">Cil</span>.location * string<br> <span class="keyword">and</span> global =<br> <span class="constructor">GType</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.typeinfo * <span class="constructor">Cil</span>.location<br> <span class="keywordsign">|</span> <span class="constructor">GCompTag</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.compinfo * <span class="constructor">Cil</span>.location<br> <span class="keywordsign">|</span> <span class="constructor">GCompTagDecl</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.compinfo * <span class="constructor">Cil</span>.location<br> <span class="keywordsign">|</span> <span class="constructor">GEnumTag</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.enuminfo * <span class="constructor">Cil</span>.location<br> <span class="keywordsign">|</span> <span class="constructor">GEnumTagDecl</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.enuminfo * <span class="constructor">Cil</span>.location<br> <span class="keywordsign">|</span> <span class="constructor">GVarDecl</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.varinfo * <span class="constructor">Cil</span>.location<br> <span class="keywordsign">|</span> <span class="constructor">GVar</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.varinfo * <span class="constructor">Cil</span>.initinfo * <span class="constructor">Cil</span>.location<br> <span class="keywordsign">|</span> <span class="constructor">GFun</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.fundec * <span class="constructor">Cil</span>.location<br> <span class="keywordsign">|</span> <span class="constructor">GAsm</span> <span class="keyword">of</span> string * <span class="constructor">Cil</span>.location<br> <span class="keywordsign">|</span> <span class="constructor">GPragma</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.attribute * <span class="constructor">Cil</span>.location<br> <span class="keywordsign">|</span> <span class="constructor">GText</span> <span class="keyword">of</span> string<br> <span class="keyword">and</span> typ =<br> <span class="constructor">TVoid</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.attributes<br> <span class="keywordsign">|</span> <span class="constructor">TInt</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.ikind * <span class="constructor">Cil</span>.attributes<br> <span class="keywordsign">|</span> <span class="constructor">TFloat</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.fkind * <span class="constructor">Cil</span>.attributes<br> <span class="keywordsign">|</span> <span class="constructor">TPtr</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.typ * <span class="constructor">Cil</span>.attributes<br> <span class="keywordsign">|</span> <span class="constructor">TArray</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.typ * <span class="constructor">Cil</span>.exp option * <span class="constructor">Cil</span>.attributes<br> <span class="keywordsign">|</span> <span class="constructor">TFun</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.typ * (string * <span class="constructor">Cil</span>.typ * <span class="constructor">Cil</span>.attributes) list option *<br> bool * <span class="constructor">Cil</span>.attributes<br> <span class="keywordsign">|</span> <span class="constructor">TNamed</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.typeinfo * <span class="constructor">Cil</span>.attributes<br> <span class="keywordsign">|</span> <span class="constructor">TComp</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.compinfo * <span class="constructor">Cil</span>.attributes<br> <span class="keywordsign">|</span> <span class="constructor">TEnum</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.enuminfo * <span class="constructor">Cil</span>.attributes<br> <span class="keywordsign">|</span> <span class="constructor">TBuiltin_va_list</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.attributes<br> <span class="keyword">and</span> ikind =<br> <span class="constructor">IChar</span><br> <span class="keywordsign">|</span> <span class="constructor">ISChar</span><br> <span class="keywordsign">|</span> <span class="constructor">IUChar</span><br> <span class="keywordsign">|</span> <span class="constructor">IBool</span><br> <span class="keywordsign">|</span> <span class="constructor">IInt</span><br> <span class="keywordsign">|</span> <span class="constructor">IUInt</span><br> <span class="keywordsign">|</span> <span class="constructor">IShort</span><br> <span class="keywordsign">|</span> <span class="constructor">IUShort</span><br> <span class="keywordsign">|</span> <span class="constructor">ILong</span><br> <span class="keywordsign">|</span> <span class="constructor">IULong</span><br> <span class="keywordsign">|</span> <span class="constructor">ILongLong</span><br> <span class="keywordsign">|</span> <span class="constructor">IULongLong</span><br> <span class="keyword">and</span> fkind = <span class="constructor">FFloat</span> <span class="keywordsign">|</span> <span class="constructor">FDouble</span> <span class="keywordsign">|</span> <span class="constructor">FLongDouble</span><br> <span class="keyword">and</span> attribute = <span class="constructor">Attr</span> <span class="keyword">of</span> string * <span class="constructor">Cil</span>.attrparam list<br> <span class="keyword">and</span> attributes = <span class="constructor">Cil</span>.attribute list<br> <span class="keyword">and</span> attrparam =<br> <span class="constructor">AInt</span> <span class="keyword">of</span> int<br> <span class="keywordsign">|</span> <span class="constructor">AStr</span> <span class="keyword">of</span> string<br> <span class="keywordsign">|</span> <span class="constructor">ACons</span> <span class="keyword">of</span> string * <span class="constructor">Cil</span>.attrparam list<br> <span class="keywordsign">|</span> <span class="constructor">ASizeOf</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.typ<br> <span class="keywordsign">|</span> <span class="constructor">ASizeOfE</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.attrparam<br> <span class="keywordsign">|</span> <span class="constructor">ASizeOfS</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.typsig<br> <span class="keywordsign">|</span> <span class="constructor">AAlignOf</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.typ<br> <span class="keywordsign">|</span> <span class="constructor">AAlignOfE</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.attrparam<br> <span class="keywordsign">|</span> <span class="constructor">AAlignOfS</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.typsig<br> <span class="keywordsign">|</span> <span class="constructor">AUnOp</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.unop * <span class="constructor">Cil</span>.attrparam<br> <span class="keywordsign">|</span> <span class="constructor">ABinOp</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.binop * <span class="constructor">Cil</span>.attrparam * <span class="constructor">Cil</span>.attrparam<br> <span class="keywordsign">|</span> <span class="constructor">ADot</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.attrparam * string<br> <span class="keywordsign">|</span> <span class="constructor">AStar</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.attrparam<br> <span class="keywordsign">|</span> <span class="constructor">AAddrOf</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.attrparam<br> <span class="keywordsign">|</span> <span class="constructor">AIndex</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.attrparam * <span class="constructor">Cil</span>.attrparam<br> <span class="keywordsign">|</span> <span class="constructor">AQuestion</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.attrparam * <span class="constructor">Cil</span>.attrparam * <span class="constructor">Cil</span>.attrparam<br> <span class="keyword">and</span> compinfo = {<br> <span class="keyword">mutable</span> cstruct : bool;<br> <span class="keyword">mutable</span> cname : string;<br> <span class="keyword">mutable</span> ckey : int;<br> <span class="keyword">mutable</span> cfields : <span class="constructor">Cil</span>.fieldinfo list;<br> <span class="keyword">mutable</span> cattr : <span class="constructor">Cil</span>.attributes;<br> <span class="keyword">mutable</span> cdefined : bool;<br> <span class="keyword">mutable</span> creferenced : bool;<br> }<br> <span class="keyword">and</span> fieldinfo = {<br> <span class="keyword">mutable</span> fcomp : <span class="constructor">Cil</span>.compinfo;<br> <span class="keyword">mutable</span> fname : string;<br> <span class="keyword">mutable</span> ftype : <span class="constructor">Cil</span>.typ;<br> <span class="keyword">mutable</span> fbitfield : int option;<br> <span class="keyword">mutable</span> fattr : <span class="constructor">Cil</span>.attributes;<br> <span class="keyword">mutable</span> floc : <span class="constructor">Cil</span>.location;<br> }<br> <span class="keyword">and</span> enuminfo = {<br> <span class="keyword">mutable</span> ename : string;<br> <span class="keyword">mutable</span> eitems : (string * <span class="constructor">Cil</span>.exp * <span class="constructor">Cil</span>.location) list;<br> <span class="keyword">mutable</span> eattr : <span class="constructor">Cil</span>.attributes;<br> <span class="keyword">mutable</span> ereferenced : bool;<br> <span class="keyword">mutable</span> ekind : <span class="constructor">Cil</span>.ikind;<br> }<br> <span class="keyword">and</span> typeinfo = {<br> <span class="keyword">mutable</span> tname : string;<br> <span class="keyword">mutable</span> ttype : <span class="constructor">Cil</span>.typ;<br> <span class="keyword">mutable</span> treferenced : bool;<br> }<br> <span class="keyword">and</span> varinfo = {<br> <span class="keyword">mutable</span> vname : string;<br> <span class="keyword">mutable</span> vtype : <span class="constructor">Cil</span>.typ;<br> <span class="keyword">mutable</span> vattr : <span class="constructor">Cil</span>.attributes;<br> <span class="keyword">mutable</span> vstorage : <span class="constructor">Cil</span>.storage;<br> <span class="keyword">mutable</span> vglob : bool;<br> <span class="keyword">mutable</span> vinline : bool;<br> <span class="keyword">mutable</span> vdecl : <span class="constructor">Cil</span>.location;<br> <span class="keyword">mutable</span> vid : int;<br> <span class="keyword">mutable</span> vaddrof : bool;<br> <span class="keyword">mutable</span> vreferenced : bool;<br> <span class="keyword">mutable</span> vdescr : <span class="constructor">Pretty</span>.doc;<br> <span class="keyword">mutable</span> vdescrpure : bool;<br> }<br> <span class="keyword">and</span> storage = <span class="constructor">NoStorage</span> <span class="keywordsign">|</span> <span class="constructor">Static</span> <span class="keywordsign">|</span> <span class="constructor">Register</span> <span class="keywordsign">|</span> <span class="constructor">Extern</span><br> <span class="keyword">and</span> exp =<br> <span class="constructor">Const</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.constant<br> <span class="keywordsign">|</span> <span class="constructor">Lval</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.lval<br> <span class="keywordsign">|</span> <span class="constructor">SizeOf</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.typ<br> <span class="keywordsign">|</span> <span class="constructor">SizeOfE</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.exp<br> <span class="keywordsign">|</span> <span class="constructor">SizeOfStr</span> <span class="keyword">of</span> string<br> <span class="keywordsign">|</span> <span class="constructor">AlignOf</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.typ<br> <span class="keywordsign">|</span> <span class="constructor">AlignOfE</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.exp<br> <span class="keywordsign">|</span> <span class="constructor">UnOp</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.unop * <span class="constructor">Cil</span>.exp * <span class="constructor">Cil</span>.typ<br> <span class="keywordsign">|</span> <span class="constructor">BinOp</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.binop * <span class="constructor">Cil</span>.exp * <span class="constructor">Cil</span>.exp * <span class="constructor">Cil</span>.typ<br> <span class="keywordsign">|</span> <span class="constructor">CastE</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.typ * <span class="constructor">Cil</span>.exp<br> <span class="keywordsign">|</span> <span class="constructor">AddrOf</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.lval<br> <span class="keywordsign">|</span> <span class="constructor">StartOf</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.lval<br> <span class="keyword">and</span> constant =<br> <span class="constructor">CInt64</span> <span class="keyword">of</span> int64 * <span class="constructor">Cil</span>.ikind * string option<br> <span class="keywordsign">|</span> <span class="constructor">CStr</span> <span class="keyword">of</span> string<br> <span class="keywordsign">|</span> <span class="constructor">CWStr</span> <span class="keyword">of</span> int64 list<br> <span class="keywordsign">|</span> <span class="constructor">CChr</span> <span class="keyword">of</span> char<br> <span class="keywordsign">|</span> <span class="constructor">CReal</span> <span class="keyword">of</span> float * <span class="constructor">Cil</span>.fkind * string option<br> <span class="keywordsign">|</span> <span class="constructor">CEnum</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.exp * string * <span class="constructor">Cil</span>.enuminfo<br> <span class="keyword">and</span> unop = <span class="constructor">Neg</span> <span class="keywordsign">|</span> <span class="constructor">BNot</span> <span class="keywordsign">|</span> <span class="constructor">LNot</span><br> <span class="keyword">and</span> binop =<br> <span class="constructor">PlusA</span><br> <span class="keywordsign">|</span> <span class="constructor">PlusPI</span><br> <span class="keywordsign">|</span> <span class="constructor">IndexPI</span><br> <span class="keywordsign">|</span> <span class="constructor">MinusA</span><br> <span class="keywordsign">|</span> <span class="constructor">MinusPI</span><br> <span class="keywordsign">|</span> <span class="constructor">MinusPP</span><br> <span class="keywordsign">|</span> <span class="constructor">Mult</span><br> <span class="keywordsign">|</span> <span class="constructor">Div</span><br> <span class="keywordsign">|</span> <span class="constructor">Mod</span><br> <span class="keywordsign">|</span> <span class="constructor">Shiftlt</span><br> <span class="keywordsign">|</span> <span class="constructor">Shiftrt</span><br> <span class="keywordsign">|</span> <span class="constructor">Lt</span><br> <span class="keywordsign">|</span> <span class="constructor">Gt</span><br> <span class="keywordsign">|</span> <span class="constructor">Le</span><br> <span class="keywordsign">|</span> <span class="constructor">Ge</span><br> <span class="keywordsign">|</span> <span class="constructor">Eq</span><br> <span class="keywordsign">|</span> <span class="constructor">Ne</span><br> <span class="keywordsign">|</span> <span class="constructor">BAnd</span><br> <span class="keywordsign">|</span> <span class="constructor">BXor</span><br> <span class="keywordsign">|</span> <span class="constructor">BOr</span><br> <span class="keywordsign">|</span> <span class="constructor">LAnd</span><br> <span class="keywordsign">|</span> <span class="constructor">LOr</span><br> <span class="keyword">and</span> lval = <span class="constructor">Cil</span>.lhost * <span class="constructor">Cil</span>.offset<br> <span class="keyword">and</span> lhost = <span class="constructor">Var</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.varinfo <span class="keywordsign">|</span> <span class="constructor">Mem</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.exp<br> <span class="keyword">and</span> offset =<br> <span class="constructor">NoOffset</span><br> <span class="keywordsign">|</span> <span class="constructor">Field</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.fieldinfo * <span class="constructor">Cil</span>.offset<br> <span class="keywordsign">|</span> <span class="constructor">Index</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.exp * <span class="constructor">Cil</span>.offset<br> <span class="keyword">and</span> init =<br> <span class="constructor">SingleInit</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.exp<br> <span class="keywordsign">|</span> <span class="constructor">CompoundInit</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.typ * (<span class="constructor">Cil</span>.offset * <span class="constructor">Cil</span>.init) list<br> <span class="keyword">and</span> initinfo = { <span class="keyword">mutable</span> init : <span class="constructor">Cil</span>.init option; }<br> <span class="keyword">and</span> fundec = {<br> <span class="keyword">mutable</span> svar : <span class="constructor">Cil</span>.varinfo;<br> <span class="keyword">mutable</span> sformals : <span class="constructor">Cil</span>.varinfo list;<br> <span class="keyword">mutable</span> slocals : <span class="constructor">Cil</span>.varinfo list;<br> <span class="keyword">mutable</span> smaxid : int;<br> <span class="keyword">mutable</span> sbody : <span class="constructor">Cil</span>.block;<br> <span class="keyword">mutable</span> smaxstmtid : int option;<br> <span class="keyword">mutable</span> sallstmts : <span class="constructor">Cil</span>.stmt list;<br> }<br> <span class="keyword">and</span> block = {<br> <span class="keyword">mutable</span> battrs : <span class="constructor">Cil</span>.attributes;<br> <span class="keyword">mutable</span> bstmts : <span class="constructor">Cil</span>.stmt list;<br> }<br> <span class="keyword">and</span> stmt = {<br> <span class="keyword">mutable</span> labels : <span class="constructor">Cil</span>.label list;<br> <span class="keyword">mutable</span> skind : <span class="constructor">Cil</span>.stmtkind;<br> <span class="keyword">mutable</span> sid : int;<br> <span class="keyword">mutable</span> succs : <span class="constructor">Cil</span>.stmt list;<br> <span class="keyword">mutable</span> preds : <span class="constructor">Cil</span>.stmt list;<br> }<br> <span class="keyword">and</span> label =<br> <span class="constructor">Label</span> <span class="keyword">of</span> string * <span class="constructor">Cil</span>.location * bool<br> <span class="keywordsign">|</span> <span class="constructor">Case</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.exp * <span class="constructor">Cil</span>.location<br> <span class="keywordsign">|</span> <span class="constructor">Default</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.location<br> <span class="keyword">and</span> stmtkind =<br> <span class="constructor">Instr</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.instr list<br> <span class="keywordsign">|</span> <span class="constructor">Return</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.exp option * <span class="constructor">Cil</span>.location<br> <span class="keywordsign">|</span> <span class="constructor">Goto</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.stmt <span class="constructor">Pervasives</span>.ref * <span class="constructor">Cil</span>.location<br> <span class="keywordsign">|</span> <span class="constructor">Break</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.location<br> <span class="keywordsign">|</span> <span class="constructor">Continue</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.location<br> <span class="keywordsign">|</span> <span class="constructor">If</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.exp * <span class="constructor">Cil</span>.block * <span class="constructor">Cil</span>.block * <span class="constructor">Cil</span>.location<br> <span class="keywordsign">|</span> <span class="constructor">Switch</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.exp * <span class="constructor">Cil</span>.block * <span class="constructor">Cil</span>.stmt list * <span class="constructor">Cil</span>.location<br> <span class="keywordsign">|</span> <span class="constructor">Loop</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.block * <span class="constructor">Cil</span>.location * <span class="constructor">Cil</span>.stmt option * <span class="constructor">Cil</span>.stmt option<br> <span class="keywordsign">|</span> <span class="constructor">Block</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.block<br> <span class="keywordsign">|</span> <span class="constructor">TryFinally</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.block * <span class="constructor">Cil</span>.block * <span class="constructor">Cil</span>.location<br> <span class="keywordsign">|</span> <span class="constructor">TryExcept</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.block * (<span class="constructor">Cil</span>.instr list * <span class="constructor">Cil</span>.exp) * <span class="constructor">Cil</span>.block *<br> <span class="constructor">Cil</span>.location<br> <span class="keyword">and</span> instr =<br> <span class="constructor">Set</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.lval * <span class="constructor">Cil</span>.exp * <span class="constructor">Cil</span>.location<br> <span class="keywordsign">|</span> <span class="constructor">Call</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.lval option * <span class="constructor">Cil</span>.exp * <span class="constructor">Cil</span>.exp list * <span class="constructor">Cil</span>.location<br> <span class="keywordsign">|</span> <span class="constructor">Asm</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.attributes * string list *<br> (string option * string * <span class="constructor">Cil</span>.lval) list *<br> (string option * string * <span class="constructor">Cil</span>.exp) list * string list * <span class="constructor">Cil</span>.location<br> <span class="keyword">and</span> location = { line : int; file : string; byte : int; }<br> <span class="keyword">and</span> typsig =<br> <span class="constructor">TSArray</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.typsig * int64 option * <span class="constructor">Cil</span>.attribute list<br> <span class="keywordsign">|</span> <span class="constructor">TSPtr</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.typsig * <span class="constructor">Cil</span>.attribute list<br> <span class="keywordsign">|</span> <span class="constructor">TSComp</span> <span class="keyword">of</span> bool * string * <span class="constructor">Cil</span>.attribute list<br> <span class="keywordsign">|</span> <span class="constructor">TSFun</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.typsig * <span class="constructor">Cil</span>.typsig list * bool * <span class="constructor">Cil</span>.attribute list<br> <span class="keywordsign">|</span> <span class="constructor">TSEnum</span> <span class="keyword">of</span> string * <span class="constructor">Cil</span>.attribute list<br> <span class="keywordsign">|</span> <span class="constructor">TSBase</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> lowerConstants : bool <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> insertImplicitCasts : bool <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">type</span> featureDescr = {<br> fd_enabled : bool <span class="constructor">Pervasives</span>.ref;<br> fd_name : string;<br> fd_description : string;<br> fd_extraopt : (string * <span class="constructor">Arg</span>.spec * string) list;<br> fd_doit : <span class="constructor">Cil</span>.file <span class="keywordsign">-></span> unit;<br> fd_post_check : bool;<br> }<br> <span class="keyword">val</span> compareLoc : <span class="constructor">Cil</span>.location <span class="keywordsign">-></span> <span class="constructor">Cil</span>.location <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> emptyFunction : string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.fundec<br> <span class="keyword">val</span> setFormals : <span class="constructor">Cil</span>.fundec <span class="keywordsign">-></span> <span class="constructor">Cil</span>.varinfo list <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> setFunctionType : <span class="constructor">Cil</span>.fundec <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> setFunctionTypeMakeFormals : <span class="constructor">Cil</span>.fundec <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> setMaxId : <span class="constructor">Cil</span>.fundec <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> dummyFunDec : <span class="constructor">Cil</span>.fundec<br> <span class="keyword">val</span> dummyFile : <span class="constructor">Cil</span>.file<br> <span class="keyword">val</span> saveBinaryFile : <span class="constructor">Cil</span>.file <span class="keywordsign">-></span> string <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> saveBinaryFileChannel : <span class="constructor">Cil</span>.file <span class="keywordsign">-></span> <span class="constructor">Pervasives</span>.out_channel <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> loadBinaryFile : string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.file<br> <span class="keyword">val</span> getGlobInit : ?main_name:string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.file <span class="keywordsign">-></span> <span class="constructor">Cil</span>.fundec<br> <span class="keyword">val</span> iterGlobals : <span class="constructor">Cil</span>.file <span class="keywordsign">-></span> (<span class="constructor">Cil</span>.global <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> foldGlobals : <span class="constructor">Cil</span>.file <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Cil</span>.global <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> mapGlobals : <span class="constructor">Cil</span>.file <span class="keywordsign">-></span> (<span class="constructor">Cil</span>.global <span class="keywordsign">-></span> <span class="constructor">Cil</span>.global) <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> findOrCreateFunc : <span class="constructor">Cil</span>.file <span class="keywordsign">-></span> string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.varinfo<br> <span class="keyword">val</span> new_sid : unit <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> prepareCFG : <span class="constructor">Cil</span>.fundec <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> computeCFGInfo : <span class="constructor">Cil</span>.fundec <span class="keywordsign">-></span> bool <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> copyFunction : <span class="constructor">Cil</span>.fundec <span class="keywordsign">-></span> string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.fundec<br> <span class="keyword">val</span> pushGlobal :<br> <span class="constructor">Cil</span>.global <span class="keywordsign">-></span><br> types:<span class="constructor">Cil</span>.global list <span class="constructor">Pervasives</span>.ref <span class="keywordsign">-></span><br> variables:<span class="constructor">Cil</span>.global list <span class="constructor">Pervasives</span>.ref <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> invalidStmt : <span class="constructor">Cil</span>.stmt<br> <span class="keyword">val</span> builtinFunctions : (string, <span class="constructor">Cil</span>.typ * <span class="constructor">Cil</span>.typ list * bool) <span class="constructor">Hashtbl</span>.t<br> <span class="keyword">val</span> gccBuiltins : (string, <span class="constructor">Cil</span>.typ * <span class="constructor">Cil</span>.typ list * bool) <span class="constructor">Hashtbl</span>.t<br> <span class="keyword">val</span> msvcBuiltins : (string, <span class="constructor">Cil</span>.typ * <span class="constructor">Cil</span>.typ list * bool) <span class="constructor">Hashtbl</span>.t<br> <span class="keyword">val</span> builtinLoc : <span class="constructor">Cil</span>.location<br> <span class="keyword">val</span> makeZeroInit : <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.init<br> <span class="keyword">val</span> foldLeftCompound :<br> implicit:bool <span class="keywordsign">-></span><br> doinit:(<span class="constructor">Cil</span>.offset <span class="keywordsign">-></span> <span class="constructor">Cil</span>.init <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span><br> ct:<span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> initl:(<span class="constructor">Cil</span>.offset * <span class="constructor">Cil</span>.init) list <span class="keywordsign">-></span> acc:<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> voidType : <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> isVoidType : <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> isVoidPtrType : <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> intType : <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> uintType : <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> longType : <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> ulongType : <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> charType : <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> charPtrType : <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> wcharKind : <span class="constructor">Cil</span>.ikind <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> wcharType : <span class="constructor">Cil</span>.typ <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> charConstPtrType : <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> voidPtrType : <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> intPtrType : <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> uintPtrType : <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> doubleType : <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> upointType : <span class="constructor">Cil</span>.typ <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> typeOfSizeOf : <span class="constructor">Cil</span>.typ <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> kindOfSizeOf : <span class="constructor">Cil</span>.ikind <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> isSigned : <span class="constructor">Cil</span>.ikind <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> mkCompInfo :<br> bool <span class="keywordsign">-></span><br> string <span class="keywordsign">-></span><br> (<span class="constructor">Cil</span>.compinfo <span class="keywordsign">-></span><br> (string * <span class="constructor">Cil</span>.typ * int option * <span class="constructor">Cil</span>.attributes * <span class="constructor">Cil</span>.location) list) <span class="keywordsign">-></span><br> <span class="constructor">Cil</span>.attributes <span class="keywordsign">-></span> <span class="constructor">Cil</span>.compinfo<br> <span class="keyword">val</span> copyCompInfo : <span class="constructor">Cil</span>.compinfo <span class="keywordsign">-></span> string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.compinfo<br> <span class="keyword">val</span> missingFieldName : string<br> <span class="keyword">val</span> compFullName : <span class="constructor">Cil</span>.compinfo <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> isCompleteType : <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> unrollType : <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> unrollTypeDeep : <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> separateStorageModifiers :<br> <span class="constructor">Cil</span>.attribute list <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attribute list * <span class="constructor">Cil</span>.attribute list<br> <span class="keyword">val</span> isIntegralType : <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> isArithmeticType : <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> isPointerType : <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> isFunctionType : <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> argsToList :<br> (string * <span class="constructor">Cil</span>.typ * <span class="constructor">Cil</span>.attributes) list option <span class="keywordsign">-></span><br> (string * <span class="constructor">Cil</span>.typ * <span class="constructor">Cil</span>.attributes) list<br> <span class="keyword">val</span> isArrayType : <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> bool<br> <span class="keyword">exception</span> <span class="constructor">LenOfArray</span><br> <span class="keyword">val</span> lenOfArray : <span class="constructor">Cil</span>.exp option <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> getCompField : <span class="constructor">Cil</span>.compinfo <span class="keywordsign">-></span> string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.fieldinfo<br> <span class="keyword">type</span> existsAction = <span class="constructor">ExistsTrue</span> <span class="keywordsign">|</span> <span class="constructor">ExistsFalse</span> <span class="keywordsign">|</span> <span class="constructor">ExistsMaybe</span><br> <span class="keyword">val</span> existsType : (<span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.existsAction) <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> splitFunctionType :<br> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span><br> <span class="constructor">Cil</span>.typ * (string * <span class="constructor">Cil</span>.typ * <span class="constructor">Cil</span>.attributes) list option * bool *<br> <span class="constructor">Cil</span>.attributes<br> <span class="keyword">val</span> splitFunctionTypeVI :<br> <span class="constructor">Cil</span>.varinfo <span class="keywordsign">-></span><br> <span class="constructor">Cil</span>.typ * (string * <span class="constructor">Cil</span>.typ * <span class="constructor">Cil</span>.attributes) list option * bool *<br> <span class="constructor">Cil</span>.attributes<br> <span class="keyword">val</span> d_typsig : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typsig <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> typeSig : <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typsig<br> <span class="keyword">val</span> typeSigWithAttrs :<br> ?ignoreSign:bool <span class="keywordsign">-></span><br> (<span class="constructor">Cil</span>.attributes <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attributes) <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typsig<br> <span class="keyword">val</span> setTypeSigAttrs : <span class="constructor">Cil</span>.attributes <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typsig <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typsig<br> <span class="keyword">val</span> typeSigAttrs : <span class="constructor">Cil</span>.typsig <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attributes<br> <span class="keyword">val</span> makeVarinfo : bool <span class="keywordsign">-></span> string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.varinfo<br> <span class="keyword">val</span> makeFormalVar :<br> <span class="constructor">Cil</span>.fundec <span class="keywordsign">-></span> ?where:string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.varinfo<br> <span class="keyword">val</span> makeLocalVar :<br> <span class="constructor">Cil</span>.fundec <span class="keywordsign">-></span> ?insert:bool <span class="keywordsign">-></span> string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.varinfo<br> <span class="keyword">val</span> makeTempVar :<br> <span class="constructor">Cil</span>.fundec <span class="keywordsign">-></span><br> ?insert:bool <span class="keywordsign">-></span><br> ?name:string <span class="keywordsign">-></span><br> ?descr:<span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> ?descrpure:bool <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.varinfo<br> <span class="keyword">val</span> makeGlobalVar : string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.varinfo<br> <span class="keyword">val</span> copyVarinfo : <span class="constructor">Cil</span>.varinfo <span class="keywordsign">-></span> string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.varinfo<br> <span class="keyword">val</span> newVID : unit <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> addOffsetLval : <span class="constructor">Cil</span>.offset <span class="keywordsign">-></span> <span class="constructor">Cil</span>.lval <span class="keywordsign">-></span> <span class="constructor">Cil</span>.lval<br> <span class="keyword">val</span> addOffset : <span class="constructor">Cil</span>.offset <span class="keywordsign">-></span> <span class="constructor">Cil</span>.offset <span class="keywordsign">-></span> <span class="constructor">Cil</span>.offset<br> <span class="keyword">val</span> removeOffsetLval : <span class="constructor">Cil</span>.lval <span class="keywordsign">-></span> <span class="constructor">Cil</span>.lval * <span class="constructor">Cil</span>.offset<br> <span class="keyword">val</span> removeOffset : <span class="constructor">Cil</span>.offset <span class="keywordsign">-></span> <span class="constructor">Cil</span>.offset * <span class="constructor">Cil</span>.offset<br> <span class="keyword">val</span> typeOfLval : <span class="constructor">Cil</span>.lval <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> typeOffset : <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.offset <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> zero : <span class="constructor">Cil</span>.exp<br> <span class="keyword">val</span> one : <span class="constructor">Cil</span>.exp<br> <span class="keyword">val</span> mone : <span class="constructor">Cil</span>.exp<br> <span class="keyword">val</span> kinteger64 : <span class="constructor">Cil</span>.ikind <span class="keywordsign">-></span> int64 <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp<br> <span class="keyword">val</span> kinteger : <span class="constructor">Cil</span>.ikind <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp<br> <span class="keyword">val</span> integer : int <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp<br> <span class="keyword">val</span> isInteger : <span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> int64 option<br> <span class="keyword">val</span> i64_to_int : int64 <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> isConstant : <span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> isConstantOffset : <span class="constructor">Cil</span>.offset <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> isZero : <span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> charConstToInt : char <span class="keywordsign">-></span> <span class="constructor">Cil</span>.constant<br> <span class="keyword">val</span> convertInts :<br> int64 <span class="keywordsign">-></span> <span class="constructor">Cil</span>.ikind <span class="keywordsign">-></span> int64 <span class="keywordsign">-></span> <span class="constructor">Cil</span>.ikind <span class="keywordsign">-></span> int64 * int64 * <span class="constructor">Cil</span>.ikind<br> <span class="keyword">val</span> constFold : bool <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp<br> <span class="keyword">val</span> constFoldBinOp :<br> bool <span class="keywordsign">-></span> <span class="constructor">Cil</span>.binop <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp<br> <span class="keyword">val</span> increm : <span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp<br> <span class="keyword">val</span> var : <span class="constructor">Cil</span>.varinfo <span class="keywordsign">-></span> <span class="constructor">Cil</span>.lval<br> <span class="keyword">val</span> mkAddrOf : <span class="constructor">Cil</span>.lval <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp<br> <span class="keyword">val</span> mkAddrOrStartOf : <span class="constructor">Cil</span>.lval <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp<br> <span class="keyword">val</span> mkMem : addr:<span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> off:<span class="constructor">Cil</span>.offset <span class="keywordsign">-></span> <span class="constructor">Cil</span>.lval<br> <span class="keyword">val</span> mkString : string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp<br> <span class="keyword">val</span> mkCastT : e:<span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> oldt:<span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> newt:<span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp<br> <span class="keyword">val</span> mkCast : e:<span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> newt:<span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp<br> <span class="keyword">val</span> stripCasts : <span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp<br> <span class="keyword">val</span> typeOf : <span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> parseInt : string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp<br> <span class="keyword">val</span> mkStmt : <span class="constructor">Cil</span>.stmtkind <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt<br> <span class="keyword">val</span> mkBlock : <span class="constructor">Cil</span>.stmt list <span class="keywordsign">-></span> <span class="constructor">Cil</span>.block<br> <span class="keyword">val</span> mkStmtOneInstr : <span class="constructor">Cil</span>.instr <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt<br> <span class="keyword">val</span> compactStmts : <span class="constructor">Cil</span>.stmt list <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt list<br> <span class="keyword">val</span> mkEmptyStmt : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt<br> <span class="keyword">val</span> dummyInstr : <span class="constructor">Cil</span>.instr<br> <span class="keyword">val</span> dummyStmt : <span class="constructor">Cil</span>.stmt<br> <span class="keyword">val</span> mkWhile : guard:<span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> body:<span class="constructor">Cil</span>.stmt list <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt list<br> <span class="keyword">val</span> mkForIncr :<br> iter:<span class="constructor">Cil</span>.varinfo <span class="keywordsign">-></span><br> first:<span class="constructor">Cil</span>.exp <span class="keywordsign">-></span><br> stopat:<span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> incr:<span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> body:<span class="constructor">Cil</span>.stmt list <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt list<br> <span class="keyword">val</span> mkFor :<br> start:<span class="constructor">Cil</span>.stmt list <span class="keywordsign">-></span><br> guard:<span class="constructor">Cil</span>.exp <span class="keywordsign">-></span><br> next:<span class="constructor">Cil</span>.stmt list <span class="keywordsign">-></span> body:<span class="constructor">Cil</span>.stmt list <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt list<br> <span class="keyword">type</span> attributeClass = <span class="constructor">AttrName</span> <span class="keyword">of</span> bool <span class="keywordsign">|</span> <span class="constructor">AttrFunType</span> <span class="keyword">of</span> bool <span class="keywordsign">|</span> <span class="constructor">AttrType</span><br> <span class="keyword">val</span> attributeHash : (string, <span class="constructor">Cil</span>.attributeClass) <span class="constructor">Hashtbl</span>.t<br> <span class="keyword">val</span> partitionAttributes :<br> default:<span class="constructor">Cil</span>.attributeClass <span class="keywordsign">-></span><br> <span class="constructor">Cil</span>.attributes <span class="keywordsign">-></span><br> <span class="constructor">Cil</span>.attribute list * <span class="constructor">Cil</span>.attribute list * <span class="constructor">Cil</span>.attribute list<br> <span class="keyword">val</span> addAttribute : <span class="constructor">Cil</span>.attribute <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attributes <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attributes<br> <span class="keyword">val</span> addAttributes : <span class="constructor">Cil</span>.attribute list <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attributes <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attributes<br> <span class="keyword">val</span> dropAttribute : string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attributes <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attributes<br> <span class="keyword">val</span> dropAttributes : string list <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attributes <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attributes<br> <span class="keyword">val</span> filterAttributes : string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attributes <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attributes<br> <span class="keyword">val</span> hasAttribute : string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attributes <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> typeAttrs : <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attribute list<br> <span class="keyword">val</span> setTypeAttrs : <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attributes <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> typeAddAttributes : <span class="constructor">Cil</span>.attribute list <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> typeRemoveAttributes : string list <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> expToAttrParam : <span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attrparam<br> <span class="keyword">exception</span> <span class="constructor">NotAnAttrParam</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.exp<br> <span class="keyword">type</span> <span class="keywordsign">'</span>a visitAction =<br> <span class="constructor">SkipChildren</span><br> <span class="keywordsign">|</span> <span class="constructor">DoChildren</span><br> <span class="keywordsign">|</span> <span class="constructor">ChangeTo</span> <span class="keyword">of</span> <span class="keywordsign">'</span>a<br> <span class="keywordsign">|</span> <span class="constructor">ChangeDoChildrenPost</span> <span class="keyword">of</span> <span class="keywordsign">'</span>a * (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a)<br> <span class="keyword">class</span> <span class="keyword">type</span> cilVisitor =<br> <span class="keyword">object</span><br> <span class="keyword">method</span> queueInstr : <span class="constructor">Cil</span>.instr list <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> unqueueInstr : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.instr list<br> <span class="keyword">method</span> vattr : <span class="constructor">Cil</span>.attribute <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attribute list <span class="constructor">Cil</span>.visitAction<br> <span class="keyword">method</span> vattrparam : <span class="constructor">Cil</span>.attrparam <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attrparam <span class="constructor">Cil</span>.visitAction<br> <span class="keyword">method</span> vblock : <span class="constructor">Cil</span>.block <span class="keywordsign">-></span> <span class="constructor">Cil</span>.block <span class="constructor">Cil</span>.visitAction<br> <span class="keyword">method</span> vexpr : <span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp <span class="constructor">Cil</span>.visitAction<br> <span class="keyword">method</span> vfunc : <span class="constructor">Cil</span>.fundec <span class="keywordsign">-></span> <span class="constructor">Cil</span>.fundec <span class="constructor">Cil</span>.visitAction<br> <span class="keyword">method</span> vglob : <span class="constructor">Cil</span>.global <span class="keywordsign">-></span> <span class="constructor">Cil</span>.global list <span class="constructor">Cil</span>.visitAction<br> <span class="keyword">method</span> vinit :<br> <span class="constructor">Cil</span>.varinfo <span class="keywordsign">-></span> <span class="constructor">Cil</span>.offset <span class="keywordsign">-></span> <span class="constructor">Cil</span>.init <span class="keywordsign">-></span> <span class="constructor">Cil</span>.init <span class="constructor">Cil</span>.visitAction<br> <span class="keyword">method</span> vinitoffs : <span class="constructor">Cil</span>.offset <span class="keywordsign">-></span> <span class="constructor">Cil</span>.offset <span class="constructor">Cil</span>.visitAction<br> <span class="keyword">method</span> vinst : <span class="constructor">Cil</span>.instr <span class="keywordsign">-></span> <span class="constructor">Cil</span>.instr list <span class="constructor">Cil</span>.visitAction<br> <span class="keyword">method</span> vlval : <span class="constructor">Cil</span>.lval <span class="keywordsign">-></span> <span class="constructor">Cil</span>.lval <span class="constructor">Cil</span>.visitAction<br> <span class="keyword">method</span> voffs : <span class="constructor">Cil</span>.offset <span class="keywordsign">-></span> <span class="constructor">Cil</span>.offset <span class="constructor">Cil</span>.visitAction<br> <span class="keyword">method</span> vstmt : <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt <span class="constructor">Cil</span>.visitAction<br> <span class="keyword">method</span> vtype : <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="constructor">Cil</span>.visitAction<br> <span class="keyword">method</span> vvdec : <span class="constructor">Cil</span>.varinfo <span class="keywordsign">-></span> <span class="constructor">Cil</span>.varinfo <span class="constructor">Cil</span>.visitAction<br> <span class="keyword">method</span> vvrbl : <span class="constructor">Cil</span>.varinfo <span class="keywordsign">-></span> <span class="constructor">Cil</span>.varinfo <span class="constructor">Cil</span>.visitAction<br> <span class="keyword">end</span><br> <span class="keyword">class</span> nopCilVisitor : cilVisitor<br> <span class="keyword">val</span> visitCilFile : <span class="constructor">Cil</span>.cilVisitor <span class="keywordsign">-></span> <span class="constructor">Cil</span>.file <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> visitCilFileSameGlobals : <span class="constructor">Cil</span>.cilVisitor <span class="keywordsign">-></span> <span class="constructor">Cil</span>.file <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> visitCilGlobal : <span class="constructor">Cil</span>.cilVisitor <span class="keywordsign">-></span> <span class="constructor">Cil</span>.global <span class="keywordsign">-></span> <span class="constructor">Cil</span>.global list<br> <span class="keyword">val</span> visitCilFunction : <span class="constructor">Cil</span>.cilVisitor <span class="keywordsign">-></span> <span class="constructor">Cil</span>.fundec <span class="keywordsign">-></span> <span class="constructor">Cil</span>.fundec<br> <span class="keyword">val</span> visitCilExpr : <span class="constructor">Cil</span>.cilVisitor <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp<br> <span class="keyword">val</span> visitCilLval : <span class="constructor">Cil</span>.cilVisitor <span class="keywordsign">-></span> <span class="constructor">Cil</span>.lval <span class="keywordsign">-></span> <span class="constructor">Cil</span>.lval<br> <span class="keyword">val</span> visitCilOffset : <span class="constructor">Cil</span>.cilVisitor <span class="keywordsign">-></span> <span class="constructor">Cil</span>.offset <span class="keywordsign">-></span> <span class="constructor">Cil</span>.offset<br> <span class="keyword">val</span> visitCilInitOffset : <span class="constructor">Cil</span>.cilVisitor <span class="keywordsign">-></span> <span class="constructor">Cil</span>.offset <span class="keywordsign">-></span> <span class="constructor">Cil</span>.offset<br> <span class="keyword">val</span> visitCilInstr : <span class="constructor">Cil</span>.cilVisitor <span class="keywordsign">-></span> <span class="constructor">Cil</span>.instr <span class="keywordsign">-></span> <span class="constructor">Cil</span>.instr list<br> <span class="keyword">val</span> visitCilStmt : <span class="constructor">Cil</span>.cilVisitor <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt<br> <span class="keyword">val</span> visitCilBlock : <span class="constructor">Cil</span>.cilVisitor <span class="keywordsign">-></span> <span class="constructor">Cil</span>.block <span class="keywordsign">-></span> <span class="constructor">Cil</span>.block<br> <span class="keyword">val</span> visitCilType : <span class="constructor">Cil</span>.cilVisitor <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> visitCilVarDecl : <span class="constructor">Cil</span>.cilVisitor <span class="keywordsign">-></span> <span class="constructor">Cil</span>.varinfo <span class="keywordsign">-></span> <span class="constructor">Cil</span>.varinfo<br> <span class="keyword">val</span> visitCilInit :<br> <span class="constructor">Cil</span>.cilVisitor <span class="keywordsign">-></span> <span class="constructor">Cil</span>.varinfo <span class="keywordsign">-></span> <span class="constructor">Cil</span>.offset <span class="keywordsign">-></span> <span class="constructor">Cil</span>.init <span class="keywordsign">-></span> <span class="constructor">Cil</span>.init<br> <span class="keyword">val</span> visitCilAttributes :<br> <span class="constructor">Cil</span>.cilVisitor <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attribute list <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attribute list<br> <span class="keyword">val</span> msvcMode : bool <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> useLogicalOperators : bool <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> oldstyleExternInline : bool <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> constFoldVisitor : bool <span class="keywordsign">-></span> <span class="constructor">Cil</span>.cilVisitor<br> <span class="keyword">type</span> lineDirectiveStyle =<br> <span class="constructor">LineComment</span><br> <span class="keywordsign">|</span> <span class="constructor">LineCommentSparse</span><br> <span class="keywordsign">|</span> <span class="constructor">LinePreprocessorInput</span><br> <span class="keywordsign">|</span> <span class="constructor">LinePreprocessorOutput</span><br> <span class="keyword">val</span> lineDirectiveStyle : <span class="constructor">Cil</span>.lineDirectiveStyle option <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> print_CIL_Input : bool <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> printCilAsIs : bool <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> lineLength : int <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> forgcc : string <span class="keywordsign">-></span> string<br> <span class="keyword">val</span> currentLoc : <span class="constructor">Cil</span>.location <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> currentGlobal : <span class="constructor">Cil</span>.global <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> d_loc : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.location <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_thisloc : unit <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_ikind : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.ikind <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_fkind : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.fkind <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_storage : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.storage <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_const : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.constant <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> derefStarLevel : int<br> <span class="keyword">val</span> indexLevel : int<br> <span class="keyword">val</span> arrowLevel : int<br> <span class="keyword">val</span> addrOfLevel : int<br> <span class="keyword">val</span> additiveLevel : int<br> <span class="keyword">val</span> comparativeLevel : int<br> <span class="keyword">val</span> bitwiseLevel : int<br> <span class="keyword">val</span> getParenthLevel : <span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> int<br> <span class="keyword">class</span> <span class="keyword">type</span> cilPrinter =<br> <span class="keyword">object</span><br> <span class="keyword">method</span> dBlock : <span class="constructor">Pervasives</span>.out_channel <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Cil</span>.block <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> dGlobal : <span class="constructor">Pervasives</span>.out_channel <span class="keywordsign">-></span> <span class="constructor">Cil</span>.global <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> dInit : <span class="constructor">Pervasives</span>.out_channel <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Cil</span>.init <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> dStmt : <span class="constructor">Pervasives</span>.out_channel <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> getPrintInstrTerminator : unit <span class="keywordsign">-></span> string<br> <span class="keyword">method</span> pAttr : <span class="constructor">Cil</span>.attribute <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc * bool<br> <span class="keyword">method</span> pAttrParam : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attrparam <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pAttrs : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attributes <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pBlock : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.block <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pExp : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pFieldDecl : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.fieldinfo <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pGlobal : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.global <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pInit : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.init <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pInstr : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.instr <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pLabel : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.label <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pLineDirective : ?forcefile:bool <span class="keywordsign">-></span> <span class="constructor">Cil</span>.location <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pLval : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.lval <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pOffset : <span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> <span class="constructor">Cil</span>.offset <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pStmt : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pStmtKind : <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmtkind <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pType : <span class="constructor">Pretty</span>.doc option <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pVDecl : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.varinfo <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pVar : <span class="constructor">Cil</span>.varinfo <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> setCurrentFormals : <span class="constructor">Cil</span>.varinfo list <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> setPrintInstrTerminator : string <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">class</span> defaultCilPrinterClass : cilPrinter<br> <span class="keyword">val</span> defaultCilPrinter : <span class="constructor">Cil</span>.cilPrinter<br> <span class="keyword">class</span> plainCilPrinterClass : cilPrinter<br> <span class="keyword">val</span> plainCilPrinter : <span class="constructor">Cil</span>.cilPrinter<br> <span class="keyword">class</span> <span class="keyword">type</span> descriptiveCilPrinter =<br> <span class="keyword">object</span><br> <span class="keyword">method</span> dBlock : out_channel <span class="keywordsign">-></span> int <span class="keywordsign">-></span> block <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> dGlobal : out_channel <span class="keywordsign">-></span> global <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> dInit : out_channel <span class="keywordsign">-></span> int <span class="keywordsign">-></span> init <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> dStmt : out_channel <span class="keywordsign">-></span> int <span class="keywordsign">-></span> stmt <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> getPrintInstrTerminator : unit <span class="keywordsign">-></span> string<br> <span class="keyword">method</span> pAttr : attribute <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc * bool<br> <span class="keyword">method</span> pAttrParam : unit <span class="keywordsign">-></span> attrparam <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pAttrs : unit <span class="keywordsign">-></span> attributes <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pBlock : unit <span class="keywordsign">-></span> block <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pExp : unit <span class="keywordsign">-></span> exp <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pFieldDecl : unit <span class="keywordsign">-></span> fieldinfo <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pGlobal : unit <span class="keywordsign">-></span> global <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pInit : unit <span class="keywordsign">-></span> init <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pInstr : unit <span class="keywordsign">-></span> instr <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pLabel : unit <span class="keywordsign">-></span> label <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pLineDirective : ?forcefile:bool <span class="keywordsign">-></span> location <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pLval : unit <span class="keywordsign">-></span> lval <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pOffset : <span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> offset <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pStmt : unit <span class="keywordsign">-></span> stmt <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pStmtKind : stmt <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> stmtkind <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pTemps : unit <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pType : <span class="constructor">Pretty</span>.doc option <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> typ <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pVDecl : unit <span class="keywordsign">-></span> varinfo <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> pVar : varinfo <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">method</span> setCurrentFormals : varinfo list <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> setPrintInstrTerminator : string <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> startTemps : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">method</span> stopTemps : unit <span class="keywordsign">-></span> unit<br> <span class="keyword">end</span><br> <span class="keyword">class</span> descriptiveCilPrinterClass : bool <span class="keywordsign">-></span> descriptiveCilPrinter<br> <span class="keyword">val</span> descriptiveCilPrinter : <span class="constructor">Cil</span>.descriptiveCilPrinter<br> <span class="keyword">val</span> printerForMaincil : <span class="constructor">Cil</span>.cilPrinter <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> printType : <span class="constructor">Cil</span>.cilPrinter <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> printExp : <span class="constructor">Cil</span>.cilPrinter <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> printLval : <span class="constructor">Cil</span>.cilPrinter <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.lval <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> printGlobal : <span class="constructor">Cil</span>.cilPrinter <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.global <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> printAttr : <span class="constructor">Cil</span>.cilPrinter <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attribute <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> printAttrs : <span class="constructor">Cil</span>.cilPrinter <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attributes <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> printInstr : <span class="constructor">Cil</span>.cilPrinter <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.instr <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> printStmt : <span class="constructor">Cil</span>.cilPrinter <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> printBlock : <span class="constructor">Cil</span>.cilPrinter <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.block <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> dumpStmt :<br> <span class="constructor">Cil</span>.cilPrinter <span class="keywordsign">-></span> <span class="constructor">Pervasives</span>.out_channel <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> dumpBlock :<br> <span class="constructor">Cil</span>.cilPrinter <span class="keywordsign">-></span> <span class="constructor">Pervasives</span>.out_channel <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Cil</span>.block <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> printInit : <span class="constructor">Cil</span>.cilPrinter <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.init <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> dumpInit :<br> <span class="constructor">Cil</span>.cilPrinter <span class="keywordsign">-></span> <span class="constructor">Pervasives</span>.out_channel <span class="keywordsign">-></span> int <span class="keywordsign">-></span> <span class="constructor">Cil</span>.init <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> d_type : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_exp : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_lval : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.lval <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_offset : <span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.offset <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_init : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.init <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_binop : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.binop <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_unop : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.unop <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_attr : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attribute <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_attrparam : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attrparam <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_attrlist : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attributes <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_instr : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.instr <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_label : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.label <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_stmt : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_block : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.block <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_global : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.global <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> dn_exp : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> dn_lval : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.lval <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> dn_init : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.init <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> dn_type : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> dn_global : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.global <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> dn_attrlist : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attributes <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> dn_attr : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attribute <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> dn_attrparam : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.attrparam <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> dn_stmt : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> dn_instr : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.instr <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_shortglobal : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.global <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> dumpGlobal :<br> <span class="constructor">Cil</span>.cilPrinter <span class="keywordsign">-></span> <span class="constructor">Pervasives</span>.out_channel <span class="keywordsign">-></span> <span class="constructor">Cil</span>.global <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> dumpFile :<br> <span class="constructor">Cil</span>.cilPrinter <span class="keywordsign">-></span> <span class="constructor">Pervasives</span>.out_channel <span class="keywordsign">-></span> string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.file <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> bug : (<span class="keywordsign">'</span>a, unit, <span class="constructor">Pretty</span>.doc) <span class="constructor">Pervasives</span>.format <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> unimp : (<span class="keywordsign">'</span>a, unit, <span class="constructor">Pretty</span>.doc) <span class="constructor">Pervasives</span>.format <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> error : (<span class="keywordsign">'</span>a, unit, <span class="constructor">Pretty</span>.doc) <span class="constructor">Pervasives</span>.format <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> errorLoc :<br> <span class="constructor">Cil</span>.location <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a, unit, <span class="constructor">Pretty</span>.doc) <span class="constructor">Pervasives</span>.format <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> warn : (<span class="keywordsign">'</span>a, unit, <span class="constructor">Pretty</span>.doc) <span class="constructor">Pervasives</span>.format <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> warnOpt : (<span class="keywordsign">'</span>a, unit, <span class="constructor">Pretty</span>.doc) <span class="constructor">Pervasives</span>.format <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> warnContext : (<span class="keywordsign">'</span>a, unit, <span class="constructor">Pretty</span>.doc) <span class="constructor">Pervasives</span>.format <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> warnContextOpt : (<span class="keywordsign">'</span>a, unit, <span class="constructor">Pretty</span>.doc) <span class="constructor">Pervasives</span>.format <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> warnLoc :<br> <span class="constructor">Cil</span>.location <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a, unit, <span class="constructor">Pretty</span>.doc) <span class="constructor">Pervasives</span>.format <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> <span class="keyword">val</span> d_plainexp : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_plaininit : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.init <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_plainlval : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.lval <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> d_plaintype : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> dd_exp : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> dd_lval : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.lval <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> uniqueVarNames : <span class="constructor">Cil</span>.file <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> peepHole2 :<br> (<span class="constructor">Cil</span>.instr * <span class="constructor">Cil</span>.instr <span class="keywordsign">-></span> <span class="constructor">Cil</span>.instr list option) <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt list <span class="keywordsign">-></span> unit<br> <span class="keyword">val</span> peepHole1 :<br> (<span class="constructor">Cil</span>.instr <span class="keywordsign">-></span> <span class="constructor">Cil</span>.instr list option) <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt list <span class="keywordsign">-></span> unit<br> <span class="keyword">exception</span> <span class="constructor">SizeOfError</span> <span class="keyword">of</span> string * <span class="constructor">Cil</span>.typ<br> <span class="keyword">val</span> unsignedVersionOf : <span class="constructor">Cil</span>.ikind <span class="keywordsign">-></span> <span class="constructor">Cil</span>.ikind<br> <span class="keyword">val</span> intKindForSize : int <span class="keywordsign">-></span> bool <span class="keywordsign">-></span> <span class="constructor">Cil</span>.ikind<br> <span class="keyword">val</span> floatKindForSize : int <span class="keywordsign">-></span> <span class="constructor">Cil</span>.fkind<br> <span class="keyword">val</span> bytesSizeOfInt : <span class="constructor">Cil</span>.ikind <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> bitsSizeOf : <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> truncateInteger64 : <span class="constructor">Cil</span>.ikind <span class="keywordsign">-></span> int64 <span class="keywordsign">-></span> int64 * bool<br> <span class="keyword">val</span> fitsInInt : <span class="constructor">Cil</span>.ikind <span class="keywordsign">-></span> int64 <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> intKindForValue : int64 <span class="keywordsign">-></span> bool <span class="keywordsign">-></span> <span class="constructor">Cil</span>.ikind<br> <span class="keyword">val</span> sizeOf : <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp<br> <span class="keyword">val</span> alignOf_int : <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> int<br> <span class="keyword">val</span> bitsOffset : <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.offset <span class="keywordsign">-></span> int * int<br> <span class="keyword">val</span> char_is_unsigned : bool <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> little_endian : bool <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> underscore_name : bool <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> locUnknown : <span class="constructor">Cil</span>.location<br> <span class="keyword">val</span> get_instrLoc : <span class="constructor">Cil</span>.instr <span class="keywordsign">-></span> <span class="constructor">Cil</span>.location<br> <span class="keyword">val</span> get_globalLoc : <span class="constructor">Cil</span>.global <span class="keywordsign">-></span> <span class="constructor">Cil</span>.location<br> <span class="keyword">val</span> get_stmtLoc : <span class="constructor">Cil</span>.stmtkind <span class="keywordsign">-></span> <span class="constructor">Cil</span>.location<br> <span class="keyword">val</span> dExp : <span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp<br> <span class="keyword">val</span> dInstr : <span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> <span class="constructor">Cil</span>.location <span class="keywordsign">-></span> <span class="constructor">Cil</span>.instr<br> <span class="keyword">val</span> dGlobal : <span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> <span class="constructor">Cil</span>.location <span class="keywordsign">-></span> <span class="constructor">Cil</span>.global<br> <span class="keyword">val</span> mapNoCopy : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> <span class="keyword">val</span> mapNoCopyList : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> <span class="keyword">val</span> startsWith : string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> endsWith : string <span class="keywordsign">-></span> string <span class="keywordsign">-></span> bool<br> <span class="keyword">val</span> stripUnderscores : string <span class="keywordsign">-></span> string<br> <span class="keyword">type</span> formatArg =<br> <span class="constructor">Fe</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.exp<br> <span class="keywordsign">|</span> <span class="constructor">Feo</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.exp option<br> <span class="keywordsign">|</span> <span class="constructor">Fu</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.unop<br> <span class="keywordsign">|</span> <span class="constructor">Fb</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.binop<br> <span class="keywordsign">|</span> <span class="constructor">Fk</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.ikind<br> <span class="keywordsign">|</span> <span class="constructor">FE</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.exp list<br> <span class="keywordsign">|</span> <span class="constructor">Ff</span> <span class="keyword">of</span> (string * <span class="constructor">Cil</span>.typ * <span class="constructor">Cil</span>.attributes)<br> <span class="keywordsign">|</span> <span class="constructor">FF</span> <span class="keyword">of</span> (string * <span class="constructor">Cil</span>.typ * <span class="constructor">Cil</span>.attributes) list<br> <span class="keywordsign">|</span> <span class="constructor">Fva</span> <span class="keyword">of</span> bool<br> <span class="keywordsign">|</span> <span class="constructor">Fv</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.varinfo<br> <span class="keywordsign">|</span> <span class="constructor">Fl</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.lval<br> <span class="keywordsign">|</span> <span class="constructor">Flo</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.lval option<br> <span class="keywordsign">|</span> <span class="constructor">Fo</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.offset<br> <span class="keywordsign">|</span> <span class="constructor">Fc</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.compinfo<br> <span class="keywordsign">|</span> <span class="constructor">Fi</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.instr<br> <span class="keywordsign">|</span> <span class="constructor">FI</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.instr list<br> <span class="keywordsign">|</span> <span class="constructor">Ft</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.typ<br> <span class="keywordsign">|</span> <span class="constructor">Fd</span> <span class="keyword">of</span> int<br> <span class="keywordsign">|</span> <span class="constructor">Fg</span> <span class="keyword">of</span> string<br> <span class="keywordsign">|</span> <span class="constructor">Fs</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.stmt<br> <span class="keywordsign">|</span> <span class="constructor">FS</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.stmt list<br> <span class="keywordsign">|</span> <span class="constructor">FA</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.attributes<br> <span class="keywordsign">|</span> <span class="constructor">Fp</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.attrparam<br> <span class="keywordsign">|</span> <span class="constructor">FP</span> <span class="keyword">of</span> <span class="constructor">Cil</span>.attrparam list<br> <span class="keywordsign">|</span> <span class="constructor">FX</span> <span class="keyword">of</span> string<br> <span class="keyword">val</span> d_formatarg : unit <span class="keywordsign">-></span> <span class="constructor">Cil</span>.formatArg <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> <span class="keyword">val</span> warnTruncate : bool <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">val</span> envMachine : <span class="constructor">Machdep</span>.mach option <span class="constructor">Pervasives</span>.ref<br> <span class="keyword">end</span></code></body></html>