diff options
Diffstat (limited to 'cil/doc/api')
55 files changed, 0 insertions, 9559 deletions
diff --git a/cil/doc/api/Alpha.html b/cil/doc/api/Alpha.html deleted file mode 100644 index 699fac09..00000000 --- a/cil/doc/api/Alpha.html +++ /dev/null @@ -1,79 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<link rel="Start" href="index.html"> -<link rel="previous" href="Formatcil.html"> -<link rel="next" href="Cillower.html"> -<link rel="Up" 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.5) : Alpha</title> -</head> -<body> -<div class="navbar"><a href="Formatcil.html">Previous</a> - <a href="index.html">Up</a> - <a href="Cillower.html">Next</a> -</div> -<center><h1>Module <a href="type_Alpha.html">Alpha</a></h1></center> -<br> -<pre><span class="keyword">module</span> Alpha: <code class="code">sig</code> <a href="Alpha.html">..</a> <code class="code">end</code></pre><b>ALPHA conversion</b><br> -<hr width="100%"> -<pre><span class="keyword">type</span> <a name="TYPEundoAlphaElement"></a><code class="type">'a</code> undoAlphaElement </pre> -<div class="info"> -This is the type of the elements that are recorded by the alpha - conversion functions in order to be able to undo changes to the tables - they modify. Useful for implementing - scoping<br> -</div> - -<pre><span class="keyword">type</span> <a name="TYPEalphaTableData"></a><code class="type">'a</code> alphaTableData </pre> -<div class="info"> -This is the type of the elements of the alpha renaming table. These - elements can carry some data associated with each occurrence of the name.<br> -</div> - -<pre><span class="keyword">val</span> <a name="VALnewAlphaName"></a>newAlphaName : <code class="type">alphaTable:(string, 'a <a href="Alpha.html#TYPEalphaTableData">alphaTableData</a> Pervasives.ref) Hashtbl.t -><br> undolist:'a <a href="Alpha.html#TYPEundoAlphaElement">undoAlphaElement</a> list Pervasives.ref option -><br> lookupname:string -> data:'a -> string * 'a</code></pre><div class="info"> -Create a new name based on a given name. The new name is formed from a - prefix (obtained from the given name by stripping a suffix consisting of _ - followed by only digits), followed by a special separator and then by a - positive integer suffix. The first argument is a table mapping name - prefixes to some data that specifies what suffixes have been used and how - to create the new one. This function updates the table with the new - largest suffix generated. The "undolist" argument, when present, will be - used by the function to record information that can be used by - <a href="Alpha.html#VALundoAlphaChanges"><code class="code">Alpha.undoAlphaChanges</code></a> to undo those changes. Note that the undo - information will be in reverse order in which the action occurred. Returns - the new name and, if different from the lookupname, the location of the - previous occurrence. This function knows about the location implicitly - from the <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a>.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALregisterAlphaName"></a>registerAlphaName : <code class="type">alphaTable:(string, 'a <a href="Alpha.html#TYPEalphaTableData">alphaTableData</a> Pervasives.ref) Hashtbl.t -><br> undolist:'a <a href="Alpha.html#TYPEundoAlphaElement">undoAlphaElement</a> list Pervasives.ref option -><br> lookupname:string -> data:'a -> unit</code></pre><div class="info"> -Register a name with an alpha conversion table to ensure that when later - we call newAlphaName we do not end up generating this one<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdocAlphaTable"></a>docAlphaTable : <code class="type">unit -><br> (string, 'a <a href="Alpha.html#TYPEalphaTableData">alphaTableData</a> Pervasives.ref) Hashtbl.t -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Split the name in preparation for newAlphaName. The prefix returned is - used to index into the hashtable. The next result value is a separator - (either empty or the separator chosen to separate the original name from - the index)<br> -</div> -<pre><span class="keyword">val</span> <a name="VALgetAlphaPrefix"></a>getAlphaPrefix : <code class="type">lookupname:string -> string</code></pre><pre><span class="keyword">val</span> <a name="VALundoAlphaChanges"></a>undoAlphaChanges : <code class="type">alphaTable:(string, 'a <a href="Alpha.html#TYPEalphaTableData">alphaTableData</a> Pervasives.ref) Hashtbl.t -><br> undolist:'a <a href="Alpha.html#TYPEundoAlphaElement">undoAlphaElement</a> list -> unit</code></pre><div class="info"> -Undo the changes to a table<br> -</div> -</body></html>
\ No newline at end of file diff --git a/cil/doc/api/Cfg.html b/cil/doc/api/Cfg.html deleted file mode 100644 index 142de8ae..00000000 --- a/cil/doc/api/Cfg.html +++ /dev/null @@ -1,69 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<link rel="Start" href="index.html"> -<link rel="previous" href="Cillower.html"> -<link rel="next" href="Dataflow.html"> -<link rel="Up" 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.5) : Cfg</title> -</head> -<body> -<div class="navbar"><a href="Cillower.html">Previous</a> - <a href="index.html">Up</a> - <a href="Dataflow.html">Next</a> -</div> -<center><h1>Module <a href="type_Cfg.html">Cfg</a></h1></center> -<br> -<pre><span class="keyword">module</span> Cfg: <code class="code">sig</code> <a href="Cfg.html">..</a> <code class="code">end</code></pre>Code to compute the control-flow graph of a function or file. - This will fill in the <code class="code">preds</code> and <code class="code">succs</code> fields of <a href="Cil.html#TYPEstmt"><code class="code">Cil.stmt</code></a> -<p> - - This is required for several other extensions, such as <a href="Dataflow.html"><code class="code">Dataflow</code></a>.<br> -<hr width="100%"> -<pre><span class="keyword">val</span> <a name="VALcomputeFileCFG"></a>computeFileCFG : <code class="type"><a href="Cil.html#TYPEfile">Cil.file</a> -> unit</code></pre><div class="info"> -Compute the CFG for an entire file, by calling cfgFun on each function.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALclearFileCFG"></a>clearFileCFG : <code class="type"><a href="Cil.html#TYPEfile">Cil.file</a> -> unit</code></pre><div class="info"> -clear the sid, succs, and preds fields of each statement.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcfgFun"></a>cfgFun : <code class="type"><a href="Cil.html#TYPEfundec">Cil.fundec</a> -> int</code></pre><div class="info"> -Compute a control flow graph for fd. Stmts in fd have preds and succs - filled in<br> -</div> -<pre><span class="keyword">val</span> <a name="VALclearCFGinfo"></a>clearCFGinfo : <code class="type"><a href="Cil.html#TYPEfundec">Cil.fundec</a> -> unit</code></pre><div class="info"> -clear the sid, succs, and preds fields of each statment in a function<br> -</div> -<pre><span class="keyword">val</span> <a name="VALprintCfgChannel"></a>printCfgChannel : <code class="type">Pervasives.out_channel -> <a href="Cil.html#TYPEfundec">Cil.fundec</a> -> unit</code></pre><div class="info"> -print control flow graph (in dot form) for fundec to channel<br> -</div> -<pre><span class="keyword">val</span> <a name="VALprintCfgFilename"></a>printCfgFilename : <code class="type">string -> <a href="Cil.html#TYPEfundec">Cil.fundec</a> -> unit</code></pre><div class="info"> -Print control flow graph (in dot form) for fundec to file<br> -</div> -<pre><span class="keyword">val</span> <a name="VALstart_id"></a>start_id : <code class="type">int Pervasives.ref</code></pre><div class="info"> -Next statement id that will be assigned.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALnodeList"></a>nodeList : <code class="type"><a href="Cil.html#TYPEstmt">Cil.stmt</a> list Pervasives.ref</code></pre><div class="info"> -All of the nodes in a file.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALnumNodes"></a>numNodes : <code class="type">int Pervasives.ref</code></pre><div class="info"> -number of nodes in the CFG<br> -</div> -</body></html>
\ No newline at end of file diff --git a/cil/doc/api/Cil.cilPrinter.html b/cil/doc/api/Cil.cilPrinter.html deleted file mode 100644 index 1b9511f6..00000000 --- a/cil/doc/api/Cil.cilPrinter.html +++ /dev/null @@ -1,118 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<link rel="Start" href="index.html"> -<link rel="previous" href="Cil.cilVisitor.html"> -<link rel="Up" href="Cil.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.5) : Cil.cilPrinter</title> -</head> -<body> -<div class="navbar"><a href="Cil.cilVisitor.html">Previous</a> - <a href="Cil.html">Up</a> - </div> -<center><h1>Class type <a href="type_Cil.cilPrinter.html">Cil.cilPrinter</a></h1></center> -<br> -<pre><span class="keyword">class type</span> <a name="TYPEcilPrinter"></a>cilPrinter = <code class="code">object</code> <a href="Cil.cilPrinter.html">..</a> <code class="code">end</code></pre>A printer interface for CIL trees. Create instantiations of - this type by specializing the class <a href="Cil.defaultCilPrinterClass.html"><code class="code">Cil.defaultCilPrinterClass</code></a>.<br> -<hr width="100%"> -<pre><span class="keyword">method</span> <a name="METHODpVDecl"></a>pVDecl : <code class="type">unit -> <a href="Cil.html#TYPEvarinfo">varinfo</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Invoked for each variable declaration. Note that variable - declarations are all the <code class="code">GVar</code>, <code class="code">GVarDecl</code>, <code class="code">GFun</code>, all the <code class="code">varinfo</code> - in formals of function types, and the formals and locals for function - definitions.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODpVar"></a>pVar : <code class="type"><a href="Cil.html#TYPEvarinfo">varinfo</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Invoked on each variable use.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODpLval"></a>pLval : <code class="type">unit -> <a href="Cil.html#TYPElval">lval</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Invoked on each lvalue occurrence<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODpOffset"></a>pOffset : <code class="type"><a href="Pretty.html#TYPEdoc">Pretty.doc</a> -> <a href="Cil.html#TYPEoffset">offset</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Invoked on each offset occurrence. The second argument is the base.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODpInstr"></a>pInstr : <code class="type">unit -> <a href="Cil.html#TYPEinstr">instr</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Invoked on each instruction occurrence.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODpLabel"></a>pLabel : <code class="type">unit -> <a href="Cil.html#TYPElabel">label</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Print a label.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODpStmt"></a>pStmt : <code class="type">unit -> <a href="Cil.html#TYPEstmt">stmt</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Control-flow statement. This is used by - <a href="Cil.html#VALprintGlobal"><code class="code">Cil.printGlobal</code></a> and by <a href="Cil.html#VALdumpGlobal"><code class="code">Cil.dumpGlobal</code></a>.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODdStmt"></a>dStmt : <code class="type">Pervasives.out_channel -> int -> <a href="Cil.html#TYPEstmt">stmt</a> -> unit</code></pre><div class="info"> -Dump a control-flow statement to a file with a given indentation. - This is used by <a href="Cil.html#VALdumpGlobal"><code class="code">Cil.dumpGlobal</code></a>.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODdBlock"></a>dBlock : <code class="type">Pervasives.out_channel -> int -> <a href="Cil.html#TYPEblock">block</a> -> unit</code></pre><div class="info"> -Dump a control-flow block to a file with a given indentation. - This is used by <a href="Cil.html#VALdumpGlobal"><code class="code">Cil.dumpGlobal</code></a>.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODpBlock"></a>pBlock : <code class="type">unit -> <a href="Cil.html#TYPEblock">block</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><pre><span class="keyword">method</span> <a name="METHODpBlock"></a>pBlock : <code class="type">unit -> <a href="Cil.html#TYPEblock">block</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Print a block.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODpGlobal"></a>pGlobal : <code class="type">unit -> <a href="Cil.html#TYPEglobal">global</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Global (vars, types, etc.). This can be slow and is used only by - <a href="Cil.html#VALprintGlobal"><code class="code">Cil.printGlobal</code></a> but not by <a href="Cil.html#VALdumpGlobal"><code class="code">Cil.dumpGlobal</code></a>.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODdGlobal"></a>dGlobal : <code class="type">Pervasives.out_channel -> <a href="Cil.html#TYPEglobal">global</a> -> unit</code></pre><div class="info"> -Dump a global to a file with a given indentation. This is used by - <a href="Cil.html#VALdumpGlobal"><code class="code">Cil.dumpGlobal</code></a><br> -</div> -<pre><span class="keyword">method</span> <a name="METHODpFieldDecl"></a>pFieldDecl : <code class="type">unit -> <a href="Cil.html#TYPEfieldinfo">fieldinfo</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -A field declaration<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODpType"></a>pType : <code class="type"><a href="Pretty.html#TYPEdoc">Pretty.doc</a> option -> unit -> <a href="Cil.html#TYPEtyp">typ</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><pre><span class="keyword">method</span> <a name="METHODpAttr"></a>pAttr : <code class="type"><a href="Cil.html#TYPEattribute">attribute</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a> * bool</code></pre><div class="info"> -Attribute. Also return an indication whether this attribute must be - printed inside the __attribute__ list or not.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODpAttrParam"></a>pAttrParam : <code class="type">unit -> <a href="Cil.html#TYPEattrparam">attrparam</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Attribute parameter<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODpAttrs"></a>pAttrs : <code class="type">unit -> <a href="Cil.html#TYPEattributes">attributes</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Attribute lists<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODpLineDirective"></a>pLineDirective : <code class="type">?forcefile:bool -> <a href="Cil.html#TYPElocation">location</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Print a line-number. This is assumed to come always on an empty line. - If the forcefile argument is present and is true then the file name - will be printed always. Otherwise the file name is printed only if it - is different from the last time time this function is called. The last - file name is stored in a private field inside the cilPrinter object.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODpStmtKind"></a>pStmtKind : <code class="type"><a href="Cil.html#TYPEstmt">stmt</a> -> unit -> <a href="Cil.html#TYPEstmtkind">stmtkind</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Print a statement kind. The code to be printed is given in the - <a href="Cil.html#TYPEstmtkind"><code class="code">Cil.stmtkind</code></a> argument. The initial <a href="Cil.html#TYPEstmt"><code class="code">Cil.stmt</code></a> argument - records the statement which follows the one being printed; - <a href="Cil.defaultCilPrinterClass.html"><code class="code">Cil.defaultCilPrinterClass</code></a> uses this information to prettify - statement printing in certain special cases.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODpExp"></a>pExp : <code class="type">unit -> <a href="Cil.html#TYPEexp">exp</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Print expressions<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODpInit"></a>pInit : <code class="type">unit -> <a href="Cil.html#TYPEinit">init</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Print initializers. This can be slow and is used by - <a href="Cil.html#VALprintGlobal"><code class="code">Cil.printGlobal</code></a> but not by <a href="Cil.html#VALdumpGlobal"><code class="code">Cil.dumpGlobal</code></a>.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODdInit"></a>dInit : <code class="type">Pervasives.out_channel -> int -> <a href="Cil.html#TYPEinit">init</a> -> unit</code></pre><div class="info"> -Dump a global to a file with a given indentation. This is used by - <a href="Cil.html#VALdumpGlobal"><code class="code">Cil.dumpGlobal</code></a><br> -</div> -</body></html>
\ No newline at end of file diff --git a/cil/doc/api/Cil.cilVisitor.html b/cil/doc/api/Cil.cilVisitor.html deleted file mode 100644 index f8c64963..00000000 --- a/cil/doc/api/Cil.cilVisitor.html +++ /dev/null @@ -1,125 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<link rel="Start" href="index.html"> -<link rel="next" href="Cil.cilPrinter.html"> -<link rel="Up" href="Cil.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.5) : Cil.cilVisitor</title> -</head> -<body> -<div class="navbar"> <a href="Cil.html">Up</a> - <a href="Cil.cilPrinter.html">Next</a> -</div> -<center><h1>Class type <a href="type_Cil.cilVisitor.html">Cil.cilVisitor</a></h1></center> -<br> -<pre><span class="keyword">class type</span> <a name="TYPEcilVisitor"></a>cilVisitor = <code class="code">object</code> <a href="Cil.cilVisitor.html">..</a> <code class="code">end</code></pre>A visitor interface for traversing CIL trees. Create instantiations of - this type by specializing the class <a href="Cil.nopCilVisitor.html"><code class="code">Cil.nopCilVisitor</code></a>. Each of the - specialized visiting functions can also call the <code class="code">queueInstr</code> to specify - that some instructions should be inserted before the current instruction - or statement. Use syntax like <code class="code">self#queueInstr</code> to call a method - associated with the current object.<br> -<hr width="100%"> -<pre><span class="keyword">method</span> <a name="METHODvvdec"></a>vvdec : <code class="type"><a href="Cil.html#TYPEvarinfo">varinfo</a> -> <a href="Cil.html#TYPEvarinfo">varinfo</a> <a href="Cil.html#TYPEvisitAction">visitAction</a></code></pre><div class="info"> -Invoked for each variable declaration. The subtrees to be traversed - are those corresponding to the type and attributes of the variable. - Note that variable declarations are all the <code class="code">GVar</code>, <code class="code">GVarDecl</code>, <code class="code">GFun</code>, - all the <code class="code">varinfo</code> in formals of function types, and the formals and - locals for function definitions. This means that the list of formals - in a function definition will be traversed twice, once as part of the - function type and second as part of the formals in a function - definition.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODvvrbl"></a>vvrbl : <code class="type"><a href="Cil.html#TYPEvarinfo">varinfo</a> -> <a href="Cil.html#TYPEvarinfo">varinfo</a> <a href="Cil.html#TYPEvisitAction">visitAction</a></code></pre><div class="info"> -Invoked on each variable use. Here only the <code class="code">SkipChildren</code> and - <code class="code">ChangeTo</code> actions make sense since there are no subtrees. Note that - the type and attributes of the variable are not traversed for a - variable use<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODvexpr"></a>vexpr : <code class="type"><a href="Cil.html#TYPEexp">exp</a> -> <a href="Cil.html#TYPEexp">exp</a> <a href="Cil.html#TYPEvisitAction">visitAction</a></code></pre><div class="info"> -Invoked on each expression occurrence. The subtrees are the - subexpressions, the types (for a <code class="code">Cast</code> or <code class="code">SizeOf</code> expression) or the - variable use.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODvlval"></a>vlval : <code class="type"><a href="Cil.html#TYPElval">lval</a> -> <a href="Cil.html#TYPElval">lval</a> <a href="Cil.html#TYPEvisitAction">visitAction</a></code></pre><div class="info"> -Invoked on each lvalue occurrence<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODvoffs"></a>voffs : <code class="type"><a href="Cil.html#TYPEoffset">offset</a> -> <a href="Cil.html#TYPEoffset">offset</a> <a href="Cil.html#TYPEvisitAction">visitAction</a></code></pre><div class="info"> -Invoked on each offset occurrence that is *not* as part - of an initializer list specification, i.e. in an lval or - recursively inside an offset.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODvinitoffs"></a>vinitoffs : <code class="type"><a href="Cil.html#TYPEoffset">offset</a> -> <a href="Cil.html#TYPEoffset">offset</a> <a href="Cil.html#TYPEvisitAction">visitAction</a></code></pre><div class="info"> -Invoked on each offset appearing in the list of a - CompoundInit initializer.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODvinst"></a>vinst : <code class="type"><a href="Cil.html#TYPEinstr">instr</a> -> <a href="Cil.html#TYPEinstr">instr</a> list <a href="Cil.html#TYPEvisitAction">visitAction</a></code></pre><div class="info"> -Invoked on each instruction occurrence. The <code class="code">ChangeTo</code> action can - replace this instruction with a list of instructions<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODvstmt"></a>vstmt : <code class="type"><a href="Cil.html#TYPEstmt">stmt</a> -> <a href="Cil.html#TYPEstmt">stmt</a> <a href="Cil.html#TYPEvisitAction">visitAction</a></code></pre><div class="info"> -Control-flow statement. The default <code class="code">DoChildren</code> action does not - create a new statement when the components change. Instead it updates - the contents of the original statement. This is done to preserve the - sharing with <code class="code">Goto</code> and <code class="code">Case</code> statements that point to the original - statement. If you use the <code class="code">ChangeTo</code> action then you should take care - of preserving that sharing yourself.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODvblock"></a>vblock : <code class="type"><a href="Cil.html#TYPEblock">block</a> -> <a href="Cil.html#TYPEblock">block</a> <a href="Cil.html#TYPEvisitAction">visitAction</a></code></pre><div class="info"> -Block.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODvfunc"></a>vfunc : <code class="type"><a href="Cil.html#TYPEfundec">fundec</a> -> <a href="Cil.html#TYPEfundec">fundec</a> <a href="Cil.html#TYPEvisitAction">visitAction</a></code></pre><div class="info"> -Function definition. - Replaced in place.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODvglob"></a>vglob : <code class="type"><a href="Cil.html#TYPEglobal">global</a> -> <a href="Cil.html#TYPEglobal">global</a> list <a href="Cil.html#TYPEvisitAction">visitAction</a></code></pre><div class="info"> -Global (vars, types, - etc.)<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODvinit"></a>vinit : <code class="type"><a href="Cil.html#TYPEinit">init</a> -> <a href="Cil.html#TYPEinit">init</a> <a href="Cil.html#TYPEvisitAction">visitAction</a></code></pre><div class="info"> -Initializers for globals<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODvtype"></a>vtype : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEtyp">typ</a> <a href="Cil.html#TYPEvisitAction">visitAction</a></code></pre><div class="info"> -Use of some type. Note - that for structure/union - and enumeration types the - definition of the - composite type is not - visited. Use <code class="code">vglob</code> to - visit it.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODvattr"></a>vattr : <code class="type"><a href="Cil.html#TYPEattribute">attribute</a> -> <a href="Cil.html#TYPEattribute">attribute</a> list <a href="Cil.html#TYPEvisitAction">visitAction</a></code></pre><div class="info"> -Attribute. Each attribute can be replaced by a list<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODvattrparam"></a>vattrparam : <code class="type"><a href="Cil.html#TYPEattrparam">attrparam</a> -> <a href="Cil.html#TYPEattrparam">attrparam</a> <a href="Cil.html#TYPEvisitAction">visitAction</a></code></pre><div class="info"> -Attribute parameters.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODqueueInstr"></a>queueInstr : <code class="type"><a href="Cil.html#TYPEinstr">instr</a> list -> unit</code></pre><div class="info"> -Add here instructions while visiting to queue them to preceede the - current statement or instruction being processed. Use this method only - when you are visiting an expression that is inside a function body, or - a statement, because otherwise there will no place for the visitor to - place your instructions.<br> -</div> -<pre><span class="keyword">method</span> <a name="METHODunqueueInstr"></a>unqueueInstr : <code class="type">unit -> <a href="Cil.html#TYPEinstr">instr</a> list</code></pre><div class="info"> -Gets the queue of instructions and resets the queue. This is done - automatically for you when you visit statments.<br> -</div> -</body></html>
\ No newline at end of file diff --git a/cil/doc/api/Cil.defaultCilPrinterClass.html b/cil/doc/api/Cil.defaultCilPrinterClass.html deleted file mode 100644 index d8595595..00000000 --- a/cil/doc/api/Cil.defaultCilPrinterClass.html +++ /dev/null @@ -1,36 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<link rel="Start" href="index.html"> -<link rel="previous" href="Cil.nopCilVisitor.html"> -<link rel="next" href="Cil.plainCilPrinterClass.html"> -<link rel="Up" href="Cil.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.5) : Cil.defaultCilPrinterClass</title> -</head> -<body> -<div class="navbar"><a href="Cil.nopCilVisitor.html">Previous</a> - <a href="Cil.html">Up</a> - <a href="Cil.plainCilPrinterClass.html">Next</a> -</div> -<center><h1>Class <a href="type_Cil.defaultCilPrinterClass.html">Cil.defaultCilPrinterClass</a></h1></center> -<br> -<pre><span class="keyword">class</span> <a name="TYPEdefaultCilPrinterClass"></a>defaultCilPrinterClass : <code class="type"></code><code class="type"><a href="Cil.cilPrinter.html">cilPrinter</a></code></pre><hr width="100%"> -</body></html>
\ No newline at end of file diff --git a/cil/doc/api/Cil.html b/cil/doc/api/Cil.html deleted file mode 100644 index f2e09c27..00000000 --- a/cil/doc/api/Cil.html +++ /dev/null @@ -1,3337 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<link rel="Start" href="index.html"> -<link rel="previous" href="Stats.html"> -<link rel="next" href="Formatcil.html"> -<link rel="Up" 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.5) : Cil</title> -</head> -<body> -<div class="navbar"><a href="Stats.html">Previous</a> - <a href="index.html">Up</a> - <a href="Formatcil.html">Next</a> -</div> -<center><h1>Module <a href="type_Cil.html">Cil</a></h1></center> -<br> -<pre><span class="keyword">module</span> Cil: <code class="code">sig</code> <a href="Cil.html">..</a> <code class="code">end</code></pre>CIL API Documentation. An html version of this document can be found at - http://manju.cs.berkeley.edu/cil.<br> -<hr width="100%"> -<pre><span class="keyword">val</span> <a name="VALinitCIL"></a>initCIL : <code class="type">unit -> unit</code></pre><div class="info"> -Call this function to perform some initialization. Call if after you have - set <a href="Cil.html#VALmsvcMode"><code class="code">Cil.msvcMode</code></a>.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcilVersion"></a>cilVersion : <code class="type">string</code></pre><div class="info"> -This are the CIL version numbers. A CIL version is a number of the form - M.m.r (major, minor and release)<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcilVersionMajor"></a>cilVersionMajor : <code class="type">int</code></pre><pre><span class="keyword">val</span> <a name="VALcilVersionMinor"></a>cilVersionMinor : <code class="type">int</code></pre><pre><span class="keyword">val</span> <a name="VALcilVersionRevision"></a>cilVersionRevision : <code class="type">int</code></pre><br> -This module defines the abstract syntax of CIL. It also provides utility - functions for traversing the CIL data structures, and pretty-printing - them. The parser for both the GCC and MSVC front-ends can be invoked as - <code class="code">Frontc.parse: string -> unit -></code> <a href="Cil.html#TYPEfile"><code class="code">Cil.file</code></a>. This function must be given - the name of a preprocessed C file and will return the top-level data - structure that describes a whole source file. By default the parsing and - elaboration into CIL is done as for GCC source. If you want to use MSVC - source you must set the <a href="Cil.html#VALmsvcMode"><code class="code">Cil.msvcMode</code></a> to <code class="code">true</code> and must also invoke the - function <code class="code">Frontc.setMSVCMode: unit -> unit</code>.<br> -<br> -<b>The Abstract Syntax of CIL</b><br> -<br> -The top-level representation of a CIL source file (and the result of the - parsing and elaboration). Its main contents is the list of global - declarations and definitions. You can iterate over the globals in a - <a href="Cil.html#TYPEfile"><code class="code">Cil.file</code></a> using the following iterators: <a href="Cil.html#VALmapGlobals"><code class="code">Cil.mapGlobals</code></a>, - <a href="Cil.html#VALiterGlobals"><code class="code">Cil.iterGlobals</code></a> and <a href="Cil.html#VALfoldGlobals"><code class="code">Cil.foldGlobals</code></a>. You can also use the - <a href="Cil.html#VALdummyFile"><code class="code">Cil.dummyFile</code></a> when you need a <a href="Cil.html#TYPEfile"><code class="code">Cil.file</code></a> as a placeholder. For each - global item CIL stores the source location where it appears (using the - type <a href="Cil.html#TYPElocation"><code class="code">Cil.location</code></a>)<br> -<br><code><span class="keyword">type</span> <a name="TYPEfile"></a><code class="type"></code>file = {</code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>fileName : <code class="type">string</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The complete file name</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>globals : <code class="type"><a href="Cil.html#TYPEglobal">global</a> list</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>List of globals as they will appear - in the printed file</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>globinit : <code class="type"><a href="Cil.html#TYPEfundec">fundec</a> option</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>An optional global initializer function. This is a function where - you can put stuff that must be executed before the program is - started. This function, is conceptually at the end of the file, - although it is not part of the globals list. Use <a href="Cil.html#VALgetGlobInit"><code class="code">Cil.getGlobInit</code></a> - to create/get one.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>globinitcalled : <code class="type">bool</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Whether the global initialization function is called in main. This - should always be false if there is no global initializer. When you - create a global initialization CIL will try to insert code in main - to call it. This will not happen if your file does not contain a - function called "main"</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> -} - -<div class="info"> -Top-level representation of a C source file<br> -</div> - -<pre><span class="keyword">type</span> <a name="TYPEcomment"></a><code class="type"></code>comment = <code class="type"><a href="Cil.html#TYPElocation">location</a> * string</code> </pre> - -<br> -<b>Globals</b>. The main type for representing global declarations and - definitions. A list of these form a CIL file. The order of globals in the - file is generally important.<br> -<br><code><span class="keyword">type</span> <a name="TYPEglobal"></a><code class="type"></code>global = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">GType</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEtypeinfo">typeinfo</a> * <a href="Cil.html#TYPElocation">location</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A typedef. All uses of type names (through the <code class="code">TNamed</code> constructor) - must be preceded in the file by a definition of the name. The string - is the defined name and always not-empty.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">GCompTag</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEcompinfo">compinfo</a> * <a href="Cil.html#TYPElocation">location</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Defines a struct/union tag with some fields. There must be one of - these for each struct/union tag that you use (through the <code class="code">TComp</code> - constructor) since this is the only context in which the fields are - printed. Consequently nested structure tag definitions must be - broken into individual definitions with the innermost structure - defined first.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">GCompTagDecl</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEcompinfo">compinfo</a> * <a href="Cil.html#TYPElocation">location</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Declares a struct/union tag. Use as a forward declaration. This is - printed without the fields.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">GEnumTag</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEenuminfo">enuminfo</a> * <a href="Cil.html#TYPElocation">location</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Declares an enumeration tag with some fields. There must be one of - these for each enumeration tag that you use (through the <code class="code">TEnum</code> - constructor) since this is the only context in which the items are - printed.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">GEnumTagDecl</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEenuminfo">enuminfo</a> * <a href="Cil.html#TYPElocation">location</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Declares an enumeration tag. Use as a forward declaration. This is - printed without the items.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">GVarDecl</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEvarinfo">varinfo</a> * <a href="Cil.html#TYPElocation">location</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A variable declaration (not a definition). If the variable has a - function type then this is a prototype. There can be several - declarations and at most one definition for a given variable. If both - forms appear then they must share the same varinfo structure. A - prototype shares the varinfo with the fundec of the definition. Either - has storage Extern or there must be a definition in this file</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">GVar</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEvarinfo">varinfo</a> * <a href="Cil.html#TYPEinitinfo">initinfo</a> * <a href="Cil.html#TYPElocation">location</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A variable definition. Can have an initializer. The initializer is - updateable so that you can change it without requiring to recreate - the list of globals. There can be at most one definition for a - variable in an entire program. Cannot have storage Extern or function - type.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">GFun</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEfundec">fundec</a> * <a href="Cil.html#TYPElocation">location</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A function definition.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">GAsm</span> <span class="keyword">of</span> <code class="type">string * <a href="Cil.html#TYPElocation">location</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Global asm statement. These ones - can contain only a template</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">GPragma</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEattribute">attribute</a> * <a href="Cil.html#TYPElocation">location</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Pragmas at top level. Use the same - syntax as attributes</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">GText</span> <span class="keyword">of</span> <code class="type">string</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Some text (printed verbatim) at - top level. E.g., this way you can - put comments in the output.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> - -<div class="info"> -A global declaration or definition<br> -</div> - -<br> -<b>Types</b>. A C type is represented in CIL using the type <a href="Cil.html#TYPEtyp"><code class="code">Cil.typ</code></a>. - Among types we differentiate the integral types (with different kinds - denoting the sign and precision), floating point types, enumeration types, - array and pointer types, and function types. Every type is associated with - a list of attributes, which are always kept in sorted order. Use - <a href="Cil.html#VALaddAttribute"><code class="code">Cil.addAttribute</code></a> and <a href="Cil.html#VALaddAttributes"><code class="code">Cil.addAttributes</code></a> to construct list of - attributes. If you want to inspect a type, you should use - <a href="Cil.html#VALunrollType"><code class="code">Cil.unrollType</code></a> or <a href="Cil.html#VALunrollTypeDeep"><code class="code">Cil.unrollTypeDeep</code></a> to see through the uses of - named types.<br> -<br> -CIL is configured at build-time with the sizes and alignments of the - underlying compiler (GCC or MSVC). CIL contains functions that can compute - the size of a type (in bits) <a href="Cil.html#VALbitsSizeOf"><code class="code">Cil.bitsSizeOf</code></a>, the alignment of a type - (in bytes) <a href="Cil.html#VALalignOf_int"><code class="code">Cil.alignOf_int</code></a>, and can convert an offset into a start and - width (both in bits) using the function <a href="Cil.html#VALbitsOffset"><code class="code">Cil.bitsOffset</code></a>. At the moment - these functions do not take into account the <code class="code">packed</code> attributes and - pragmas.<br> -<br><code><span class="keyword">type</span> <a name="TYPEtyp"></a><code class="type"></code>typ = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">TVoid</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEattributes">attributes</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Void type. Also predefined as <a href="Cil.html#VALvoidType"><code class="code">Cil.voidType</code></a></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">TInt</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEikind">ikind</a> * <a href="Cil.html#TYPEattributes">attributes</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>An integer type. The kind specifies the sign and width. Several - useful variants are predefined as <a href="Cil.html#VALintType"><code class="code">Cil.intType</code></a>, <a href="Cil.html#VALuintType"><code class="code">Cil.uintType</code></a>, - <a href="Cil.html#VALlongType"><code class="code">Cil.longType</code></a>, <a href="Cil.html#VALcharType"><code class="code">Cil.charType</code></a>.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">TFloat</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEfkind">fkind</a> * <a href="Cil.html#TYPEattributes">attributes</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A floating-point type. The kind specifies the precision. You can - also use the predefined constant <a href="Cil.html#VALdoubleType"><code class="code">Cil.doubleType</code></a>.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">TPtr</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEtyp">typ</a> * <a href="Cil.html#TYPEattributes">attributes</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Pointer type. Several useful variants are predefined as - <a href="Cil.html#VALcharPtrType"><code class="code">Cil.charPtrType</code></a>, <a href="Cil.html#VALcharConstPtrType"><code class="code">Cil.charConstPtrType</code></a> (pointer to a - constant character), <a href="Cil.html#VALvoidPtrType"><code class="code">Cil.voidPtrType</code></a>, - <a href="Cil.html#VALintPtrType"><code class="code">Cil.intPtrType</code></a></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">TArray</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEtyp">typ</a> * <a href="Cil.html#TYPEexp">exp</a> option * <a href="Cil.html#TYPEattributes">attributes</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Array type. It indicates the base type and the array length.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">TFun</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEtyp">typ</a> * (string * <a href="Cil.html#TYPEtyp">typ</a> * <a href="Cil.html#TYPEattributes">attributes</a>) list option * bool<br> * <a href="Cil.html#TYPEattributes">attributes</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Function type. Indicates the type of the result, the name, type - and name attributes of the formal arguments (<code class="code">None</code> if no - arguments were specified, as in a function whose definition or - prototype we have not seen; <code class="code">Some []</code> means void). Use - <a href="Cil.html#VALargsToList"><code class="code">Cil.argsToList</code></a> to obtain a list of arguments. The boolean - indicates if it is a variable-argument function. If this is the - type of a varinfo for which we have a function declaration then - the information for the formals must match that in the - function's sformals. Use <a href="Cil.html#VALsetFormals"><code class="code">Cil.setFormals</code></a>, or - <a href="Cil.html#VALsetFunctionType"><code class="code">Cil.setFunctionType</code></a>, or <a href="Cil.html#VALmakeFormalVar"><code class="code">Cil.makeFormalVar</code></a> for this - purpose.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">TNamed</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEtypeinfo">typeinfo</a> * <a href="Cil.html#TYPEattributes">attributes</a></code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">TComp</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEcompinfo">compinfo</a> * <a href="Cil.html#TYPEattributes">attributes</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The most delicate issue for C types is that recursion that is possible by - using structures and pointers. To address this issue we have a more - complex representation for structured types (struct and union). Each such - type is represented using the <a href="Cil.html#TYPEcompinfo"><code class="code">Cil.compinfo</code></a> type. For each composite - type the <a href="Cil.html#TYPEcompinfo"><code class="code">Cil.compinfo</code></a> structure must be declared at top level using - <code class="code">GCompTag</code> and all references to it must share the same copy of the - structure. The attributes given are those pertaining to this use of the - type and are in addition to the attributes that were given at the - definition of the type and which are stored in the <a href="Cil.html#TYPEcompinfo"><code class="code">Cil.compinfo</code></a>.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">TEnum</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEenuminfo">enuminfo</a> * <a href="Cil.html#TYPEattributes">attributes</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A reference to an enumeration type. All such references must - share the enuminfo among them and with a <code class="code">GEnumTag</code> global that - precedes all uses. The attributes refer to this use of the - enumeration and are in addition to the attributes of the - enumeration itself, which are stored inside the enuminfo</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">TBuiltin_va_list</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEattributes">attributes</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>This is the same as the gcc's type with the same name</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> - - -<br> -There are a number of functions for querying the kind of a type. These are - <a href="Cil.html#VALisIntegralType"><code class="code">Cil.isIntegralType</code></a>, - <a href="Cil.html#VALisArithmeticType"><code class="code">Cil.isArithmeticType</code></a>, - <a href="Cil.html#VALisPointerType"><code class="code">Cil.isPointerType</code></a>, - <a href="Cil.html#VALisFunctionType"><code class="code">Cil.isFunctionType</code></a>, - <a href="Cil.html#VALisArrayType"><code class="code">Cil.isArrayType</code></a>. -<p> - - There are two easy ways to scan a type. First, you can use the -<a href="Cil.html#VALexistsType"><code class="code">Cil.existsType</code></a> to return a boolean answer about a type. This function -is controlled by a user-provided function that is queried for each type that is -used to construct the current type. The function can specify whether to -terminate the scan with a boolean result or to continue the scan for the -nested types. -<p> - - The other method for scanning types is provided by the visitor interface (see - <a href="Cil.cilVisitor.html"><code class="code">Cil.cilVisitor</code></a>). -<p> - - If you want to compare types (or to use them as hash-values) then you should -use instead type signatures (represented as <a href="Cil.html#TYPEtypsig"><code class="code">Cil.typsig</code></a>). These -contain the same information as types but canonicalized such that simple Ocaml -structural equality will tell whether two types are equal. Use -<a href="Cil.html#VALtypeSig"><code class="code">Cil.typeSig</code></a> to compute the signature of a type. If you want to ignore -certain type attributes then use <a href="Cil.html#VALtypeSigWithAttrs"><code class="code">Cil.typeSigWithAttrs</code></a>.<br> -<br><code><span class="keyword">type</span> <a name="TYPEikind"></a><code class="type"></code>ikind = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">IChar</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code><code class="code">char</code></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">ISChar</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code><code class="code">signed char</code></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">IUChar</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code><code class="code">unsigned char</code></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">IInt</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code><code class="code">int</code></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">IUInt</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code><code class="code">unsigned int</code></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">IShort</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code><code class="code">short</code></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">IUShort</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code><code class="code">unsigned short</code></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">ILong</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code><code class="code">long</code></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">IULong</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code><code class="code">unsigned long</code></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">ILongLong</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code><code class="code">long long</code> (or <code class="code">_int64</code> on Microsoft Visual C)</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">IULongLong</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code><code class="code">unsigned long long</code> (or <code class="code">unsigned _int64</code> on Microsoft - Visual C)</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> - -<div class="info"> -Various kinds of integers<br> -</div> - -<br><code><span class="keyword">type</span> <a name="TYPEfkind"></a><code class="type"></code>fkind = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">FFloat</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code><code class="code">float</code></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">FDouble</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code><code class="code">double</code></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">FLongDouble</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code><code class="code">long double</code></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> - -<div class="info"> -Various kinds of floating-point numbers<br> -</div> - -<br> -<b>Attributes.</b><br> -<br><code><span class="keyword">type</span> <a name="TYPEattribute"></a><code class="type"></code>attribute = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Attr</span> <span class="keyword">of</span> <code class="type">string * <a href="Cil.html#TYPEattrparam">attrparam</a> list</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>An attribute has a name and some optional parameters. The name should not - start or end with underscore. When CIL parses attribute names it will - strip leading and ending underscores (to ensure that the multitude of GCC - attributes such as const, __const and __const__ all mean the same thing.)</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> - - -<pre><span class="keyword">type</span> <a name="TYPEattributes"></a><code class="type"></code>attributes = <code class="type"><a href="Cil.html#TYPEattribute">attribute</a> list</code> </pre> -<div class="info"> -Attributes are lists sorted by the attribute name. Use the functions - <a href="Cil.html#VALaddAttribute"><code class="code">Cil.addAttribute</code></a> and <a href="Cil.html#VALaddAttributes"><code class="code">Cil.addAttributes</code></a> to insert attributes in an - attribute list and maintain the sortedness.<br> -</div> - -<br><code><span class="keyword">type</span> <a name="TYPEattrparam"></a><code class="type"></code>attrparam = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">AInt</span> <span class="keyword">of</span> <code class="type">int</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>An integer constant</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">AStr</span> <span class="keyword">of</span> <code class="type">string</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A string constant</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">ACons</span> <span class="keyword">of</span> <code class="type">string * <a href="Cil.html#TYPEattrparam">attrparam</a> list</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Constructed attributes. These - are printed <code class="code">foo(a1,a2,...,an)</code>. - The list of parameters can be - empty and in that case the - parentheses are not printed.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">ASizeOf</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEtyp">typ</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A way to talk about types</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">ASizeOfE</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEattrparam">attrparam</a></code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">ASizeOfS</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEtypsig">typsig</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Replacement for ASizeOf in type - signatures. Only used for - attributes inside typsigs.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">AAlignOf</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEtyp">typ</a></code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">AAlignOfE</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEattrparam">attrparam</a></code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">AAlignOfS</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEtypsig">typsig</a></code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">AUnOp</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEunop">unop</a> * <a href="Cil.html#TYPEattrparam">attrparam</a></code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">ABinOp</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEbinop">binop</a> * <a href="Cil.html#TYPEattrparam">attrparam</a> * <a href="Cil.html#TYPEattrparam">attrparam</a></code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">ADot</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEattrparam">attrparam</a> * string</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>a.foo *</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> - -<div class="info"> -The type of parameters of attributes<br> -</div> - -<br> -<b>Structures.</b> The <a href="Cil.html#TYPEcompinfo"><code class="code">Cil.compinfo</code></a> describes the definition of a - structure or union type. Each such <a href="Cil.html#TYPEcompinfo"><code class="code">Cil.compinfo</code></a> must be defined at the - top-level using the <code class="code">GCompTag</code> constructor and must be shared by all - references to this type (using either the <code class="code">TComp</code> type constructor or from - the definition of the fields. -<p> - - If all you need is to scan the definition of each - composite type once, you can do that by scanning all top-level <code class="code">GCompTag</code>. -<p> - - Constructing a <a href="Cil.html#TYPEcompinfo"><code class="code">Cil.compinfo</code></a> can be tricky since it must contain fields - that might refer to the host <a href="Cil.html#TYPEcompinfo"><code class="code">Cil.compinfo</code></a> and furthermore the type of - the field might need to refer to the <a href="Cil.html#TYPEcompinfo"><code class="code">Cil.compinfo</code></a> for recursive types. - Use the <a href="Cil.html#VALmkCompInfo"><code class="code">Cil.mkCompInfo</code></a> function to create a <a href="Cil.html#TYPEcompinfo"><code class="code">Cil.compinfo</code></a>. You can - easily fetch the <a href="Cil.html#TYPEfieldinfo"><code class="code">Cil.fieldinfo</code></a> for a given field in a structure with - <a href="Cil.html#VALgetCompField"><code class="code">Cil.getCompField</code></a>.<br> -<br><code><span class="keyword">type</span> <a name="TYPEcompinfo"></a><code class="type"></code>compinfo = {</code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>cstruct : <code class="type">bool</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>True if struct, False if union</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>cname : <code class="type">string</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The name. Always non-empty. Use <a href="Cil.html#VALcompFullName"><code class="code">Cil.compFullName</code></a> to get the full - name of a comp (along with the struct or union)</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>ckey : <code class="type">int</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A unique integer. This is assigned by <a href="Cil.html#VALmkCompInfo"><code class="code">Cil.mkCompInfo</code></a> using a - global variable in the Cil module. Thus two identical structs in two - different files might have different keys. Use <a href="Cil.html#VALcopyCompInfo"><code class="code">Cil.copyCompInfo</code></a> to - copy structures so that a new key is assigned.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>cfields : <code class="type"><a href="Cil.html#TYPEfieldinfo">fieldinfo</a> list</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Information about the fields. Notice that each fieldinfo has a - pointer back to the host compinfo. This means that you should not - share fieldinfo's between two compinfo's</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>cattr : <code class="type"><a href="Cil.html#TYPEattributes">attributes</a></code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The attributes that are defined at the same time as the composite - type. These attributes can be supplemented individually at each - reference to this <code class="code">compinfo</code> using the <code class="code">TComp</code> type constructor.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>cdefined : <code class="type">bool</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>This boolean flag can be used to distinguish between structures - that have not been defined and those that have been defined but have - no fields (such things are allowed in gcc).</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>creferenced : <code class="type">bool</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>True if used. Initially set to false.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> -} - -<div class="info"> -The definition of a structure or union type. Use <a href="Cil.html#VALmkCompInfo"><code class="code">Cil.mkCompInfo</code></a> to - make one and use <a href="Cil.html#VALcopyCompInfo"><code class="code">Cil.copyCompInfo</code></a> to copy one (this ensures that a new - key is assigned and that the fields have the right pointers to parents.).<br> -</div> - -<br> -<b>Structure fields.</b> The <a href="Cil.html#TYPEfieldinfo"><code class="code">Cil.fieldinfo</code></a> structure is used to describe - a structure or union field. Fields, just like variables, can have - attributes associated with the field itself or associated with the type of - the field (stored along with the type of the field).<br> -<br><code><span class="keyword">type</span> <a name="TYPEfieldinfo"></a><code class="type"></code>fieldinfo = {</code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>fcomp : <code class="type"><a href="Cil.html#TYPEcompinfo">compinfo</a></code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The host structure that contains this field. There can be only one - <code class="code">compinfo</code> that contains the field.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>fname : <code class="type">string</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The name of the field. Might be the value of <a href="Cil.html#VALmissingFieldName"><code class="code">Cil.missingFieldName</code></a> - in which case it must be a bitfield and is not printed and it does not - participate in initialization</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>ftype : <code class="type"><a href="Cil.html#TYPEtyp">typ</a></code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The type</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>fbitfield : <code class="type">int option</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>If a bitfield then ftype should be an integer type and the width of - the bitfield must be 0 or a positive integer smaller or equal to the - width of the integer type. A field of width 0 is used in C to control - the alignment of fields.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>fattr : <code class="type"><a href="Cil.html#TYPEattributes">attributes</a></code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The attributes for this field (not for its type)</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>floc : <code class="type"><a href="Cil.html#TYPElocation">location</a></code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The location where this field is defined</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> -} - -<div class="info"> -Information about a struct/union field<br> -</div> - -<br> -<b>Enumerations.</b> Information about an enumeration. This is shared by all - references to an enumeration. Make sure you have a <code class="code">GEnumTag</code> for each of - of these.<br> -<br><code><span class="keyword">type</span> <a name="TYPEenuminfo"></a><code class="type"></code>enuminfo = {</code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>ename : <code class="type">string</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The name. Always non-empty.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>eitems : <code class="type">(string * <a href="Cil.html#TYPEexp">exp</a> * <a href="Cil.html#TYPElocation">location</a>) list</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Items with names and values. This list should be non-empty. The item - values must be compile-time constants.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>eattr : <code class="type"><a href="Cil.html#TYPEattributes">attributes</a></code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The attributes that are defined at the same time as the enumeration - type. These attributes can be supplemented individually at each - reference to this <code class="code">enuminfo</code> using the <code class="code">TEnum</code> type constructor.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>ereferenced : <code class="type">bool</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>True if used. Initially set to false</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> -} - -<div class="info"> -Information about an enumeration<br> -</div> - -<br> -<b>Enumerations.</b> Information about an enumeration. This is shared by all - references to an enumeration. Make sure you have a <code class="code">GEnumTag</code> for each of - of these.<br> -<br><code><span class="keyword">type</span> <a name="TYPEtypeinfo"></a><code class="type"></code>typeinfo = {</code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>tname : <code class="type">string</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The name. Can be empty only in a <code class="code">GType</code> when introducing a composite - or enumeration tag. If empty cannot be referred to from the file</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>ttype : <code class="type"><a href="Cil.html#TYPEtyp">typ</a></code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The actual type. This includes the attributes that were present in - the typedef</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>treferenced : <code class="type">bool</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>True if used. Initially set to false</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> -} - -<div class="info"> -Information about a defined type<br> -</div> - -<br> -<b>Variables.</b> - Each local or global variable is represented by a unique <a href="Cil.html#TYPEvarinfo"><code class="code">Cil.varinfo</code></a> -structure. A global <a href="Cil.html#TYPEvarinfo"><code class="code">Cil.varinfo</code></a> can be introduced with the <code class="code">GVarDecl</code> or -<code class="code">GVar</code> or <code class="code">GFun</code> globals. A local varinfo can be introduced as part of a -function definition <a href="Cil.html#TYPEfundec"><code class="code">Cil.fundec</code></a>. -<p> - - All references to a given global or local variable must refer to the same -copy of the <code class="code">varinfo</code>. Each <code class="code">varinfo</code> has a globally unique identifier that -can be used to index maps and hashtables (the name can also be used for this -purpose, except for locals from different functions). This identifier is -constructor using a global counter. -<p> - - It is very important that you construct <code class="code">varinfo</code> structures using only one - of the following functions:<ul> -<li><a href="Cil.html#VALmakeGlobalVar"><code class="code">Cil.makeGlobalVar</code></a> : to make a global variable</li> -<li><a href="Cil.html#VALmakeTempVar"><code class="code">Cil.makeTempVar</code></a> : to make a temporary local variable whose name -will be generated so that to avoid conflict with other locals. </li> -<li><a href="Cil.html#VALmakeLocalVar"><code class="code">Cil.makeLocalVar</code></a> : like <a href="Cil.html#VALmakeTempVar"><code class="code">Cil.makeTempVar</code></a> but you can specify the -exact name to be used. </li> -<li><a href="Cil.html#VALcopyVarinfo"><code class="code">Cil.copyVarinfo</code></a>: make a shallow copy of a varinfo assigning a new name -and a new unique identifier</li> -</ul> - - A <code class="code">varinfo</code> is also used in a function type to denote the list of formals.<br> -<br><code><span class="keyword">type</span> <a name="TYPEvarinfo"></a><code class="type"></code>varinfo = {</code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>vname : <code class="type">string</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The name of the variable. Cannot be empty. It is primarily your - responsibility to ensure the uniqueness of a variable name. For local - variables <a href="Cil.html#VALmakeTempVar"><code class="code">Cil.makeTempVar</code></a> helps you ensure that the name is unique.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>vtype : <code class="type"><a href="Cil.html#TYPEtyp">typ</a></code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The declared type of the variable.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>vattr : <code class="type"><a href="Cil.html#TYPEattributes">attributes</a></code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A list of attributes associated with the variable.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>vstorage : <code class="type"><a href="Cil.html#TYPEstorage">storage</a></code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The storage-class</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>vglob : <code class="type">bool</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>True if this is a global variable</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>vinline : <code class="type">bool</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Whether this varinfo is for an inline function.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>vdecl : <code class="type"><a href="Cil.html#TYPElocation">location</a></code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Location of variable declaration.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>vid : <code class="type">int</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A unique integer identifier. This field will be - set for you if you use one of the <a href="Cil.html#VALmakeFormalVar"><code class="code">Cil.makeFormalVar</code></a>, - <a href="Cil.html#VALmakeLocalVar"><code class="code">Cil.makeLocalVar</code></a>, <a href="Cil.html#VALmakeTempVar"><code class="code">Cil.makeTempVar</code></a>, <a href="Cil.html#VALmakeGlobalVar"><code class="code">Cil.makeGlobalVar</code></a>, or - <a href="Cil.html#VALcopyVarinfo"><code class="code">Cil.copyVarinfo</code></a>.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>vaddrof : <code class="type">bool</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>True if the address of this variable is taken. CIL will set these - flags when it parses C, but you should make sure to set the flag - whenever your transformation create <code class="code">AddrOf</code> expression.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>vreferenced : <code class="type">bool</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>True if this variable is ever referenced. This is computed by - <code class="code">removeUnusedVars</code>. It is safe to just initialize this to False</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> -} - -<div class="info"> -Information about a variable.<br> -</div> - -<br><code><span class="keyword">type</span> <a name="TYPEstorage"></a><code class="type"></code>storage = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">NoStorage</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The default storage. Nothing is printed</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Static</span></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Register</span></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Extern</span></code></td> - -</tr></table> - -<div class="info"> -Storage-class information<br> -</div> - -<br> -<b>Expressions.</b> The CIL expression language contains only the side-effect free expressions of -C. They are represented as the type <a href="Cil.html#TYPEexp"><code class="code">Cil.exp</code></a>. There are several -interesting aspects of CIL expressions: -<p> - - Integer and floating point constants can carry their textual representation. -This way the integer 15 can be printed as 0xF if that is how it occurred in the -source. -<p> - - CIL uses 64 bits to represent the integer constants and also stores the width -of the integer type. Care must be taken to ensure that the constant is -representable with the given width. Use the functions <a href="Cil.html#VALkinteger"><code class="code">Cil.kinteger</code></a>, -<a href="Cil.html#VALkinteger64"><code class="code">Cil.kinteger64</code></a> and <a href="Cil.html#VALinteger"><code class="code">Cil.integer</code></a> to construct constant -expressions. CIL predefines the constants <a href="Cil.html#VALzero"><code class="code">Cil.zero</code></a>, -<a href="Cil.html#VALone"><code class="code">Cil.one</code></a> and <a href="Cil.html#VALmone"><code class="code">Cil.mone</code></a> (for -1). -<p> - - Use the functions <a href="Cil.html#VALisConstant"><code class="code">Cil.isConstant</code></a> and <a href="Cil.html#VALisInteger"><code class="code">Cil.isInteger</code></a> to test if -an expression is a constant and a constant integer respectively. -<p> - - CIL keeps the type of all unary and binary expressions. You can think of that -type qualifying the operator. Furthermore there are different operators for -arithmetic and comparisons on arithmetic types and on pointers. -<p> - - Another unusual aspect of CIL is that the implicit conversion between an -expression of array type and one of pointer type is made explicit, using the -<code class="code">StartOf</code> expression constructor (which is not printed). If you apply the -<code class="code">AddrOf}</code>constructor to an lvalue of type <code class="code">T</code> then you will be getting an -expression of type <code class="code">TPtr(T)</code>. -<p> - - You can find the type of an expression with <a href="Cil.html#VALtypeOf"><code class="code">Cil.typeOf</code></a>. -<p> - - You can perform constant folding on expressions using the function -<a href="Cil.html#VALconstFold"><code class="code">Cil.constFold</code></a>.<br> -<br><code><span class="keyword">type</span> <a name="TYPEexp"></a><code class="type"></code>exp = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Const</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEconstant">constant</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Constant</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Lval</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPElval">lval</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Lvalue</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">SizeOf</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEtyp">typ</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>sizeof(<type>). Has <code class="code">unsigned int</code> type (ISO 6.5.3.4). This is not - turned into a constant because some transformations might want to - change types</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">SizeOfE</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEexp">exp</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>sizeof(<expression>)</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">SizeOfStr</span> <span class="keyword">of</span> <code class="type">string</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>sizeof(string_literal). We separate this case out because this is the - only instance in which a string literal should not be treated as - having type pointer to character.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">AlignOf</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEtyp">typ</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>This corresponds to the GCC __alignof_. Has <code class="code">unsigned int</code> type</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">AlignOfE</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEexp">exp</a></code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">UnOp</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEunop">unop</a> * <a href="Cil.html#TYPEexp">exp</a> * <a href="Cil.html#TYPEtyp">typ</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Unary operation. Includes the type of the result.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">BinOp</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEbinop">binop</a> * <a href="Cil.html#TYPEexp">exp</a> * <a href="Cil.html#TYPEexp">exp</a> * <a href="Cil.html#TYPEtyp">typ</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Binary operation. Includes the type of the result. The arithmetic - conversions are made explicit for the arguments.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">CastE</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEtyp">typ</a> * <a href="Cil.html#TYPEexp">exp</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Use <a href="Cil.html#VALmkCast"><code class="code">Cil.mkCast</code></a> to make casts.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">AddrOf</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPElval">lval</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Always use <a href="Cil.html#VALmkAddrOf"><code class="code">Cil.mkAddrOf</code></a> to construct one of these. Apply to an - lvalue of type <code class="code">T</code> yields an expression of type <code class="code">TPtr(T)</code></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">StartOf</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPElval">lval</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Conversion from an array to a pointer to the beginning of the array. - Given an lval of type <code class="code">TArray(T)</code> produces an expression of type - <code class="code">TPtr(T)</code>. In C this operation is implicit, the <code class="code">StartOf</code> operator is - not printed. We have it in CIL because it makes the typing rules - simpler.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> - -<div class="info"> -Expressions (Side-effect free)<br> -</div> - -<br> -<b>Constants.</b><br> -<br><code><span class="keyword">type</span> <a name="TYPEconstant"></a><code class="type"></code>constant = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">CInt64</span> <span class="keyword">of</span> <code class="type">int64 * <a href="Cil.html#TYPEikind">ikind</a> * string option</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Integer constant. Give the ikind (see ISO9899 6.1.3.2) and the - textual representation, if available. (This allows us to print a - constant as, for example, 0xF instead of 15.) Use <a href="Cil.html#VALinteger"><code class="code">Cil.integer</code></a> or - <a href="Cil.html#VALkinteger"><code class="code">Cil.kinteger</code></a> to create these. Watch out for integers that cannot be - represented on 64 bits. OCAML does not give Overflow exceptions.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">CStr</span> <span class="keyword">of</span> <code class="type">string</code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">CWStr</span> <span class="keyword">of</span> <code class="type">int64 list</code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">CChr</span> <span class="keyword">of</span> <code class="type">char</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Character constant. This has type int, so use charConstToInt - to read the value in case sign-extension is needed.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">CReal</span> <span class="keyword">of</span> <code class="type">float * <a href="Cil.html#TYPEfkind">fkind</a> * string option</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Floating point constant. Give the fkind (see ISO 6.4.4.2) and also - the textual representation, if available.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">CEnum</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEexp">exp</a> * string * <a href="Cil.html#TYPEenuminfo">enuminfo</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>An enumeration constant with the given value, name, from the given - enuminfo. This is used only if <a href="Cil.html#VALlowerConstants"><code class="code">Cil.lowerConstants</code></a> is true - (default). Use <a href="Cil.html#VALconstFoldVisitor"><code class="code">Cil.constFoldVisitor</code></a> to replace these with integer - constants.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> - -<div class="info"> -Literal constants<br> -</div> - -<br><code><span class="keyword">type</span> <a name="TYPEunop"></a><code class="type"></code>unop = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Neg</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Unary minus</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">BNot</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Bitwise complement (~)</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">LNot</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Logical Not (!)</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> - -<div class="info"> -Unary operators<br> -</div> - -<br><code><span class="keyword">type</span> <a name="TYPEbinop"></a><code class="type"></code>binop = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">PlusA</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>arithmetic +</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">PlusPI</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>pointer + integer</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">IndexPI</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>pointer + integer but only when - it arises from an expression - <code class="code">e[i]</code> when <code class="code">e</code> is a pointer and - not an array. This is semantically - the same as PlusPI but CCured uses - this as a hint that the integer is - probably positive.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">MinusA</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>arithmetic -</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">MinusPI</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>pointer - integer</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">MinusPP</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>pointer - pointer</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Mult</span></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Div</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>/</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Mod</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>%</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Shiftlt</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>shift left</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Shiftrt</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>shift right</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Lt</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>< (arithmetic comparison)</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Gt</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>> (arithmetic comparison)</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Le</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code><= (arithmetic comparison)</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Ge</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>> (arithmetic comparison)</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Eq</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>== (arithmetic comparison)</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Ne</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>!= (arithmetic comparison)</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">BAnd</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>bitwise and</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">BXor</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>exclusive-or</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">BOr</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>inclusive-or</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">LAnd</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>logical and. Unlike other - expressions this one does not - always evaluate both operands. If - you want to use these, you must - set <a href="Cil.html#VALuseLogicalOperators"><code class="code">Cil.useLogicalOperators</code></a>.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">LOr</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>logical or. Unlike other - expressions this one does not - always evaluate both operands. If - you want to use these, you must - set <a href="Cil.html#VALuseLogicalOperators"><code class="code">Cil.useLogicalOperators</code></a>.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> - -<div class="info"> -Binary operations<br> -</div> - -<br> -<b>Lvalues.</b> Lvalues are the sublanguage of expressions that can appear at the left of an assignment or as operand to the address-of operator. -In C the syntax for lvalues is not always a good indication of the meaning -of the lvalue. For example the C value -<pre> -a[0][1][2] -</pre> - might involve 1, 2 or 3 memory reads when used in an expression context, -depending on the declared type of the variable <code class="code">a</code>. If <code class="code">a</code> has type <code class="code">int -[4][4][4]</code> then we have one memory read from somewhere inside the area -that stores the array <code class="code">a</code>. On the other hand if <code class="code">a</code> has type <code class="code">int ***</code> then -the expression really means <code class="code">* ( * ( * (a + 0) + 1) + 2)</code>, in which case it is -clear that it involves three separate memory operations. -<p> - -An lvalue denotes the contents of a range of memory addresses. This range -is denoted as a host object along with an offset within the object. The -host object can be of two kinds: a local or global variable, or an object -whose address is in a pointer expression. We distinguish the two cases so -that we can tell quickly whether we are accessing some component of a -variable directly or we are accessing a memory location through a pointer. -To make it easy to -tell what an lvalue means CIL represents lvalues as a host object and an -offset (see <a href="Cil.html#TYPElval"><code class="code">Cil.lval</code></a>). The host object (represented as -<a href="Cil.html#TYPElhost"><code class="code">Cil.lhost</code></a>) can be a local or global variable or can be the object -pointed-to by a pointer expression. The offset (represented as -<a href="Cil.html#TYPEoffset"><code class="code">Cil.offset</code></a>) is a sequence of field or array index designators. -<p> - - Both the typing rules and the meaning of an lvalue is very precisely -specified in CIL. -<p> - - The following are a few useful function for operating on lvalues:<ul> -<li><a href="Cil.html#VALmkMem"><code class="code">Cil.mkMem</code></a> - makes an lvalue of <code class="code">Mem</code> kind. Use this to ensure -that certain equivalent forms of lvalues are canonized. -For example, <code class="code">*&x = x</code>. </li> -<li><a href="Cil.html#VALtypeOfLval"><code class="code">Cil.typeOfLval</code></a> - the type of an lvalue</li> -<li><a href="Cil.html#VALtypeOffset"><code class="code">Cil.typeOffset</code></a> - the type of an offset, given the type of the -host. </li> -<li><a href="Cil.html#VALaddOffset"><code class="code">Cil.addOffset</code></a> and <a href="Cil.html#VALaddOffsetLval"><code class="code">Cil.addOffsetLval</code></a> - extend sequences -of offsets.</li> -<li><a href="Cil.html#VALremoveOffset"><code class="code">Cil.removeOffset</code></a> and <a href="Cil.html#VALremoveOffsetLval"><code class="code">Cil.removeOffsetLval</code></a> - shrink sequences -of offsets.</li> -</ul> - -The following equivalences hold <pre> -Mem(AddrOf(Mem a, aoff)), off = Mem a, aoff + off -Mem(AddrOf(Var v, aoff)), off = Var v, aoff + off -AddrOf (Mem a, NoOffset) = a -</pre><br> -<pre><span class="keyword">type</span> <a name="TYPElval"></a><code class="type"></code>lval = <code class="type"><a href="Cil.html#TYPElhost">lhost</a> * <a href="Cil.html#TYPEoffset">offset</a></code> </pre> -<div class="info"> -An lvalue<br> -</div> - -<br><code><span class="keyword">type</span> <a name="TYPElhost"></a><code class="type"></code>lhost = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Var</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEvarinfo">varinfo</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The host is a variable.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Mem</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEexp">exp</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The host is an object of type <code class="code">T</code> when the expression has pointer - <code class="code">TPtr(T)</code>.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> - -<div class="info"> -The host part of an <a href="Cil.html#TYPElval"><code class="code">Cil.lval</code></a>.<br> -</div> - -<br><code><span class="keyword">type</span> <a name="TYPEoffset"></a><code class="type"></code>offset = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">NoOffset</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>No offset. Can be applied to any lvalue and does - not change either the starting address or the type. - This is used when the lval consists of just a host - or as a terminator in a list of other kinds of - offsets.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Field</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEfieldinfo">fieldinfo</a> * <a href="Cil.html#TYPEoffset">offset</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A field offset. Can be applied only to an lvalue - that denotes a structure or a union that contains - the mentioned field. This advances the offset to the - beginning of the mentioned field and changes the - type to the type of the mentioned field.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Index</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEexp">exp</a> * <a href="Cil.html#TYPEoffset">offset</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>An array index offset. Can be applied only to an - lvalue that denotes an array. This advances the - starting address of the lval to the beginning of the - mentioned array element and changes the denoted type - to be the type of the array element</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> - -<div class="info"> -The offset part of an <a href="Cil.html#TYPElval"><code class="code">Cil.lval</code></a>. Each offset can be applied to certain - kinds of lvalues and its effect is that it advances the starting address - of the lvalue and changes the denoted type, essentially focusing to some - smaller lvalue that is contained in the original one.<br> -</div> - -<br> -<b>Initializers.</b> -A special kind of expressions are those that can appear as initializers for -global variables (initialization of local variables is turned into -assignments). The initializers are represented as type <a href="Cil.html#TYPEinit"><code class="code">Cil.init</code></a>. You -can create initializers with <a href="Cil.html#VALmakeZeroInit"><code class="code">Cil.makeZeroInit</code></a> and you can conveniently -scan compound initializers them with <a href="Cil.html#VALfoldLeftCompound"><code class="code">Cil.foldLeftCompound</code></a> or with <a href="Cil.html#VALfoldLeftCompoundAll"><code class="code">Cil.foldLeftCompoundAll</code></a>.<br> -<br><code><span class="keyword">type</span> <a name="TYPEinit"></a><code class="type"></code>init = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">SingleInit</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEexp">exp</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A single initializer</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">CompoundInit</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEtyp">typ</a> * (<a href="Cil.html#TYPEoffset">offset</a> * <a href="Cil.html#TYPEinit">init</a>) list</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Used only for initializers of structures, unions and arrays. The - offsets are all of the form <code class="code">Field(f, NoOffset)</code> or <code class="code">Index(i, - NoOffset)</code> and specify the field or the index being initialized. For - structures all fields must have an initializer (except the unnamed - bitfields), in the proper order. This is necessary since the offsets - are not printed. For unions there must be exactly one initializer. If - the initializer is not for the first field then a field designator is - printed, so you better be on GCC since MSVC does not understand this. - For arrays, however, we allow you to give only a prefix of the - initializers. You can scan an initializer list with - <a href="Cil.html#VALfoldLeftCompound"><code class="code">Cil.foldLeftCompound</code></a> or with <a href="Cil.html#VALfoldLeftCompoundAll"><code class="code">Cil.foldLeftCompoundAll</code></a>.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> - -<div class="info"> -Initializers for global variables.<br> -</div> - -<br><code><span class="keyword">type</span> <a name="TYPEinitinfo"></a><code class="type"></code>initinfo = {</code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>init : <code class="type"><a href="Cil.html#TYPEinit">init</a> option</code>;</code></td> - -</tr></table> -} - -<div class="info"> -We want to be able to update an initializer in a global variable, so we - define it as a mutable field<br> -</div> - -<br> -<b>Function definitions.</b> -A function definition is always introduced with a <code class="code">GFun</code> constructor at the -top level. All the information about the function is stored into a -<a href="Cil.html#TYPEfundec"><code class="code">Cil.fundec</code></a>. Some of the information (e.g. its name, type, -storage, attributes) is stored as a <a href="Cil.html#TYPEvarinfo"><code class="code">Cil.varinfo</code></a> that is a field of the -<code class="code">fundec</code>. To refer to the function from the expression language you must use -the <code class="code">varinfo</code>. -<p> - - The function definition contains, in addition to the body, a list of all the -local variables and separately a list of the formals. Both kind of variables -can be referred to in the body of the function. The formals must also be shared -with the formals that appear in the function type. For that reason, to -manipulate formals you should use the provided functions -<a href="Cil.html#VALmakeFormalVar"><code class="code">Cil.makeFormalVar</code></a> and <a href="Cil.html#VALsetFormals"><code class="code">Cil.setFormals</code></a> and <a href="Cil.html#VALmakeFormalVar"><code class="code">Cil.makeFormalVar</code></a>.<br> -<br><code><span class="keyword">type</span> <a name="TYPEfundec"></a><code class="type"></code>fundec = {</code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>svar : <code class="type"><a href="Cil.html#TYPEvarinfo">varinfo</a></code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Holds the name and type as a variable, so we can refer to it - easily from the program. All references to this function either - in a function call or in a prototype must point to the same - <code class="code">varinfo</code>.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>sformals : <code class="type"><a href="Cil.html#TYPEvarinfo">varinfo</a> list</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Formals. These must be in the same order and with the same - information as the formal information in the type of the function. - Use <a href="Cil.html#VALsetFormals"><code class="code">Cil.setFormals</code></a> or - <a href="Cil.html#VALsetFunctionType"><code class="code">Cil.setFunctionType</code></a> or <a href="Cil.html#VALmakeFormalVar"><code class="code">Cil.makeFormalVar</code></a> - to set these formals and ensure that they - are reflected in the function type. Do not make copies of these - because the body refers to them.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>slocals : <code class="type"><a href="Cil.html#TYPEvarinfo">varinfo</a> list</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Locals. Does NOT include the sformals. Do not make copies of - these because the body refers to them.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>smaxid : <code class="type">int</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Max local id. Starts at 0. Used for - creating the names of new temporary - variables. Updated by - <a href="Cil.html#VALmakeLocalVar"><code class="code">Cil.makeLocalVar</code></a> and - <a href="Cil.html#VALmakeTempVar"><code class="code">Cil.makeTempVar</code></a>. You can also use - <a href="Cil.html#VALsetMaxId"><code class="code">Cil.setMaxId</code></a> to set it after you - have added the formals and locals.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>sbody : <code class="type"><a href="Cil.html#TYPEblock">block</a></code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The function body.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>smaxstmtid : <code class="type">int option</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>max id of a (reachable) statement - in this function, if we have - computed it. range = 0 ... - (smaxstmtid-1). This is computed by - <a href="Cil.html#VALcomputeCFGInfo"><code class="code">Cil.computeCFGInfo</code></a>.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>sallstmts : <code class="type"><a href="Cil.html#TYPEstmt">stmt</a> list</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>After you call <a href="Cil.html#VALcomputeCFGInfo"><code class="code">Cil.computeCFGInfo</code></a> - this field is set to contain all - statements in the function</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> -} - -<div class="info"> -Function definitions.<br> -</div> - -<br><code><span class="keyword">type</span> <a name="TYPEblock"></a><code class="type"></code>block = {</code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>battrs : <code class="type"><a href="Cil.html#TYPEattributes">attributes</a></code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Attributes for the block</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>bstmts : <code class="type"><a href="Cil.html#TYPEstmt">stmt</a> list</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The statements comprising the block</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> -} - -<div class="info"> -A block is a sequence of statements with the control falling through from - one element to the next<br> -</div> - -<br> -<b>Statements</b>. -CIL statements are the structural elements that make the CFG. They are -represented using the type <a href="Cil.html#TYPEstmt"><code class="code">Cil.stmt</code></a>. Every -statement has a (possibly empty) list of labels. The -<a href="Cil.html#TYPEstmtkind"><code class="code">Cil.stmtkind</code></a> field of a statement indicates what kind of statement it -is. -<p> - - Use <a href="Cil.html#VALmkStmt"><code class="code">Cil.mkStmt</code></a> to make a statement and the fill-in the fields. -<p> - -CIL also comes with support for control-flow graphs. The <code class="code">sid</code> field in -<code class="code">stmt</code> can be used to give unique numbers to statements, and the <code class="code">succs</code> -and <code class="code">preds</code> fields can be used to maintain a list of successors and -predecessors for every statement. The CFG information is not computed by -default. Instead you must explicitly use the functions -<a href="Cil.html#VALprepareCFG"><code class="code">Cil.prepareCFG</code></a> and <a href="Cil.html#VALcomputeCFGInfo"><code class="code">Cil.computeCFGInfo</code></a> to do it.<br> -<br><code><span class="keyword">type</span> <a name="TYPEstmt"></a><code class="type"></code>stmt = {</code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>labels : <code class="type"><a href="Cil.html#TYPElabel">label</a> list</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Whether the statement starts with some labels, case statements or - default statements.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>skind : <code class="type"><a href="Cil.html#TYPEstmtkind">stmtkind</a></code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The kind of statement</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>sid : <code class="type">int</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A number (>= 0) that is unique in a function. Filled in only after - the CFG is computed.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>succs : <code class="type"><a href="Cil.html#TYPEstmt">stmt</a> list</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The successor statements. They can always be computed from the skind - and the context in which this statement appears. Filled in only after - the CFG is computed.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code><span class="keyword">mutable </span>preds : <code class="type"><a href="Cil.html#TYPEstmt">stmt</a> list</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The inverse of the succs function.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> -} - -<div class="info"> -Statements.<br> -</div> - -<br><code><span class="keyword">type</span> <a name="TYPElabel"></a><code class="type"></code>label = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Label</span> <span class="keyword">of</span> <code class="type">string * <a href="Cil.html#TYPElocation">location</a> * bool</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A real label. If the bool is "true", the label is from the - input source program. If the bool is "false", the label was - created by CIL or some other transformation</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Case</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEexp">exp</a> * <a href="Cil.html#TYPElocation">location</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A case statement. This expression - is lowered into a constant if - <a href="Cil.html#VALlowerConstants"><code class="code">Cil.lowerConstants</code></a> is set to - true.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Default</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPElocation">location</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A default statement</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> - -<div class="info"> -Labels<br> -</div> - -<br><code><span class="keyword">type</span> <a name="TYPEstmtkind"></a><code class="type"></code>stmtkind = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Instr</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEinstr">instr</a> list</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A group of instructions that do not contain control flow. Control - implicitly falls through.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Return</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEexp">exp</a> option * <a href="Cil.html#TYPElocation">location</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The return statement. This is a leaf in the CFG.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Goto</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEstmt">stmt</a> Pervasives.ref * <a href="Cil.html#TYPElocation">location</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A goto statement. Appears from actual goto's in the code or from - goto's that have been inserted during elaboration. The reference - points to the statement that is the target of the Goto. This means that - you have to update the reference whenever you replace the target - statement. The target statement MUST have at least a label.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Break</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPElocation">location</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A break to the end of the nearest enclosing Loop or Switch</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Continue</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPElocation">location</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A continue to the start of the nearest enclosing <code class="code">Loop</code></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">If</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEexp">exp</a> * <a href="Cil.html#TYPEblock">block</a> * <a href="Cil.html#TYPEblock">block</a> * <a href="Cil.html#TYPElocation">location</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A conditional. Two successors, the "then" and the "else" branches. - Both branches fall-through to the successor of the If statement.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Switch</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEexp">exp</a> * <a href="Cil.html#TYPEblock">block</a> * <a href="Cil.html#TYPEstmt">stmt</a> list * <a href="Cil.html#TYPElocation">location</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A switch statement. The statements that implement the cases can be - reached through the provided list. For each such target you can find - among its labels what cases it implements. The statements that - implement the cases are somewhere within the provided <code class="code">block</code>.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Loop</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEblock">block</a> * <a href="Cil.html#TYPElocation">location</a> * <a href="Cil.html#TYPEstmt">stmt</a> option * <a href="Cil.html#TYPEstmt">stmt</a> option</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A <code class="code">while(1)</code> loop. The termination test is implemented in the body of - a loop using a <code class="code">Break</code> statement. If prepareCFG has been called, - the first stmt option will point to the stmt containing the continue - label for this loop and the second will point to the stmt containing - the break label for this loop.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Block</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEblock">block</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Just a block of statements. Use it as a way to keep some block - attributes local</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">TryFinally</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEblock">block</a> * <a href="Cil.html#TYPEblock">block</a> * <a href="Cil.html#TYPElocation">location</a></code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">TryExcept</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEblock">block</a> * (<a href="Cil.html#TYPEinstr">instr</a> list * <a href="Cil.html#TYPEexp">exp</a>) * <a href="Cil.html#TYPEblock">block</a> * <a href="Cil.html#TYPElocation">location</a></code></code></td> - -</tr></table> - -<div class="info"> -The various kinds of control-flow statements statements<br> -</div> - -<br> -<b>Instructions</b>. - An instruction <a href="Cil.html#TYPEinstr"><code class="code">Cil.instr</code></a> is a statement that has no local -(intraprocedural) control flow. It can be either an assignment, -function call, or an inline assembly instruction.<br> -<br><code><span class="keyword">type</span> <a name="TYPEinstr"></a><code class="type"></code>instr = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Set</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPElval">lval</a> * <a href="Cil.html#TYPEexp">exp</a> * <a href="Cil.html#TYPElocation">location</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>An assignment. The type of the expression is guaranteed to be the same - with that of the lvalue</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Call</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPElval">lval</a> option * <a href="Cil.html#TYPEexp">exp</a> * <a href="Cil.html#TYPEexp">exp</a> list * <a href="Cil.html#TYPElocation">location</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>A function call with the (optional) result placed in an lval. It is - possible that the returned type of the function is not identical to - that of the lvalue. In that case a cast is printed. The type of the - actual arguments are identical to those of the declared formals. The - number of arguments is the same as that of the declared formals, except - for vararg functions. This construct is also used to encode a call to - "__builtin_va_arg". In this case the second argument (which should be a - type T) is encoded SizeOf(T)</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Asm</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEattributes">attributes</a> * string list * (string * <a href="Cil.html#TYPElval">lval</a>) list<br> * (string * <a href="Cil.html#TYPEexp">exp</a>) list * string list * <a href="Cil.html#TYPElocation">location</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>There are for storing inline assembly. They follow the GCC - specification: -<pre> - asm [volatile] ("...template..." "..template.." - : "c1" (o1), "c2" (o2), ..., "cN" (oN) - : "d1" (i1), "d2" (i2), ..., "dM" (iM) - : "r1", "r2", ..., "nL" ); -</pre> -<p> - -where the parts are -<p> -<ul> -<li><code class="code">volatile</code> (optional): when present, the assembler instruction - cannot be removed, moved, or otherwise optimized</li> -<li>template: a sequence of strings, with %0, %1, %2, etc. in the string to - refer to the input and output expressions. I think they're numbered - consecutively, but the docs don't specify. Each string is printed on - a separate line. This is the only part that is present for MSVC inline - assembly.</li> -<li>"ci" (oi): pairs of constraint-string and output-lval; the - constraint specifies that the register used must have some - property, like being a floating-point register; the constraint - string for outputs also has "=" to indicate it is written, or - "+" to indicate it is both read and written; 'oi' is the - name of a C lvalue (probably a variable name) to be used as - the output destination</li> -<li>"dj" (ij): pairs of constraint and input expression; the constraint - is similar to the "ci"s. the 'ij' is an arbitrary C expression - to be loaded into the corresponding register</li> -<li>"rk": registers to be regarded as "clobbered" by the instruction; - "memory" may be specified for arbitrary memory effects</li> -</ul> - -an example (from gcc manual): -<pre> - asm volatile ("movc3 %0,%1,%2" - : /* no outputs */ - : "g" (from), "g" (to), "g" (count) - : "r0", "r1", "r2", "r3", "r4", "r5"); -</pre></code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> - -<div class="info"> -Instructions.<br> -</div> - -<br><code><span class="keyword">type</span> <a name="TYPElocation"></a><code class="type"></code>location = {</code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code>line : <code class="type">int</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The line number. -1 means "do not know"</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code>file : <code class="type">string</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The name of the source file</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code>byte : <code class="type">int</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The byte position in the source file</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> -} - -<div class="info"> -Describes a location in a source file.<br> -</div> - -<br><code><span class="keyword">type</span> <a name="TYPEtypsig"></a><code class="type"></code>typsig = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">TSArray</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEtypsig">typsig</a> * int64 option * <a href="Cil.html#TYPEattribute">attribute</a> list</code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">TSPtr</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEtypsig">typsig</a> * <a href="Cil.html#TYPEattribute">attribute</a> list</code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">TSComp</span> <span class="keyword">of</span> <code class="type">bool * string * <a href="Cil.html#TYPEattribute">attribute</a> list</code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">TSFun</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEtypsig">typsig</a> * <a href="Cil.html#TYPEtypsig">typsig</a> list * bool * <a href="Cil.html#TYPEattribute">attribute</a> list</code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">TSEnum</span> <span class="keyword">of</span> <code class="type">string * <a href="Cil.html#TYPEattribute">attribute</a> list</code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">TSBase</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEtyp">typ</a></code></code></td> - -</tr></table> - -<div class="info"> -Type signatures. Two types are identical iff they have identical - signatures. These contain the same information as types but canonicalized. - For example, two function types that are identical except for the name of - the formal arguments are given the same signature. Also, <code class="code">TNamed</code> - constructors are unrolled.<br> -</div> - -<br> -<b>Lowering Options</b><br> -<pre><span class="keyword">val</span> <a name="VALlowerConstants"></a>lowerConstants : <code class="type">bool Pervasives.ref</code></pre><div class="info"> -Do lower constants (default true)<br> -</div> -<pre><span class="keyword">val</span> <a name="VALinsertImplicitCasts"></a>insertImplicitCasts : <code class="type">bool Pervasives.ref</code></pre><div class="info"> -Do insert implicit casts (default true)<br> -</div> -<br><code><span class="keyword">type</span> <a name="TYPEfeatureDescr"></a><code class="type"></code>featureDescr = {</code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code>fd_enabled : <code class="type">bool Pervasives.ref</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The enable flag. Set to default value</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code>fd_name : <code class="type">string</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>This is used to construct an option "--doxxx" and "--dontxxx" that - enable and disable the feature</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code>fd_description : <code class="type">string</code>;</code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code>fd_extraopt : <code class="type">(string * Arg.spec * string) list</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Additional command line options</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code>fd_doit : <code class="type"><a href="Cil.html#TYPEfile">file</a> -> unit</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>This performs the transformation</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code>fd_post_check : <code class="type">bool</code>;</code></td> - -</tr></table> -} - -<div class="info"> -To be able to add/remove features easily, each feature should be package - as an interface with the following interface. These features should be<br> -</div> - -<pre><span class="keyword">val</span> <a name="VALcompareLoc"></a>compareLoc : <code class="type"><a href="Cil.html#TYPElocation">location</a> -> <a href="Cil.html#TYPElocation">location</a> -> int</code></pre><div class="info"> -Comparison function for locations. -* Compares first by filename, then line, then byte<br> -</div> -<br> -<b>Values for manipulating globals</b><br> -<pre><span class="keyword">val</span> <a name="VALemptyFunction"></a>emptyFunction : <code class="type">string -> <a href="Cil.html#TYPEfundec">fundec</a></code></pre><div class="info"> -Make an empty function<br> -</div> -<pre><span class="keyword">val</span> <a name="VALsetFormals"></a>setFormals : <code class="type"><a href="Cil.html#TYPEfundec">fundec</a> -> <a href="Cil.html#TYPEvarinfo">varinfo</a> list -> unit</code></pre><div class="info"> -Update the formals of a <code class="code">fundec</code> and make sure that the function type - has the same information. Will copy the name as well into the type.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALsetFunctionType"></a>setFunctionType : <code class="type"><a href="Cil.html#TYPEfundec">fundec</a> -> <a href="Cil.html#TYPEtyp">typ</a> -> unit</code></pre><div class="info"> -Set the types of arguments and results as given by the function type - passed as the second argument. Will not copy the names from the function - type to the formals<br> -</div> -<pre><span class="keyword">val</span> <a name="VALsetFunctionTypeMakeFormals"></a>setFunctionTypeMakeFormals : <code class="type"><a href="Cil.html#TYPEfundec">fundec</a> -> <a href="Cil.html#TYPEtyp">typ</a> -> unit</code></pre><div class="info"> -Set the type of the function and make formal arguments for them<br> -</div> -<pre><span class="keyword">val</span> <a name="VALsetMaxId"></a>setMaxId : <code class="type"><a href="Cil.html#TYPEfundec">fundec</a> -> unit</code></pre><div class="info"> -Update the smaxid after you have populated with locals and formals - (unless you constructed those using <a href="Cil.html#VALmakeLocalVar"><code class="code">Cil.makeLocalVar</code></a> or - <a href="Cil.html#VALmakeTempVar"><code class="code">Cil.makeTempVar</code></a>.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdummyFunDec"></a>dummyFunDec : <code class="type"><a href="Cil.html#TYPEfundec">fundec</a></code></pre><div class="info"> -A dummy function declaration handy when you need one as a placeholder. It - contains inside a dummy varinfo.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdummyFile"></a>dummyFile : <code class="type"><a href="Cil.html#TYPEfile">file</a></code></pre><div class="info"> -A dummy file<br> -</div> -<pre><span class="keyword">val</span> <a name="VALsaveBinaryFile"></a>saveBinaryFile : <code class="type"><a href="Cil.html#TYPEfile">file</a> -> string -> unit</code></pre><div class="info"> -Write a <a href="Cil.html#TYPEfile"><code class="code">Cil.file</code></a> in binary form to the filesystem. The file can be - read back in later using <a href="Cil.html#VALloadBinaryFile"><code class="code">Cil.loadBinaryFile</code></a>, possibly saving parsing - time. The second argument is the name of the file that should be - created.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALsaveBinaryFileChannel"></a>saveBinaryFileChannel : <code class="type"><a href="Cil.html#TYPEfile">file</a> -> Pervasives.out_channel -> unit</code></pre><div class="info"> -Write a <a href="Cil.html#TYPEfile"><code class="code">Cil.file</code></a> in binary form to the filesystem. The file can be - read back in later using <a href="Cil.html#VALloadBinaryFile"><code class="code">Cil.loadBinaryFile</code></a>, possibly saving parsing - time. Does not close the channel.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALloadBinaryFile"></a>loadBinaryFile : <code class="type">string -> <a href="Cil.html#TYPEfile">file</a></code></pre><div class="info"> -Read a <a href="Cil.html#TYPEfile"><code class="code">Cil.file</code></a> in binary form from the filesystem. The first - argument is the name of a file previously created by - <a href="Cil.html#VALsaveBinaryFile"><code class="code">Cil.saveBinaryFile</code></a>.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALgetGlobInit"></a>getGlobInit : <code class="type">?main_name:string -> <a href="Cil.html#TYPEfile">file</a> -> <a href="Cil.html#TYPEfundec">fundec</a></code></pre><div class="info"> -Get the global initializer and create one if it does not already exist. - When it creates a global initializer it attempts to place a call to it in - the main function named by the optional argument (default "main")<br> -</div> -<pre><span class="keyword">val</span> <a name="VALiterGlobals"></a>iterGlobals : <code class="type"><a href="Cil.html#TYPEfile">file</a> -> (<a href="Cil.html#TYPEglobal">global</a> -> unit) -> unit</code></pre><div class="info"> -Iterate over all globals, including the global initializer<br> -</div> -<pre><span class="keyword">val</span> <a name="VALfoldGlobals"></a>foldGlobals : <code class="type"><a href="Cil.html#TYPEfile">file</a> -> ('a -> <a href="Cil.html#TYPEglobal">global</a> -> 'a) -> 'a -> 'a</code></pre><div class="info"> -Fold over all globals, including the global initializer<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmapGlobals"></a>mapGlobals : <code class="type"><a href="Cil.html#TYPEfile">file</a> -> (<a href="Cil.html#TYPEglobal">global</a> -> <a href="Cil.html#TYPEglobal">global</a>) -> unit</code></pre><div class="info"> -Map over all globals, including the global initializer and change things - in place<br> -</div> -<pre><span class="keyword">val</span> <a name="VALnew_sid"></a>new_sid : <code class="type">unit -> int</code></pre><pre><span class="keyword">val</span> <a name="VALprepareCFG"></a>prepareCFG : <code class="type"><a href="Cil.html#TYPEfundec">fundec</a> -> unit</code></pre><div class="info"> -Prepare a function for CFG information computation by - <a href="Cil.html#VALcomputeCFGInfo"><code class="code">Cil.computeCFGInfo</code></a>. This function converts all <code class="code">Break</code>, <code class="code">Switch</code>, - <code class="code">Default</code> and <code class="code">Continue</code> <a href="Cil.html#TYPEstmtkind"><code class="code">Cil.stmtkind</code></a>s and <a href="Cil.html#TYPElabel"><code class="code">Cil.label</code></a>s into <code class="code">If</code>s - and <code class="code">Goto</code>s, giving the function body a very CFG-like character. This - function modifies its argument in place.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcomputeCFGInfo"></a>computeCFGInfo : <code class="type"><a href="Cil.html#TYPEfundec">fundec</a> -> bool -> unit</code></pre><div class="info"> -Compute the CFG information for all statements in a fundec and return a - list of the statements. The input fundec cannot have <code class="code">Break</code>, <code class="code">Switch</code>, - <code class="code">Default</code>, or <code class="code">Continue</code> <a href="Cil.html#TYPEstmtkind"><code class="code">Cil.stmtkind</code></a>s or <a href="Cil.html#TYPElabel"><code class="code">Cil.label</code></a>s. Use - <a href="Cil.html#VALprepareCFG"><code class="code">Cil.prepareCFG</code></a> to transform them away. The second argument should - be <code class="code">true</code> if you wish a global statement number, <code class="code">false</code> if you wish a - local (per-function) statement numbering. The list of statements is set - in the sallstmts field of a fundec. -<p> - - NOTE: unless you want the simpler control-flow graph provided by - prepareCFG, or you need the function's smaxstmtid and sallstmt fields - filled in, we recommend you use <a href="Cfg.html#VALcomputeFileCFG"><code class="code">Cfg.computeFileCFG</code></a> instead of this - function to compute control-flow information. - <a href="Cfg.html#VALcomputeFileCFG"><code class="code">Cfg.computeFileCFG</code></a> is newer and will handle switch, break, and - continue correctly.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcopyFunction"></a>copyFunction : <code class="type"><a href="Cil.html#TYPEfundec">fundec</a> -> string -> <a href="Cil.html#TYPEfundec">fundec</a></code></pre><div class="info"> -Create a deep copy of a function. There should be no sharing between the - copy and the original function<br> -</div> -<pre><span class="keyword">val</span> <a name="VALpushGlobal"></a>pushGlobal : <code class="type"><a href="Cil.html#TYPEglobal">global</a> -><br> types:<a href="Cil.html#TYPEglobal">global</a> list Pervasives.ref -><br> variables:<a href="Cil.html#TYPEglobal">global</a> list Pervasives.ref -> unit</code></pre><div class="info"> -CIL keeps the types at the beginning of the file and the variables at the - end of the file. This function will take a global and add it to the - corresponding stack. Its operation is actually more complicated because if - the global declares a type that contains references to variables (e.g. in - sizeof in an array length) then it will also add declarations for the - variables to the types stack<br> -</div> -<pre><span class="keyword">val</span> <a name="VALinvalidStmt"></a>invalidStmt : <code class="type"><a href="Cil.html#TYPEstmt">stmt</a></code></pre><div class="info"> -An empty statement. Used in pretty printing<br> -</div> -<pre><span class="keyword">val</span> <a name="VALgccBuiltins"></a>gccBuiltins : <code class="type">(string, <a href="Cil.html#TYPEtyp">typ</a> * <a href="Cil.html#TYPEtyp">typ</a> list * bool) Hashtbl.t</code></pre><div class="info"> -A list of the GCC built-in functions. Maps the name to the result and - argument types, and whether it is vararg<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmsvcBuiltins"></a>msvcBuiltins : <code class="type">(string, <a href="Cil.html#TYPEtyp">typ</a> * <a href="Cil.html#TYPEtyp">typ</a> list * bool) Hashtbl.t</code></pre><div class="info"> -A list of the MSVC built-in functions. Maps the name to the result and - argument types, and whether it is vararg<br> -</div> -<br> -<b>Values for manipulating initializers</b><br> -<pre><span class="keyword">val</span> <a name="VALmakeZeroInit"></a>makeZeroInit : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEinit">init</a></code></pre><div class="info"> -Make a initializer for zero-ing a data type<br> -</div> -<pre><span class="keyword">val</span> <a name="VALfoldLeftCompound"></a>foldLeftCompound : <code class="type">doinit:(<a href="Cil.html#TYPEoffset">offset</a> -> <a href="Cil.html#TYPEinit">init</a> -> <a href="Cil.html#TYPEtyp">typ</a> -> 'a -> 'a) -><br> ct:<a href="Cil.html#TYPEtyp">typ</a> -> initl:(<a href="Cil.html#TYPEoffset">offset</a> * <a href="Cil.html#TYPEinit">init</a>) list -> acc:'a -> 'a</code></pre><div class="info"> -Fold over the list of initializers in a Compound. <code class="code">doinit</code> is called on - every present initializer, even if it is of compound type. In the case of - arrays there might be missing zero-initializers at the end of the list. - These are not scanned. This is much like <code class="code">List.fold_left</code> except we also - pass the type of the initializer<br> -</div> -<pre><span class="keyword">val</span> <a name="VALfoldLeftCompoundAll"></a>foldLeftCompoundAll : <code class="type">doinit:(<a href="Cil.html#TYPEoffset">offset</a> -> <a href="Cil.html#TYPEinit">init</a> -> <a href="Cil.html#TYPEtyp">typ</a> -> 'a -> 'a) -><br> ct:<a href="Cil.html#TYPEtyp">typ</a> -> initl:(<a href="Cil.html#TYPEoffset">offset</a> * <a href="Cil.html#TYPEinit">init</a>) list -> acc:'a -> 'a</code></pre><div class="info"> -Fold over the list of initializers in a Compound, like - <a href="Cil.html#VALfoldLeftCompound"><code class="code">Cil.foldLeftCompound</code></a> but in the case of an array it scans even missing - zero initializers at the end of the array<br> -</div> -<br> -<b>Values for manipulating types</b><br> -<pre><span class="keyword">val</span> <a name="VALvoidType"></a>voidType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a></code></pre><div class="info"> -void<br> -</div> -<pre><span class="keyword">val</span> <a name="VALisVoidType"></a>isVoidType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> -> bool</code></pre><pre><span class="keyword">val</span> <a name="VALisVoidPtrType"></a>isVoidPtrType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> -> bool</code></pre><pre><span class="keyword">val</span> <a name="VALintType"></a>intType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a></code></pre><div class="info"> -int<br> -</div> -<pre><span class="keyword">val</span> <a name="VALuintType"></a>uintType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a></code></pre><div class="info"> -unsigned int<br> -</div> -<pre><span class="keyword">val</span> <a name="VALlongType"></a>longType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a></code></pre><div class="info"> -long<br> -</div> -<pre><span class="keyword">val</span> <a name="VALulongType"></a>ulongType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a></code></pre><div class="info"> -unsigned long<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcharType"></a>charType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a></code></pre><div class="info"> -char<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcharPtrType"></a>charPtrType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a></code></pre><div class="info"> -char *<br> -</div> -<pre><span class="keyword">val</span> <a name="VALwcharKind"></a>wcharKind : <code class="type"><a href="Cil.html#TYPEikind">ikind</a> Pervasives.ref</code></pre><div class="info"> -wchar_t (depends on architecture) and is set when you call - <a href="Cil.html#VALinitCIL"><code class="code">Cil.initCIL</code></a>.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALwcharType"></a>wcharType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> Pervasives.ref</code></pre><pre><span class="keyword">val</span> <a name="VALcharConstPtrType"></a>charConstPtrType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a></code></pre><div class="info"> -char const *<br> -</div> -<pre><span class="keyword">val</span> <a name="VALvoidPtrType"></a>voidPtrType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a></code></pre><div class="info"> -void *<br> -</div> -<pre><span class="keyword">val</span> <a name="VALintPtrType"></a>intPtrType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a></code></pre><div class="info"> -int *<br> -</div> -<pre><span class="keyword">val</span> <a name="VALuintPtrType"></a>uintPtrType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a></code></pre><div class="info"> -unsigned int *<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdoubleType"></a>doubleType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a></code></pre><div class="info"> -double<br> -</div> -<pre><span class="keyword">val</span> <a name="VALupointType"></a>upointType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> Pervasives.ref</code></pre><pre><span class="keyword">val</span> <a name="VALtypeOfSizeOf"></a>typeOfSizeOf : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> Pervasives.ref</code></pre><pre><span class="keyword">val</span> <a name="VALisSigned"></a>isSigned : <code class="type"><a href="Cil.html#TYPEikind">ikind</a> -> bool</code></pre><div class="info"> -Returns true if and only if the given integer type is signed.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmkCompInfo"></a>mkCompInfo : <code class="type">bool -><br> string -><br> (<a href="Cil.html#TYPEcompinfo">compinfo</a> -><br> (string * <a href="Cil.html#TYPEtyp">typ</a> * int option * <a href="Cil.html#TYPEattributes">attributes</a> * <a href="Cil.html#TYPElocation">location</a>) list) -><br> <a href="Cil.html#TYPEattributes">attributes</a> -> <a href="Cil.html#TYPEcompinfo">compinfo</a></code></pre><div class="info"> -Creates a a (potentially recursive) composite type. The arguments are: - (1) a boolean indicating whether it is a struct or a union, (2) the name - (always non-empty), (3) a function that when given a representation of the - structure type constructs the type of the fields recursive type (the first - argument is only useful when some fields need to refer to the type of the - structure itself), and (4) a list of attributes to be associated with the - composite type. The resulting compinfo has the field "cdefined" only if - the list of fields is non-empty.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcopyCompInfo"></a>copyCompInfo : <code class="type"><a href="Cil.html#TYPEcompinfo">compinfo</a> -> string -> <a href="Cil.html#TYPEcompinfo">compinfo</a></code></pre><div class="info"> -Makes a shallow copy of a <a href="Cil.html#TYPEcompinfo"><code class="code">Cil.compinfo</code></a> changing the name and the key.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmissingFieldName"></a>missingFieldName : <code class="type">string</code></pre><div class="info"> -This is a constant used as the name of an unnamed bitfield. These fields - do not participate in initialization and their name is not printed.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcompFullName"></a>compFullName : <code class="type"><a href="Cil.html#TYPEcompinfo">compinfo</a> -> string</code></pre><div class="info"> -Get the full name of a comp<br> -</div> -<pre><span class="keyword">val</span> <a name="VALisCompleteType"></a>isCompleteType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> -> bool</code></pre><div class="info"> -Returns true if this is a complete type. - This means that sizeof(t) makes sense. - Incomplete types are not yet defined - structures and empty arrays.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALunrollType"></a>unrollType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEtyp">typ</a></code></pre><div class="info"> -Unroll a type until it exposes a non - <code class="code">TNamed</code>. Will collect all attributes appearing in <code class="code">TNamed</code>!!!<br> -</div> -<pre><span class="keyword">val</span> <a name="VALunrollTypeDeep"></a>unrollTypeDeep : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEtyp">typ</a></code></pre><div class="info"> -Unroll all the TNamed in a type (even under type constructors such as - <code class="code">TPtr</code>, <code class="code">TFun</code> or <code class="code">TArray</code>. Does not unroll the types of fields in <code class="code">TComp</code> - types. Will collect all attributes<br> -</div> -<pre><span class="keyword">val</span> <a name="VALseparateStorageModifiers"></a>separateStorageModifiers : <code class="type"><a href="Cil.html#TYPEattribute">attribute</a> list -> <a href="Cil.html#TYPEattribute">attribute</a> list * <a href="Cil.html#TYPEattribute">attribute</a> list</code></pre><div class="info"> -Separate out the storage-modifier name attributes<br> -</div> -<pre><span class="keyword">val</span> <a name="VALisIntegralType"></a>isIntegralType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> -> bool</code></pre><div class="info"> -True if the argument is an integral type (i.e. integer or enum)<br> -</div> -<pre><span class="keyword">val</span> <a name="VALisArithmeticType"></a>isArithmeticType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> -> bool</code></pre><div class="info"> -True if the argument is an arithmetic type (i.e. integer, enum or - floating point<br> -</div> -<pre><span class="keyword">val</span> <a name="VALisPointerType"></a>isPointerType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> -> bool</code></pre><div class="info"> -True if the argument is a pointer type<br> -</div> -<pre><span class="keyword">val</span> <a name="VALisFunctionType"></a>isFunctionType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> -> bool</code></pre><div class="info"> -True if the argument is a function type<br> -</div> -<pre><span class="keyword">val</span> <a name="VALargsToList"></a>argsToList : <code class="type">(string * <a href="Cil.html#TYPEtyp">typ</a> * <a href="Cil.html#TYPEattributes">attributes</a>) list option -><br> (string * <a href="Cil.html#TYPEtyp">typ</a> * <a href="Cil.html#TYPEattributes">attributes</a>) list</code></pre><div class="info"> -Obtain the argument list ([] if None)<br> -</div> -<pre><span class="keyword">val</span> <a name="VALisArrayType"></a>isArrayType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> -> bool</code></pre><div class="info"> -True if the argument is an array type<br> -</div> -<pre><span class="keyword">exception</span> <a name="EXCEPTIONLenOfArray"></a>LenOfArray</pre> -<div class="info"> -Raised when <a href="Cil.html#VALlenOfArray"><code class="code">Cil.lenOfArray</code></a> fails either because the length is <code class="code">None</code> - or because it is a non-constant expression<br> -</div> -<pre><span class="keyword">val</span> <a name="VALlenOfArray"></a>lenOfArray : <code class="type"><a href="Cil.html#TYPEexp">exp</a> option -> int</code></pre><div class="info"> -Call to compute the array length as present in the array type, to an - integer. Raises <a href="Cil.html#EXCEPTIONLenOfArray"><code class="code">Cil.LenOfArray</code></a> if not able to compute the length, such - as when there is no length or the length is not a constant.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALgetCompField"></a>getCompField : <code class="type"><a href="Cil.html#TYPEcompinfo">compinfo</a> -> string -> <a href="Cil.html#TYPEfieldinfo">fieldinfo</a></code></pre><div class="info"> -Return a named fieldinfo in compinfo, or raise Not_found<br> -</div> -<br><code><span class="keyword">type</span> <a name="TYPEexistsAction"></a><code class="type"></code>existsAction = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">ExistsTrue</span></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">ExistsFalse</span></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">ExistsMaybe</span></code></td> - -</tr></table> - -<div class="info"> -A datatype to be used in conjunction with <code class="code">existsType</code><br> -</div> - -<pre><span class="keyword">val</span> <a name="VALexistsType"></a>existsType : <code class="type">(<a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEexistsAction">existsAction</a>) -> <a href="Cil.html#TYPEtyp">typ</a> -> bool</code></pre><div class="info"> -Scans a type by applying the function on all elements. - When the function returns ExistsTrue, the scan stops with - true. When the function returns ExistsFalse then the current branch is not - scanned anymore. Care is taken to - apply the function only once on each composite type, thus avoiding - circularity. When the function returns ExistsMaybe then the types that - construct the current type are scanned (e.g. the base type for TPtr and - TArray, the type of fields for a TComp, etc).<br> -</div> -<pre><span class="keyword">val</span> <a name="VALsplitFunctionType"></a>splitFunctionType : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> -><br> <a href="Cil.html#TYPEtyp">typ</a> * (string * <a href="Cil.html#TYPEtyp">typ</a> * <a href="Cil.html#TYPEattributes">attributes</a>) list option * bool *<br> <a href="Cil.html#TYPEattributes">attributes</a></code></pre><div class="info"> -Given a function type split it into return type, - arguments, is_vararg and attributes. An error is raised if the type is not - a function type -<p> -Same as <a href="Cil.html#VALsplitFunctionType"><code class="code">Cil.splitFunctionType</code></a> but takes a varinfo. Prints a nicer - error message if the varinfo is not for a function<br> -</div> -<pre><span class="keyword">val</span> <a name="VALsplitFunctionTypeVI"></a>splitFunctionTypeVI : <code class="type"><a href="Cil.html#TYPEvarinfo">varinfo</a> -><br> <a href="Cil.html#TYPEtyp">typ</a> * (string * <a href="Cil.html#TYPEtyp">typ</a> * <a href="Cil.html#TYPEattributes">attributes</a>) list option * bool *<br> <a href="Cil.html#TYPEattributes">attributes</a></code></pre><br> -<b>Type signatures</b><br> -<br> -Type signatures. Two types are identical iff they have identical - signatures. These contain the same information as types but canonicalized. - For example, two function types that are identical except for the name of - the formal arguments are given the same signature. Also, <code class="code">TNamed</code> - constructors are unrolled. You shoud use <code class="code">Util.equals</code> to compare type - signatures because they might still contain circular structures (through - attributes, and sizeof)<br> -<pre><span class="keyword">val</span> <a name="VALd_typsig"></a>d_typsig : <code class="type">unit -> <a href="Cil.html#TYPEtypsig">typsig</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Print a type signature<br> -</div> -<pre><span class="keyword">val</span> <a name="VALtypeSig"></a>typeSig : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEtypsig">typsig</a></code></pre><div class="info"> -Compute a type signature<br> -</div> -<pre><span class="keyword">val</span> <a name="VALtypeSigWithAttrs"></a>typeSigWithAttrs : <code class="type">?ignoreSign:bool -><br> (<a href="Cil.html#TYPEattributes">attributes</a> -> <a href="Cil.html#TYPEattributes">attributes</a>) -> <a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEtypsig">typsig</a></code></pre><div class="info"> -Like <a href="Cil.html#VALtypeSig"><code class="code">Cil.typeSig</code></a> but customize the incorporation of attributes. - Use ~ignoreSign:true to convert all signed integer types to unsigned, - so that signed and unsigned will compare the same.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALsetTypeSigAttrs"></a>setTypeSigAttrs : <code class="type"><a href="Cil.html#TYPEattributes">attributes</a> -> <a href="Cil.html#TYPEtypsig">typsig</a> -> <a href="Cil.html#TYPEtypsig">typsig</a></code></pre><div class="info"> -Replace the attributes of a signature (only at top level)<br> -</div> -<pre><span class="keyword">val</span> <a name="VALtypeSigAttrs"></a>typeSigAttrs : <code class="type"><a href="Cil.html#TYPEtypsig">typsig</a> -> <a href="Cil.html#TYPEattributes">attributes</a></code></pre><div class="info"> -Get the top-level attributes of a signature<br> -</div> -<br> -LVALUES<br> -<pre><span class="keyword">val</span> <a name="VALmakeVarinfo"></a>makeVarinfo : <code class="type">bool -> string -> <a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEvarinfo">varinfo</a></code></pre><div class="info"> -Make a varinfo. Use this (rarely) to make a raw varinfo. Use other - functions to make locals (<a href="Cil.html#VALmakeLocalVar"><code class="code">Cil.makeLocalVar</code></a> or <a href="Cil.html#VALmakeFormalVar"><code class="code">Cil.makeFormalVar</code></a> or - <a href="Cil.html#VALmakeTempVar"><code class="code">Cil.makeTempVar</code></a>) and globals (<a href="Cil.html#VALmakeGlobalVar"><code class="code">Cil.makeGlobalVar</code></a>). Note that this - function will assign a new identifier. The first argument specifies - whether the varinfo is for a global.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmakeFormalVar"></a>makeFormalVar : <code class="type"><a href="Cil.html#TYPEfundec">fundec</a> -> ?where:string -> string -> <a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEvarinfo">varinfo</a></code></pre><div class="info"> -Make a formal variable for a function. Insert it in both the sformals - and the type of the function. You can optionally specify where to insert - this one. If where = "^" then it is inserted first. If where = "$" then - it is inserted last. Otherwise where must be the name of a formal after - which to insert this. By default it is inserted at the end.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmakeLocalVar"></a>makeLocalVar : <code class="type"><a href="Cil.html#TYPEfundec">fundec</a> -> ?insert:bool -> string -> <a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEvarinfo">varinfo</a></code></pre><div class="info"> -Make a local variable and add it to a function's slocals (only if insert = - true, which is the default). Make sure you know what you are doing if you - set insert=false.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmakeTempVar"></a>makeTempVar : <code class="type"><a href="Cil.html#TYPEfundec">fundec</a> -> ?name:string -> <a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEvarinfo">varinfo</a></code></pre><div class="info"> -Make a temporary variable and add it to a function's slocals. The name of - the temporary variable will be generated based on the given name hint so - that to avoid conflicts with other locals.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmakeGlobalVar"></a>makeGlobalVar : <code class="type">string -> <a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEvarinfo">varinfo</a></code></pre><div class="info"> -Make a global variable. Your responsibility to make sure that the name - is unique<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcopyVarinfo"></a>copyVarinfo : <code class="type"><a href="Cil.html#TYPEvarinfo">varinfo</a> -> string -> <a href="Cil.html#TYPEvarinfo">varinfo</a></code></pre><div class="info"> -Make a shallow copy of a <code class="code">varinfo</code> and assign a new identifier<br> -</div> -<pre><span class="keyword">val</span> <a name="VALnewVID"></a>newVID : <code class="type">unit -> int</code></pre><div class="info"> -Generate a new variable ID. This will be different than any variable ID - that is generated by <a href="Cil.html#VALmakeLocalVar"><code class="code">Cil.makeLocalVar</code></a> and friends<br> -</div> -<pre><span class="keyword">val</span> <a name="VALaddOffsetLval"></a>addOffsetLval : <code class="type"><a href="Cil.html#TYPEoffset">offset</a> -> <a href="Cil.html#TYPElval">lval</a> -> <a href="Cil.html#TYPElval">lval</a></code></pre><div class="info"> -Add an offset at the end of an lvalue. Make sure the type of the lvalue - and the offset are compatible.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALaddOffset"></a>addOffset : <code class="type"><a href="Cil.html#TYPEoffset">offset</a> -> <a href="Cil.html#TYPEoffset">offset</a> -> <a href="Cil.html#TYPEoffset">offset</a></code></pre><div class="info"> -<code class="code">addOffset o1 o2</code> adds <code class="code">o1</code> to the end of <code class="code">o2</code>.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALremoveOffsetLval"></a>removeOffsetLval : <code class="type"><a href="Cil.html#TYPElval">lval</a> -> <a href="Cil.html#TYPElval">lval</a> * <a href="Cil.html#TYPEoffset">offset</a></code></pre><div class="info"> -Remove ONE offset from the end of an lvalue. Returns the lvalue with the - trimmed offset and the final offset. If the final offset is <code class="code">NoOffset</code> - then the original <code class="code">lval</code> did not have an offset.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALremoveOffset"></a>removeOffset : <code class="type"><a href="Cil.html#TYPEoffset">offset</a> -> <a href="Cil.html#TYPEoffset">offset</a> * <a href="Cil.html#TYPEoffset">offset</a></code></pre><div class="info"> -Remove ONE offset from the end of an offset sequence. Returns the - trimmed offset and the final offset. If the final offset is <code class="code">NoOffset</code> - then the original <code class="code">lval</code> did not have an offset.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALtypeOfLval"></a>typeOfLval : <code class="type"><a href="Cil.html#TYPElval">lval</a> -> <a href="Cil.html#TYPEtyp">typ</a></code></pre><div class="info"> -Compute the type of an lvalue<br> -</div> -<pre><span class="keyword">val</span> <a name="VALtypeOffset"></a>typeOffset : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEoffset">offset</a> -> <a href="Cil.html#TYPEtyp">typ</a></code></pre><div class="info"> -Compute the type of an offset from a base type<br> -</div> -<br> -<b>Values for manipulating expressions</b><br> -<pre><span class="keyword">val</span> <a name="VALzero"></a>zero : <code class="type"><a href="Cil.html#TYPEexp">exp</a></code></pre><div class="info"> -0<br> -</div> -<pre><span class="keyword">val</span> <a name="VALone"></a>one : <code class="type"><a href="Cil.html#TYPEexp">exp</a></code></pre><div class="info"> -1<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmone"></a>mone : <code class="type"><a href="Cil.html#TYPEexp">exp</a></code></pre><div class="info"> --1<br> -</div> -<pre><span class="keyword">val</span> <a name="VALkinteger64"></a>kinteger64 : <code class="type"><a href="Cil.html#TYPEikind">ikind</a> -> int64 -> <a href="Cil.html#TYPEexp">exp</a></code></pre><div class="info"> -Construct an integer of a given kind, using OCaml's int64 type. If needed - it will truncate the integer to be within the representable range for the - given kind.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALkinteger"></a>kinteger : <code class="type"><a href="Cil.html#TYPEikind">ikind</a> -> int -> <a href="Cil.html#TYPEexp">exp</a></code></pre><div class="info"> -Construct an integer of a given kind. Converts the integer to int64 and - then uses kinteger64. This might truncate the value if you use a kind - that cannot represent the given integer. This can only happen for one of - the Char or Short kinds<br> -</div> -<pre><span class="keyword">val</span> <a name="VALinteger"></a>integer : <code class="type">int -> <a href="Cil.html#TYPEexp">exp</a></code></pre><div class="info"> -Construct an integer of kind IInt. You can use this always since the - OCaml integers are 31 bits and are guaranteed to fit in an IInt<br> -</div> -<pre><span class="keyword">val</span> <a name="VALisInteger"></a>isInteger : <code class="type"><a href="Cil.html#TYPEexp">exp</a> -> int64 option</code></pre><div class="info"> -True if the given expression is a (possibly cast'ed) - character or an integer constant<br> -</div> -<pre><span class="keyword">val</span> <a name="VALisConstant"></a>isConstant : <code class="type"><a href="Cil.html#TYPEexp">exp</a> -> bool</code></pre><div class="info"> -True if the expression is a compile-time constant<br> -</div> -<pre><span class="keyword">val</span> <a name="VALisZero"></a>isZero : <code class="type"><a href="Cil.html#TYPEexp">exp</a> -> bool</code></pre><div class="info"> -True if the given expression is a (possibly cast'ed) integer or character - constant with value zero<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcharConstToInt"></a>charConstToInt : <code class="type">char -> <a href="Cil.html#TYPEconstant">constant</a></code></pre><div class="info"> -Given the character c in a (CChr c), sign-extend it to 32 bits. - (This is the official way of interpreting character constants, according to - ISO C 6.4.4.4.10, which says that character constants are chars cast to ints) - Returns CInt64(sign-extened c, IInt, None)<br> -</div> -<pre><span class="keyword">val</span> <a name="VALconstFold"></a>constFold : <code class="type">bool -> <a href="Cil.html#TYPEexp">exp</a> -> <a href="Cil.html#TYPEexp">exp</a></code></pre><div class="info"> -Do constant folding on an expression. If the first argument is true then - will also compute compiler-dependent expressions such as sizeof<br> -</div> -<pre><span class="keyword">val</span> <a name="VALconstFoldBinOp"></a>constFoldBinOp : <code class="type">bool -> <a href="Cil.html#TYPEbinop">binop</a> -> <a href="Cil.html#TYPEexp">exp</a> -> <a href="Cil.html#TYPEexp">exp</a> -> <a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEexp">exp</a></code></pre><div class="info"> -Do constant folding on a binary operation. The bulk of the work done by - <code class="code">constFold</code> is done here. If the first argument is true then - will also compute compiler-dependent expressions such as sizeof<br> -</div> -<pre><span class="keyword">val</span> <a name="VALincrem"></a>increm : <code class="type"><a href="Cil.html#TYPEexp">exp</a> -> int -> <a href="Cil.html#TYPEexp">exp</a></code></pre><div class="info"> -Increment an expression. Can be arithmetic or pointer type<br> -</div> -<pre><span class="keyword">val</span> <a name="VALvar"></a>var : <code class="type"><a href="Cil.html#TYPEvarinfo">varinfo</a> -> <a href="Cil.html#TYPElval">lval</a></code></pre><div class="info"> -Makes an lvalue out of a given variable<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmkAddrOf"></a>mkAddrOf : <code class="type"><a href="Cil.html#TYPElval">lval</a> -> <a href="Cil.html#TYPEexp">exp</a></code></pre><div class="info"> -Make an AddrOf. Given an lvalue of type T will give back an expression of - type ptr(T). It optimizes somewhat expressions like "& v" and "& v<code class="code">0</code>"<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmkAddrOrStartOf"></a>mkAddrOrStartOf : <code class="type"><a href="Cil.html#TYPElval">lval</a> -> <a href="Cil.html#TYPEexp">exp</a></code></pre><div class="info"> -Like mkAddrOf except if the type of lval is an array then it uses - StartOf. This is the right operation for getting a pointer to the start - of the storage denoted by lval.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmkMem"></a>mkMem : <code class="type">addr:<a href="Cil.html#TYPEexp">exp</a> -> off:<a href="Cil.html#TYPEoffset">offset</a> -> <a href="Cil.html#TYPElval">lval</a></code></pre><div class="info"> -Make a Mem, while optimizing AddrOf. The type of the addr must be - TPtr(t) and the type of the resulting lval is t. Note that in CIL the - implicit conversion between an array and the pointer to the first - element does not apply. You must do the conversion yourself using - StartOf<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmkString"></a>mkString : <code class="type">string -> <a href="Cil.html#TYPEexp">exp</a></code></pre><div class="info"> -Make an expression that is a string constant (of pointer type)<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmkCastT"></a>mkCastT : <code class="type">e:<a href="Cil.html#TYPEexp">exp</a> -> oldt:<a href="Cil.html#TYPEtyp">typ</a> -> newt:<a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEexp">exp</a></code></pre><div class="info"> -Construct a cast when having the old type of the expression. If the new - type is the same as the old type, then no cast is added.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmkCast"></a>mkCast : <code class="type">e:<a href="Cil.html#TYPEexp">exp</a> -> newt:<a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEexp">exp</a></code></pre><div class="info"> -Like <a href="Cil.html#VALmkCastT"><code class="code">Cil.mkCastT</code></a> but uses typeOf to get <code class="code">oldt</code><br> -</div> -<pre><span class="keyword">val</span> <a name="VALstripCasts"></a>stripCasts : <code class="type"><a href="Cil.html#TYPEexp">exp</a> -> <a href="Cil.html#TYPEexp">exp</a></code></pre><div class="info"> -Removes casts from this expression, but ignores casts within - other expression constructs. So we delete the (A) and (B) casts from - "(A)(B)(x + (C)y)", but leave the (C) cast.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALtypeOf"></a>typeOf : <code class="type"><a href="Cil.html#TYPEexp">exp</a> -> <a href="Cil.html#TYPEtyp">typ</a></code></pre><div class="info"> -Compute the type of an expression<br> -</div> -<pre><span class="keyword">val</span> <a name="VALparseInt"></a>parseInt : <code class="type">string -> <a href="Cil.html#TYPEexp">exp</a></code></pre><div class="info"> -Convert a string representing a C integer literal to an expression. - Handles the prefixes 0x and 0 and the suffixes L, U, UL, LL, ULL<br> -</div> -<br> -<b>Values for manipulating statements</b><br> -<pre><span class="keyword">val</span> <a name="VALmkStmt"></a>mkStmt : <code class="type"><a href="Cil.html#TYPEstmtkind">stmtkind</a> -> <a href="Cil.html#TYPEstmt">stmt</a></code></pre><div class="info"> -Construct a statement, given its kind. Initialize the <code class="code">sid</code> field to -1, - and <code class="code">labels</code>, <code class="code">succs</code> and <code class="code">preds</code> to the empty list<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmkBlock"></a>mkBlock : <code class="type"><a href="Cil.html#TYPEstmt">stmt</a> list -> <a href="Cil.html#TYPEblock">block</a></code></pre><div class="info"> -Construct a block with no attributes, given a list of statements<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmkStmtOneInstr"></a>mkStmtOneInstr : <code class="type"><a href="Cil.html#TYPEinstr">instr</a> -> <a href="Cil.html#TYPEstmt">stmt</a></code></pre><div class="info"> -Construct a statement consisting of just one instruction<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcompactStmts"></a>compactStmts : <code class="type"><a href="Cil.html#TYPEstmt">stmt</a> list -> <a href="Cil.html#TYPEstmt">stmt</a> list</code></pre><div class="info"> -Try to compress statements so as to get maximal basic blocks<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmkEmptyStmt"></a>mkEmptyStmt : <code class="type">unit -> <a href="Cil.html#TYPEstmt">stmt</a></code></pre><div class="info"> -Returns an empty statement (of kind <code class="code">Instr</code>)<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdummyInstr"></a>dummyInstr : <code class="type"><a href="Cil.html#TYPEinstr">instr</a></code></pre><div class="info"> -A instr to serve as a placeholder<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdummyStmt"></a>dummyStmt : <code class="type"><a href="Cil.html#TYPEstmt">stmt</a></code></pre><div class="info"> -A statement consisting of just <code class="code">dummyInstr</code><br> -</div> -<pre><span class="keyword">val</span> <a name="VALmkWhile"></a>mkWhile : <code class="type">guard:<a href="Cil.html#TYPEexp">exp</a> -> body:<a href="Cil.html#TYPEstmt">stmt</a> list -> <a href="Cil.html#TYPEstmt">stmt</a> list</code></pre><div class="info"> -Make a while loop. Can contain Break or Continue<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmkForIncr"></a>mkForIncr : <code class="type">iter:<a href="Cil.html#TYPEvarinfo">varinfo</a> -><br> first:<a href="Cil.html#TYPEexp">exp</a> -><br> stopat:<a href="Cil.html#TYPEexp">exp</a> -> incr:<a href="Cil.html#TYPEexp">exp</a> -> body:<a href="Cil.html#TYPEstmt">stmt</a> list -> <a href="Cil.html#TYPEstmt">stmt</a> list</code></pre><div class="info"> -Make a for loop for(i=start; i<past; i += incr) { ... }. The body - can contain Break but not Continue. Can be used with i a pointer - or an integer. Start and done must have the same type but incr - must be an integer<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmkFor"></a>mkFor : <code class="type">start:<a href="Cil.html#TYPEstmt">stmt</a> list -><br> guard:<a href="Cil.html#TYPEexp">exp</a> -> next:<a href="Cil.html#TYPEstmt">stmt</a> list -> body:<a href="Cil.html#TYPEstmt">stmt</a> list -> <a href="Cil.html#TYPEstmt">stmt</a> list</code></pre><div class="info"> -Make a for loop for(start; guard; next) { ... }. The body can - contain Break but not Continue !!!<br> -</div> -<br> -<b>Values for manipulating attributes</b><br> -<br><code><span class="keyword">type</span> <a name="TYPEattributeClass"></a><code class="type"></code>attributeClass = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">AttrName</span> <span class="keyword">of</span> <code class="type">bool</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Attribute of a name. If argument is true and we are on MSVC then - the attribute is printed using __declspec as part of the storage - specifier</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">AttrFunType</span> <span class="keyword">of</span> <code class="type">bool</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Attribute of a function type. If argument is true and we are on - MSVC then the attribute is printed just before the function name</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">AttrType</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Attribute of a type</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> - -<div class="info"> -Various classes of attributes<br> -</div> - -<pre><span class="keyword">val</span> <a name="VALattributeHash"></a>attributeHash : <code class="type">(string, <a href="Cil.html#TYPEattributeClass">attributeClass</a>) Hashtbl.t</code></pre><div class="info"> -This table contains the mapping of predefined attributes to classes. - Extend this table with more attributes as you need. This table is used to - determine how to associate attributes with names or types<br> -</div> -<pre><span class="keyword">val</span> <a name="VALpartitionAttributes"></a>partitionAttributes : <code class="type">default:<a href="Cil.html#TYPEattributeClass">attributeClass</a> -><br> <a href="Cil.html#TYPEattributes">attributes</a> -><br> <a href="Cil.html#TYPEattribute">attribute</a> list * <a href="Cil.html#TYPEattribute">attribute</a> list * <a href="Cil.html#TYPEattribute">attribute</a> list</code></pre><div class="info"> -Partition the attributes into classes:name attributes, function type, - and type attributes<br> -</div> -<pre><span class="keyword">val</span> <a name="VALaddAttribute"></a>addAttribute : <code class="type"><a href="Cil.html#TYPEattribute">attribute</a> -> <a href="Cil.html#TYPEattributes">attributes</a> -> <a href="Cil.html#TYPEattributes">attributes</a></code></pre><div class="info"> -Add an attribute. Maintains the attributes in sorted order of the second - argument<br> -</div> -<pre><span class="keyword">val</span> <a name="VALaddAttributes"></a>addAttributes : <code class="type"><a href="Cil.html#TYPEattribute">attribute</a> list -> <a href="Cil.html#TYPEattributes">attributes</a> -> <a href="Cil.html#TYPEattributes">attributes</a></code></pre><div class="info"> -Add a list of attributes. Maintains the attributes in sorted order. The - second argument must be sorted, but not necessarily the first<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdropAttribute"></a>dropAttribute : <code class="type">string -> <a href="Cil.html#TYPEattributes">attributes</a> -> <a href="Cil.html#TYPEattributes">attributes</a></code></pre><div class="info"> -Remove all attributes with the given name. Maintains the attributes in - sorted order.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdropAttributes"></a>dropAttributes : <code class="type">string list -> <a href="Cil.html#TYPEattributes">attributes</a> -> <a href="Cil.html#TYPEattributes">attributes</a></code></pre><div class="info"> -Remove all attributes with names appearing in the string list. - Maintains the attributes in sorted order<br> -</div> -<pre><span class="keyword">val</span> <a name="VALfilterAttributes"></a>filterAttributes : <code class="type">string -> <a href="Cil.html#TYPEattributes">attributes</a> -> <a href="Cil.html#TYPEattributes">attributes</a></code></pre><div class="info"> -Retains attributes with the given name<br> -</div> -<pre><span class="keyword">val</span> <a name="VALhasAttribute"></a>hasAttribute : <code class="type">string -> <a href="Cil.html#TYPEattributes">attributes</a> -> bool</code></pre><div class="info"> -True if the named attribute appears in the attribute list. The list of - attributes must be sorted.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALtypeAttrs"></a>typeAttrs : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEattribute">attribute</a> list</code></pre><div class="info"> -Returns all the attributes contained in a type. This requires a traversal - of the type structure, in case of composite, enumeration and named types<br> -</div> -<pre><span class="keyword">val</span> <a name="VALsetTypeAttrs"></a>setTypeAttrs : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEattributes">attributes</a> -> <a href="Cil.html#TYPEtyp">typ</a></code></pre><pre><span class="keyword">val</span> <a name="VALtypeAddAttributes"></a>typeAddAttributes : <code class="type"><a href="Cil.html#TYPEattribute">attribute</a> list -> <a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEtyp">typ</a></code></pre><div class="info"> -Add some attributes to a type<br> -</div> -<pre><span class="keyword">val</span> <a name="VALtypeRemoveAttributes"></a>typeRemoveAttributes : <code class="type">string list -> <a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEtyp">typ</a></code></pre><div class="info"> -Remove all attributes with the given names from a type. Note that this - does not remove attributes from typedef and tag definitions, just from - their uses<br> -</div> -<br> -<b>The visitor</b><br> -<br><code><span class="keyword">type</span> <a name="TYPEvisitAction"></a><code class="type">'a</code> visitAction = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">SkipChildren</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Do not visit the children. Return - the node as it is.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">DoChildren</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Continue with the children of this - node. Rebuild the node on return - if any of the children changes - (use == test)</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">ChangeTo</span> <span class="keyword">of</span> <code class="type">'a</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Replace the expression with the - given one</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">ChangeDoChildrenPost</span> <span class="keyword">of</span> <code class="type">'a * ('a -> 'a)</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>First consider that the entire - exp is replaced by the first - parameter. Then continue with - the children. On return rebuild - the node if any of the children - has changed and then apply the - function on the node</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> - -<div class="info"> -Different visiting actions. 'a will be instantiated with <code class="code">exp</code>, <code class="code">instr</code>, - etc.<br> -</div> - -<pre><span class="keyword">class type</span> <a name="TYPEcilVisitor"></a><a href="Cil.cilVisitor.html">cilVisitor</a> = <code class="code">object</code> <a href="Cil.cilVisitor.html">..</a> <code class="code">end</code></pre><div class="info"> -A visitor interface for traversing CIL trees. -</div> -<pre><span class="keyword">class</span> <a name="TYPEnopCilVisitor"></a><a href="Cil.nopCilVisitor.html">nopCilVisitor</a> : <code class="type"></code><code class="type"><a href="Cil.cilVisitor.html">cilVisitor</a></code></pre><div class="info"> -Default Visitor. -</div> -<pre><span class="keyword">val</span> <a name="VALvisitCilFile"></a>visitCilFile : <code class="type"><a href="Cil.cilVisitor.html">cilVisitor</a> -> <a href="Cil.html#TYPEfile">file</a> -> unit</code></pre><div class="info"> -Visit a file. This will will re-cons all globals TWICE (so that it is - tail-recursive). Use <a href="Cil.html#VALvisitCilFileSameGlobals"><code class="code">Cil.visitCilFileSameGlobals</code></a> if your visitor will - not change the list of globals.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALvisitCilFileSameGlobals"></a>visitCilFileSameGlobals : <code class="type"><a href="Cil.cilVisitor.html">cilVisitor</a> -> <a href="Cil.html#TYPEfile">file</a> -> unit</code></pre><div class="info"> -A visitor for the whole file that does not change the globals (but maybe - changes things inside the globals). Use this function instead of - <a href="Cil.html#VALvisitCilFile"><code class="code">Cil.visitCilFile</code></a> whenever appropriate because it is more efficient for - long files.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALvisitCilGlobal"></a>visitCilGlobal : <code class="type"><a href="Cil.cilVisitor.html">cilVisitor</a> -> <a href="Cil.html#TYPEglobal">global</a> -> <a href="Cil.html#TYPEglobal">global</a> list</code></pre><div class="info"> -Visit a global<br> -</div> -<pre><span class="keyword">val</span> <a name="VALvisitCilFunction"></a>visitCilFunction : <code class="type"><a href="Cil.cilVisitor.html">cilVisitor</a> -> <a href="Cil.html#TYPEfundec">fundec</a> -> <a href="Cil.html#TYPEfundec">fundec</a></code></pre><div class="info"> -Visit a function definition<br> -</div> -<pre><span class="keyword">val</span> <a name="VALvisitCilExpr"></a>visitCilExpr : <code class="type"><a href="Cil.cilVisitor.html">cilVisitor</a> -> <a href="Cil.html#TYPEexp">exp</a> -> <a href="Cil.html#TYPEexp">exp</a></code></pre><pre><span class="keyword">val</span> <a name="VALvisitCilLval"></a>visitCilLval : <code class="type"><a href="Cil.cilVisitor.html">cilVisitor</a> -> <a href="Cil.html#TYPElval">lval</a> -> <a href="Cil.html#TYPElval">lval</a></code></pre><div class="info"> -Visit an lvalue<br> -</div> -<pre><span class="keyword">val</span> <a name="VALvisitCilOffset"></a>visitCilOffset : <code class="type"><a href="Cil.cilVisitor.html">cilVisitor</a> -> <a href="Cil.html#TYPEoffset">offset</a> -> <a href="Cil.html#TYPEoffset">offset</a></code></pre><div class="info"> -Visit an lvalue or recursive offset<br> -</div> -<pre><span class="keyword">val</span> <a name="VALvisitCilInitOffset"></a>visitCilInitOffset : <code class="type"><a href="Cil.cilVisitor.html">cilVisitor</a> -> <a href="Cil.html#TYPEoffset">offset</a> -> <a href="Cil.html#TYPEoffset">offset</a></code></pre><div class="info"> -Visit an initializer offset<br> -</div> -<pre><span class="keyword">val</span> <a name="VALvisitCilInstr"></a>visitCilInstr : <code class="type"><a href="Cil.cilVisitor.html">cilVisitor</a> -> <a href="Cil.html#TYPEinstr">instr</a> -> <a href="Cil.html#TYPEinstr">instr</a> list</code></pre><div class="info"> -Visit an instruction<br> -</div> -<pre><span class="keyword">val</span> <a name="VALvisitCilStmt"></a>visitCilStmt : <code class="type"><a href="Cil.cilVisitor.html">cilVisitor</a> -> <a href="Cil.html#TYPEstmt">stmt</a> -> <a href="Cil.html#TYPEstmt">stmt</a></code></pre><div class="info"> -Visit a statement<br> -</div> -<pre><span class="keyword">val</span> <a name="VALvisitCilBlock"></a>visitCilBlock : <code class="type"><a href="Cil.cilVisitor.html">cilVisitor</a> -> <a href="Cil.html#TYPEblock">block</a> -> <a href="Cil.html#TYPEblock">block</a></code></pre><div class="info"> -Visit a block<br> -</div> -<pre><span class="keyword">val</span> <a name="VALvisitCilType"></a>visitCilType : <code class="type"><a href="Cil.cilVisitor.html">cilVisitor</a> -> <a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEtyp">typ</a></code></pre><div class="info"> -Visit a type<br> -</div> -<pre><span class="keyword">val</span> <a name="VALvisitCilVarDecl"></a>visitCilVarDecl : <code class="type"><a href="Cil.cilVisitor.html">cilVisitor</a> -> <a href="Cil.html#TYPEvarinfo">varinfo</a> -> <a href="Cil.html#TYPEvarinfo">varinfo</a></code></pre><div class="info"> -Visit a variable declaration<br> -</div> -<pre><span class="keyword">val</span> <a name="VALvisitCilInit"></a>visitCilInit : <code class="type"><a href="Cil.cilVisitor.html">cilVisitor</a> -> <a href="Cil.html#TYPEinit">init</a> -> <a href="Cil.html#TYPEinit">init</a></code></pre><div class="info"> -Visit an initializer<br> -</div> -<pre><span class="keyword">val</span> <a name="VALvisitCilAttributes"></a>visitCilAttributes : <code class="type"><a href="Cil.cilVisitor.html">cilVisitor</a> -> <a href="Cil.html#TYPEattribute">attribute</a> list -> <a href="Cil.html#TYPEattribute">attribute</a> list</code></pre><div class="info"> -Visit a list of attributes<br> -</div> -<br> -<b>Utility functions</b><br> -<pre><span class="keyword">val</span> <a name="VALmsvcMode"></a>msvcMode : <code class="type">bool Pervasives.ref</code></pre><div class="info"> -Whether the pretty printer should print output for the MS VC compiler. - Default is GCC. After you set this function you should call <a href="Cil.html#VALinitCIL"><code class="code">Cil.initCIL</code></a>.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALuseLogicalOperators"></a>useLogicalOperators : <code class="type">bool Pervasives.ref</code></pre><div class="info"> -Whether to use the logical operands LAnd and LOr. By default, do not use - them because they are unlike other expressions and do not evaluate both of - their operands<br> -</div> -<pre><span class="keyword">val</span> <a name="VALconstFoldVisitor"></a>constFoldVisitor : <code class="type">bool -> <a href="Cil.cilVisitor.html">cilVisitor</a></code></pre><div class="info"> -A visitor that does constant folding. Pass as argument whether you want - machine specific simplifications to be done, or not.<br> -</div> -<br><code><span class="keyword">type</span> <a name="TYPElineDirectiveStyle"></a><code class="type"></code>lineDirectiveStyle = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">LineComment</span></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">LinePreprocessorInput</span></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">LinePreprocessorOutput</span></code></td> - -</tr></table> - -<div class="info"> -Styles of printing line directives<br> -</div> - -<pre><span class="keyword">val</span> <a name="VALlineDirectiveStyle"></a>lineDirectiveStyle : <code class="type"><a href="Cil.html#TYPElineDirectiveStyle">lineDirectiveStyle</a> option Pervasives.ref</code></pre><div class="info"> -How to print line directives<br> -</div> -<pre><span class="keyword">val</span> <a name="VALprint_CIL_Input"></a>print_CIL_Input : <code class="type">bool Pervasives.ref</code></pre><div class="info"> -Whether we print something that will only be used as input to our own - parser. In that case we are a bit more liberal in what we print<br> -</div> -<pre><span class="keyword">val</span> <a name="VALprintCilAsIs"></a>printCilAsIs : <code class="type">bool Pervasives.ref</code></pre><div class="info"> -Whether to print the CIL as they are, without trying to be smart and - print nicer code. Normally this is false, in which case the pretty - printer will turn the while(1) loops of CIL into nicer loops, will not - print empty "else" blocks, etc. These is one case howewer in which if you - turn this on you will get code that does not compile: if you use varargs - the __builtin_va_arg function will be printed in its internal form.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALlineLength"></a>lineLength : <code class="type">int Pervasives.ref</code></pre><div class="info"> -The length used when wrapping output lines. Setting this variable to - a large integer will prevent wrapping and make #line directives more - accurate.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALforgcc"></a>forgcc : <code class="type">string -> string</code></pre><div class="info"> -Return the string 's' if we're printing output for gcc, suppres - it if we're printing for CIL to parse back in. the purpose is to - hide things from gcc that it complains about, but still be able - to do lossless transformations when CIL is the consumer<br> -</div> -<br> -<b>Debugging support</b><br> -<pre><span class="keyword">val</span> <a name="VALcurrentLoc"></a>currentLoc : <code class="type"><a href="Cil.html#TYPElocation">location</a> Pervasives.ref</code></pre><div class="info"> -A reference to the current location. If you are careful to set this to - the current location then you can use some built-in logging functions that - will print the location.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcurrentGlobal"></a>currentGlobal : <code class="type"><a href="Cil.html#TYPEglobal">global</a> Pervasives.ref</code></pre><div class="info"> -A reference to the current global being visited<br> -</div> -<br> -CIL has a fairly easy to use mechanism for printing error messages. This - mechanism is built on top of the pretty-printer mechanism (see - <a href="Pretty.html#TYPEdoc"><code class="code">Pretty.doc</code></a>) and the error-message modules (see <a href="Errormsg.html#VALerror"><code class="code">Errormsg.error</code></a>). -<p> - - Here is a typical example for printing a log message: <pre> -ignore (Errormsg.log "Expression %a is not positive (at %s:%i)\n" - d_exp e loc.file loc.line) -</pre> -<p> - - and here is an example of how you print a fatal error message that stop the - execution: <pre> -Errormsg.s (Errormsg.bug "Why am I here?") -</pre> -<p> - - Notice that you can use C format strings with some extension. The most -useful extension is "%a" that means to consumer the next two argument from -the argument list and to apply the first to <code class="code">unit</code> and then to the second -and to print the resulting <a href="Pretty.html#TYPEdoc"><code class="code">Pretty.doc</code></a>. For each major type in CIL there is -a corresponding function that pretty-prints an element of that type:<br> -<pre><span class="keyword">val</span> <a name="VALd_loc"></a>d_loc : <code class="type">unit -> <a href="Cil.html#TYPElocation">location</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print a location<br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_thisloc"></a>d_thisloc : <code class="type">unit -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print the <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a><br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_ikind"></a>d_ikind : <code class="type">unit -> <a href="Cil.html#TYPEikind">ikind</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print an integer of a given kind<br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_fkind"></a>d_fkind : <code class="type">unit -> <a href="Cil.html#TYPEfkind">fkind</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print a floating-point kind<br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_storage"></a>d_storage : <code class="type">unit -> <a href="Cil.html#TYPEstorage">storage</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print storage-class information<br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_const"></a>d_const : <code class="type">unit -> <a href="Cil.html#TYPEconstant">constant</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print a constant<br> -</div> -<pre><span class="keyword">val</span> <a name="VALderefStarLevel"></a>derefStarLevel : <code class="type">int</code></pre><pre><span class="keyword">val</span> <a name="VALindexLevel"></a>indexLevel : <code class="type">int</code></pre><pre><span class="keyword">val</span> <a name="VALarrowLevel"></a>arrowLevel : <code class="type">int</code></pre><pre><span class="keyword">val</span> <a name="VALaddrOfLevel"></a>addrOfLevel : <code class="type">int</code></pre><pre><span class="keyword">val</span> <a name="VALadditiveLevel"></a>additiveLevel : <code class="type">int</code></pre><pre><span class="keyword">val</span> <a name="VALcomparativeLevel"></a>comparativeLevel : <code class="type">int</code></pre><pre><span class="keyword">val</span> <a name="VALbitwiseLevel"></a>bitwiseLevel : <code class="type">int</code></pre><pre><span class="keyword">val</span> <a name="VALgetParenthLevel"></a>getParenthLevel : <code class="type"><a href="Cil.html#TYPEexp">exp</a> -> int</code></pre><div class="info"> -Parentheses level. An expression "a op b" is printed parenthesized if its - parentheses level is >= that that of its context. Identifiers have the - lowest level and weakly binding operators (e.g. |) have the largest level. - The correctness criterion is that a smaller level MUST correspond to a - stronger precedence!<br> -</div> -<pre><span class="keyword">class type</span> <a name="TYPEcilPrinter"></a><a href="Cil.cilPrinter.html">cilPrinter</a> = <code class="code">object</code> <a href="Cil.cilPrinter.html">..</a> <code class="code">end</code></pre><div class="info"> -A printer interface for CIL trees. -</div> -<pre><span class="keyword">class</span> <a name="TYPEdefaultCilPrinterClass"></a><a href="Cil.defaultCilPrinterClass.html">defaultCilPrinterClass</a> : <code class="type"></code><code class="type"><a href="Cil.cilPrinter.html">cilPrinter</a></code></pre><pre><span class="keyword">val</span> <a name="VALdefaultCilPrinter"></a>defaultCilPrinter : <code class="type"><a href="Cil.cilPrinter.html">cilPrinter</a></code></pre><pre><span class="keyword">class</span> <a name="TYPEplainCilPrinterClass"></a><a href="Cil.plainCilPrinterClass.html">plainCilPrinterClass</a> : <code class="type"></code><code class="type"><a href="Cil.cilPrinter.html">cilPrinter</a></code></pre><div class="info"> -These are pretty-printers that will show you more details on the internal - CIL representation, without trying hard to make it look like C -</div> -<pre><span class="keyword">val</span> <a name="VALplainCilPrinter"></a>plainCilPrinter : <code class="type"><a href="Cil.cilPrinter.html">cilPrinter</a></code></pre><pre><span class="keyword">val</span> <a name="VALprinterForMaincil"></a>printerForMaincil : <code class="type"><a href="Cil.cilPrinter.html">cilPrinter</a> Pervasives.ref</code></pre><pre><span class="keyword">val</span> <a name="VALprintType"></a>printType : <code class="type"><a href="Cil.cilPrinter.html">cilPrinter</a> -> unit -> <a href="Cil.html#TYPEtyp">typ</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Print a type given a pretty printer<br> -</div> -<pre><span class="keyword">val</span> <a name="VALprintExp"></a>printExp : <code class="type"><a href="Cil.cilPrinter.html">cilPrinter</a> -> unit -> <a href="Cil.html#TYPEexp">exp</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Print an expression given a pretty printer<br> -</div> -<pre><span class="keyword">val</span> <a name="VALprintLval"></a>printLval : <code class="type"><a href="Cil.cilPrinter.html">cilPrinter</a> -> unit -> <a href="Cil.html#TYPElval">lval</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Print an lvalue given a pretty printer<br> -</div> -<pre><span class="keyword">val</span> <a name="VALprintGlobal"></a>printGlobal : <code class="type"><a href="Cil.cilPrinter.html">cilPrinter</a> -> unit -> <a href="Cil.html#TYPEglobal">global</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Print a global given a pretty printer<br> -</div> -<pre><span class="keyword">val</span> <a name="VALprintAttr"></a>printAttr : <code class="type"><a href="Cil.cilPrinter.html">cilPrinter</a> -> unit -> <a href="Cil.html#TYPEattribute">attribute</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Print an attribute given a pretty printer<br> -</div> -<pre><span class="keyword">val</span> <a name="VALprintAttrs"></a>printAttrs : <code class="type"><a href="Cil.cilPrinter.html">cilPrinter</a> -> unit -> <a href="Cil.html#TYPEattributes">attributes</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Print a set of attributes given a pretty printer<br> -</div> -<pre><span class="keyword">val</span> <a name="VALprintInstr"></a>printInstr : <code class="type"><a href="Cil.cilPrinter.html">cilPrinter</a> -> unit -> <a href="Cil.html#TYPEinstr">instr</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Print an instruction given a pretty printer<br> -</div> -<pre><span class="keyword">val</span> <a name="VALprintStmt"></a>printStmt : <code class="type"><a href="Cil.cilPrinter.html">cilPrinter</a> -> unit -> <a href="Cil.html#TYPEstmt">stmt</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Print a statement given a pretty printer. This can take very long - (or even overflow the stack) for huge statements. Use <a href="Cil.html#VALdumpStmt"><code class="code">Cil.dumpStmt</code></a> - instead.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALprintBlock"></a>printBlock : <code class="type"><a href="Cil.cilPrinter.html">cilPrinter</a> -> unit -> <a href="Cil.html#TYPEblock">block</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Print a block given a pretty printer. This can take very long - (or even overflow the stack) for huge block. Use <a href="Cil.html#VALdumpBlock"><code class="code">Cil.dumpBlock</code></a> - instead.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdumpStmt"></a>dumpStmt : <code class="type"><a href="Cil.cilPrinter.html">cilPrinter</a> -> Pervasives.out_channel -> int -> <a href="Cil.html#TYPEstmt">stmt</a> -> unit</code></pre><div class="info"> -Dump a statement to a file using a given indentation. Use this instead of - <a href="Cil.html#VALprintStmt"><code class="code">Cil.printStmt</code></a> whenever possible.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdumpBlock"></a>dumpBlock : <code class="type"><a href="Cil.cilPrinter.html">cilPrinter</a> -> Pervasives.out_channel -> int -> <a href="Cil.html#TYPEblock">block</a> -> unit</code></pre><div class="info"> -Dump a block to a file using a given indentation. Use this instead of - <a href="Cil.html#VALprintBlock"><code class="code">Cil.printBlock</code></a> whenever possible.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALprintInit"></a>printInit : <code class="type"><a href="Cil.cilPrinter.html">cilPrinter</a> -> unit -> <a href="Cil.html#TYPEinit">init</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Print an initializer given a pretty printer. This can take very long - (or even overflow the stack) for huge initializers. Use <a href="Cil.html#VALdumpInit"><code class="code">Cil.dumpInit</code></a> - instead.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdumpInit"></a>dumpInit : <code class="type"><a href="Cil.cilPrinter.html">cilPrinter</a> -> Pervasives.out_channel -> int -> <a href="Cil.html#TYPEinit">init</a> -> unit</code></pre><div class="info"> -Dump an initializer to a file using a given indentation. Use this instead of - <a href="Cil.html#VALprintInit"><code class="code">Cil.printInit</code></a> whenever possible.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_type"></a>d_type : <code class="type">unit -> <a href="Cil.html#TYPEtyp">typ</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print a type using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a><br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_exp"></a>d_exp : <code class="type">unit -> <a href="Cil.html#TYPEexp">exp</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print an expression using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a><br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_lval"></a>d_lval : <code class="type">unit -> <a href="Cil.html#TYPElval">lval</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print an lvalue using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a><br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_offset"></a>d_offset : <code class="type"><a href="Pretty.html#TYPEdoc">Pretty.doc</a> -> unit -> <a href="Cil.html#TYPEoffset">offset</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print an offset using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a>, given the pretty - printing for the base.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_init"></a>d_init : <code class="type">unit -> <a href="Cil.html#TYPEinit">init</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print an initializer using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a>. This can be - extremely slow (or even overflow the stack) for huge initializers. Use - <a href="Cil.html#VALdumpInit"><code class="code">Cil.dumpInit</code></a> instead.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_binop"></a>d_binop : <code class="type">unit -> <a href="Cil.html#TYPEbinop">binop</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print a binary operator<br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_unop"></a>d_unop : <code class="type">unit -> <a href="Cil.html#TYPEunop">unop</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print a unary operator<br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_attr"></a>d_attr : <code class="type">unit -> <a href="Cil.html#TYPEattribute">attribute</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print an attribute using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a><br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_attrparam"></a>d_attrparam : <code class="type">unit -> <a href="Cil.html#TYPEattrparam">attrparam</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print an argument of an attribute using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a><br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_attrlist"></a>d_attrlist : <code class="type">unit -> <a href="Cil.html#TYPEattributes">attributes</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print a list of attributes using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a><br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_instr"></a>d_instr : <code class="type">unit -> <a href="Cil.html#TYPEinstr">instr</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print an instruction using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a><br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_label"></a>d_label : <code class="type">unit -> <a href="Cil.html#TYPElabel">label</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print a label using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a><br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_stmt"></a>d_stmt : <code class="type">unit -> <a href="Cil.html#TYPEstmt">stmt</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print a statement using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a>. This can be - extremely slow (or even overflow the stack) for huge statements. Use - <a href="Cil.html#VALdumpStmt"><code class="code">Cil.dumpStmt</code></a> instead.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_block"></a>d_block : <code class="type">unit -> <a href="Cil.html#TYPEblock">block</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print a block using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a>. This can be - extremely slow (or even overflow the stack) for huge blocks. Use - <a href="Cil.html#VALdumpBlock"><code class="code">Cil.dumpBlock</code></a> instead.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_global"></a>d_global : <code class="type">unit -> <a href="Cil.html#TYPEglobal">global</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print the internal representation of a global using - <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a>. This can be extremely slow (or even overflow the - stack) for huge globals (such as arrays with lots of initializers). Use - <a href="Cil.html#VALdumpGlobal"><code class="code">Cil.dumpGlobal</code></a> instead.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdn_exp"></a>dn_exp : <code class="type">unit -> <a href="Cil.html#TYPEexp">exp</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Versions of the above pretty printers, that don't print #line directives<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdn_lval"></a>dn_lval : <code class="type">unit -> <a href="Cil.html#TYPElval">lval</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><pre><span class="keyword">val</span> <a name="VALdn_init"></a>dn_init : <code class="type">unit -> <a href="Cil.html#TYPEinit">init</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><pre><span class="keyword">val</span> <a name="VALdn_type"></a>dn_type : <code class="type">unit -> <a href="Cil.html#TYPEtyp">typ</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><pre><span class="keyword">val</span> <a name="VALdn_global"></a>dn_global : <code class="type">unit -> <a href="Cil.html#TYPEglobal">global</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><pre><span class="keyword">val</span> <a name="VALdn_attrlist"></a>dn_attrlist : <code class="type">unit -> <a href="Cil.html#TYPEattributes">attributes</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><pre><span class="keyword">val</span> <a name="VALdn_attr"></a>dn_attr : <code class="type">unit -> <a href="Cil.html#TYPEattribute">attribute</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><pre><span class="keyword">val</span> <a name="VALdn_attrparam"></a>dn_attrparam : <code class="type">unit -> <a href="Cil.html#TYPEattrparam">attrparam</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><pre><span class="keyword">val</span> <a name="VALdn_stmt"></a>dn_stmt : <code class="type">unit -> <a href="Cil.html#TYPEstmt">stmt</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><pre><span class="keyword">val</span> <a name="VALdn_instr"></a>dn_instr : <code class="type">unit -> <a href="Cil.html#TYPEinstr">instr</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><pre><span class="keyword">val</span> <a name="VALd_shortglobal"></a>d_shortglobal : <code class="type">unit -> <a href="Cil.html#TYPEglobal">global</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print a short description of the global. This is useful for error - messages<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdumpGlobal"></a>dumpGlobal : <code class="type"><a href="Cil.cilPrinter.html">cilPrinter</a> -> Pervasives.out_channel -> <a href="Cil.html#TYPEglobal">global</a> -> unit</code></pre><div class="info"> -Pretty-print a global. Here you give the channel where the printout - should be sent.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdumpFile"></a>dumpFile : <code class="type"><a href="Cil.cilPrinter.html">cilPrinter</a> -> Pervasives.out_channel -> string -> <a href="Cil.html#TYPEfile">file</a> -> unit</code></pre><div class="info"> -Pretty-print an entire file. Here you give the channel where the printout - should be sent.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALbug"></a>bug : <code class="type">('a, unit, <a href="Pretty.html#TYPEdoc">Pretty.doc</a>) Pervasives.format -> 'a</code></pre><div class="info"> -Like <a href="Errormsg.html#VALbug"><code class="code">Errormsg.bug</code></a> except that <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a> is also printed<br> -</div> -<pre><span class="keyword">val</span> <a name="VALunimp"></a>unimp : <code class="type">('a, unit, <a href="Pretty.html#TYPEdoc">Pretty.doc</a>) Pervasives.format -> 'a</code></pre><div class="info"> -Like <a href="Errormsg.html#VALunimp"><code class="code">Errormsg.unimp</code></a> except that <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a>is also printed<br> -</div> -<pre><span class="keyword">val</span> <a name="VALerror"></a>error : <code class="type">('a, unit, <a href="Pretty.html#TYPEdoc">Pretty.doc</a>) Pervasives.format -> 'a</code></pre><div class="info"> -Like <a href="Errormsg.html#VALerror"><code class="code">Errormsg.error</code></a> except that <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a> is also printed<br> -</div> -<pre><span class="keyword">val</span> <a name="VALerrorLoc"></a>errorLoc : <code class="type"><a href="Cil.html#TYPElocation">location</a> -> ('a, unit, <a href="Pretty.html#TYPEdoc">Pretty.doc</a>) Pervasives.format -> 'a</code></pre><div class="info"> -Like <a href="Cil.html#VALerror"><code class="code">Cil.error</code></a> except that it explicitly takes a location argument, - instead of using the <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a><br> -</div> -<pre><span class="keyword">val</span> <a name="VALwarn"></a>warn : <code class="type">('a, unit, <a href="Pretty.html#TYPEdoc">Pretty.doc</a>) Pervasives.format -> 'a</code></pre><div class="info"> -Like <a href="Errormsg.html#VALwarn"><code class="code">Errormsg.warn</code></a> except that <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a> is also printed<br> -</div> -<pre><span class="keyword">val</span> <a name="VALwarnOpt"></a>warnOpt : <code class="type">('a, unit, <a href="Pretty.html#TYPEdoc">Pretty.doc</a>) Pervasives.format -> 'a</code></pre><div class="info"> -Like <a href="Errormsg.html#VALwarnOpt"><code class="code">Errormsg.warnOpt</code></a> except that <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a> is also printed. - This warning is printed only of <a href="Errormsg.html#VALwarnFlag"><code class="code">Errormsg.warnFlag</code></a> is set.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALwarnContext"></a>warnContext : <code class="type">('a, unit, <a href="Pretty.html#TYPEdoc">Pretty.doc</a>) Pervasives.format -> 'a</code></pre><div class="info"> -Like <a href="Errormsg.html#VALwarn"><code class="code">Errormsg.warn</code></a> except that <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a> and context - is also printed<br> -</div> -<pre><span class="keyword">val</span> <a name="VALwarnContextOpt"></a>warnContextOpt : <code class="type">('a, unit, <a href="Pretty.html#TYPEdoc">Pretty.doc</a>) Pervasives.format -> 'a</code></pre><div class="info"> -Like <a href="Errormsg.html#VALwarn"><code class="code">Errormsg.warn</code></a> except that <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a> and context is also - printed. This warning is printed only of <a href="Errormsg.html#VALwarnFlag"><code class="code">Errormsg.warnFlag</code></a> is set.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALwarnLoc"></a>warnLoc : <code class="type"><a href="Cil.html#TYPElocation">location</a> -> ('a, unit, <a href="Pretty.html#TYPEdoc">Pretty.doc</a>) Pervasives.format -> 'a</code></pre><div class="info"> -Like <a href="Cil.html#VALwarn"><code class="code">Cil.warn</code></a> except that it explicitly takes a location argument, - instead of using the <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a><br> -</div> -<br> -Sometimes you do not want to see the syntactic sugar that the above - pretty-printing functions add. In that case you can use the following - pretty-printing functions. But note that the output of these functions is - not valid C<br> -<pre><span class="keyword">val</span> <a name="VALd_plainexp"></a>d_plainexp : <code class="type">unit -> <a href="Cil.html#TYPEexp">exp</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print the internal representation of an expression<br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_plaininit"></a>d_plaininit : <code class="type">unit -> <a href="Cil.html#TYPEinit">init</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print the internal representation of an integer<br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_plainlval"></a>d_plainlval : <code class="type">unit -> <a href="Cil.html#TYPElval">lval</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print the internal representation of an lvalue<br> -</div> -<br> -Pretty-print the internal representation of an lvalue offset -val d_plainoffset: unit -> offset -> Pretty.doc<br> -<pre><span class="keyword">val</span> <a name="VALd_plaintype"></a>d_plaintype : <code class="type">unit -> <a href="Cil.html#TYPEtyp">typ</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print the internal representation of a type<br> -</div> -<br> -<b>ALPHA conversion</b> has been moved to the Alpha module.<br> -<pre><span class="keyword">val</span> <a name="VALuniqueVarNames"></a>uniqueVarNames : <code class="type"><a href="Cil.html#TYPEfile">file</a> -> unit</code></pre><div class="info"> -Assign unique names to local variables. This might be necessary after you - transformed the code and added or renamed some new variables. Names are - not used by CIL internally, but once you print the file out the compiler - downstream might be confused. You might - have added a new global that happens to have the same name as a local in - some function. Rename the local to ensure that there would never be - confusioin. Or, viceversa, you might have added a local with a name that - conflicts with a global<br> -</div> -<br> -<b>Optimization Passes</b><br> -<pre><span class="keyword">val</span> <a name="VALpeepHole2"></a>peepHole2 : <code class="type">(<a href="Cil.html#TYPEinstr">instr</a> * <a href="Cil.html#TYPEinstr">instr</a> -> <a href="Cil.html#TYPEinstr">instr</a> list option) -> <a href="Cil.html#TYPEstmt">stmt</a> list -> unit</code></pre><div class="info"> -A peephole optimizer that processes two adjacent statements and possibly - replaces them both. If some replacement happens, then the new statements - are themselves subject to optimization<br> -</div> -<pre><span class="keyword">val</span> <a name="VALpeepHole1"></a>peepHole1 : <code class="type">(<a href="Cil.html#TYPEinstr">instr</a> -> <a href="Cil.html#TYPEinstr">instr</a> list option) -> <a href="Cil.html#TYPEstmt">stmt</a> list -> unit</code></pre><div class="info"> -Similar to <code class="code">peepHole2</code> except that the optimization window consists of - one statement, not two<br> -</div> -<br> -<b>Machine dependency</b><br> -<pre><span class="keyword">exception</span> <a name="EXCEPTIONSizeOfError"></a>SizeOfError <span class="keyword">of</span> <code class="type">string * <a href="Cil.html#TYPEtyp">typ</a></code></pre> -<div class="info"> -Raised when one of the bitsSizeOf functions cannot compute the size of a - type. This can happen because the type contains array-length expressions - that we don't know how to compute or because it is a type whose size is - not defined (e.g. TFun or an undefined compinfo). The string is an - explanation of the error<br> -</div> -<pre><span class="keyword">val</span> <a name="VALbitsSizeOf"></a>bitsSizeOf : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> -> int</code></pre><div class="info"> -The size of a type, in bits. Trailing padding is added for structs and - arrays. Raises <a href="Cil.html#EXCEPTIONSizeOfError"><code class="code">Cil.SizeOfError</code></a> when it cannot compute the size. This - function is architecture dependent, so you should only call this after you - call <a href="Cil.html#VALinitCIL"><code class="code">Cil.initCIL</code></a>. Remember that on GCC sizeof(void) is 1!<br> -</div> -<pre><span class="keyword">val</span> <a name="VALsizeOf"></a>sizeOf : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEexp">exp</a></code></pre><pre><span class="keyword">val</span> <a name="VALalignOf_int"></a>alignOf_int : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> -> int</code></pre><div class="info"> -The minimum alignment (in bytes) for a type. This function is - architecture dependent, so you should only call this after you call - <a href="Cil.html#VALinitCIL"><code class="code">Cil.initCIL</code></a>.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALbitsOffset"></a>bitsOffset : <code class="type"><a href="Cil.html#TYPEtyp">typ</a> -> <a href="Cil.html#TYPEoffset">offset</a> -> int * int</code></pre><div class="info"> -Give a type of a base and an offset, returns the number of bits from the - base address and the width (also expressed in bits) for the subobject - denoted by the offset. Raises <a href="Cil.html#EXCEPTIONSizeOfError"><code class="code">Cil.SizeOfError</code></a> when it cannot compute - the size. This function is architecture dependent, so you should only call - this after you call <a href="Cil.html#VALinitCIL"><code class="code">Cil.initCIL</code></a>.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALchar_is_unsigned"></a>char_is_unsigned : <code class="type">bool Pervasives.ref</code></pre><div class="info"> -Whether "char" is unsigned. Set after you call <a href="Cil.html#VALinitCIL"><code class="code">Cil.initCIL</code></a><br> -</div> -<pre><span class="keyword">val</span> <a name="VALlittle_endian"></a>little_endian : <code class="type">bool Pervasives.ref</code></pre><div class="info"> -Whether the machine is little endian. Set after you call <a href="Cil.html#VALinitCIL"><code class="code">Cil.initCIL</code></a><br> -</div> -<pre><span class="keyword">val</span> <a name="VALunderscore_name"></a>underscore_name : <code class="type">bool Pervasives.ref</code></pre><div class="info"> -Whether the compiler generates assembly labels by prepending "_" to the - identifier. That is, will function foo() have the label "foo", or "_foo"? - Set after you call <a href="Cil.html#VALinitCIL"><code class="code">Cil.initCIL</code></a><br> -</div> -<pre><span class="keyword">val</span> <a name="VALlocUnknown"></a>locUnknown : <code class="type"><a href="Cil.html#TYPElocation">location</a></code></pre><div class="info"> -Represents a location that cannot be determined<br> -</div> -<pre><span class="keyword">val</span> <a name="VALget_instrLoc"></a>get_instrLoc : <code class="type"><a href="Cil.html#TYPEinstr">instr</a> -> <a href="Cil.html#TYPElocation">location</a></code></pre><div class="info"> -Return the location of an instruction<br> -</div> -<pre><span class="keyword">val</span> <a name="VALget_globalLoc"></a>get_globalLoc : <code class="type"><a href="Cil.html#TYPEglobal">global</a> -> <a href="Cil.html#TYPElocation">location</a></code></pre><div class="info"> -Return the location of a global, or locUnknown<br> -</div> -<pre><span class="keyword">val</span> <a name="VALget_stmtLoc"></a>get_stmtLoc : <code class="type"><a href="Cil.html#TYPEstmtkind">stmtkind</a> -> <a href="Cil.html#TYPElocation">location</a></code></pre><div class="info"> -Return the location of a statement, or locUnknown<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdExp"></a>dExp : <code class="type"><a href="Pretty.html#TYPEdoc">Pretty.doc</a> -> <a href="Cil.html#TYPEexp">exp</a></code></pre><div class="info"> -Generate an <a href="Cil.html#TYPEexp"><code class="code">Cil.exp</code></a> to be used in case of errors.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdInstr"></a>dInstr : <code class="type"><a href="Pretty.html#TYPEdoc">Pretty.doc</a> -> <a href="Cil.html#TYPElocation">location</a> -> <a href="Cil.html#TYPEinstr">instr</a></code></pre><div class="info"> -Generate an <a href="Cil.html#TYPEinstr"><code class="code">Cil.instr</code></a> to be used in case of errors.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdGlobal"></a>dGlobal : <code class="type"><a href="Pretty.html#TYPEdoc">Pretty.doc</a> -> <a href="Cil.html#TYPElocation">location</a> -> <a href="Cil.html#TYPEglobal">global</a></code></pre><div class="info"> -Generate a <a href="Cil.html#TYPEglobal"><code class="code">Cil.global</code></a> to be used in case of errors.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmapNoCopy"></a>mapNoCopy : <code class="type">('a -> 'a) -> 'a list -> 'a list</code></pre><div class="info"> -Like map but try not to make a copy of the list<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmapNoCopyList"></a>mapNoCopyList : <code class="type">('a -> 'a list) -> 'a list -> 'a list</code></pre><div class="info"> -Like map but each call can return a list. Try not to make a copy of the - list<br> -</div> -<pre><span class="keyword">val</span> <a name="VALstartsWith"></a>startsWith : <code class="type">string -> string -> bool</code></pre><div class="info"> -sm: return true if the first is a prefix of the second string<br> -</div> -<br> -<b>An Interpreter for constructing CIL constructs</b><br> -<br><code><span class="keyword">type</span> <a name="TYPEformatArg"></a><code class="type"></code>formatArg = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Fe</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEexp">exp</a></code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Feo</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEexp">exp</a> option</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>For array lengths</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Fu</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEunop">unop</a></code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Fb</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEbinop">binop</a></code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Fk</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEikind">ikind</a></code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">FE</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEexp">exp</a> list</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>For arguments in a function call</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Ff</span> <span class="keyword">of</span> <code class="type">(string * <a href="Cil.html#TYPEtyp">typ</a> * <a href="Cil.html#TYPEattributes">attributes</a>)</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>For a formal argument</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">FF</span> <span class="keyword">of</span> <code class="type">(string * <a href="Cil.html#TYPEtyp">typ</a> * <a href="Cil.html#TYPEattributes">attributes</a>) list</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>For formal argument lists</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Fva</span> <span class="keyword">of</span> <code class="type">bool</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>For the ellipsis in a function type</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Fv</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEvarinfo">varinfo</a></code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Fl</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPElval">lval</a></code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Flo</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPElval">lval</a> option</code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Fo</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEoffset">offset</a></code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Fc</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEcompinfo">compinfo</a></code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Fi</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEinstr">instr</a></code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">FI</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEinstr">instr</a> list</code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Ft</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEtyp">typ</a></code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Fd</span> <span class="keyword">of</span> <code class="type">int</code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Fg</span> <span class="keyword">of</span> <code class="type">string</code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Fs</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEstmt">stmt</a></code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">FS</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEstmt">stmt</a> list</code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">FA</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEattributes">attributes</a></code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Fp</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEattrparam">attrparam</a></code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">FP</span> <span class="keyword">of</span> <code class="type"><a href="Cil.html#TYPEattrparam">attrparam</a> list</code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">FX</span> <span class="keyword">of</span> <code class="type">string</code></code></td> - -</tr></table> - -<div class="info"> -The type of argument for the interpreter<br> -</div> - -<pre><span class="keyword">val</span> <a name="VALd_formatarg"></a>d_formatarg : <code class="type">unit -> <a href="Cil.html#TYPEformatArg">formatArg</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-prints a format arg<br> -</div> -<pre><span class="keyword">val</span> <a name="VALlowerConstants"></a>lowerConstants : <code class="type">bool Pervasives.ref</code></pre><div class="info"> -Do lower constant expressions into constants (default true)<br> -</div> -</body></html>
\ No newline at end of file diff --git a/cil/doc/api/Cil.nopCilVisitor.html b/cil/doc/api/Cil.nopCilVisitor.html deleted file mode 100644 index 868e79d4..00000000 --- a/cil/doc/api/Cil.nopCilVisitor.html +++ /dev/null @@ -1,35 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<link rel="Start" href="index.html"> -<link rel="next" href="Cil.defaultCilPrinterClass.html"> -<link rel="Up" href="Cil.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.5) : Cil.nopCilVisitor</title> -</head> -<body> -<div class="navbar"> <a href="Cil.html">Up</a> - <a href="Cil.defaultCilPrinterClass.html">Next</a> -</div> -<center><h1>Class <a href="type_Cil.nopCilVisitor.html">Cil.nopCilVisitor</a></h1></center> -<br> -<pre><span class="keyword">class</span> <a name="TYPEnopCilVisitor"></a>nopCilVisitor : <code class="type"></code><code class="type"><a href="Cil.cilVisitor.html">cilVisitor</a></code></pre>Default Visitor. Traverses the CIL tree without modifying anything<br> -<hr width="100%"> -</body></html>
\ No newline at end of file diff --git a/cil/doc/api/Cil.plainCilPrinterClass.html b/cil/doc/api/Cil.plainCilPrinterClass.html deleted file mode 100644 index 0d5fca58..00000000 --- a/cil/doc/api/Cil.plainCilPrinterClass.html +++ /dev/null @@ -1,36 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<link rel="Start" href="index.html"> -<link rel="previous" href="Cil.defaultCilPrinterClass.html"> -<link rel="Up" href="Cil.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.5) : Cil.plainCilPrinterClass</title> -</head> -<body> -<div class="navbar"><a href="Cil.defaultCilPrinterClass.html">Previous</a> - <a href="Cil.html">Up</a> - </div> -<center><h1>Class <a href="type_Cil.plainCilPrinterClass.html">Cil.plainCilPrinterClass</a></h1></center> -<br> -<pre><span class="keyword">class</span> <a name="TYPEplainCilPrinterClass"></a>plainCilPrinterClass : <code class="type"></code><code class="type"><a href="Cil.cilPrinter.html">cilPrinter</a></code></pre>These are pretty-printers that will show you more details on the internal - CIL representation, without trying hard to make it look like C<br> -<hr width="100%"> -</body></html>
\ No newline at end of file diff --git a/cil/doc/api/Cillower.html b/cil/doc/api/Cillower.html deleted file mode 100644 index d8fa8ddd..00000000 --- a/cil/doc/api/Cillower.html +++ /dev/null @@ -1,40 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<link rel="Start" href="index.html"> -<link rel="previous" href="Alpha.html"> -<link rel="next" href="Cfg.html"> -<link rel="Up" 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.5) : Cillower</title> -</head> -<body> -<div class="navbar"><a href="Alpha.html">Previous</a> - <a href="index.html">Up</a> - <a href="Cfg.html">Next</a> -</div> -<center><h1>Module <a href="type_Cillower.html">Cillower</a></h1></center> -<br> -<pre><span class="keyword">module</span> Cillower: <code class="code">sig</code> <a href="Cillower.html">..</a> <code class="code">end</code></pre>A number of lowering passes over CIL<br> -<hr width="100%"> -<pre><span class="keyword">val</span> <a name="VALlowerEnumVisitor"></a>lowerEnumVisitor : <code class="type"><a href="Cil.cilVisitor.html">Cil.cilVisitor</a></code></pre><div class="info"> -Replace enumeration constants with integer constants<br> -</div> -</body></html>
\ No newline at end of file diff --git a/cil/doc/api/Clist.html b/cil/doc/api/Clist.html deleted file mode 100644 index 27f373e5..00000000 --- a/cil/doc/api/Clist.html +++ /dev/null @@ -1,118 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<link rel="Start" href="index.html"> -<link rel="previous" href="Errormsg.html"> -<link rel="next" href="Stats.html"> -<link rel="Up" 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.5) : Clist</title> -</head> -<body> -<div class="navbar"><a href="Errormsg.html">Previous</a> - <a href="index.html">Up</a> - <a href="Stats.html">Next</a> -</div> -<center><h1>Module <a href="type_Clist.html">Clist</a></h1></center> -<br> -<pre><span class="keyword">module</span> Clist: <code class="code">sig</code> <a href="Clist.html">..</a> <code class="code">end</code></pre>Utilities for managing "concatenable lists" (clists). We often need to - concatenate sequences, and using lists for this purpose is expensive. This - module provides routines to manage such lists more efficiently. In this - model, we never do cons or append explicitly. Instead we maintain - the elements of the list in a special data structure. Routines are provided - to convert to/from ordinary lists, and carry out common list operations.<br> -<hr width="100%"> -<br><code><span class="keyword">type</span> <a name="TYPEclist"></a><code class="type">'a</code> clist = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">CList</span> <span class="keyword">of</span> <code class="type">'a list</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The only representation for the empty - list. Try to use sparingly.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">CConsL</span> <span class="keyword">of</span> <code class="type">'a * 'a <a href="Clist.html#TYPEclist">clist</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Do not use this a lot because scanning - it is not tail recursive</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">CConsR</span> <span class="keyword">of</span> <code class="type">'a <a href="Clist.html#TYPEclist">clist</a> * 'a</code></code></td> - -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">CSeq</span> <span class="keyword">of</span> <code class="type">'a <a href="Clist.html#TYPEclist">clist</a> * 'a <a href="Clist.html#TYPEclist">clist</a></code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>We concatenate only two of them at this - time. Neither is the empty clist. To be - sure always use append to make these</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> - -<div class="info"> -The clist datatype. A clist can be an ordinary list, or a clist preceded - or followed by an element, or two clists implicitly appended together<br> -</div> - -<pre><span class="keyword">val</span> <a name="VALtoList"></a>toList : <code class="type">'a <a href="Clist.html#TYPEclist">clist</a> -> 'a list</code></pre><div class="info"> -Convert a clist to an ordinary list<br> -</div> -<pre><span class="keyword">val</span> <a name="VALfromList"></a>fromList : <code class="type">'a list -> 'a <a href="Clist.html#TYPEclist">clist</a></code></pre><div class="info"> -Convert an ordinary list to a clist<br> -</div> -<pre><span class="keyword">val</span> <a name="VALsingle"></a>single : <code class="type">'a -> 'a <a href="Clist.html#TYPEclist">clist</a></code></pre><div class="info"> -Create a clist containing one element<br> -</div> -<pre><span class="keyword">val</span> <a name="VALempty"></a>empty : <code class="type">'a <a href="Clist.html#TYPEclist">clist</a></code></pre><div class="info"> -The empty clist<br> -</div> -<pre><span class="keyword">val</span> <a name="VALappend"></a>append : <code class="type">'a <a href="Clist.html#TYPEclist">clist</a> -> 'a <a href="Clist.html#TYPEclist">clist</a> -> 'a <a href="Clist.html#TYPEclist">clist</a></code></pre><div class="info"> -Append two clists<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcheckBeforeAppend"></a>checkBeforeAppend : <code class="type">'a <a href="Clist.html#TYPEclist">clist</a> -> 'a <a href="Clist.html#TYPEclist">clist</a> -> bool</code></pre><div class="info"> -A useful check to assert before an append. It checks that the two lists - are not identically the same (Except if they are both empty)<br> -</div> -<pre><span class="keyword">val</span> <a name="VALlength"></a>length : <code class="type">'a <a href="Clist.html#TYPEclist">clist</a> -> int</code></pre><div class="info"> -Find the length of a clist<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmap"></a>map : <code class="type">('a -> 'b) -> 'a <a href="Clist.html#TYPEclist">clist</a> -> 'b <a href="Clist.html#TYPEclist">clist</a></code></pre><div class="info"> -Map a function over a clist. Returns another clist<br> -</div> -<pre><span class="keyword">val</span> <a name="VALfold_left"></a>fold_left : <code class="type">('a -> 'b -> 'a) -> 'a -> 'b <a href="Clist.html#TYPEclist">clist</a> -> 'a</code></pre><div class="info"> -A version of fold_left that works on clists<br> -</div> -<pre><span class="keyword">val</span> <a name="VALiter"></a>iter : <code class="type">('a -> unit) -> 'a <a href="Clist.html#TYPEclist">clist</a> -> unit</code></pre><div class="info"> -A version of iter that works on clists<br> -</div> -<pre><span class="keyword">val</span> <a name="VALrev"></a>rev : <code class="type">('a -> 'a) -> 'a <a href="Clist.html#TYPEclist">clist</a> -> 'a <a href="Clist.html#TYPEclist">clist</a></code></pre><div class="info"> -Reverse a clist. The first function reverses an element.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdocCList"></a>docCList : <code class="type"><a href="Pretty.html#TYPEdoc">Pretty.doc</a> -> ('a -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a>) -> unit -> 'a <a href="Clist.html#TYPEclist">clist</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -A document for printing a clist (similar to <code class="code">docList</code>)<br> -</div> -</body></html>
\ No newline at end of file diff --git a/cil/doc/api/Dataflow.BackwardsDataFlow.html b/cil/doc/api/Dataflow.BackwardsDataFlow.html deleted file mode 100644 index 782d318c..00000000 --- a/cil/doc/api/Dataflow.BackwardsDataFlow.html +++ /dev/null @@ -1,54 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<link rel="Start" href="index.html"> -<link rel="previous" href="Dataflow.ForwardsDataFlow.html"> -<link rel="Up" href="Dataflow.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.5) : Dataflow.BackwardsDataFlow</title> -</head> -<body> -<div class="navbar"><a href="Dataflow.ForwardsDataFlow.html">Previous</a> - <a href="Dataflow.html">Up</a> - </div> -<center><h1>Functor <a href="type_Dataflow.BackwardsDataFlow.html">Dataflow.BackwardsDataFlow</a></h1></center> -<br> -<pre><span class="keyword">module</span> BackwardsDataFlow: <div class="sig_block"><code class="code">functor (</code><code class="code">T</code><code class="code"> : </code><code class="type"><a href="Dataflow.BackwardsTransfer.html">BackwardsTransfer</a></code><code class="code">) -> </code><code class="code">sig</code> <a href="Dataflow.BackwardsDataFlow.html">..</a> <code class="code">end</code></div></pre><table border="0" cellpadding="3" width="100%"> -<tr> -<td align="left" valign="top" width="1%%"><b>Parameters: </b></td> -<td> -<table class="paramstable"> -<tr> -<td align="center" valign="top" width="15%"> -<code>T</code></td> -<td align="center" valign="top">:</td> -<td><code class="type"><a href="Dataflow.BackwardsTransfer.html">BackwardsTransfer</a></code> -</table> -</td> -</tr> -</table> -<hr width="100%"> -<pre><span class="keyword">val</span> <a name="VALcompute"></a>compute : <code class="type"><a href="Cil.html#TYPEstmt">Cil.stmt</a> list -> unit</code></pre><div class="info"> -Fill in the T.stmtStartData, given a number of initial statements to - start from (the sinks for the backwards data flow). All of the statements - (not just the initial ones!) must have some entry in T.stmtStartData - (i.e., the initial data should not be bottom)<br> -</div> -</body></html>
\ No newline at end of file diff --git a/cil/doc/api/Dataflow.BackwardsTransfer.html b/cil/doc/api/Dataflow.BackwardsTransfer.html deleted file mode 100644 index 0ff812df..00000000 --- a/cil/doc/api/Dataflow.BackwardsTransfer.html +++ /dev/null @@ -1,83 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<link rel="Start" href="index.html"> -<link rel="previous" href="Dataflow.ForwardsTransfer.html"> -<link rel="Up" href="Dataflow.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.5) : Dataflow.BackwardsTransfer</title> -</head> -<body> -<div class="navbar"><a href="Dataflow.ForwardsTransfer.html">Previous</a> - <a href="Dataflow.html">Up</a> - </div> -<center><h1>Module type <a href="type_Dataflow.BackwardsTransfer.html">Dataflow.BackwardsTransfer</a></h1></center> -<br> -<pre><span class="keyword">module type</span> BackwardsTransfer = <code class="code">sig</code> <a href="Dataflow.BackwardsTransfer.html">..</a> <code class="code">end</code></pre><hr width="100%"> -<pre><span class="keyword">val</span> <a name="VALname"></a>name : <code class="type">string</code></pre><div class="info"> -For debugging purposes, the name of the analysis<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdebug"></a>debug : <code class="type">bool Pervasives.ref</code></pre><div class="info"> -Whether to turn on debugging<br> -</div> -<pre><span class="keyword">type</span> <a name="TYPEt"></a><code class="type"></code>t </pre> -<div class="info"> -The type of the data we compute for each block start. In many - presentations of backwards data flow analysis we maintain the - data at the block end. This is not easy to do with JVML because - a block has many exceptional ends. So we maintain the data for - the statement start.<br> -</div> - -<pre><span class="keyword">val</span> <a name="VALpretty"></a>pretty : <code class="type">unit -> <a href="Dataflow.BackwardsTransfer.html#TYPEt">t</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print the state<br> -</div> -<pre><span class="keyword">val</span> <a name="VALstmtStartData"></a>stmtStartData : <code class="type"><a href="Dataflow.BackwardsTransfer.html#TYPEt">t</a> Inthash.t</code></pre><div class="info"> -For each block id, the data at the start. This data structure must be - initialized with the initial data for each block<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcombineStmtStartData"></a>combineStmtStartData : <code class="type"><a href="Cil.html#TYPEstmt">Cil.stmt</a> -><br> old:<a href="Dataflow.BackwardsTransfer.html#TYPEt">t</a> -><br> <a href="Dataflow.BackwardsTransfer.html#TYPEt">t</a> -> <a href="Dataflow.BackwardsTransfer.html#TYPEt">t</a> option</code></pre><div class="info"> -When the analysis reaches the start of a block, combine the old data - with the one we have just computed. Return None if the combination is - the same as the old data, otherwise return the combination. In the - latter case, the predecessors of the statement are put on the working - list.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcombineSuccessors"></a>combineSuccessors : <code class="type"><a href="Dataflow.BackwardsTransfer.html#TYPEt">t</a> -><br> <a href="Dataflow.BackwardsTransfer.html#TYPEt">t</a> -> <a href="Dataflow.BackwardsTransfer.html#TYPEt">t</a></code></pre><div class="info"> -Take the data from two successors and combine it<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdoStmt"></a>doStmt : <code class="type"><a href="Cil.html#TYPEstmt">Cil.stmt</a> -> <a href="Dataflow.BackwardsTransfer.html#TYPEt">t</a> <a href="Dataflow.html#TYPEaction">Dataflow.action</a></code></pre><div class="info"> -The (backwards) transfer function for a branch. The <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a> is - set before calling this. If it returns None, then we have some default - handling. Otherwise, the returned data is the data before the branch - (not considering the exception handlers)<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdoInstr"></a>doInstr : <code class="type"><a href="Cil.html#TYPEinstr">Cil.instr</a> -><br> <a href="Dataflow.BackwardsTransfer.html#TYPEt">t</a> -> <a href="Dataflow.BackwardsTransfer.html#TYPEt">t</a> <a href="Dataflow.html#TYPEaction">Dataflow.action</a></code></pre><div class="info"> -The (backwards) transfer function for an instruction. The - <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a> is set before calling this. If it returns None, then we - have some default handling. Otherwise, the returned data is the data - before the branch (not considering the exception handlers)<br> -</div> -<pre><span class="keyword">val</span> <a name="VALfilterStmt"></a>filterStmt : <code class="type"><a href="Cil.html#TYPEstmt">Cil.stmt</a> -> <a href="Cil.html#TYPEstmt">Cil.stmt</a> -> bool</code></pre><div class="info"> -Whether to put this predecessor block in the worklist. We give the - predecessor and the block whose predecessor we are (and whose data has - changed)<br> -</div> -</body></html>
\ No newline at end of file diff --git a/cil/doc/api/Dataflow.ForwardsDataFlow.html b/cil/doc/api/Dataflow.ForwardsDataFlow.html deleted file mode 100644 index 760dc2be..00000000 --- a/cil/doc/api/Dataflow.ForwardsDataFlow.html +++ /dev/null @@ -1,53 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<link rel="Start" href="index.html"> -<link rel="next" href="Dataflow.BackwardsDataFlow.html"> -<link rel="Up" href="Dataflow.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.5) : Dataflow.ForwardsDataFlow</title> -</head> -<body> -<div class="navbar"> <a href="Dataflow.html">Up</a> - <a href="Dataflow.BackwardsDataFlow.html">Next</a> -</div> -<center><h1>Functor <a href="type_Dataflow.ForwardsDataFlow.html">Dataflow.ForwardsDataFlow</a></h1></center> -<br> -<pre><span class="keyword">module</span> ForwardsDataFlow: <div class="sig_block"><code class="code">functor (</code><code class="code">T</code><code class="code"> : </code><code class="type"><a href="Dataflow.ForwardsTransfer.html">ForwardsTransfer</a></code><code class="code">) -> </code><code class="code">sig</code> <a href="Dataflow.ForwardsDataFlow.html">..</a> <code class="code">end</code></div></pre><table border="0" cellpadding="3" width="100%"> -<tr> -<td align="left" valign="top" width="1%%"><b>Parameters: </b></td> -<td> -<table class="paramstable"> -<tr> -<td align="center" valign="top" width="15%"> -<code>T</code></td> -<td align="center" valign="top">:</td> -<td><code class="type"><a href="Dataflow.ForwardsTransfer.html">ForwardsTransfer</a></code> -</table> -</td> -</tr> -</table> -<hr width="100%"> -<pre><span class="keyword">val</span> <a name="VALcompute"></a>compute : <code class="type"><a href="Cil.html#TYPEstmt">Cil.stmt</a> list -> unit</code></pre><div class="info"> -Fill in the T.stmtStartData, given a number of initial statements to - start from. All of the initial statements must have some entry in - T.stmtStartData (i.e., the initial data should not be bottom)<br> -</div> -</body></html>
\ No newline at end of file diff --git a/cil/doc/api/Dataflow.ForwardsTransfer.html b/cil/doc/api/Dataflow.ForwardsTransfer.html deleted file mode 100644 index dbefaa03..00000000 --- a/cil/doc/api/Dataflow.ForwardsTransfer.html +++ /dev/null @@ -1,88 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<link rel="Start" href="index.html"> -<link rel="next" href="Dataflow.BackwardsTransfer.html"> -<link rel="Up" href="Dataflow.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.5) : Dataflow.ForwardsTransfer</title> -</head> -<body> -<div class="navbar"> <a href="Dataflow.html">Up</a> - <a href="Dataflow.BackwardsTransfer.html">Next</a> -</div> -<center><h1>Module type <a href="type_Dataflow.ForwardsTransfer.html">Dataflow.ForwardsTransfer</a></h1></center> -<br> -<pre><span class="keyword">module type</span> ForwardsTransfer = <code class="code">sig</code> <a href="Dataflow.ForwardsTransfer.html">..</a> <code class="code">end</code></pre><hr width="100%"> -<pre><span class="keyword">val</span> <a name="VALname"></a>name : <code class="type">string</code></pre><div class="info"> -For debugging purposes, the name of the analysis<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdebug"></a>debug : <code class="type">bool Pervasives.ref</code></pre><div class="info"> -Whether to turn on debugging<br> -</div> -<pre><span class="keyword">type</span> <a name="TYPEt"></a><code class="type"></code>t </pre> -<div class="info"> -The type of the data we compute for each block start. May be - imperative.<br> -</div> - -<pre><span class="keyword">val</span> <a name="VALcopy"></a>copy : <code class="type"><a href="Dataflow.ForwardsTransfer.html#TYPEt">t</a> -> <a href="Dataflow.ForwardsTransfer.html#TYPEt">t</a></code></pre><div class="info"> -Make a deep copy of the data<br> -</div> -<pre><span class="keyword">val</span> <a name="VALstmtStartData"></a>stmtStartData : <code class="type"><a href="Dataflow.ForwardsTransfer.html#TYPEt">t</a> Inthash.t</code></pre><div class="info"> -For each statement id, the data at the start. Not found in the hash - table means nothing is known about the state at this point. At the end - of the analysis this means that the block is not reachable.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALpretty"></a>pretty : <code class="type">unit -> <a href="Dataflow.ForwardsTransfer.html#TYPEt">t</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Pretty-print the state<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcomputeFirstPredecessor"></a>computeFirstPredecessor : <code class="type"><a href="Cil.html#TYPEstmt">Cil.stmt</a> -> <a href="Dataflow.ForwardsTransfer.html#TYPEt">t</a> -> <a href="Dataflow.ForwardsTransfer.html#TYPEt">t</a></code></pre><div class="info"> -Give the first value for a predecessors, compute the value to be set - for the block<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcombinePredecessors"></a>combinePredecessors : <code class="type"><a href="Cil.html#TYPEstmt">Cil.stmt</a> -><br> old:<a href="Dataflow.ForwardsTransfer.html#TYPEt">t</a> -><br> <a href="Dataflow.ForwardsTransfer.html#TYPEt">t</a> -> <a href="Dataflow.ForwardsTransfer.html#TYPEt">t</a> option</code></pre><div class="info"> -Take some old data for the start of a statement, and some new data for - the same point. Return None if the combination is identical to the old - data. Otherwise, compute the combination, and return it.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdoInstr"></a>doInstr : <code class="type"><a href="Cil.html#TYPEinstr">Cil.instr</a> -><br> <a href="Dataflow.ForwardsTransfer.html#TYPEt">t</a> -> <a href="Dataflow.ForwardsTransfer.html#TYPEt">t</a> <a href="Dataflow.html#TYPEaction">Dataflow.action</a></code></pre><div class="info"> -The (forwards) transfer function for an instruction. The - <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a> is set before calling this. The default action is to - continue with the state unchanged.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdoStmt"></a>doStmt : <code class="type"><a href="Cil.html#TYPEstmt">Cil.stmt</a> -><br> <a href="Dataflow.ForwardsTransfer.html#TYPEt">t</a> -><br> <a href="Dataflow.ForwardsTransfer.html#TYPEt">t</a> <a href="Dataflow.html#TYPEstmtaction">Dataflow.stmtaction</a></code></pre><div class="info"> -The (forwards) transfer function for a statement. The <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a> - is set before calling this. The default action is to do the instructions - in this statement, if applicable, and continue with the successors.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdoGuard"></a>doGuard : <code class="type"><a href="Cil.html#TYPEexp">Cil.exp</a> -><br> <a href="Dataflow.ForwardsTransfer.html#TYPEt">t</a> -><br> <a href="Dataflow.ForwardsTransfer.html#TYPEt">t</a> <a href="Dataflow.html#TYPEguardaction">Dataflow.guardaction</a></code></pre><div class="info"> -Generate the successor to an If statement assuming the given expression - is nonzero. Analyses that don't need guard information can return - GDefault; this is equivalent to returning GUse of the input. - A return value of GUnreachable indicates that this half of the branch - will not be taken and should not be explored. This will be called - twice per If, once for "then" and once for "else".<br> -</div> -<pre><span class="keyword">val</span> <a name="VALfilterStmt"></a>filterStmt : <code class="type"><a href="Cil.html#TYPEstmt">Cil.stmt</a> -> bool</code></pre><div class="info"> -Whether to put this statement in the worklist. This is called when a - block would normally be put in the worklist.<br> -</div> -</body></html>
\ No newline at end of file diff --git a/cil/doc/api/Dataflow.html b/cil/doc/api/Dataflow.html deleted file mode 100644 index 9f744ea0..00000000 --- a/cil/doc/api/Dataflow.html +++ /dev/null @@ -1,114 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<link rel="Start" href="index.html"> -<link rel="previous" href="Cfg.html"> -<link rel="next" href="Dominators.html"> -<link rel="Up" 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.5) : Dataflow</title> -</head> -<body> -<div class="navbar"><a href="Cfg.html">Previous</a> - <a href="index.html">Up</a> - <a href="Dominators.html">Next</a> -</div> -<center><h1>Module <a href="type_Dataflow.html">Dataflow</a></h1></center> -<br> -<pre><span class="keyword">module</span> Dataflow: <code class="code">sig</code> <a href="Dataflow.html">..</a> <code class="code">end</code></pre>A framework for data flow analysis for CIL code. Before using - this framework, you must initialize the Control-flow Graph for your - program, e.g using <a href="Cfg.html#VALcomputeFileCFG"><code class="code">Cfg.computeFileCFG</code></a><br> -<hr width="100%"> -<br><code><span class="keyword">type</span> <a name="TYPEaction"></a><code class="type">'a</code> action = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Default</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The default action</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Done</span> <span class="keyword">of</span> <code class="type">'a</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Do not do the default action. Use this result</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">Post</span> <span class="keyword">of</span> <code class="type">('a -> 'a)</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The default action, followed by the given - transformer</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> - - -<br><code><span class="keyword">type</span> <a name="TYPEstmtaction"></a><code class="type">'a</code> stmtaction = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">SDefault</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The default action</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">SDone</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Do not visit this statement or its successors</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">SUse</span> <span class="keyword">of</span> <code class="type">'a</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Visit the instructions and successors of this statement - as usual, but use the specified state instead of the - one that was passed to doStmt</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> - - -<br><code><span class="keyword">type</span> <a name="TYPEguardaction"></a><code class="type">'a</code> guardaction = </code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">GDefault</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The default state</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">GUse</span> <span class="keyword">of</span> <code class="type">'a</code></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>Use this data for the branch</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code><span class="keyword">|</span></code></td> -<td align="left" valign="top" > -<code><span class="constructor">GUnreachable</span></code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The branch will never be taken.</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> - - -<pre><span class="keyword">module type</span> <a href="Dataflow.ForwardsTransfer.html">ForwardsTransfer</a> = <code class="code">sig</code> <a href="Dataflow.ForwardsTransfer.html">..</a> <code class="code">end</code></pre><pre><span class="keyword">module</span> <a href="Dataflow.ForwardsDataFlow.html">ForwardsDataFlow</a>: <div class="sig_block"><code class="code">functor (</code><code class="code">T</code><code class="code"> : </code><code class="type"><a href="Dataflow.ForwardsTransfer.html">ForwardsTransfer</a></code><code class="code">) -> </code><code class="code">sig</code> <a href="Dataflow.ForwardsDataFlow.html">..</a> <code class="code">end</code></div></pre><pre><span class="keyword">module type</span> <a href="Dataflow.BackwardsTransfer.html">BackwardsTransfer</a> = <code class="code">sig</code> <a href="Dataflow.BackwardsTransfer.html">..</a> <code class="code">end</code></pre><pre><span class="keyword">module</span> <a href="Dataflow.BackwardsDataFlow.html">BackwardsDataFlow</a>: <div class="sig_block"><code class="code">functor (</code><code class="code">T</code><code class="code"> : </code><code class="type"><a href="Dataflow.BackwardsTransfer.html">BackwardsTransfer</a></code><code class="code">) -> </code><code class="code">sig</code> <a href="Dataflow.BackwardsDataFlow.html">..</a> <code class="code">end</code></div></pre></body></html>
\ No newline at end of file diff --git a/cil/doc/api/Dominators.html b/cil/doc/api/Dominators.html deleted file mode 100644 index 4d8eaf9e..00000000 --- a/cil/doc/api/Dominators.html +++ /dev/null @@ -1,58 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<link rel="Start" href="index.html"> -<link rel="previous" href="Dataflow.html"> -<link rel="Up" 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.5) : Dominators</title> -</head> -<body> -<div class="navbar"><a href="Dataflow.html">Previous</a> - <a href="index.html">Up</a> - </div> -<center><h1>Module <a href="type_Dominators.html">Dominators</a></h1></center> -<br> -<pre><span class="keyword">module</span> Dominators: <code class="code">sig</code> <a href="Dominators.html">..</a> <code class="code">end</code></pre>Compute dominators using data flow analysis<br> -<hr width="100%"> -<br> -Author: George Necula - 5/28/2004 -<br> -<pre><span class="keyword">val</span> <a name="VALcomputeIDom"></a>computeIDom : <code class="type"><a href="Cil.html#TYPEfundec">Cil.fundec</a> -> <a href="Cil.html#TYPEstmt">Cil.stmt</a> option Inthash.t</code></pre><div class="info"> -Invoke on a code after filling in the CFG info and it computes the - immediate dominator information. We map each statement to its immediate - dominator (None for the start statement, and for the unreachable - statements).<br> -</div> -<pre><span class="keyword">val</span> <a name="VALgetIdom"></a>getIdom : <code class="type"><a href="Cil.html#TYPEstmt">Cil.stmt</a> option Inthash.t -> <a href="Cil.html#TYPEstmt">Cil.stmt</a> -> <a href="Cil.html#TYPEstmt">Cil.stmt</a> option</code></pre><div class="info"> -This is like Inthash.find but gives an error if the information is - Not_found<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdominates"></a>dominates : <code class="type"><a href="Cil.html#TYPEstmt">Cil.stmt</a> option Inthash.t -> <a href="Cil.html#TYPEstmt">Cil.stmt</a> -> <a href="Cil.html#TYPEstmt">Cil.stmt</a> -> bool</code></pre><div class="info"> -Check whether one statement dominates another.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALfindNaturalLoops"></a>findNaturalLoops : <code class="type"><a href="Cil.html#TYPEfundec">Cil.fundec</a> -> <a href="Cil.html#TYPEstmt">Cil.stmt</a> option Inthash.t -> (<a href="Cil.html#TYPEstmt">Cil.stmt</a> * <a href="Cil.html#TYPEstmt">Cil.stmt</a> list) list</code></pre><div class="info"> -Compute the start of the natural loops. This assumes that the "idom" - field has been computed. For each start, keep a list of origin of a back - edge. The loop consists of the loop start and all predecessors of the - origins of back edges, up to and including the loop start<br> -</div> -</body></html>
\ No newline at end of file diff --git a/cil/doc/api/Errormsg.html b/cil/doc/api/Errormsg.html deleted file mode 100644 index bc194728..00000000 --- a/cil/doc/api/Errormsg.html +++ /dev/null @@ -1,141 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<link rel="Start" href="index.html"> -<link rel="previous" href="Pretty.html"> -<link rel="next" href="Clist.html"> -<link rel="Up" 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.5) : Errormsg</title> -</head> -<body> -<div class="navbar"><a href="Pretty.html">Previous</a> - <a href="index.html">Up</a> - <a href="Clist.html">Next</a> -</div> -<center><h1>Module <a href="type_Errormsg.html">Errormsg</a></h1></center> -<br> -<pre><span class="keyword">module</span> Errormsg: <code class="code">sig</code> <a href="Errormsg.html">..</a> <code class="code">end</code></pre>Utility functions for error-reporting<br> -<hr width="100%"> -<pre><span class="keyword">val</span> <a name="VALlogChannel"></a>logChannel : <code class="type">Pervasives.out_channel Pervasives.ref</code></pre><div class="info"> -A channel for printing log messages<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdebugFlag"></a>debugFlag : <code class="type">bool Pervasives.ref</code></pre><div class="info"> -If set then print debugging info<br> -</div> -<pre><span class="keyword">val</span> <a name="VALverboseFlag"></a>verboseFlag : <code class="type">bool Pervasives.ref</code></pre><pre><span class="keyword">val</span> <a name="VALwarnFlag"></a>warnFlag : <code class="type">bool Pervasives.ref</code></pre><div class="info"> -Set to true if you want to see all warnings.<br> -</div> -<pre><span class="keyword">exception</span> <a name="EXCEPTIONError"></a>Error</pre> -<div class="info"> -Error reporting functions raise this exception<br> -</div> -<pre><span class="keyword">val</span> <a name="VALerror"></a>error : <code class="type">('a, unit, <a href="Pretty.html#TYPEdoc">Pretty.doc</a>, unit) format4 -> 'a</code></pre><div class="info"> -Prints an error message of the form <code class="code">Error: ...</code>. - Use in conjunction with s, for example: <code class="code">E.s (E.error ... )</code>.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALbug"></a>bug : <code class="type">('a, unit, <a href="Pretty.html#TYPEdoc">Pretty.doc</a>, unit) format4 -> 'a</code></pre><div class="info"> -Similar to <code class="code">error</code> except that its output has the form <code class="code">Bug: ...</code><br> -</div> -<pre><span class="keyword">val</span> <a name="VALunimp"></a>unimp : <code class="type">('a, unit, <a href="Pretty.html#TYPEdoc">Pretty.doc</a>, unit) format4 -> 'a</code></pre><div class="info"> -Similar to <code class="code">error</code> except that its output has the form <code class="code">Unimplemented: ...</code><br> -</div> -<pre><span class="keyword">val</span> <a name="VALs"></a>s : <code class="type">'a -> 'b</code></pre><div class="info"> -Stop the execution by raising an Error.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALhadErrors"></a>hadErrors : <code class="type">bool Pervasives.ref</code></pre><div class="info"> -This is set whenever one of the above error functions are called. It must - be cleared manually<br> -</div> -<pre><span class="keyword">val</span> <a name="VALwarn"></a>warn : <code class="type">('a, unit, <a href="Pretty.html#TYPEdoc">Pretty.doc</a>, unit) format4 -> 'a</code></pre><div class="info"> -Like <a href="Errormsg.html#VALerror"><code class="code">Errormsg.error</code></a> but does not raise the <a href="Errormsg.html#EXCEPTIONError"><code class="code">Errormsg.Error</code></a> - exception. Return type is unit.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALwarnOpt"></a>warnOpt : <code class="type">('a, unit, <a href="Pretty.html#TYPEdoc">Pretty.doc</a>, unit) format4 -> 'a</code></pre><div class="info"> -Like <a href="Errormsg.html#VALwarn"><code class="code">Errormsg.warn</code></a> but optional. Printed only if the - <a href="Errormsg.html#VALwarnFlag"><code class="code">Errormsg.warnFlag</code></a> is set<br> -</div> -<pre><span class="keyword">val</span> <a name="VALlog"></a>log : <code class="type">('a, unit, <a href="Pretty.html#TYPEdoc">Pretty.doc</a>, unit) format4 -> 'a</code></pre><div class="info"> -Print something to <code class="code">logChannel</code><br> -</div> -<pre><span class="keyword">val</span> <a name="VALlogg"></a>logg : <code class="type">('a, unit, <a href="Pretty.html#TYPEdoc">Pretty.doc</a>, unit) format4 -> 'a</code></pre><div class="info"> -same as <a href="Errormsg.html#VALlog"><code class="code">Errormsg.log</code></a> but do not wrap lines<br> -</div> -<pre><span class="keyword">val</span> <a name="VALnull"></a>null : <code class="type">('a, unit, <a href="Pretty.html#TYPEdoc">Pretty.doc</a>, unit) format4 -> 'a</code></pre><div class="info"> -Do not actually print (i.e. print to /dev/null)<br> -</div> -<pre><span class="keyword">val</span> <a name="VALpushContext"></a>pushContext : <code class="type">(unit -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a>) -> unit</code></pre><div class="info"> -Registers a context printing function<br> -</div> -<pre><span class="keyword">val</span> <a name="VALpopContext"></a>popContext : <code class="type">unit -> unit</code></pre><div class="info"> -Removes the last registered context printing function<br> -</div> -<pre><span class="keyword">val</span> <a name="VALshowContext"></a>showContext : <code class="type">unit -> unit</code></pre><div class="info"> -Show the context stack to stderr<br> -</div> -<pre><span class="keyword">val</span> <a name="VALwithContext"></a>withContext : <code class="type">(unit -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a>) -> ('a -> 'b) -> 'a -> 'b</code></pre><div class="info"> -To ensure that the context is registered and removed properly, use the - function below<br> -</div> -<pre><span class="keyword">val</span> <a name="VALnewline"></a>newline : <code class="type">unit -> unit</code></pre><pre><span class="keyword">val</span> <a name="VALnewHline"></a>newHline : <code class="type">unit -> unit</code></pre><pre><span class="keyword">val</span> <a name="VALgetPosition"></a>getPosition : <code class="type">unit -> int * string * int</code></pre><pre><span class="keyword">val</span> <a name="VALgetHPosition"></a>getHPosition : <code class="type">unit -> int * string</code></pre><div class="info"> -high-level position<br> -</div> -<pre><span class="keyword">val</span> <a name="VALsetHLine"></a>setHLine : <code class="type">int -> unit</code></pre><pre><span class="keyword">val</span> <a name="VALsetHFile"></a>setHFile : <code class="type">string -> unit</code></pre><pre><span class="keyword">val</span> <a name="VALsetCurrentLine"></a>setCurrentLine : <code class="type">int -> unit</code></pre><pre><span class="keyword">val</span> <a name="VALsetCurrentFile"></a>setCurrentFile : <code class="type">string -> unit</code></pre><br><code><span class="keyword">type</span> <a name="TYPElocation"></a><code class="type"></code>location = {</code><table class="typetable"> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code>file : <code class="type">string</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The file name</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code>line : <code class="type">int</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The line number</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code>hfile : <code class="type">string</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The high-level file name, or "" if not present</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr> -<tr> -<td align="left" valign="top" > -<code> </code></td> -<td align="left" valign="top" > -<code>hline : <code class="type">int</code>;</code></td> -<td class="typefieldcomment" align="left" valign="top" ><code>(*</code></td><td class="typefieldcomment" align="left" valign="top" ><code>The high-level line number, or 0 if not present</code></td><td class="typefieldcomment" align="left" valign="bottom" ><code>*)</code></td> -</tr></table> -} - -<div class="info"> -Type for source-file locations<br> -</div> - -<pre><span class="keyword">val</span> <a name="VALd_loc"></a>d_loc : <code class="type">unit -> <a href="Errormsg.html#TYPElocation">location</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><pre><span class="keyword">val</span> <a name="VALd_hloc"></a>d_hloc : <code class="type">unit -> <a href="Errormsg.html#TYPElocation">location</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><pre><span class="keyword">val</span> <a name="VALgetLocation"></a>getLocation : <code class="type">unit -> <a href="Errormsg.html#TYPElocation">location</a></code></pre><pre><span class="keyword">val</span> <a name="VALparse_error"></a>parse_error : <code class="type">string -> 'a</code></pre><pre><span class="keyword">val</span> <a name="VALlocUnknown"></a>locUnknown : <code class="type"><a href="Errormsg.html#TYPElocation">location</a></code></pre><div class="info"> -An unknown location for use when you need one but you don't have one<br> -</div> -<pre><span class="keyword">val</span> <a name="VALreadingFromStdin"></a>readingFromStdin : <code class="type">bool Pervasives.ref</code></pre><div class="info"> -Records whether the stdin is open for reading the goal *<br> -</div> -<pre><span class="keyword">val</span> <a name="VALstartParsing"></a>startParsing : <code class="type">?useBasename:bool -> string -> Lexing.lexbuf</code></pre><pre><span class="keyword">val</span> <a name="VALstartParsingFromString"></a>startParsingFromString : <code class="type">?file:string -> ?line:int -> string -> Lexing.lexbuf</code></pre><pre><span class="keyword">val</span> <a name="VALfinishParsing"></a>finishParsing : <code class="type">unit -> unit</code></pre></body></html>
\ No newline at end of file diff --git a/cil/doc/api/Formatcil.html b/cil/doc/api/Formatcil.html deleted file mode 100644 index 8dee76d7..00000000 --- a/cil/doc/api/Formatcil.html +++ /dev/null @@ -1,84 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<link rel="Start" href="index.html"> -<link rel="previous" href="Cil.html"> -<link rel="next" href="Alpha.html"> -<link rel="Up" 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.5) : Formatcil</title> -</head> -<body> -<div class="navbar"><a href="Cil.html">Previous</a> - <a href="index.html">Up</a> - <a href="Alpha.html">Next</a> -</div> -<center><h1>Module <a href="type_Formatcil.html">Formatcil</a></h1></center> -<br> -<pre><span class="keyword">module</span> Formatcil: <code class="code">sig</code> <a href="Formatcil.html">..</a> <code class="code">end</code></pre><b>An Interpreter for constructing CIL constructs</b><br> -<hr width="100%"> -<pre><span class="keyword">val</span> <a name="VALcExp"></a>cExp : <code class="type">string -> (string * <a href="Cil.html#TYPEformatArg">Cil.formatArg</a>) list -> <a href="Cil.html#TYPEexp">Cil.exp</a></code></pre><div class="info"> -Constructs an expression based on the program and the list of arguments. - Each argument consists of a name followed by the actual data. This - argument will be placed instead of occurrences of "%v:name" in the pattern - (where the "v" is dependent on the type of the data). The parsing of the - string is memoized. * Only the first expression is parsed.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcLval"></a>cLval : <code class="type">string -> (string * <a href="Cil.html#TYPEformatArg">Cil.formatArg</a>) list -> <a href="Cil.html#TYPElval">Cil.lval</a></code></pre><div class="info"> -Constructs an lval based on the program and the list of arguments. - Only the first lvalue is parsed. - The parsing of the string is memoized.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcType"></a>cType : <code class="type">string -> (string * <a href="Cil.html#TYPEformatArg">Cil.formatArg</a>) list -> <a href="Cil.html#TYPEtyp">Cil.typ</a></code></pre><div class="info"> -Constructs a type based on the program and the list of arguments. - Only the first type is parsed. - The parsing of the string is memoized.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcInstr"></a>cInstr : <code class="type">string -> <a href="Cil.html#TYPElocation">Cil.location</a> -> (string * <a href="Cil.html#TYPEformatArg">Cil.formatArg</a>) list -> <a href="Cil.html#TYPEinstr">Cil.instr</a></code></pre><div class="info"> -Constructs an instruction based on the program and the list of arguments. - Only the first instruction is parsed. - The parsing of the string is memoized.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcStmt"></a>cStmt : <code class="type">string -><br> (string -> <a href="Cil.html#TYPEtyp">Cil.typ</a> -> <a href="Cil.html#TYPEvarinfo">Cil.varinfo</a>) -><br> <a href="Cil.html#TYPElocation">Cil.location</a> -> (string * <a href="Cil.html#TYPEformatArg">Cil.formatArg</a>) list -> <a href="Cil.html#TYPEstmt">Cil.stmt</a></code></pre><pre><span class="keyword">val</span> <a name="VALcStmts"></a>cStmts : <code class="type">string -><br> (string -> <a href="Cil.html#TYPEtyp">Cil.typ</a> -> <a href="Cil.html#TYPEvarinfo">Cil.varinfo</a>) -><br> <a href="Cil.html#TYPElocation">Cil.location</a> -> (string * <a href="Cil.html#TYPEformatArg">Cil.formatArg</a>) list -> <a href="Cil.html#TYPEstmt">Cil.stmt</a> list</code></pre><div class="info"> -Constructs a list of statements<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdExp"></a>dExp : <code class="type">string -> <a href="Cil.html#TYPEexp">Cil.exp</a> -> <a href="Cil.html#TYPEformatArg">Cil.formatArg</a> list option</code></pre><div class="info"> -Deconstructs an expression based on the program. Produces an optional - list of format arguments. The parsing of the string is memoized.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdLval"></a>dLval : <code class="type">string -> <a href="Cil.html#TYPElval">Cil.lval</a> -> <a href="Cil.html#TYPEformatArg">Cil.formatArg</a> list option</code></pre><div class="info"> -Deconstructs an lval based on the program. Produces an optional - list of format arguments. The parsing of the string is memoized.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdType"></a>dType : <code class="type">string -> <a href="Cil.html#TYPEtyp">Cil.typ</a> -> <a href="Cil.html#TYPEformatArg">Cil.formatArg</a> list option</code></pre><div class="info"> -Deconstructs a type based on the program. Produces an optional list of - format arguments. The parsing of the string is memoized.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdInstr"></a>dInstr : <code class="type">string -> <a href="Cil.html#TYPEinstr">Cil.instr</a> -> <a href="Cil.html#TYPEformatArg">Cil.formatArg</a> list option</code></pre><div class="info"> -Deconstructs an instruction based on the program. Produces an optional - list of format arguments. The parsing of the string is memoized.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALnoMemoize"></a>noMemoize : <code class="type">bool Pervasives.ref</code></pre><div class="info"> -If set then will not memoize the parsed patterns<br> -</div> -<pre><span class="keyword">val</span> <a name="VALtest"></a>test : <code class="type">unit -> unit</code></pre><div class="info"> -Just a testing function<br> -</div> -</body></html>
\ No newline at end of file diff --git a/cil/doc/api/Pretty.MakeMapPrinter.html b/cil/doc/api/Pretty.MakeMapPrinter.html deleted file mode 100644 index 9693a68d..00000000 --- a/cil/doc/api/Pretty.MakeMapPrinter.html +++ /dev/null @@ -1,63 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<link rel="Start" href="index.html"> -<link rel="next" href="Pretty.MakeSetPrinter.html"> -<link rel="Up" href="Pretty.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.5) : Pretty.MakeMapPrinter</title> -</head> -<body> -<div class="navbar"> <a href="Pretty.html">Up</a> - <a href="Pretty.MakeSetPrinter.html">Next</a> -</div> -<center><h1>Functor <a href="type_Pretty.MakeMapPrinter.html">Pretty.MakeMapPrinter</a></h1></center> -<br> -<pre><span class="keyword">module</span> MakeMapPrinter: <div class="sig_block"><code class="code">functor (</code><code class="code">Map</code><code class="code"> : </code><code class="code">sig</code><div class="sig_block"><pre><span class="keyword">type</span> <a name="TYPEkey"></a><code class="type"></code>key </pre> - -<pre><span class="keyword">type</span> <a name="TYPEt"></a><code class="type">'a</code> t </pre> - -<pre><span class="keyword">val</span> <a name="VALfold"></a>fold : <code class="type">(key -> 'a -> 'b -> 'b) -><br> 'a t -> 'b -> 'b</code></pre></div><code class="code">end</code><code class="code">) -> </code><code class="code">sig</code> <a href="Pretty.MakeMapPrinter.html">..</a> <code class="code">end</code></div></pre>Format maps.<br> -<table border="0" cellpadding="3" width="100%"> -<tr> -<td align="left" valign="top" width="1%%"><b>Parameters: </b></td> -<td> -<table class="paramstable"> -<tr> -<td align="center" valign="top" width="15%"> -<code>Map</code></td> -<td align="center" valign="top">:</td> -<td><code class="type">sig - type key - type 'a t - val fold : (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b - end</code> -</table> -</td> -</tr> -</table> -<hr width="100%"> -<pre><span class="keyword">val</span> <a name="VALdocMap"></a>docMap : <code class="type">?sep:<a href="Pretty.html#TYPEdoc">Pretty.doc</a> -><br> (Map.key -> 'a -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a>) -> unit -> 'a Map.t -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Format a map, analogous to docList.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_map"></a>d_map : <code class="type">?dmaplet:(<a href="Pretty.html#TYPEdoc">Pretty.doc</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a> -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a>) -><br> string -><br> (unit -> Map.key -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a>) -><br> (unit -> 'a -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a>) -> unit -> 'a Map.t -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Format a map, analogous to d_list.<br> -</div> -</body></html>
\ No newline at end of file diff --git a/cil/doc/api/Pretty.MakeSetPrinter.html b/cil/doc/api/Pretty.MakeSetPrinter.html deleted file mode 100644 index e9343b2f..00000000 --- a/cil/doc/api/Pretty.MakeSetPrinter.html +++ /dev/null @@ -1,63 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<link rel="Start" href="index.html"> -<link rel="previous" href="Pretty.MakeMapPrinter.html"> -<link rel="Up" href="Pretty.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.5) : Pretty.MakeSetPrinter</title> -</head> -<body> -<div class="navbar"><a href="Pretty.MakeMapPrinter.html">Previous</a> - <a href="Pretty.html">Up</a> - </div> -<center><h1>Functor <a href="type_Pretty.MakeSetPrinter.html">Pretty.MakeSetPrinter</a></h1></center> -<br> -<pre><span class="keyword">module</span> MakeSetPrinter: <div class="sig_block"><code class="code">functor (</code><code class="code">Set</code><code class="code"> : </code><code class="code">sig</code><div class="sig_block"><pre><span class="keyword">type</span> <a name="TYPEelt"></a><code class="type"></code>elt </pre> - -<pre><span class="keyword">type</span> <a name="TYPEt"></a><code class="type"></code>t </pre> - -<pre><span class="keyword">val</span> <a name="VALfold"></a>fold : <code class="type">(elt -> 'a -> 'a) -><br> t -> 'a -> 'a</code></pre></div><code class="code">end</code><code class="code">) -> </code><code class="code">sig</code> <a href="Pretty.MakeSetPrinter.html">..</a> <code class="code">end</code></div></pre>Format sets.<br> -<table border="0" cellpadding="3" width="100%"> -<tr> -<td align="left" valign="top" width="1%%"><b>Parameters: </b></td> -<td> -<table class="paramstable"> -<tr> -<td align="center" valign="top" width="15%"> -<code>Set</code></td> -<td align="center" valign="top">:</td> -<td><code class="type">sig - type elt - type t - val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a - end</code> -</table> -</td> -</tr> -</table> -<hr width="100%"> -<pre><span class="keyword">val</span> <a name="VALdocSet"></a>docSet : <code class="type">?sep:<a href="Pretty.html#TYPEdoc">Pretty.doc</a> -> (Set.elt -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a>) -> unit -> Set.t -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Format a set, analogous to docList.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_set"></a>d_set : <code class="type">string -> (unit -> Set.elt -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a>) -> unit -> Set.t -> <a href="Pretty.html#TYPEdoc">Pretty.doc</a></code></pre><div class="info"> -Format a set, analogous to d_list.<br> -</div> -</body></html>
\ No newline at end of file diff --git a/cil/doc/api/Pretty.html b/cil/doc/api/Pretty.html deleted file mode 100644 index c9c48c8e..00000000 --- a/cil/doc/api/Pretty.html +++ /dev/null @@ -1,268 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<link rel="Start" href="index.html"> -<link rel="next" href="Errormsg.html"> -<link rel="Up" 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.5) : Pretty</title> -</head> -<body> -<div class="navbar"> <a href="index.html">Up</a> - <a href="Errormsg.html">Next</a> -</div> -<center><h1>Module <a href="type_Pretty.html">Pretty</a></h1></center> -<br> -<pre><span class="keyword">module</span> Pretty: <code class="code">sig</code> <a href="Pretty.html">..</a> <code class="code">end</code></pre>Utility functions for pretty-printing. The major features provided by - this module are <ul> -<li>An <code class="code">fprintf</code>-style interface with support for user-defined printers</li> -<li>The printout is fit to a width by selecting some of the optional newlines</li> -<li>Constructs for alignment and indentation</li> -<li>Print ellipsis starting at a certain nesting depth</li> -<li>Constructs for printing lists and arrays</li> -</ul> - - Pretty-printing occurs in two stages:<ul> -<li>Construct a <a href="Pretty.html#TYPEdoc"><code class="code">Pretty.doc</code></a> object that encodes all of the elements to be - printed - along with alignment specifiers and optional and mandatory newlines</li> -<li>Format the <a href="Pretty.html#TYPEdoc"><code class="code">Pretty.doc</code></a> to a certain width and emit it as a string, to an - output stream or pass it to a user-defined function</li> -</ul> - - The formatting algorithm is not optimal but it does a pretty good job while - still operating in linear time. The original version was based on a pretty - printer by Philip Wadler which turned out to not scale to large jobs.<br> -<hr width="100%"> -<br> -API<br> -<pre><span class="keyword">type</span> <a name="TYPEdoc"></a><code class="type"></code>doc </pre> -<div class="info"> -The type of unformated documents. Elements of this type can be - constructed in two ways. Either with a number of constructor shown below, - or using the <a href="Pretty.html#VALdprintf"><code class="code">Pretty.dprintf</code></a> function with a <code class="code">printf</code>-like interface. - The <a href="Pretty.html#VALdprintf"><code class="code">Pretty.dprintf</code></a> method is slightly slower so we do not use it for - large jobs such as the output routines for a compiler. But we use it for - small jobs such as logging and error messages.<br> -</div> - -<br> -Constructors for the doc type.<br> -<pre><span class="keyword">val</span> <a name="VALnil"></a>nil : <code class="type"><a href="Pretty.html#TYPEdoc">doc</a></code></pre><div class="info"> -Constructs an empty document<br> -</div> -<pre><span class="keyword">val</span> <a name="VAL(++)"></a>(++) : <code class="type"><a href="Pretty.html#TYPEdoc">doc</a> -> <a href="Pretty.html#TYPEdoc">doc</a> -> <a href="Pretty.html#TYPEdoc">doc</a></code></pre><div class="info"> -Concatenates two documents. This is an infix operator that associates to - the left.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALconcat"></a>concat : <code class="type"><a href="Pretty.html#TYPEdoc">doc</a> -> <a href="Pretty.html#TYPEdoc">doc</a> -> <a href="Pretty.html#TYPEdoc">doc</a></code></pre><pre><span class="keyword">val</span> <a name="VALtext"></a>text : <code class="type">string -> <a href="Pretty.html#TYPEdoc">doc</a></code></pre><div class="info"> -A document that prints the given string<br> -</div> -<pre><span class="keyword">val</span> <a name="VALnum"></a>num : <code class="type">int -> <a href="Pretty.html#TYPEdoc">doc</a></code></pre><div class="info"> -A document that prints an integer in decimal form<br> -</div> -<pre><span class="keyword">val</span> <a name="VALreal"></a>real : <code class="type">float -> <a href="Pretty.html#TYPEdoc">doc</a></code></pre><div class="info"> -A document that prints a real number<br> -</div> -<pre><span class="keyword">val</span> <a name="VALchr"></a>chr : <code class="type">char -> <a href="Pretty.html#TYPEdoc">doc</a></code></pre><div class="info"> -A document that prints a character. This is just like <a href="Pretty.html#VALtext"><code class="code">Pretty.text</code></a> - with a one-character string.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALline"></a>line : <code class="type"><a href="Pretty.html#TYPEdoc">doc</a></code></pre><div class="info"> -A document that consists of a mandatory newline. This is just like <code class="code">(text - "\n")</code>. The new line will be indented to the current indentation level, - unless you use <a href="Pretty.html#VALleftflush"><code class="code">Pretty.leftflush</code></a> right after this.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALleftflush"></a>leftflush : <code class="type"><a href="Pretty.html#TYPEdoc">doc</a></code></pre><div class="info"> -Use after a <a href="Pretty.html#VALline"><code class="code">Pretty.line</code></a> to prevent the indentation. Whatever follows - next will be flushed left. Indentation resumes on the next line.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALbreak"></a>break : <code class="type"><a href="Pretty.html#TYPEdoc">doc</a></code></pre><div class="info"> -A document that consists of either a space or a line break. Also called - an optional line break. Such a break will be - taken only if necessary to fit the document in a given width. If the break - is not taken a space is printed instead.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALalign"></a>align : <code class="type"><a href="Pretty.html#TYPEdoc">doc</a></code></pre><div class="info"> -Mark the current column as the current indentation level. Does not print - anything. All taken line breaks will align to this column. The previous - alignment level is saved on a stack.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALunalign"></a>unalign : <code class="type"><a href="Pretty.html#TYPEdoc">doc</a></code></pre><div class="info"> -Reverts to the last saved indentation level.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmark"></a>mark : <code class="type"><a href="Pretty.html#TYPEdoc">doc</a></code></pre><div class="info"> -Mark the beginning of a markup section. The width of a markup section is - considered 0 for the purpose of computing identation<br> -</div> -<pre><span class="keyword">val</span> <a name="VALunmark"></a>unmark : <code class="type"><a href="Pretty.html#TYPEdoc">doc</a></code></pre><div class="info"> -The end of a markup section<br> -</div> -<br> -Syntactic sugar<br> -<pre><span class="keyword">val</span> <a name="VALindent"></a>indent : <code class="type">int -> <a href="Pretty.html#TYPEdoc">doc</a> -> <a href="Pretty.html#TYPEdoc">doc</a></code></pre><div class="info"> -Indents the document. Same as <code class="code">((text " ") ++ align ++ doc ++ unalign)</code>, - with the specified number of spaces.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALmarkup"></a>markup : <code class="type"><a href="Pretty.html#TYPEdoc">doc</a> -> <a href="Pretty.html#TYPEdoc">doc</a></code></pre><div class="info"> -Prints a document as markup. The marked document cannot contain line - breaks or alignment constructs.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALseq"></a>seq : <code class="type">sep:<a href="Pretty.html#TYPEdoc">doc</a> -> doit:('a -> <a href="Pretty.html#TYPEdoc">doc</a>) -> elements:'a list -> <a href="Pretty.html#TYPEdoc">doc</a></code></pre><div class="info"> -Formats a sequence. <code class="code">sep</code> is a separator, <code class="code">doit</code> is a function that - converts an element to a document.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdocList"></a>docList : <code class="type">?sep:<a href="Pretty.html#TYPEdoc">doc</a> -> ('a -> <a href="Pretty.html#TYPEdoc">doc</a>) -> unit -> 'a list -> <a href="Pretty.html#TYPEdoc">doc</a></code></pre><div class="info"> -An alternative function for printing a list. The <code class="code">unit</code> argument is there - to make this function more easily usable with the <a href="Pretty.html#VALdprintf"><code class="code">Pretty.dprintf</code></a> - interface. The first argument is a separator, by default a comma.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_list"></a>d_list : <code class="type">string -> (unit -> 'a -> <a href="Pretty.html#TYPEdoc">doc</a>) -> unit -> 'a list -> <a href="Pretty.html#TYPEdoc">doc</a></code></pre><div class="info"> -sm: Yet another list printer. This one accepts the same kind of - printing function that <a href="Pretty.html#VALdprintf"><code class="code">Pretty.dprintf</code></a> does, and itself works - in the dprintf context. Also accepts - a string as the separator since that's by far the most common.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdocArray"></a>docArray : <code class="type">?sep:<a href="Pretty.html#TYPEdoc">doc</a> -><br> (int -> 'a -> <a href="Pretty.html#TYPEdoc">doc</a>) -> unit -> 'a array -> <a href="Pretty.html#TYPEdoc">doc</a></code></pre><div class="info"> -Formats an array. A separator and a function that prints an array - element. The default separator is a comma.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdocOpt"></a>docOpt : <code class="type">('a -> <a href="Pretty.html#TYPEdoc">doc</a>) -> unit -> 'a option -> <a href="Pretty.html#TYPEdoc">doc</a></code></pre><div class="info"> -Prints an <code class="code">'a option</code> with <code class="code">None</code> or <code class="code">Some</code><br> -</div> -<pre><span class="keyword">val</span> <a name="VALd_int32"></a>d_int32 : <code class="type">int32 -> <a href="Pretty.html#TYPEdoc">doc</a></code></pre><div class="info"> -Print an int32<br> -</div> -<pre><span class="keyword">val</span> <a name="VALf_int32"></a>f_int32 : <code class="type">unit -> int32 -> <a href="Pretty.html#TYPEdoc">doc</a></code></pre><pre><span class="keyword">val</span> <a name="VALd_int64"></a>d_int64 : <code class="type">int64 -> <a href="Pretty.html#TYPEdoc">doc</a></code></pre><pre><span class="keyword">val</span> <a name="VALf_int64"></a>f_int64 : <code class="type">unit -> int64 -> <a href="Pretty.html#TYPEdoc">doc</a></code></pre><pre><span class="keyword">module</span> <a href="Pretty.MakeMapPrinter.html">MakeMapPrinter</a>: <div class="sig_block"><code class="code">functor (</code><code class="code">Map</code><code class="code"> : </code><code class="code">sig</code><div class="sig_block"><pre><span class="keyword">type</span> <a name="TYPEkey"></a><code class="type"></code>key </pre> - -<pre><span class="keyword">type</span> <a name="TYPEt"></a><code class="type">'a</code> t </pre> - -<pre><span class="keyword">val</span> <a name="VALfold"></a>fold : <code class="type">(key -> 'a -> 'b -> 'b) -><br> 'a t -> 'b -> 'b</code></pre></div><code class="code">end</code><code class="code">) -> </code><code class="code">sig</code> <a href="Pretty.MakeMapPrinter.html">..</a> <code class="code">end</code></div></pre><div class="info"> -Format maps. -</div> -<pre><span class="keyword">module</span> <a href="Pretty.MakeSetPrinter.html">MakeSetPrinter</a>: <div class="sig_block"><code class="code">functor (</code><code class="code">Set</code><code class="code"> : </code><code class="code">sig</code><div class="sig_block"><pre><span class="keyword">type</span> <a name="TYPEelt"></a><code class="type"></code>elt </pre> - -<pre><span class="keyword">type</span> <a name="TYPEt"></a><code class="type"></code>t </pre> - -<pre><span class="keyword">val</span> <a name="VALfold"></a>fold : <code class="type">(elt -> 'a -> 'a) -><br> t -> 'a -> 'a</code></pre></div><code class="code">end</code><code class="code">) -> </code><code class="code">sig</code> <a href="Pretty.MakeSetPrinter.html">..</a> <code class="code">end</code></div></pre><div class="info"> -Format sets. -</div> -<pre><span class="keyword">val</span> <a name="VALinsert"></a>insert : <code class="type">unit -> <a href="Pretty.html#TYPEdoc">doc</a> -> <a href="Pretty.html#TYPEdoc">doc</a></code></pre><div class="info"> -A function that is useful with the <code class="code">printf</code>-like interface<br> -</div> -<pre><span class="keyword">val</span> <a name="VALdprintf"></a>dprintf : <code class="type">('a, unit, <a href="Pretty.html#TYPEdoc">doc</a>, <a href="Pretty.html#TYPEdoc">doc</a>) format4 -> 'a</code></pre><div class="info"> -This function provides an alternative method for constructing - <code class="code">doc</code> objects. The first argument for this function is a format string - argument (of type <code class="code">('a, unit, doc) format</code>; if you insist on - understanding what that means see the module <code class="code">Printf</code>). The format string - is like that for the <code class="code">printf</code> function in C, except that it understands a - few more formatting controls, all starting with the @ character. -<p> - - See the gprintf function if you want to pipe the result of dprintf into - some other functions. -<p> - - The following special formatting characters are understood (these do not - correspond to arguments of the function):<ul> -<li> @[ Inserts an <a href="Pretty.html#VALalign"><code class="code">Pretty.align</code></a>. Every format string must have matching - <a href="Pretty.html#VALalign"><code class="code">Pretty.align</code></a> and <a href="Pretty.html#VALunalign"><code class="code">Pretty.unalign</code></a>. </li> -<li> @] Inserts an <a href="Pretty.html#VALunalign"><code class="code">Pretty.unalign</code></a>.</li> -<li> @! Inserts a <a href="Pretty.html#VALline"><code class="code">Pretty.line</code></a>. Just like "\n"</li> -<li> @? Inserts a <a href="Pretty.html#VALbreak"><code class="code">Pretty.break</code></a>.</li> -<li> @< Inserts a <a href="Pretty.html#VALmark"><code class="code">Pretty.mark</code></a>. </li> -<li> @> Inserts a <a href="Pretty.html#VALunmark"><code class="code">Pretty.unmark</code></a>.</li> -<li> @^ Inserts a <a href="Pretty.html#VALleftflush"><code class="code">Pretty.leftflush</code></a> - Should be used immediately after @! or "\n".</li> -<li> @@ : inserts a @ character</li> -</ul> - - In addition to the usual <code class="code">printf</code> % formatting characters the following two - new characters are supported:<ul> -<li>%t Corresponds to an argument of type <code class="code">unit -> doc</code>. This argument is - invoked to produce a document</li> -<li>%a Corresponds to <b>two</b> arguments. The first of type <code class="code">unit -> 'a -> doc</code> - and the second of type <code class="code">'a</code>. (The extra <code class="code">unit</code> is do to the - peculiarities of the built-in support for format strings in Ocaml. It - turns out that it is not a major problem.) Here is an example of how - you use this:</li> -</ul> - -<pre>dprintf "Name=%s, SSN=%7d, Children=@[%a@]\n" - pers.name pers.ssn (docList (chr ',' ++ break) text) - pers.children</pre> -<p> - - The result of <code class="code">dprintf</code> is a <a href="Pretty.html#TYPEdoc"><code class="code">Pretty.doc</code></a>. You can format the document and - emit it using the functions <a href="Pretty.html#VALfprint"><code class="code">Pretty.fprint</code></a> and <a href="Pretty.html#VALsprint"><code class="code">Pretty.sprint</code></a>.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALgprintf"></a>gprintf : <code class="type">(<a href="Pretty.html#TYPEdoc">doc</a> -> 'a) -> ('b, unit, <a href="Pretty.html#TYPEdoc">doc</a>, 'a) format4 -> 'b</code></pre><div class="info"> -Like <a href="Pretty.html#VALdprintf"><code class="code">Pretty.dprintf</code></a> but more general. It also takes a function that is - invoked on the constructed document but before any formatting is done. The - type of the format argument means that 'a is the type of the parameters of - this function, unit is the type of the first argument to %a and %t - formats, doc is the type of the intermediate result, and 'b is the type of - the result of gprintf.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALfprint"></a>fprint : <code class="type">Pervasives.out_channel -> width:int -> <a href="Pretty.html#TYPEdoc">doc</a> -> unit</code></pre><div class="info"> -Format the document to the given width and emit it to the given channel<br> -</div> -<pre><span class="keyword">val</span> <a name="VALsprint"></a>sprint : <code class="type">width:int -> <a href="Pretty.html#TYPEdoc">doc</a> -> string</code></pre><div class="info"> -Format the document to the given width and emit it as a string<br> -</div> -<pre><span class="keyword">val</span> <a name="VALfprintf"></a>fprintf : <code class="type">Pervasives.out_channel -> ('a, unit, <a href="Pretty.html#TYPEdoc">doc</a>) Pervasives.format -> 'a</code></pre><div class="info"> -Like <a href="Pretty.html#VALdprintf"><code class="code">Pretty.dprintf</code></a> followed by <a href="Pretty.html#VALfprint"><code class="code">Pretty.fprint</code></a><br> -</div> -<pre><span class="keyword">val</span> <a name="VALprintf"></a>printf : <code class="type">('a, unit, <a href="Pretty.html#TYPEdoc">doc</a>) Pervasives.format -> 'a</code></pre><div class="info"> -Like <a href="Pretty.html#VALfprintf"><code class="code">Pretty.fprintf</code></a> applied to <code class="code">stdout</code><br> -</div> -<pre><span class="keyword">val</span> <a name="VALeprintf"></a>eprintf : <code class="type">('a, unit, <a href="Pretty.html#TYPEdoc">doc</a>) Pervasives.format -> 'a</code></pre><div class="info"> -Like <a href="Pretty.html#VALfprintf"><code class="code">Pretty.fprintf</code></a> applied to <code class="code">stderr</code><br> -</div> -<pre><span class="keyword">val</span> <a name="VALwithPrintDepth"></a>withPrintDepth : <code class="type">int -> (unit -> unit) -> unit</code></pre><div class="info"> -Invokes a thunk, with printDepth temporarily set to the specified value<br> -</div> -<br> -The following variables can be used to control the operation of the printer<br> -<pre><span class="keyword">val</span> <a name="VALprintDepth"></a>printDepth : <code class="type">int Pervasives.ref</code></pre><div class="info"> -Specifies the nesting depth of the <code class="code">align</code>/<code class="code">unalign</code> pairs at which - everything is replaced with ellipsis<br> -</div> -<pre><span class="keyword">val</span> <a name="VALprintIndent"></a>printIndent : <code class="type">bool Pervasives.ref</code></pre><div class="info"> -If false then does not indent<br> -</div> -<pre><span class="keyword">val</span> <a name="VALfastMode"></a>fastMode : <code class="type">bool Pervasives.ref</code></pre><div class="info"> -If set to <code class="code">true</code> then optional breaks are taken only when the document - has exceeded the given width. This means that the printout will looked - more ragged but it will be faster<br> -</div> -<pre><span class="keyword">val</span> <a name="VALflushOften"></a>flushOften : <code class="type">bool Pervasives.ref</code></pre><div class="info"> -If true the it flushes after every print<br> -</div> -<pre><span class="keyword">val</span> <a name="VALcountNewLines"></a>countNewLines : <code class="type">int Pervasives.ref</code></pre><div class="info"> -Keep a running count of the taken newlines. You can read and write this - from the client code if you want<br> -</div> -<pre><span class="keyword">val</span> <a name="VALauto_printer"></a>auto_printer : <code class="type">string -> 'a</code></pre><div class="info"> -A function that when used at top-level in a module will direct - the pa_prtype module generate automatically the printing functions for a - type<br> -</div> -</body></html>
\ No newline at end of file diff --git a/cil/doc/api/Stats.html b/cil/doc/api/Stats.html deleted file mode 100644 index b3f8aa42..00000000 --- a/cil/doc/api/Stats.html +++ /dev/null @@ -1,69 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<link rel="Start" href="index.html"> -<link rel="previous" href="Clist.html"> -<link rel="next" href="Cil.html"> -<link rel="Up" 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.5) : Stats</title> -</head> -<body> -<div class="navbar"><a href="Clist.html">Previous</a> - <a href="index.html">Up</a> - <a href="Cil.html">Next</a> -</div> -<center><h1>Module <a href="type_Stats.html">Stats</a></h1></center> -<br> -<pre><span class="keyword">module</span> Stats: <code class="code">sig</code> <a href="Stats.html">..</a> <code class="code">end</code></pre>Utilities for maintaining timing statistics<br> -<hr width="100%"> -<pre><span class="keyword">val</span> <a name="VALreset"></a>reset : <code class="type">bool -> unit</code></pre><div class="info"> -Resets all the timings. Invoke with "true" if you want to switch to using - the hardware performance counters from now on. You get an exception if - there are not performance counters available<br> -</div> -<pre><span class="keyword">exception</span> <a name="EXCEPTIONNoPerfCount"></a>NoPerfCount</pre> -<pre><span class="keyword">val</span> <a name="VALhas_performance_counters"></a>has_performance_counters : <code class="type">unit -> bool</code></pre><div class="info"> -Check if we have performance counters<br> -</div> -<pre><span class="keyword">val</span> <a name="VALsample_pentium_perfcount_20"></a>sample_pentium_perfcount_20 : <code class="type">unit -> int</code></pre><div class="info"> -Sample the current cycle count, in megacycles.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALsample_pentium_perfcount_10"></a>sample_pentium_perfcount_10 : <code class="type">unit -> int</code></pre><div class="info"> -Sample the current cycle count, in kilocycles.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALtime"></a>time : <code class="type">string -> ('a -> 'b) -> 'a -> 'b</code></pre><div class="info"> -Time a function and associate the time with the given string. If some - timing information is already associated with that string, then accumulate - the times. If this function is invoked within another timed function then - you can have a hierarchy of timings<br> -</div> -<pre><span class="keyword">val</span> <a name="VALrepeattime"></a>repeattime : <code class="type">float -> string -> ('a -> 'b) -> 'a -> 'b</code></pre><div class="info"> -repeattime is like time but runs the function several times until the total - running time is greater or equal to the first argument. The total time is - then divided by the number of times the function was run.<br> -</div> -<pre><span class="keyword">val</span> <a name="VALprint"></a>print : <code class="type">Pervasives.out_channel -> string -> unit</code></pre><div class="info"> -Print the current stats preceeded by a message<br> -</div> -<pre><span class="keyword">val</span> <a name="VALlastTime"></a>lastTime : <code class="type">float Pervasives.ref</code></pre><div class="info"> -Time a function and set lastTime to the time it took<br> -</div> -<pre><span class="keyword">val</span> <a name="VALtimethis"></a>timethis : <code class="type">('a -> 'b) -> 'a -> 'b</code></pre></body></html>
\ No newline at end of file diff --git a/cil/doc/api/index.html b/cil/doc/api/index.html deleted file mode 100644 index f9636b27..00000000 --- a/cil/doc/api/index.html +++ /dev/null @@ -1,83 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5)</title> -</head> -<body> -<center><h1>CIL API Documentation (version 1.3.5)</h1></center> -<a href="index_types.html">Index of types</a><br> -<a href="index_exceptions.html">Index of exceptions</a><br> -<a href="index_values.html">Index of values</a><br> -<a href="index_methods.html">Index of class methods</a><br> -<a href="index_classes.html">Index of classes</a><br> -<a href="index_class_types.html">Index of class types</a><br> -<a href="index_modules.html">Index of modules</a><br> -<a href="index_module_types.html">Index of module types</a><br> -<br/><br> -<table class="indextable"> -<tr><td><a href="Pretty.html">Pretty</a></td><td><div class="info"> -Utility functions for pretty-printing. -</div> -</td></tr> -<tr><td><a href="Errormsg.html">Errormsg</a></td><td><div class="info"> -Utility functions for error-reporting -</div> -</td></tr> -<tr><td><a href="Clist.html">Clist</a></td><td><div class="info"> -Utilities for managing "concatenable lists" (clists). -</div> -</td></tr> -<tr><td><a href="Stats.html">Stats</a></td><td><div class="info"> -Utilities for maintaining timing statistics -</div> -</td></tr> -<tr><td><a href="Cil.html">Cil</a></td><td><div class="info"> -CIL API Documentation. -</div> -</td></tr> -<tr><td><a href="Formatcil.html">Formatcil</a></td><td><div class="info"> -<b>An Interpreter for constructing CIL constructs</b> -</div> -</td></tr> -<tr><td><a href="Alpha.html">Alpha</a></td><td><div class="info"> -<b>ALPHA conversion</b> -</div> -</td></tr> -<tr><td><a href="Cillower.html">Cillower</a></td><td><div class="info"> -A number of lowering passes over CIL -</div> -</td></tr> -<tr><td><a href="Cfg.html">Cfg</a></td><td><div class="info"> -Code to compute the control-flow graph of a function or file. -</div> -</td></tr> -<tr><td><a href="Dataflow.html">Dataflow</a></td><td><div class="info"> -A framework for data flow analysis for CIL code. -</div> -</td></tr> -<tr><td><a href="Dominators.html">Dominators</a></td><td><div class="info"> -Compute dominators using data flow analysis -</div> -</td></tr> -</table> -</body> -</html>
\ No newline at end of file diff --git a/cil/doc/api/index_attributes.html b/cil/doc/api/index_attributes.html deleted file mode 100644 index 347bfa92..00000000 --- a/cil/doc/api/index_attributes.html +++ /dev/null @@ -1,30 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Index of class attributes</title> -</head> -<body> -<center><h1>Index of class attributes</h1></center> -<table> -</table><br> -</body> -</html>
\ No newline at end of file diff --git a/cil/doc/api/index_class_types.html b/cil/doc/api/index_class_types.html deleted file mode 100644 index 4c7faefe..00000000 --- a/cil/doc/api/index_class_types.html +++ /dev/null @@ -1,41 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Index of class types</title> -</head> -<body> -<center><h1>Index of class types</h1></center> -<table> -<tr><td align="left"><br>C</td></tr> -<tr><td><a href="Cil.cilPrinter.html">cilPrinter</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -A printer interface for CIL trees. -</div> -</td></tr> -<tr><td><a href="Cil.cilVisitor.html">cilVisitor</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -A visitor interface for traversing CIL trees. -</div> -</td></tr> -</table><br> -</body> -</html>
\ No newline at end of file diff --git a/cil/doc/api/index_classes.html b/cil/doc/api/index_classes.html deleted file mode 100644 index 1a5ba7d4..00000000 --- a/cil/doc/api/index_classes.html +++ /dev/null @@ -1,46 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Index of classes</title> -</head> -<body> -<center><h1>Index of classes</h1></center> -<table> -<tr><td align="left"><br>D</td></tr> -<tr><td><a href="Cil.defaultCilPrinterClass.html">defaultCilPrinterClass</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td align="left"><br>N</td></tr> -<tr><td><a href="Cil.nopCilVisitor.html">nopCilVisitor</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Default Visitor. -</div> -</td></tr> -<tr><td align="left"><br>P</td></tr> -<tr><td><a href="Cil.plainCilPrinterClass.html">plainCilPrinterClass</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -These are pretty-printers that will show you more details on the internal - CIL representation, without trying hard to make it look like C -</div> -</td></tr> -</table><br> -</body> -</html>
\ No newline at end of file diff --git a/cil/doc/api/index_exceptions.html b/cil/doc/api/index_exceptions.html deleted file mode 100644 index e774a65a..00000000 --- a/cil/doc/api/index_exceptions.html +++ /dev/null @@ -1,53 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Index of exceptions</title> -</head> -<body> -<center><h1>Index of exceptions</h1></center> -<table> -<tr><td align="left"><br>E</td></tr> -<tr><td><a href="Errormsg.html#EXCEPTIONError">Error</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td><div class="info"> -Error reporting functions raise this exception -</div> -</td></tr> -<tr><td align="left"><br>L</td></tr> -<tr><td><a href="Cil.html#EXCEPTIONLenOfArray">LenOfArray</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Raised when <a href="Cil.html#VALlenOfArray"><code class="code">Cil.lenOfArray</code></a> fails either because the length is <code class="code">None</code> - or because it is a non-constant expression -</div> -</td></tr> -<tr><td align="left"><br>N</td></tr> -<tr><td><a href="Stats.html#EXCEPTIONNoPerfCount">NoPerfCount</a> [<a href="Stats.html">Stats</a>]</td> -<td></td></tr> -<tr><td align="left"><br>S</td></tr> -<tr><td><a href="Cil.html#EXCEPTIONSizeOfError">SizeOfError</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Raised when one of the bitsSizeOf functions cannot compute the size of a - type. -</div> -</td></tr> -</table><br> -</body> -</html>
\ No newline at end of file diff --git a/cil/doc/api/index_methods.html b/cil/doc/api/index_methods.html deleted file mode 100644 index 1558de3e..00000000 --- a/cil/doc/api/index_methods.html +++ /dev/null @@ -1,228 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Index of class methods</title> -</head> -<body> -<center><h1>Index of class methods</h1></center> -<table> -<tr><td align="left"><br>D</td></tr> -<tr><td><a href="Cil.cilPrinter.html#METHODdBlock">dBlock</a> [<a href="Cil.cilPrinter.html">Cil.cilPrinter</a>]</td> -<td><div class="info"> -Dump a control-flow block to a file with a given indentation. -</div> -</td></tr> -<tr><td><a href="Cil.cilPrinter.html#METHODdGlobal">dGlobal</a> [<a href="Cil.cilPrinter.html">Cil.cilPrinter</a>]</td> -<td><div class="info"> -Dump a global to a file with a given indentation. -</div> -</td></tr> -<tr><td><a href="Cil.cilPrinter.html#METHODdInit">dInit</a> [<a href="Cil.cilPrinter.html">Cil.cilPrinter</a>]</td> -<td><div class="info"> -Dump a global to a file with a given indentation. -</div> -</td></tr> -<tr><td><a href="Cil.cilPrinter.html#METHODdStmt">dStmt</a> [<a href="Cil.cilPrinter.html">Cil.cilPrinter</a>]</td> -<td><div class="info"> -Dump a control-flow statement to a file with a given indentation. -</div> -</td></tr> -<tr><td align="left"><br>P</td></tr> -<tr><td><a href="Cil.cilPrinter.html#METHODpAttr">pAttr</a> [<a href="Cil.cilPrinter.html">Cil.cilPrinter</a>]</td> -<td><div class="info"> -Attribute. -</div> -</td></tr> -<tr><td><a href="Cil.cilPrinter.html#METHODpAttrParam">pAttrParam</a> [<a href="Cil.cilPrinter.html">Cil.cilPrinter</a>]</td> -<td><div class="info"> -Attribute parameter -</div> -</td></tr> -<tr><td><a href="Cil.cilPrinter.html#METHODpAttrs">pAttrs</a> [<a href="Cil.cilPrinter.html">Cil.cilPrinter</a>]</td> -<td><div class="info"> -Attribute lists -</div> -</td></tr> -<tr><td><a href="Cil.cilPrinter.html#METHODpBlock">pBlock</a> [<a href="Cil.cilPrinter.html">Cil.cilPrinter</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.cilPrinter.html#METHODpExp">pExp</a> [<a href="Cil.cilPrinter.html">Cil.cilPrinter</a>]</td> -<td><div class="info"> -Print expressions -</div> -</td></tr> -<tr><td><a href="Cil.cilPrinter.html#METHODpFieldDecl">pFieldDecl</a> [<a href="Cil.cilPrinter.html">Cil.cilPrinter</a>]</td> -<td><div class="info"> -A field declaration -</div> -</td></tr> -<tr><td><a href="Cil.cilPrinter.html#METHODpGlobal">pGlobal</a> [<a href="Cil.cilPrinter.html">Cil.cilPrinter</a>]</td> -<td><div class="info"> -Global (vars, types, etc.). -</div> -</td></tr> -<tr><td><a href="Cil.cilPrinter.html#METHODpInit">pInit</a> [<a href="Cil.cilPrinter.html">Cil.cilPrinter</a>]</td> -<td><div class="info"> -Print initializers. -</div> -</td></tr> -<tr><td><a href="Cil.cilPrinter.html#METHODpInstr">pInstr</a> [<a href="Cil.cilPrinter.html">Cil.cilPrinter</a>]</td> -<td><div class="info"> -Invoked on each instruction occurrence. -</div> -</td></tr> -<tr><td><a href="Cil.cilPrinter.html#METHODpLabel">pLabel</a> [<a href="Cil.cilPrinter.html">Cil.cilPrinter</a>]</td> -<td><div class="info"> -Print a label. -</div> -</td></tr> -<tr><td><a href="Cil.cilPrinter.html#METHODpLineDirective">pLineDirective</a> [<a href="Cil.cilPrinter.html">Cil.cilPrinter</a>]</td> -<td><div class="info"> -Print a line-number. -</div> -</td></tr> -<tr><td><a href="Cil.cilPrinter.html#METHODpLval">pLval</a> [<a href="Cil.cilPrinter.html">Cil.cilPrinter</a>]</td> -<td><div class="info"> -Invoked on each lvalue occurrence -</div> -</td></tr> -<tr><td><a href="Cil.cilPrinter.html#METHODpOffset">pOffset</a> [<a href="Cil.cilPrinter.html">Cil.cilPrinter</a>]</td> -<td><div class="info"> -Invoked on each offset occurrence. -</div> -</td></tr> -<tr><td><a href="Cil.cilPrinter.html#METHODpStmt">pStmt</a> [<a href="Cil.cilPrinter.html">Cil.cilPrinter</a>]</td> -<td><div class="info"> -Control-flow statement. -</div> -</td></tr> -<tr><td><a href="Cil.cilPrinter.html#METHODpStmtKind">pStmtKind</a> [<a href="Cil.cilPrinter.html">Cil.cilPrinter</a>]</td> -<td><div class="info"> -Print a statement kind. -</div> -</td></tr> -<tr><td><a href="Cil.cilPrinter.html#METHODpType">pType</a> [<a href="Cil.cilPrinter.html">Cil.cilPrinter</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.cilPrinter.html#METHODpVDecl">pVDecl</a> [<a href="Cil.cilPrinter.html">Cil.cilPrinter</a>]</td> -<td><div class="info"> -Invoked for each variable declaration. -</div> -</td></tr> -<tr><td><a href="Cil.cilPrinter.html#METHODpVar">pVar</a> [<a href="Cil.cilPrinter.html">Cil.cilPrinter</a>]</td> -<td><div class="info"> -Invoked on each variable use. -</div> -</td></tr> -<tr><td align="left"><br>Q</td></tr> -<tr><td><a href="Cil.cilVisitor.html#METHODqueueInstr">queueInstr</a> [<a href="Cil.cilVisitor.html">Cil.cilVisitor</a>]</td> -<td><div class="info"> -Add here instructions while visiting to queue them to preceede the - current statement or instruction being processed. -</div> -</td></tr> -<tr><td align="left"><br>U</td></tr> -<tr><td><a href="Cil.cilVisitor.html#METHODunqueueInstr">unqueueInstr</a> [<a href="Cil.cilVisitor.html">Cil.cilVisitor</a>]</td> -<td><div class="info"> -Gets the queue of instructions and resets the queue. -</div> -</td></tr> -<tr><td align="left"><br>V</td></tr> -<tr><td><a href="Cil.cilVisitor.html#METHODvattr">vattr</a> [<a href="Cil.cilVisitor.html">Cil.cilVisitor</a>]</td> -<td><div class="info"> -Attribute. -</div> -</td></tr> -<tr><td><a href="Cil.cilVisitor.html#METHODvattrparam">vattrparam</a> [<a href="Cil.cilVisitor.html">Cil.cilVisitor</a>]</td> -<td><div class="info"> -Attribute parameters. -</div> -</td></tr> -<tr><td><a href="Cil.cilVisitor.html#METHODvblock">vblock</a> [<a href="Cil.cilVisitor.html">Cil.cilVisitor</a>]</td> -<td><div class="info"> -Block. -</div> -</td></tr> -<tr><td><a href="Cil.cilVisitor.html#METHODvexpr">vexpr</a> [<a href="Cil.cilVisitor.html">Cil.cilVisitor</a>]</td> -<td><div class="info"> -Invoked on each expression occurrence. -</div> -</td></tr> -<tr><td><a href="Cil.cilVisitor.html#METHODvfunc">vfunc</a> [<a href="Cil.cilVisitor.html">Cil.cilVisitor</a>]</td> -<td><div class="info"> -Function definition. -</div> -</td></tr> -<tr><td><a href="Cil.cilVisitor.html#METHODvglob">vglob</a> [<a href="Cil.cilVisitor.html">Cil.cilVisitor</a>]</td> -<td><div class="info"> -Global (vars, types, - etc.) -</div> -</td></tr> -<tr><td><a href="Cil.cilVisitor.html#METHODvinit">vinit</a> [<a href="Cil.cilVisitor.html">Cil.cilVisitor</a>]</td> -<td><div class="info"> -Initializers for globals -</div> -</td></tr> -<tr><td><a href="Cil.cilVisitor.html#METHODvinitoffs">vinitoffs</a> [<a href="Cil.cilVisitor.html">Cil.cilVisitor</a>]</td> -<td><div class="info"> -Invoked on each offset appearing in the list of a - CompoundInit initializer. -</div> -</td></tr> -<tr><td><a href="Cil.cilVisitor.html#METHODvinst">vinst</a> [<a href="Cil.cilVisitor.html">Cil.cilVisitor</a>]</td> -<td><div class="info"> -Invoked on each instruction occurrence. -</div> -</td></tr> -<tr><td><a href="Cil.cilVisitor.html#METHODvlval">vlval</a> [<a href="Cil.cilVisitor.html">Cil.cilVisitor</a>]</td> -<td><div class="info"> -Invoked on each lvalue occurrence -</div> -</td></tr> -<tr><td><a href="Cil.cilVisitor.html#METHODvoffs">voffs</a> [<a href="Cil.cilVisitor.html">Cil.cilVisitor</a>]</td> -<td><div class="info"> -Invoked on each offset occurrence that is *not* as part - of an initializer list specification, i.e. -</div> -</td></tr> -<tr><td><a href="Cil.cilVisitor.html#METHODvstmt">vstmt</a> [<a href="Cil.cilVisitor.html">Cil.cilVisitor</a>]</td> -<td><div class="info"> -Control-flow statement. -</div> -</td></tr> -<tr><td><a href="Cil.cilVisitor.html#METHODvtype">vtype</a> [<a href="Cil.cilVisitor.html">Cil.cilVisitor</a>]</td> -<td><div class="info"> -Use of some type. -</div> -</td></tr> -<tr><td><a href="Cil.cilVisitor.html#METHODvvdec">vvdec</a> [<a href="Cil.cilVisitor.html">Cil.cilVisitor</a>]</td> -<td><div class="info"> -Invoked for each variable declaration. -</div> -</td></tr> -<tr><td><a href="Cil.cilVisitor.html#METHODvvrbl">vvrbl</a> [<a href="Cil.cilVisitor.html">Cil.cilVisitor</a>]</td> -<td><div class="info"> -Invoked on each variable use. -</div> -</td></tr> -</table><br> -</body> -</html>
\ No newline at end of file diff --git a/cil/doc/api/index_module_types.html b/cil/doc/api/index_module_types.html deleted file mode 100644 index 244d4027..00000000 --- a/cil/doc/api/index_module_types.html +++ /dev/null @@ -1,36 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Index of module types</title> -</head> -<body> -<center><h1>Index of module types</h1></center> -<table> -<tr><td align="left"><br>B</td></tr> -<tr><td><a href="Dataflow.BackwardsTransfer.html">BackwardsTransfer</a> [<a href="Dataflow.html">Dataflow</a>]</td> -<td></td></tr> -<tr><td align="left"><br>F</td></tr> -<tr><td><a href="Dataflow.ForwardsTransfer.html">ForwardsTransfer</a> [<a href="Dataflow.html">Dataflow</a>]</td> -<td></td></tr> -</table><br> -</body> -</html>
\ No newline at end of file diff --git a/cil/doc/api/index_modules.html b/cil/doc/api/index_modules.html deleted file mode 100644 index 090693f5..00000000 --- a/cil/doc/api/index_modules.html +++ /dev/null @@ -1,108 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Index of modules</title> -</head> -<body> -<center><h1>Index of modules</h1></center> -<table> -<tr><td align="left"><br>A</td></tr> -<tr><td><a href="Alpha.html">Alpha</a> </td> -<td><div class="info"> -<b>ALPHA conversion</b> -</div> -</td></tr> -<tr><td align="left"><br>B</td></tr> -<tr><td><a href="Dataflow.BackwardsDataFlow.html">BackwardsDataFlow</a> [<a href="Dataflow.html">Dataflow</a>]</td> -<td></td></tr> -<tr><td align="left"><br>C</td></tr> -<tr><td><a href="Cfg.html">Cfg</a> </td> -<td><div class="info"> -Code to compute the control-flow graph of a function or file. -</div> -</td></tr> -<tr><td><a href="Cil.html">Cil</a> </td> -<td><div class="info"> -CIL API Documentation. -</div> -</td></tr> -<tr><td><a href="Cillower.html">Cillower</a> </td> -<td><div class="info"> -A number of lowering passes over CIL -</div> -</td></tr> -<tr><td><a href="Clist.html">Clist</a> </td> -<td><div class="info"> -Utilities for managing "concatenable lists" (clists). -</div> -</td></tr> -<tr><td align="left"><br>D</td></tr> -<tr><td><a href="Dataflow.html">Dataflow</a> </td> -<td><div class="info"> -A framework for data flow analysis for CIL code. -</div> -</td></tr> -<tr><td><a href="Dominators.html">Dominators</a> </td> -<td><div class="info"> -Compute dominators using data flow analysis -</div> -</td></tr> -<tr><td align="left"><br>E</td></tr> -<tr><td><a href="Errormsg.html">Errormsg</a> </td> -<td><div class="info"> -Utility functions for error-reporting -</div> -</td></tr> -<tr><td align="left"><br>F</td></tr> -<tr><td><a href="Formatcil.html">Formatcil</a> </td> -<td><div class="info"> -<b>An Interpreter for constructing CIL constructs</b> -</div> -</td></tr> -<tr><td><a href="Dataflow.ForwardsDataFlow.html">ForwardsDataFlow</a> [<a href="Dataflow.html">Dataflow</a>]</td> -<td></td></tr> -<tr><td align="left"><br>M</td></tr> -<tr><td><a href="Pretty.MakeMapPrinter.html">MakeMapPrinter</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Format maps. -</div> -</td></tr> -<tr><td><a href="Pretty.MakeSetPrinter.html">MakeSetPrinter</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Format sets. -</div> -</td></tr> -<tr><td align="left"><br>P</td></tr> -<tr><td><a href="Pretty.html">Pretty</a> </td> -<td><div class="info"> -Utility functions for pretty-printing. -</div> -</td></tr> -<tr><td align="left"><br>S</td></tr> -<tr><td><a href="Stats.html">Stats</a> </td> -<td><div class="info"> -Utilities for maintaining timing statistics -</div> -</td></tr> -</table><br> -</body> -</html>
\ No newline at end of file diff --git a/cil/doc/api/index_types.html b/cil/doc/api/index_types.html deleted file mode 100644 index 1974acd6..00000000 --- a/cil/doc/api/index_types.html +++ /dev/null @@ -1,271 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Index of types</title> -</head> -<body> -<center><h1>Index of types</h1></center> -<table> -<tr><td align="left"><br>A</td></tr> -<tr><td><a href="Dataflow.html#TYPEaction">action</a> [<a href="Dataflow.html">Dataflow</a>]</td> -<td></td></tr> -<tr><td><a href="Alpha.html#TYPEalphaTableData">alphaTableData</a> [<a href="Alpha.html">Alpha</a>]</td> -<td><div class="info"> -This is the type of the elements of the alpha renaming table. -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPEattribute">attribute</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#TYPEattributeClass">attributeClass</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Various classes of attributes -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPEattributes">attributes</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Attributes are lists sorted by the attribute name. -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPEattrparam">attrparam</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -The type of parameters of attributes -</div> -</td></tr> -<tr><td align="left"><br>B</td></tr> -<tr><td><a href="Cil.html#TYPEbinop">binop</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Binary operations -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPEblock">block</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -A block is a sequence of statements with the control falling through from - one element to the next -</div> -</td></tr> -<tr><td align="left"><br>C</td></tr> -<tr><td><a href="Clist.html#TYPEclist">clist</a> [<a href="Clist.html">Clist</a>]</td> -<td><div class="info"> -The clist datatype. -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPEcomment">comment</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#TYPEcompinfo">compinfo</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -The definition of a structure or union type. -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPEconstant">constant</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Literal constants -</div> -</td></tr> -<tr><td align="left"><br>D</td></tr> -<tr><td><a href="Pretty.html#TYPEdoc">doc</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -The type of unformated documents. -</div> -</td></tr> -<tr><td align="left"><br>E</td></tr> -<tr><td><a href="Cil.html#TYPEenuminfo">enuminfo</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Information about an enumeration -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPEexistsAction">existsAction</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -A datatype to be used in conjunction with <code class="code">existsType</code> -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPEexp">exp</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Expressions (Side-effect free) -</div> -</td></tr> -<tr><td align="left"><br>F</td></tr> -<tr><td><a href="Cil.html#TYPEfeatureDescr">featureDescr</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -To be able to add/remove features easily, each feature should be package - as an interface with the following interface. -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPEfieldinfo">fieldinfo</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Information about a struct/union field -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPEfile">file</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Top-level representation of a C source file -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPEfkind">fkind</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Various kinds of floating-point numbers -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPEformatArg">formatArg</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -The type of argument for the interpreter -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPEfundec">fundec</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Function definitions. -</div> -</td></tr> -<tr><td align="left"><br>G</td></tr> -<tr><td><a href="Cil.html#TYPEglobal">global</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -A global declaration or definition -</div> -</td></tr> -<tr><td><a href="Dataflow.html#TYPEguardaction">guardaction</a> [<a href="Dataflow.html">Dataflow</a>]</td> -<td></td></tr> -<tr><td align="left"><br>I</td></tr> -<tr><td><a href="Cil.html#TYPEikind">ikind</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Various kinds of integers -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPEinit">init</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Initializers for global variables. -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPEinitinfo">initinfo</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -We want to be able to update an initializer in a global variable, so we - define it as a mutable field -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPEinstr">instr</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Instructions. -</div> -</td></tr> -<tr><td align="left"><br>L</td></tr> -<tr><td><a href="Cil.html#TYPElabel">label</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Labels -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPElhost">lhost</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -The host part of an <a href="Cil.html#TYPElval"><code class="code">Cil.lval</code></a>. -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPElineDirectiveStyle">lineDirectiveStyle</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Styles of printing line directives -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPElocation">location</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Describes a location in a source file. -</div> -</td></tr> -<tr><td><a href="Errormsg.html#TYPElocation">location</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td><div class="info"> -Type for source-file locations -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPElval">lval</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -An lvalue -</div> -</td></tr> -<tr><td align="left"><br>O</td></tr> -<tr><td><a href="Cil.html#TYPEoffset">offset</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -The offset part of an <a href="Cil.html#TYPElval"><code class="code">Cil.lval</code></a>. -</div> -</td></tr> -<tr><td align="left"><br>S</td></tr> -<tr><td><a href="Cil.html#TYPEstmt">stmt</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Statements. -</div> -</td></tr> -<tr><td><a href="Dataflow.html#TYPEstmtaction">stmtaction</a> [<a href="Dataflow.html">Dataflow</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#TYPEstmtkind">stmtkind</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -The various kinds of control-flow statements statements -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPEstorage">storage</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Storage-class information -</div> -</td></tr> -<tr><td align="left"><br>T</td></tr> -<tr><td><a href="Dataflow.BackwardsTransfer.html#TYPEt">t</a> [<a href="Dataflow.BackwardsTransfer.html">Dataflow.BackwardsTransfer</a>]</td> -<td><div class="info"> -The type of the data we compute for each block start. -</div> -</td></tr> -<tr><td><a href="Dataflow.ForwardsTransfer.html#TYPEt">t</a> [<a href="Dataflow.ForwardsTransfer.html">Dataflow.ForwardsTransfer</a>]</td> -<td><div class="info"> -The type of the data we compute for each block start. -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPEtyp">typ</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#TYPEtypeinfo">typeinfo</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Information about a defined type -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPEtypsig">typsig</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Type signatures. -</div> -</td></tr> -<tr><td align="left"><br>U</td></tr> -<tr><td><a href="Alpha.html#TYPEundoAlphaElement">undoAlphaElement</a> [<a href="Alpha.html">Alpha</a>]</td> -<td><div class="info"> -This is the type of the elements that are recorded by the alpha - conversion functions in order to be able to undo changes to the tables - they modify. -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPEunop">unop</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Unary operators -</div> -</td></tr> -<tr><td align="left"><br>V</td></tr> -<tr><td><a href="Cil.html#TYPEvarinfo">varinfo</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Information about a variable. -</div> -</td></tr> -<tr><td><a href="Cil.html#TYPEvisitAction">visitAction</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Different visiting actions. -</div> -</td></tr> -</table><br> -</body> -</html>
\ No newline at end of file diff --git a/cil/doc/api/index_values.html b/cil/doc/api/index_values.html deleted file mode 100644 index 799daafd..00000000 --- a/cil/doc/api/index_values.html +++ /dev/null @@ -1,1964 +0,0 @@ -<html> -<head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Index of values</title> -</head> -<body> -<center><h1>Index of values</h1></center> -<table> -<tr><td align="left"><br></td></tr> -<tr><td><a href="Pretty.html#VAL(++)">(++)</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Concatenates two documents. -</div> -</td></tr> -<tr><td align="left"><br>A</td></tr> -<tr><td><a href="Cil.html#VALaddAttribute">addAttribute</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Add an attribute. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALaddAttributes">addAttributes</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Add a list of attributes. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALaddOffset">addOffset</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -<code class="code">addOffset o1 o2</code> adds <code class="code">o1</code> to the end of <code class="code">o2</code>. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALaddOffsetLval">addOffsetLval</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Add an offset at the end of an lvalue. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALadditiveLevel">additiveLevel</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALaddrOfLevel">addrOfLevel</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Pretty.html#VALalign">align</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Mark the current column as the current indentation level. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALalignOf_int">alignOf_int</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -The minimum alignment (in bytes) for a type. -</div> -</td></tr> -<tr><td><a href="Clist.html#VALappend">append</a> [<a href="Clist.html">Clist</a>]</td> -<td><div class="info"> -Append two clists -</div> -</td></tr> -<tr><td><a href="Cil.html#VALargsToList">argsToList</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Obtain the argument list ([] if None) -</div> -</td></tr> -<tr><td><a href="Cil.html#VALarrowLevel">arrowLevel</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALattributeHash">attributeHash</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -This table contains the mapping of predefined attributes to classes. -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALauto_printer">auto_printer</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -A function that when used at top-level in a module will direct - the pa_prtype module generate automatically the printing functions for a - type -</div> -</td></tr> -<tr><td align="left"><br>B</td></tr> -<tr><td><a href="Cil.html#VALbitsOffset">bitsOffset</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Give a type of a base and an offset, returns the number of bits from the - base address and the width (also expressed in bits) for the subobject - denoted by the offset. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALbitsSizeOf">bitsSizeOf</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -The size of a type, in bits. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALbitwiseLevel">bitwiseLevel</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Pretty.html#VALbreak">break</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -A document that consists of either a space or a line break. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALbug">bug</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Like <a href="Errormsg.html#VALbug"><code class="code">Errormsg.bug</code></a> except that <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a> is also printed -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALbug">bug</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td><div class="info"> -Similar to <code class="code">error</code> except that its output has the form <code class="code">Bug: ...</code> -</div> -</td></tr> -<tr><td align="left"><br>C</td></tr> -<tr><td><a href="Formatcil.html#VALcExp">cExp</a> [<a href="Formatcil.html">Formatcil</a>]</td> -<td><div class="info"> -Constructs an expression based on the program and the list of arguments. -</div> -</td></tr> -<tr><td><a href="Formatcil.html#VALcInstr">cInstr</a> [<a href="Formatcil.html">Formatcil</a>]</td> -<td><div class="info"> -Constructs an instruction based on the program and the list of arguments. -</div> -</td></tr> -<tr><td><a href="Formatcil.html#VALcLval">cLval</a> [<a href="Formatcil.html">Formatcil</a>]</td> -<td><div class="info"> -Constructs an lval based on the program and the list of arguments. -</div> -</td></tr> -<tr><td><a href="Formatcil.html#VALcStmt">cStmt</a> [<a href="Formatcil.html">Formatcil</a>]</td> -<td></td></tr> -<tr><td><a href="Formatcil.html#VALcStmts">cStmts</a> [<a href="Formatcil.html">Formatcil</a>]</td> -<td><div class="info"> -Constructs a list of statements -</div> -</td></tr> -<tr><td><a href="Formatcil.html#VALcType">cType</a> [<a href="Formatcil.html">Formatcil</a>]</td> -<td><div class="info"> -Constructs a type based on the program and the list of arguments. -</div> -</td></tr> -<tr><td><a href="Cfg.html#VALcfgFun">cfgFun</a> [<a href="Cfg.html">Cfg</a>]</td> -<td><div class="info"> -Compute a control flow graph for fd. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALcharConstPtrType">charConstPtrType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -char const * -</div> -</td></tr> -<tr><td><a href="Cil.html#VALcharConstToInt">charConstToInt</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Given the character c in a (CChr c), sign-extend it to 32 bits. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALcharPtrType">charPtrType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -char * -</div> -</td></tr> -<tr><td><a href="Cil.html#VALcharType">charType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -char -</div> -</td></tr> -<tr><td><a href="Cil.html#VALchar_is_unsigned">char_is_unsigned</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Whether "char" is unsigned. -</div> -</td></tr> -<tr><td><a href="Clist.html#VALcheckBeforeAppend">checkBeforeAppend</a> [<a href="Clist.html">Clist</a>]</td> -<td><div class="info"> -A useful check to assert before an append. -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALchr">chr</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -A document that prints a character. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALcilVersion">cilVersion</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -This are the CIL version numbers. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALcilVersionMajor">cilVersionMajor</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALcilVersionMinor">cilVersionMinor</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALcilVersionRevision">cilVersionRevision</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cfg.html#VALclearCFGinfo">clearCFGinfo</a> [<a href="Cfg.html">Cfg</a>]</td> -<td><div class="info"> -clear the sid, succs, and preds fields of each statment in a function -</div> -</td></tr> -<tr><td><a href="Cfg.html#VALclearFileCFG">clearFileCFG</a> [<a href="Cfg.html">Cfg</a>]</td> -<td><div class="info"> -clear the sid, succs, and preds fields of each statement. -</div> -</td></tr> -<tr><td><a href="Dataflow.ForwardsTransfer.html#VALcombinePredecessors">combinePredecessors</a> [<a href="Dataflow.ForwardsTransfer.html">Dataflow.ForwardsTransfer</a>]</td> -<td><div class="info"> -Take some old data for the start of a statement, and some new data for - the same point. -</div> -</td></tr> -<tr><td><a href="Dataflow.BackwardsTransfer.html#VALcombineStmtStartData">combineStmtStartData</a> [<a href="Dataflow.BackwardsTransfer.html">Dataflow.BackwardsTransfer</a>]</td> -<td><div class="info"> -When the analysis reaches the start of a block, combine the old data - with the one we have just computed. -</div> -</td></tr> -<tr><td><a href="Dataflow.BackwardsTransfer.html#VALcombineSuccessors">combineSuccessors</a> [<a href="Dataflow.BackwardsTransfer.html">Dataflow.BackwardsTransfer</a>]</td> -<td><div class="info"> -Take the data from two successors and combine it -</div> -</td></tr> -<tr><td><a href="Cil.html#VALcompFullName">compFullName</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Get the full name of a comp -</div> -</td></tr> -<tr><td><a href="Cil.html#VALcompactStmts">compactStmts</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Try to compress statements so as to get maximal basic blocks -</div> -</td></tr> -<tr><td><a href="Cil.html#VALcomparativeLevel">comparativeLevel</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALcompareLoc">compareLoc</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Comparison function for locations. -</div> -</td></tr> -<tr><td><a href="Dataflow.BackwardsDataFlow.html#VALcompute">compute</a> [<a href="Dataflow.BackwardsDataFlow.html">Dataflow.BackwardsDataFlow</a>]</td> -<td><div class="info"> -Fill in the T.stmtStartData, given a number of initial statements to - start from (the sinks for the backwards data flow). -</div> -</td></tr> -<tr><td><a href="Dataflow.ForwardsDataFlow.html#VALcompute">compute</a> [<a href="Dataflow.ForwardsDataFlow.html">Dataflow.ForwardsDataFlow</a>]</td> -<td><div class="info"> -Fill in the T.stmtStartData, given a number of initial statements to - start from. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALcomputeCFGInfo">computeCFGInfo</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Compute the CFG information for all statements in a fundec and return a - list of the statements. -</div> -</td></tr> -<tr><td><a href="Cfg.html#VALcomputeFileCFG">computeFileCFG</a> [<a href="Cfg.html">Cfg</a>]</td> -<td><div class="info"> -Compute the CFG for an entire file, by calling cfgFun on each function. -</div> -</td></tr> -<tr><td><a href="Dataflow.ForwardsTransfer.html#VALcomputeFirstPredecessor">computeFirstPredecessor</a> [<a href="Dataflow.ForwardsTransfer.html">Dataflow.ForwardsTransfer</a>]</td> -<td><div class="info"> -Give the first value for a predecessors, compute the value to be set - for the block -</div> -</td></tr> -<tr><td><a href="Dominators.html#VALcomputeIDom">computeIDom</a> [<a href="Dominators.html">Dominators</a>]</td> -<td><div class="info"> -Invoke on a code after filling in the CFG info and it computes the - immediate dominator information. -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALconcat">concat</a> [<a href="Pretty.html">Pretty</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALconstFold">constFold</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Do constant folding on an expression. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALconstFoldBinOp">constFoldBinOp</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Do constant folding on a binary operation. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALconstFoldVisitor">constFoldVisitor</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -A visitor that does constant folding. -</div> -</td></tr> -<tr><td><a href="Dataflow.ForwardsTransfer.html#VALcopy">copy</a> [<a href="Dataflow.ForwardsTransfer.html">Dataflow.ForwardsTransfer</a>]</td> -<td><div class="info"> -Make a deep copy of the data -</div> -</td></tr> -<tr><td><a href="Cil.html#VALcopyCompInfo">copyCompInfo</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Makes a shallow copy of a <a href="Cil.html#TYPEcompinfo"><code class="code">Cil.compinfo</code></a> changing the name and the key. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALcopyFunction">copyFunction</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Create a deep copy of a function. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALcopyVarinfo">copyVarinfo</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Make a shallow copy of a <code class="code">varinfo</code> and assign a new identifier -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALcountNewLines">countNewLines</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Keep a running count of the taken newlines. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALcurrentGlobal">currentGlobal</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -A reference to the current global being visited -</div> -</td></tr> -<tr><td><a href="Cil.html#VALcurrentLoc">currentLoc</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -A reference to the current location. -</div> -</td></tr> -<tr><td align="left"><br>D</td></tr> -<tr><td><a href="Formatcil.html#VALdExp">dExp</a> [<a href="Formatcil.html">Formatcil</a>]</td> -<td><div class="info"> -Deconstructs an expression based on the program. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALdExp">dExp</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Generate an <a href="Cil.html#TYPEexp"><code class="code">Cil.exp</code></a> to be used in case of errors. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALdGlobal">dGlobal</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Generate a <a href="Cil.html#TYPEglobal"><code class="code">Cil.global</code></a> to be used in case of errors. -</div> -</td></tr> -<tr><td><a href="Formatcil.html#VALdInstr">dInstr</a> [<a href="Formatcil.html">Formatcil</a>]</td> -<td><div class="info"> -Deconstructs an instruction based on the program. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALdInstr">dInstr</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Generate an <a href="Cil.html#TYPEinstr"><code class="code">Cil.instr</code></a> to be used in case of errors. -</div> -</td></tr> -<tr><td><a href="Formatcil.html#VALdLval">dLval</a> [<a href="Formatcil.html">Formatcil</a>]</td> -<td><div class="info"> -Deconstructs an lval based on the program. -</div> -</td></tr> -<tr><td><a href="Formatcil.html#VALdType">dType</a> [<a href="Formatcil.html">Formatcil</a>]</td> -<td><div class="info"> -Deconstructs a type based on the program. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_attr">d_attr</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print an attribute using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a> -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_attrlist">d_attrlist</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print a list of attributes using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a> -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_attrparam">d_attrparam</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print an argument of an attribute using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a> -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_binop">d_binop</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print a binary operator -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_block">d_block</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print a block using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a>. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_const">d_const</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print a constant -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_exp">d_exp</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print an expression using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a> -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_fkind">d_fkind</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print a floating-point kind -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_formatarg">d_formatarg</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-prints a format arg -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_global">d_global</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print the internal representation of a global using - <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a>. -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALd_hloc">d_hloc</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALd_ikind">d_ikind</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print an integer of a given kind -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_init">d_init</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print an initializer using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a>. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_instr">d_instr</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print an instruction using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a> -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALd_int32">d_int32</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Print an int32 -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALd_int64">d_int64</a> [<a href="Pretty.html">Pretty</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALd_label">d_label</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print a label using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a> -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALd_list">d_list</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -sm: Yet another list printer. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_loc">d_loc</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print a location -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALd_loc">d_loc</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALd_lval">d_lval</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print an lvalue using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a> -</div> -</td></tr> -<tr><td><a href="Pretty.MakeMapPrinter.html#VALd_map">d_map</a> [<a href="Pretty.MakeMapPrinter.html">Pretty.MakeMapPrinter</a>]</td> -<td><div class="info"> -Format a map, analogous to d_list. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_offset">d_offset</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print an offset using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a>, given the pretty - printing for the base. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_plainexp">d_plainexp</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print the internal representation of an expression -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_plaininit">d_plaininit</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print the internal representation of an integer -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_plainlval">d_plainlval</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print the internal representation of an lvalue -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_plaintype">d_plaintype</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print the internal representation of a type -</div> -</td></tr> -<tr><td><a href="Pretty.MakeSetPrinter.html#VALd_set">d_set</a> [<a href="Pretty.MakeSetPrinter.html">Pretty.MakeSetPrinter</a>]</td> -<td><div class="info"> -Format a set, analogous to d_list. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_shortglobal">d_shortglobal</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print a short description of the global. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_stmt">d_stmt</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print a statement using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a>. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_storage">d_storage</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print storage-class information -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_thisloc">d_thisloc</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print the <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a> -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_type">d_type</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print a type using <a href="Cil.html#VALdefaultCilPrinter"><code class="code">Cil.defaultCilPrinter</code></a> -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_typsig">d_typsig</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Print a type signature -</div> -</td></tr> -<tr><td><a href="Cil.html#VALd_unop">d_unop</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print a unary operator -</div> -</td></tr> -<tr><td><a href="Dataflow.BackwardsTransfer.html#VALdebug">debug</a> [<a href="Dataflow.BackwardsTransfer.html">Dataflow.BackwardsTransfer</a>]</td> -<td><div class="info"> -Whether to turn on debugging -</div> -</td></tr> -<tr><td><a href="Dataflow.ForwardsTransfer.html#VALdebug">debug</a> [<a href="Dataflow.ForwardsTransfer.html">Dataflow.ForwardsTransfer</a>]</td> -<td><div class="info"> -Whether to turn on debugging -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALdebugFlag">debugFlag</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td><div class="info"> -If set then print debugging info -</div> -</td></tr> -<tr><td><a href="Cil.html#VALdefaultCilPrinter">defaultCilPrinter</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALderefStarLevel">derefStarLevel</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALdn_attr">dn_attr</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALdn_attrlist">dn_attrlist</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALdn_attrparam">dn_attrparam</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALdn_exp">dn_exp</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Versions of the above pretty printers, that don't print #line directives -</div> -</td></tr> -<tr><td><a href="Cil.html#VALdn_global">dn_global</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALdn_init">dn_init</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALdn_instr">dn_instr</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALdn_lval">dn_lval</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALdn_stmt">dn_stmt</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALdn_type">dn_type</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Dataflow.ForwardsTransfer.html#VALdoGuard">doGuard</a> [<a href="Dataflow.ForwardsTransfer.html">Dataflow.ForwardsTransfer</a>]</td> -<td><div class="info"> -Generate the successor to an If statement assuming the given expression - is nonzero. -</div> -</td></tr> -<tr><td><a href="Dataflow.BackwardsTransfer.html#VALdoInstr">doInstr</a> [<a href="Dataflow.BackwardsTransfer.html">Dataflow.BackwardsTransfer</a>]</td> -<td><div class="info"> -The (backwards) transfer function for an instruction. -</div> -</td></tr> -<tr><td><a href="Dataflow.ForwardsTransfer.html#VALdoInstr">doInstr</a> [<a href="Dataflow.ForwardsTransfer.html">Dataflow.ForwardsTransfer</a>]</td> -<td><div class="info"> -The (forwards) transfer function for an instruction. -</div> -</td></tr> -<tr><td><a href="Dataflow.BackwardsTransfer.html#VALdoStmt">doStmt</a> [<a href="Dataflow.BackwardsTransfer.html">Dataflow.BackwardsTransfer</a>]</td> -<td><div class="info"> -The (backwards) transfer function for a branch. -</div> -</td></tr> -<tr><td><a href="Dataflow.ForwardsTransfer.html#VALdoStmt">doStmt</a> [<a href="Dataflow.ForwardsTransfer.html">Dataflow.ForwardsTransfer</a>]</td> -<td><div class="info"> -The (forwards) transfer function for a statement. -</div> -</td></tr> -<tr><td><a href="Alpha.html#VALdocAlphaTable">docAlphaTable</a> [<a href="Alpha.html">Alpha</a>]</td> -<td><div class="info"> -Split the name in preparation for newAlphaName. -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALdocArray">docArray</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Formats an array. -</div> -</td></tr> -<tr><td><a href="Clist.html#VALdocCList">docCList</a> [<a href="Clist.html">Clist</a>]</td> -<td><div class="info"> -A document for printing a clist (similar to <code class="code">docList</code>) -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALdocList">docList</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -An alternative function for printing a list. -</div> -</td></tr> -<tr><td><a href="Pretty.MakeMapPrinter.html#VALdocMap">docMap</a> [<a href="Pretty.MakeMapPrinter.html">Pretty.MakeMapPrinter</a>]</td> -<td><div class="info"> -Format a map, analogous to docList. -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALdocOpt">docOpt</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Prints an <code class="code">'a option</code> with <code class="code">None</code> or <code class="code">Some</code> -</div> -</td></tr> -<tr><td><a href="Pretty.MakeSetPrinter.html#VALdocSet">docSet</a> [<a href="Pretty.MakeSetPrinter.html">Pretty.MakeSetPrinter</a>]</td> -<td><div class="info"> -Format a set, analogous to docList. -</div> -</td></tr> -<tr><td><a href="Dominators.html#VALdominates">dominates</a> [<a href="Dominators.html">Dominators</a>]</td> -<td><div class="info"> -Check whether one statement dominates another. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALdoubleType">doubleType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -double -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALdprintf">dprintf</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -This function provides an alternative method for constructing - <code class="code">doc</code> objects. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALdropAttribute">dropAttribute</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Remove all attributes with the given name. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALdropAttributes">dropAttributes</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Remove all attributes with names appearing in the string list. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALdummyFile">dummyFile</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -A dummy file -</div> -</td></tr> -<tr><td><a href="Cil.html#VALdummyFunDec">dummyFunDec</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -A dummy function declaration handy when you need one as a placeholder. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALdummyInstr">dummyInstr</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -A instr to serve as a placeholder -</div> -</td></tr> -<tr><td><a href="Cil.html#VALdummyStmt">dummyStmt</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -A statement consisting of just <code class="code">dummyInstr</code> -</div> -</td></tr> -<tr><td><a href="Cil.html#VALdumpBlock">dumpBlock</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Dump a block to a file using a given indentation. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALdumpFile">dumpFile</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print an entire file. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALdumpGlobal">dumpGlobal</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Pretty-print a global. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALdumpInit">dumpInit</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Dump an initializer to a file using a given indentation. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALdumpStmt">dumpStmt</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Dump a statement to a file using a given indentation. -</div> -</td></tr> -<tr><td align="left"><br>E</td></tr> -<tr><td><a href="Clist.html#VALempty">empty</a> [<a href="Clist.html">Clist</a>]</td> -<td><div class="info"> -The empty clist -</div> -</td></tr> -<tr><td><a href="Cil.html#VALemptyFunction">emptyFunction</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Make an empty function -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALeprintf">eprintf</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Like <a href="Pretty.html#VALfprintf"><code class="code">Pretty.fprintf</code></a> applied to <code class="code">stderr</code> -</div> -</td></tr> -<tr><td><a href="Cil.html#VALerror">error</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Like <a href="Errormsg.html#VALerror"><code class="code">Errormsg.error</code></a> except that <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a> is also printed -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALerror">error</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td><div class="info"> -Prints an error message of the form <code class="code">Error: ...</code>. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALerrorLoc">errorLoc</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Like <a href="Cil.html#VALerror"><code class="code">Cil.error</code></a> except that it explicitly takes a location argument, - instead of using the <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a> -</div> -</td></tr> -<tr><td><a href="Cil.html#VALexistsType">existsType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Scans a type by applying the function on all elements. -</div> -</td></tr> -<tr><td align="left"><br>F</td></tr> -<tr><td><a href="Pretty.html#VALf_int32">f_int32</a> [<a href="Pretty.html">Pretty</a>]</td> -<td></td></tr> -<tr><td><a href="Pretty.html#VALf_int64">f_int64</a> [<a href="Pretty.html">Pretty</a>]</td> -<td></td></tr> -<tr><td><a href="Pretty.html#VALfastMode">fastMode</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -If set to <code class="code">true</code> then optional breaks are taken only when the document - has exceeded the given width. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALfilterAttributes">filterAttributes</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Retains attributes with the given name -</div> -</td></tr> -<tr><td><a href="Dataflow.BackwardsTransfer.html#VALfilterStmt">filterStmt</a> [<a href="Dataflow.BackwardsTransfer.html">Dataflow.BackwardsTransfer</a>]</td> -<td><div class="info"> -Whether to put this predecessor block in the worklist. -</div> -</td></tr> -<tr><td><a href="Dataflow.ForwardsTransfer.html#VALfilterStmt">filterStmt</a> [<a href="Dataflow.ForwardsTransfer.html">Dataflow.ForwardsTransfer</a>]</td> -<td><div class="info"> -Whether to put this statement in the worklist. -</div> -</td></tr> -<tr><td><a href="Dominators.html#VALfindNaturalLoops">findNaturalLoops</a> [<a href="Dominators.html">Dominators</a>]</td> -<td><div class="info"> -Compute the start of the natural loops. -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALfinishParsing">finishParsing</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td></td></tr> -<tr><td><a href="Pretty.html#VALflushOften">flushOften</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -If true the it flushes after every print -</div> -</td></tr> -<tr><td><a href="Cil.html#VALfoldGlobals">foldGlobals</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Fold over all globals, including the global initializer -</div> -</td></tr> -<tr><td><a href="Cil.html#VALfoldLeftCompound">foldLeftCompound</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Fold over the list of initializers in a Compound. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALfoldLeftCompoundAll">foldLeftCompoundAll</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Fold over the list of initializers in a Compound, like - <a href="Cil.html#VALfoldLeftCompound"><code class="code">Cil.foldLeftCompound</code></a> but in the case of an array it scans even missing - zero initializers at the end of the array -</div> -</td></tr> -<tr><td><a href="Clist.html#VALfold_left">fold_left</a> [<a href="Clist.html">Clist</a>]</td> -<td><div class="info"> -A version of fold_left that works on clists -</div> -</td></tr> -<tr><td><a href="Cil.html#VALforgcc">forgcc</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Return the string 's' if we're printing output for gcc, suppres - it if we're printing for CIL to parse back in. -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALfprint">fprint</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Format the document to the given width and emit it to the given channel -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALfprintf">fprintf</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Like <a href="Pretty.html#VALdprintf"><code class="code">Pretty.dprintf</code></a> followed by <a href="Pretty.html#VALfprint"><code class="code">Pretty.fprint</code></a> -</div> -</td></tr> -<tr><td><a href="Clist.html#VALfromList">fromList</a> [<a href="Clist.html">Clist</a>]</td> -<td><div class="info"> -Convert an ordinary list to a clist -</div> -</td></tr> -<tr><td align="left"><br>G</td></tr> -<tr><td><a href="Cil.html#VALgccBuiltins">gccBuiltins</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -A list of the GCC built-in functions. -</div> -</td></tr> -<tr><td><a href="Alpha.html#VALgetAlphaPrefix">getAlphaPrefix</a> [<a href="Alpha.html">Alpha</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALgetCompField">getCompField</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Return a named fieldinfo in compinfo, or raise Not_found -</div> -</td></tr> -<tr><td><a href="Cil.html#VALgetGlobInit">getGlobInit</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Get the global initializer and create one if it does not already exist. -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALgetHPosition">getHPosition</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td><div class="info"> -high-level position -</div> -</td></tr> -<tr><td><a href="Dominators.html#VALgetIdom">getIdom</a> [<a href="Dominators.html">Dominators</a>]</td> -<td><div class="info"> -This is like Inthash.find but gives an error if the information is - Not_found -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALgetLocation">getLocation</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALgetParenthLevel">getParenthLevel</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Parentheses level. -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALgetPosition">getPosition</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALget_globalLoc">get_globalLoc</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Return the location of a global, or locUnknown -</div> -</td></tr> -<tr><td><a href="Cil.html#VALget_instrLoc">get_instrLoc</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Return the location of an instruction -</div> -</td></tr> -<tr><td><a href="Cil.html#VALget_stmtLoc">get_stmtLoc</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Return the location of a statement, or locUnknown -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALgprintf">gprintf</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Like <a href="Pretty.html#VALdprintf"><code class="code">Pretty.dprintf</code></a> but more general. -</div> -</td></tr> -<tr><td align="left"><br>H</td></tr> -<tr><td><a href="Errormsg.html#VALhadErrors">hadErrors</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td><div class="info"> -This is set whenever one of the above error functions are called. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALhasAttribute">hasAttribute</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -True if the named attribute appears in the attribute list. -</div> -</td></tr> -<tr><td><a href="Stats.html#VALhas_performance_counters">has_performance_counters</a> [<a href="Stats.html">Stats</a>]</td> -<td><div class="info"> -Check if we have performance counters -</div> -</td></tr> -<tr><td align="left"><br>I</td></tr> -<tr><td><a href="Cil.html#VALincrem">increm</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Increment an expression. -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALindent">indent</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Indents the document. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALindexLevel">indexLevel</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALinitCIL">initCIL</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Call this function to perform some initialization. -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALinsert">insert</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -A function that is useful with the <code class="code">printf</code>-like interface -</div> -</td></tr> -<tr><td><a href="Cil.html#VALinsertImplicitCasts">insertImplicitCasts</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Do insert implicit casts (default true) -</div> -</td></tr> -<tr><td><a href="Cil.html#VALintPtrType">intPtrType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -int * -</div> -</td></tr> -<tr><td><a href="Cil.html#VALintType">intType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -int -</div> -</td></tr> -<tr><td><a href="Cil.html#VALinteger">integer</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Construct an integer of kind IInt. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALinvalidStmt">invalidStmt</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -An empty statement. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALisArithmeticType">isArithmeticType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -True if the argument is an arithmetic type (i.e. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALisArrayType">isArrayType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -True if the argument is an array type -</div> -</td></tr> -<tr><td><a href="Cil.html#VALisCompleteType">isCompleteType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Returns true if this is a complete type. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALisConstant">isConstant</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -True if the expression is a compile-time constant -</div> -</td></tr> -<tr><td><a href="Cil.html#VALisFunctionType">isFunctionType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -True if the argument is a function type -</div> -</td></tr> -<tr><td><a href="Cil.html#VALisInteger">isInteger</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -True if the given expression is a (possibly cast'ed) - character or an integer constant -</div> -</td></tr> -<tr><td><a href="Cil.html#VALisIntegralType">isIntegralType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -True if the argument is an integral type (i.e. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALisPointerType">isPointerType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -True if the argument is a pointer type -</div> -</td></tr> -<tr><td><a href="Cil.html#VALisSigned">isSigned</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Returns true if and only if the given integer type is signed. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALisVoidPtrType">isVoidPtrType</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALisVoidType">isVoidType</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALisZero">isZero</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -True if the given expression is a (possibly cast'ed) integer or character - constant with value zero -</div> -</td></tr> -<tr><td><a href="Clist.html#VALiter">iter</a> [<a href="Clist.html">Clist</a>]</td> -<td><div class="info"> -A version of iter that works on clists -</div> -</td></tr> -<tr><td><a href="Cil.html#VALiterGlobals">iterGlobals</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Iterate over all globals, including the global initializer -</div> -</td></tr> -<tr><td align="left"><br>K</td></tr> -<tr><td><a href="Cil.html#VALkinteger">kinteger</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Construct an integer of a given kind. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALkinteger64">kinteger64</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Construct an integer of a given kind, using OCaml's int64 type. -</div> -</td></tr> -<tr><td align="left"><br>L</td></tr> -<tr><td><a href="Stats.html#VALlastTime">lastTime</a> [<a href="Stats.html">Stats</a>]</td> -<td><div class="info"> -Time a function and set lastTime to the time it took -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALleftflush">leftflush</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Use after a <a href="Pretty.html#VALline"><code class="code">Pretty.line</code></a> to prevent the indentation. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALlenOfArray">lenOfArray</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Call to compute the array length as present in the array type, to an - integer. -</div> -</td></tr> -<tr><td><a href="Clist.html#VALlength">length</a> [<a href="Clist.html">Clist</a>]</td> -<td><div class="info"> -Find the length of a clist -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALline">line</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -A document that consists of a mandatory newline. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALlineDirectiveStyle">lineDirectiveStyle</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -How to print line directives -</div> -</td></tr> -<tr><td><a href="Cil.html#VALlineLength">lineLength</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -The length used when wrapping output lines. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALlittle_endian">little_endian</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Whether the machine is little endian. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALloadBinaryFile">loadBinaryFile</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Read a <a href="Cil.html#TYPEfile"><code class="code">Cil.file</code></a> in binary form from the filesystem. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALlocUnknown">locUnknown</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Represents a location that cannot be determined -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALlocUnknown">locUnknown</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td><div class="info"> -An unknown location for use when you need one but you don't have one -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALlog">log</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td><div class="info"> -Print something to <code class="code">logChannel</code> -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALlogChannel">logChannel</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td><div class="info"> -A channel for printing log messages -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALlogg">logg</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td><div class="info"> -same as <a href="Errormsg.html#VALlog"><code class="code">Errormsg.log</code></a> but do not wrap lines -</div> -</td></tr> -<tr><td><a href="Cil.html#VALlongType">longType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -long -</div> -</td></tr> -<tr><td><a href="Cil.html#VALlowerConstants">lowerConstants</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Do lower constants (default true) -</div> -</td></tr> -<tr><td><a href="Cillower.html#VALlowerEnumVisitor">lowerEnumVisitor</a> [<a href="Cillower.html">Cillower</a>]</td> -<td><div class="info"> -Replace enumeration constants with integer constants -</div> -</td></tr> -<tr><td align="left"><br>M</td></tr> -<tr><td><a href="Cil.html#VALmakeFormalVar">makeFormalVar</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Make a formal variable for a function. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmakeGlobalVar">makeGlobalVar</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Make a global variable. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmakeLocalVar">makeLocalVar</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Make a local variable and add it to a function's slocals (only if insert = - true, which is the default). -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmakeTempVar">makeTempVar</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Make a temporary variable and add it to a function's slocals. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmakeVarinfo">makeVarinfo</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Make a varinfo. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmakeZeroInit">makeZeroInit</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Make a initializer for zero-ing a data type -</div> -</td></tr> -<tr><td><a href="Clist.html#VALmap">map</a> [<a href="Clist.html">Clist</a>]</td> -<td><div class="info"> -Map a function over a clist. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmapGlobals">mapGlobals</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Map over all globals, including the global initializer and change things - in place -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmapNoCopy">mapNoCopy</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Like map but try not to make a copy of the list -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmapNoCopyList">mapNoCopyList</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Like map but each call can return a list. -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALmark">mark</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Mark the beginning of a markup section. -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALmarkup">markup</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Prints a document as markup. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmissingFieldName">missingFieldName</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -This is a constant used as the name of an unnamed bitfield. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmkAddrOf">mkAddrOf</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Make an AddrOf. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmkAddrOrStartOf">mkAddrOrStartOf</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Like mkAddrOf except if the type of lval is an array then it uses - StartOf. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmkBlock">mkBlock</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Construct a block with no attributes, given a list of statements -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmkCast">mkCast</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Like <a href="Cil.html#VALmkCastT"><code class="code">Cil.mkCastT</code></a> but uses typeOf to get <code class="code">oldt</code> -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmkCastT">mkCastT</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Construct a cast when having the old type of the expression. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmkCompInfo">mkCompInfo</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Creates a a (potentially recursive) composite type. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmkEmptyStmt">mkEmptyStmt</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Returns an empty statement (of kind <code class="code">Instr</code>) -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmkFor">mkFor</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Make a for loop for(start; guard; next) { ... -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmkForIncr">mkForIncr</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Make a for loop for(i=start; i<past; i += incr) { ... -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmkMem">mkMem</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Make a Mem, while optimizing AddrOf. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmkStmt">mkStmt</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Construct a statement, given its kind. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmkStmtOneInstr">mkStmtOneInstr</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Construct a statement consisting of just one instruction -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmkString">mkString</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Make an expression that is a string constant (of pointer type) -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmkWhile">mkWhile</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Make a while loop. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmone">mone</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> --1 -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmsvcBuiltins">msvcBuiltins</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -A list of the MSVC built-in functions. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALmsvcMode">msvcMode</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Whether the pretty printer should print output for the MS VC compiler. -</div> -</td></tr> -<tr><td align="left"><br>N</td></tr> -<tr><td><a href="Dataflow.BackwardsTransfer.html#VALname">name</a> [<a href="Dataflow.BackwardsTransfer.html">Dataflow.BackwardsTransfer</a>]</td> -<td><div class="info"> -For debugging purposes, the name of the analysis -</div> -</td></tr> -<tr><td><a href="Dataflow.ForwardsTransfer.html#VALname">name</a> [<a href="Dataflow.ForwardsTransfer.html">Dataflow.ForwardsTransfer</a>]</td> -<td><div class="info"> -For debugging purposes, the name of the analysis -</div> -</td></tr> -<tr><td><a href="Alpha.html#VALnewAlphaName">newAlphaName</a> [<a href="Alpha.html">Alpha</a>]</td> -<td><div class="info"> -Create a new name based on a given name. -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALnewHline">newHline</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALnewVID">newVID</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Generate a new variable ID. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALnew_sid">new_sid</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Errormsg.html#VALnewline">newline</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td></td></tr> -<tr><td><a href="Pretty.html#VALnil">nil</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Constructs an empty document -</div> -</td></tr> -<tr><td><a href="Formatcil.html#VALnoMemoize">noMemoize</a> [<a href="Formatcil.html">Formatcil</a>]</td> -<td><div class="info"> -If set then will not memoize the parsed patterns -</div> -</td></tr> -<tr><td><a href="Cfg.html#VALnodeList">nodeList</a> [<a href="Cfg.html">Cfg</a>]</td> -<td><div class="info"> -All of the nodes in a file. -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALnull">null</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td><div class="info"> -Do not actually print (i.e. -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALnum">num</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -A document that prints an integer in decimal form -</div> -</td></tr> -<tr><td><a href="Cfg.html#VALnumNodes">numNodes</a> [<a href="Cfg.html">Cfg</a>]</td> -<td><div class="info"> -number of nodes in the CFG -</div> -</td></tr> -<tr><td align="left"><br>O</td></tr> -<tr><td><a href="Cil.html#VALone">one</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -1 -</div> -</td></tr> -<tr><td align="left"><br>P</td></tr> -<tr><td><a href="Cil.html#VALparseInt">parseInt</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Convert a string representing a C integer literal to an expression. -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALparse_error">parse_error</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALpartitionAttributes">partitionAttributes</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Partition the attributes into classes:name attributes, function type, - and type attributes -</div> -</td></tr> -<tr><td><a href="Cil.html#VALpeepHole1">peepHole1</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Similar to <code class="code">peepHole2</code> except that the optimization window consists of - one statement, not two -</div> -</td></tr> -<tr><td><a href="Cil.html#VALpeepHole2">peepHole2</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -A peephole optimizer that processes two adjacent statements and possibly - replaces them both. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALplainCilPrinter">plainCilPrinter</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Errormsg.html#VALpopContext">popContext</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td><div class="info"> -Removes the last registered context printing function -</div> -</td></tr> -<tr><td><a href="Cil.html#VALprepareCFG">prepareCFG</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Prepare a function for CFG information computation by - <a href="Cil.html#VALcomputeCFGInfo"><code class="code">Cil.computeCFGInfo</code></a>. -</div> -</td></tr> -<tr><td><a href="Dataflow.BackwardsTransfer.html#VALpretty">pretty</a> [<a href="Dataflow.BackwardsTransfer.html">Dataflow.BackwardsTransfer</a>]</td> -<td><div class="info"> -Pretty-print the state -</div> -</td></tr> -<tr><td><a href="Dataflow.ForwardsTransfer.html#VALpretty">pretty</a> [<a href="Dataflow.ForwardsTransfer.html">Dataflow.ForwardsTransfer</a>]</td> -<td><div class="info"> -Pretty-print the state -</div> -</td></tr> -<tr><td><a href="Stats.html#VALprint">print</a> [<a href="Stats.html">Stats</a>]</td> -<td><div class="info"> -Print the current stats preceeded by a message -</div> -</td></tr> -<tr><td><a href="Cil.html#VALprintAttr">printAttr</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Print an attribute given a pretty printer -</div> -</td></tr> -<tr><td><a href="Cil.html#VALprintAttrs">printAttrs</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Print a set of attributes given a pretty printer -</div> -</td></tr> -<tr><td><a href="Cil.html#VALprintBlock">printBlock</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Print a block given a pretty printer. -</div> -</td></tr> -<tr><td><a href="Cfg.html#VALprintCfgChannel">printCfgChannel</a> [<a href="Cfg.html">Cfg</a>]</td> -<td><div class="info"> -print control flow graph (in dot form) for fundec to channel -</div> -</td></tr> -<tr><td><a href="Cfg.html#VALprintCfgFilename">printCfgFilename</a> [<a href="Cfg.html">Cfg</a>]</td> -<td><div class="info"> -Print control flow graph (in dot form) for fundec to file -</div> -</td></tr> -<tr><td><a href="Cil.html#VALprintCilAsIs">printCilAsIs</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Whether to print the CIL as they are, without trying to be smart and - print nicer code. -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALprintDepth">printDepth</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Specifies the nesting depth of the <code class="code">align</code>/<code class="code">unalign</code> pairs at which - everything is replaced with ellipsis -</div> -</td></tr> -<tr><td><a href="Cil.html#VALprintExp">printExp</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Print an expression given a pretty printer -</div> -</td></tr> -<tr><td><a href="Cil.html#VALprintGlobal">printGlobal</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Print a global given a pretty printer -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALprintIndent">printIndent</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -If false then does not indent -</div> -</td></tr> -<tr><td><a href="Cil.html#VALprintInit">printInit</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Print an initializer given a pretty printer. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALprintInstr">printInstr</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Print an instruction given a pretty printer -</div> -</td></tr> -<tr><td><a href="Cil.html#VALprintLval">printLval</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Print an lvalue given a pretty printer -</div> -</td></tr> -<tr><td><a href="Cil.html#VALprintStmt">printStmt</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Print a statement given a pretty printer. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALprintType">printType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Print a type given a pretty printer -</div> -</td></tr> -<tr><td><a href="Cil.html#VALprint_CIL_Input">print_CIL_Input</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Whether we print something that will only be used as input to our own - parser. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALprinterForMaincil">printerForMaincil</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Pretty.html#VALprintf">printf</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Like <a href="Pretty.html#VALfprintf"><code class="code">Pretty.fprintf</code></a> applied to <code class="code">stdout</code> -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALpushContext">pushContext</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td><div class="info"> -Registers a context printing function -</div> -</td></tr> -<tr><td><a href="Cil.html#VALpushGlobal">pushGlobal</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -CIL keeps the types at the beginning of the file and the variables at the - end of the file. -</div> -</td></tr> -<tr><td align="left"><br>R</td></tr> -<tr><td><a href="Errormsg.html#VALreadingFromStdin">readingFromStdin</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td><div class="info"> -Records whether the stdin is open for reading the goal * -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALreal">real</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -A document that prints a real number -</div> -</td></tr> -<tr><td><a href="Alpha.html#VALregisterAlphaName">registerAlphaName</a> [<a href="Alpha.html">Alpha</a>]</td> -<td><div class="info"> -Register a name with an alpha conversion table to ensure that when later - we call newAlphaName we do not end up generating this one -</div> -</td></tr> -<tr><td><a href="Cil.html#VALremoveOffset">removeOffset</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Remove ONE offset from the end of an offset sequence. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALremoveOffsetLval">removeOffsetLval</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Remove ONE offset from the end of an lvalue. -</div> -</td></tr> -<tr><td><a href="Stats.html#VALrepeattime">repeattime</a> [<a href="Stats.html">Stats</a>]</td> -<td><div class="info"> -repeattime is like time but runs the function several times until the total - running time is greater or equal to the first argument. -</div> -</td></tr> -<tr><td><a href="Stats.html#VALreset">reset</a> [<a href="Stats.html">Stats</a>]</td> -<td><div class="info"> -Resets all the timings. -</div> -</td></tr> -<tr><td><a href="Clist.html#VALrev">rev</a> [<a href="Clist.html">Clist</a>]</td> -<td><div class="info"> -Reverse a clist. -</div> -</td></tr> -<tr><td align="left"><br>S</td></tr> -<tr><td><a href="Errormsg.html#VALs">s</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td><div class="info"> -Stop the execution by raising an Error. -</div> -</td></tr> -<tr><td><a href="Stats.html#VALsample_pentium_perfcount_10">sample_pentium_perfcount_10</a> [<a href="Stats.html">Stats</a>]</td> -<td><div class="info"> -Sample the current cycle count, in kilocycles. -</div> -</td></tr> -<tr><td><a href="Stats.html#VALsample_pentium_perfcount_20">sample_pentium_perfcount_20</a> [<a href="Stats.html">Stats</a>]</td> -<td><div class="info"> -Sample the current cycle count, in megacycles. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALsaveBinaryFile">saveBinaryFile</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Write a <a href="Cil.html#TYPEfile"><code class="code">Cil.file</code></a> in binary form to the filesystem. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALsaveBinaryFileChannel">saveBinaryFileChannel</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Write a <a href="Cil.html#TYPEfile"><code class="code">Cil.file</code></a> in binary form to the filesystem. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALseparateStorageModifiers">separateStorageModifiers</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Separate out the storage-modifier name attributes -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALseq">seq</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Formats a sequence. -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALsetCurrentFile">setCurrentFile</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td></td></tr> -<tr><td><a href="Errormsg.html#VALsetCurrentLine">setCurrentLine</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALsetFormals">setFormals</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Update the formals of a <code class="code">fundec</code> and make sure that the function type - has the same information. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALsetFunctionType">setFunctionType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Set the types of arguments and results as given by the function type - passed as the second argument. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALsetFunctionTypeMakeFormals">setFunctionTypeMakeFormals</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Set the type of the function and make formal arguments for them -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALsetHFile">setHFile</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td></td></tr> -<tr><td><a href="Errormsg.html#VALsetHLine">setHLine</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALsetMaxId">setMaxId</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Update the smaxid after you have populated with locals and formals - (unless you constructed those using <a href="Cil.html#VALmakeLocalVar"><code class="code">Cil.makeLocalVar</code></a> or - <a href="Cil.html#VALmakeTempVar"><code class="code">Cil.makeTempVar</code></a>. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALsetTypeAttrs">setTypeAttrs</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALsetTypeSigAttrs">setTypeSigAttrs</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Replace the attributes of a signature (only at top level) -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALshowContext">showContext</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td><div class="info"> -Show the context stack to stderr -</div> -</td></tr> -<tr><td><a href="Clist.html#VALsingle">single</a> [<a href="Clist.html">Clist</a>]</td> -<td><div class="info"> -Create a clist containing one element -</div> -</td></tr> -<tr><td><a href="Cil.html#VALsizeOf">sizeOf</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALsplitFunctionType">splitFunctionType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Given a function type split it into return type, - arguments, is_vararg and attributes. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALsplitFunctionTypeVI">splitFunctionTypeVI</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Pretty.html#VALsprint">sprint</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Format the document to the given width and emit it as a string -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALstartParsing">startParsing</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td></td></tr> -<tr><td><a href="Errormsg.html#VALstartParsingFromString">startParsingFromString</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td></td></tr> -<tr><td><a href="Cfg.html#VALstart_id">start_id</a> [<a href="Cfg.html">Cfg</a>]</td> -<td><div class="info"> -Next statement id that will be assigned. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALstartsWith">startsWith</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -sm: return true if the first is a prefix of the second string -</div> -</td></tr> -<tr><td><a href="Dataflow.BackwardsTransfer.html#VALstmtStartData">stmtStartData</a> [<a href="Dataflow.BackwardsTransfer.html">Dataflow.BackwardsTransfer</a>]</td> -<td><div class="info"> -For each block id, the data at the start. -</div> -</td></tr> -<tr><td><a href="Dataflow.ForwardsTransfer.html#VALstmtStartData">stmtStartData</a> [<a href="Dataflow.ForwardsTransfer.html">Dataflow.ForwardsTransfer</a>]</td> -<td><div class="info"> -For each statement id, the data at the start. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALstripCasts">stripCasts</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Removes casts from this expression, but ignores casts within - other expression constructs. -</div> -</td></tr> -<tr><td align="left"><br>T</td></tr> -<tr><td><a href="Formatcil.html#VALtest">test</a> [<a href="Formatcil.html">Formatcil</a>]</td> -<td><div class="info"> -Just a testing function -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALtext">text</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -A document that prints the given string -</div> -</td></tr> -<tr><td><a href="Stats.html#VALtime">time</a> [<a href="Stats.html">Stats</a>]</td> -<td><div class="info"> -Time a function and associate the time with the given string. -</div> -</td></tr> -<tr><td><a href="Stats.html#VALtimethis">timethis</a> [<a href="Stats.html">Stats</a>]</td> -<td></td></tr> -<tr><td><a href="Clist.html#VALtoList">toList</a> [<a href="Clist.html">Clist</a>]</td> -<td><div class="info"> -Convert a clist to an ordinary list -</div> -</td></tr> -<tr><td><a href="Cil.html#VALtypeAddAttributes">typeAddAttributes</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Add some attributes to a type -</div> -</td></tr> -<tr><td><a href="Cil.html#VALtypeAttrs">typeAttrs</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Returns all the attributes contained in a type. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALtypeOf">typeOf</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Compute the type of an expression -</div> -</td></tr> -<tr><td><a href="Cil.html#VALtypeOfLval">typeOfLval</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Compute the type of an lvalue -</div> -</td></tr> -<tr><td><a href="Cil.html#VALtypeOfSizeOf">typeOfSizeOf</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALtypeOffset">typeOffset</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Compute the type of an offset from a base type -</div> -</td></tr> -<tr><td><a href="Cil.html#VALtypeRemoveAttributes">typeRemoveAttributes</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Remove all attributes with the given names from a type. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALtypeSig">typeSig</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Compute a type signature -</div> -</td></tr> -<tr><td><a href="Cil.html#VALtypeSigAttrs">typeSigAttrs</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Get the top-level attributes of a signature -</div> -</td></tr> -<tr><td><a href="Cil.html#VALtypeSigWithAttrs">typeSigWithAttrs</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Like <a href="Cil.html#VALtypeSig"><code class="code">Cil.typeSig</code></a> but customize the incorporation of attributes. -</div> -</td></tr> -<tr><td align="left"><br>U</td></tr> -<tr><td><a href="Cil.html#VALuintPtrType">uintPtrType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -unsigned int * -</div> -</td></tr> -<tr><td><a href="Cil.html#VALuintType">uintType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -unsigned int -</div> -</td></tr> -<tr><td><a href="Cil.html#VALulongType">ulongType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -unsigned long -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALunalign">unalign</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Reverts to the last saved indentation level. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALunderscore_name">underscore_name</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Whether the compiler generates assembly labels by prepending "_" to the - identifier. -</div> -</td></tr> -<tr><td><a href="Alpha.html#VALundoAlphaChanges">undoAlphaChanges</a> [<a href="Alpha.html">Alpha</a>]</td> -<td><div class="info"> -Undo the changes to a table -</div> -</td></tr> -<tr><td><a href="Cil.html#VALunimp">unimp</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Like <a href="Errormsg.html#VALunimp"><code class="code">Errormsg.unimp</code></a> except that <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a>is also printed -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALunimp">unimp</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td><div class="info"> -Similar to <code class="code">error</code> except that its output has the form <code class="code">Unimplemented: ...</code> -</div> -</td></tr> -<tr><td><a href="Cil.html#VALuniqueVarNames">uniqueVarNames</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Assign unique names to local variables. -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALunmark">unmark</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -The end of a markup section -</div> -</td></tr> -<tr><td><a href="Cil.html#VALunrollType">unrollType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Unroll a type until it exposes a non - <code class="code">TNamed</code>. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALunrollTypeDeep">unrollTypeDeep</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Unroll all the TNamed in a type (even under type constructors such as - <code class="code">TPtr</code>, <code class="code">TFun</code> or <code class="code">TArray</code>. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALupointType">upointType</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALuseLogicalOperators">useLogicalOperators</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Whether to use the logical operands LAnd and LOr. -</div> -</td></tr> -<tr><td align="left"><br>V</td></tr> -<tr><td><a href="Cil.html#VALvar">var</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Makes an lvalue out of a given variable -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALverboseFlag">verboseFlag</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALvisitCilAttributes">visitCilAttributes</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Visit a list of attributes -</div> -</td></tr> -<tr><td><a href="Cil.html#VALvisitCilBlock">visitCilBlock</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Visit a block -</div> -</td></tr> -<tr><td><a href="Cil.html#VALvisitCilExpr">visitCilExpr</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Cil.html#VALvisitCilFile">visitCilFile</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Visit a file. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALvisitCilFileSameGlobals">visitCilFileSameGlobals</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -A visitor for the whole file that does not change the globals (but maybe - changes things inside the globals). -</div> -</td></tr> -<tr><td><a href="Cil.html#VALvisitCilFunction">visitCilFunction</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Visit a function definition -</div> -</td></tr> -<tr><td><a href="Cil.html#VALvisitCilGlobal">visitCilGlobal</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Visit a global -</div> -</td></tr> -<tr><td><a href="Cil.html#VALvisitCilInit">visitCilInit</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Visit an initializer -</div> -</td></tr> -<tr><td><a href="Cil.html#VALvisitCilInitOffset">visitCilInitOffset</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Visit an initializer offset -</div> -</td></tr> -<tr><td><a href="Cil.html#VALvisitCilInstr">visitCilInstr</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Visit an instruction -</div> -</td></tr> -<tr><td><a href="Cil.html#VALvisitCilLval">visitCilLval</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Visit an lvalue -</div> -</td></tr> -<tr><td><a href="Cil.html#VALvisitCilOffset">visitCilOffset</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Visit an lvalue or recursive offset -</div> -</td></tr> -<tr><td><a href="Cil.html#VALvisitCilStmt">visitCilStmt</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Visit a statement -</div> -</td></tr> -<tr><td><a href="Cil.html#VALvisitCilType">visitCilType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Visit a type -</div> -</td></tr> -<tr><td><a href="Cil.html#VALvisitCilVarDecl">visitCilVarDecl</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Visit a variable declaration -</div> -</td></tr> -<tr><td><a href="Cil.html#VALvoidPtrType">voidPtrType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -void * -</div> -</td></tr> -<tr><td><a href="Cil.html#VALvoidType">voidType</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -void -</div> -</td></tr> -<tr><td align="left"><br>W</td></tr> -<tr><td><a href="Cil.html#VALwarn">warn</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Like <a href="Errormsg.html#VALwarn"><code class="code">Errormsg.warn</code></a> except that <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a> is also printed -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALwarn">warn</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td><div class="info"> -Like <a href="Errormsg.html#VALerror"><code class="code">Errormsg.error</code></a> but does not raise the <a href="Errormsg.html#EXCEPTIONError"><code class="code">Errormsg.Error</code></a> - exception. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALwarnContext">warnContext</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Like <a href="Errormsg.html#VALwarn"><code class="code">Errormsg.warn</code></a> except that <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a> and context - is also printed -</div> -</td></tr> -<tr><td><a href="Cil.html#VALwarnContextOpt">warnContextOpt</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Like <a href="Errormsg.html#VALwarn"><code class="code">Errormsg.warn</code></a> except that <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a> and context is also - printed. -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALwarnFlag">warnFlag</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td><div class="info"> -Set to true if you want to see all warnings. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALwarnLoc">warnLoc</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Like <a href="Cil.html#VALwarn"><code class="code">Cil.warn</code></a> except that it explicitly takes a location argument, - instead of using the <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a> -</div> -</td></tr> -<tr><td><a href="Cil.html#VALwarnOpt">warnOpt</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -Like <a href="Errormsg.html#VALwarnOpt"><code class="code">Errormsg.warnOpt</code></a> except that <a href="Cil.html#VALcurrentLoc"><code class="code">Cil.currentLoc</code></a> is also printed. -</div> -</td></tr> -<tr><td><a href="Errormsg.html#VALwarnOpt">warnOpt</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td><div class="info"> -Like <a href="Errormsg.html#VALwarn"><code class="code">Errormsg.warn</code></a> but optional. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALwcharKind">wcharKind</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -wchar_t (depends on architecture) and is set when you call - <a href="Cil.html#VALinitCIL"><code class="code">Cil.initCIL</code></a>. -</div> -</td></tr> -<tr><td><a href="Cil.html#VALwcharType">wcharType</a> [<a href="Cil.html">Cil</a>]</td> -<td></td></tr> -<tr><td><a href="Errormsg.html#VALwithContext">withContext</a> [<a href="Errormsg.html">Errormsg</a>]</td> -<td><div class="info"> -To ensure that the context is registered and removed properly, use the - function below -</div> -</td></tr> -<tr><td><a href="Pretty.html#VALwithPrintDepth">withPrintDepth</a> [<a href="Pretty.html">Pretty</a>]</td> -<td><div class="info"> -Invokes a thunk, with printDepth temporarily set to the specified value -</div> -</td></tr> -<tr><td align="left"><br>Z</td></tr> -<tr><td><a href="Cil.html#VALzero">zero</a> [<a href="Cil.html">Cil</a>]</td> -<td><div class="info"> -0 -</div> -</td></tr> -</table><br> -</body> -</html>
\ No newline at end of file diff --git a/cil/doc/api/style.css b/cil/doc/api/style.css deleted file mode 100644 index 11ed40ce..00000000 --- a/cil/doc/api/style.css +++ /dev/null @@ -1,32 +0,0 @@ -a:visited {color : #416DFF; text-decoration : none; } -a:link {color : #416DFF; text-decoration : none;} -a:hover {color : Red; text-decoration : none; background-color: #5FFF88} -a:active {color : Red; text-decoration : underline; } -.keyword { font-weight : bold ; color : Red } -.keywordsign { color : #C04600 } -.superscript { font-size : 4 } -.subscript { font-size : 4 } -.comment { color : Green } -.constructor { color : Blue } -.type { color : #5C6585 } -.string { color : Maroon } -.warning { color : Red ; font-weight : bold } -.info { margin-left : 3em; margin-right : 3em } -.code { color : #465F91 ; } -h1 { font-size : 20pt ; text-align: center; } -h2 { font-size : 20pt ; border: 1px solid #000000; margin-top: 5px; margin-bottom: 2px;text-align: center; background-color: #90BDFF ;padding: 2px; } -h3 { font-size : 20pt ; border: 1px solid #000000; margin-top: 5px; margin-bottom: 2px;text-align: center; background-color: #90DDFF ;padding: 2px; } -h4 { font-size : 20pt ; border: 1px solid #000000; margin-top: 5px; margin-bottom: 2px;text-align: center; background-color: #90EDFF ;padding: 2px; } -h5 { font-size : 20pt ; border: 1px solid #000000; margin-top: 5px; margin-bottom: 2px;text-align: center; background-color: #90FDFF ;padding: 2px; } -h6 { font-size : 20pt ; border: 1px solid #000000; margin-top: 5px; margin-bottom: 2px;text-align: center; background-color: #C0FFFF ; padding: 2px; } -div.h7 { font-size : 20pt ; border: 1px solid #000000; margin-top: 5px; margin-bottom: 2px;text-align: center; background-color: #E0FFFF ; padding: 2px; } -div.h8 { font-size : 20pt ; border: 1px solid #000000; margin-top: 5px; margin-bottom: 2px;text-align: center; background-color: #F0FFFF ; padding: 2px; } -div.h9 { font-size : 20pt ; border: 1px solid #000000; margin-top: 5px; margin-bottom: 2px;text-align: center; background-color: #FFFFFF ; padding: 2px; } -.typetable { border-style : hidden } -.indextable { border-style : hidden } -.paramstable { border-style : hidden ; padding: 5pt 5pt} -body { background-color : White } -tr { background-color : White } -td.typefieldcomment { background-color : #FFFFFF } -pre { margin-bottom: 4px } -div.sig_block {margin-left: 2em}
\ No newline at end of file diff --git a/cil/doc/api/type_Alpha.html b/cil/doc/api/type_Alpha.html deleted file mode 100644 index b97c835f..00000000 --- a/cil/doc/api/type_Alpha.html +++ /dev/null @@ -1,43 +0,0 @@ -<html><head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Alpha</title> -</head> -<body> -<code class="code"><span class="keyword">sig</span><br> - <span class="keyword">type</span> <span class="keywordsign">'</span>a undoAlphaElement<br> - <span class="keyword">type</span> <span class="keywordsign">'</span>a alphaTableData<br> - <span class="keyword">val</span> newAlphaName :<br> - alphaTable:(string, <span class="keywordsign">'</span>a <span class="constructor">Alpha</span>.alphaTableData <span class="constructor">Pervasives</span>.ref) <span class="constructor">Hashtbl</span>.t <span class="keywordsign">-></span><br> - undolist:<span class="keywordsign">'</span>a <span class="constructor">Alpha</span>.undoAlphaElement list <span class="constructor">Pervasives</span>.ref option <span class="keywordsign">-></span><br> - lookupname:string <span class="keywordsign">-></span> data:<span class="keywordsign">'</span>a <span class="keywordsign">-></span> string * <span class="keywordsign">'</span>a<br> - <span class="keyword">val</span> registerAlphaName :<br> - alphaTable:(string, <span class="keywordsign">'</span>a <span class="constructor">Alpha</span>.alphaTableData <span class="constructor">Pervasives</span>.ref) <span class="constructor">Hashtbl</span>.t <span class="keywordsign">-></span><br> - undolist:<span class="keywordsign">'</span>a <span class="constructor">Alpha</span>.undoAlphaElement list <span class="constructor">Pervasives</span>.ref option <span class="keywordsign">-></span><br> - lookupname:string <span class="keywordsign">-></span> data:<span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit<br> - <span class="keyword">val</span> docAlphaTable :<br> - unit <span class="keywordsign">-></span><br> - (string, <span class="keywordsign">'</span>a <span class="constructor">Alpha</span>.alphaTableData <span class="constructor">Pervasives</span>.ref) <span class="constructor">Hashtbl</span>.t <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> getAlphaPrefix : lookupname:string <span class="keywordsign">-></span> string<br> - <span class="keyword">val</span> undoAlphaChanges :<br> - alphaTable:(string, <span class="keywordsign">'</span>a <span class="constructor">Alpha</span>.alphaTableData <span class="constructor">Pervasives</span>.ref) <span class="constructor">Hashtbl</span>.t <span class="keywordsign">-></span><br> - undolist:<span class="keywordsign">'</span>a <span class="constructor">Alpha</span>.undoAlphaElement list <span class="keywordsign">-></span> unit<br> -<span class="keyword">end</span></code></body></html>
\ No newline at end of file diff --git a/cil/doc/api/type_Cfg.html b/cil/doc/api/type_Cfg.html deleted file mode 100644 index 996d7739..00000000 --- a/cil/doc/api/type_Cfg.html +++ /dev/null @@ -1,35 +0,0 @@ -<html><head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Cfg</title> -</head> -<body> -<code class="code"><span class="keyword">sig</span><br> - <span class="keyword">val</span> computeFileCFG : <span class="constructor">Cil</span>.file <span class="keywordsign">-></span> unit<br> - <span class="keyword">val</span> clearFileCFG : <span class="constructor">Cil</span>.file <span class="keywordsign">-></span> unit<br> - <span class="keyword">val</span> cfgFun : <span class="constructor">Cil</span>.fundec <span class="keywordsign">-></span> int<br> - <span class="keyword">val</span> clearCFGinfo : <span class="constructor">Cil</span>.fundec <span class="keywordsign">-></span> unit<br> - <span class="keyword">val</span> printCfgChannel : <span class="constructor">Pervasives</span>.out_channel <span class="keywordsign">-></span> <span class="constructor">Cil</span>.fundec <span class="keywordsign">-></span> unit<br> - <span class="keyword">val</span> printCfgFilename : string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.fundec <span class="keywordsign">-></span> unit<br> - <span class="keyword">val</span> start_id : int <span class="constructor">Pervasives</span>.ref<br> - <span class="keyword">val</span> nodeList : <span class="constructor">Cil</span>.stmt list <span class="constructor">Pervasives</span>.ref<br> - <span class="keyword">val</span> numNodes : int <span class="constructor">Pervasives</span>.ref<br> -<span class="keyword">end</span></code></body></html>
\ No newline at end of file diff --git a/cil/doc/api/type_Cil.cilPrinter.html b/cil/doc/api/type_Cil.cilPrinter.html deleted file mode 100644 index ff117f5d..00000000 --- a/cil/doc/api/type_Cil.cilPrinter.html +++ /dev/null @@ -1,48 +0,0 @@ -<html><head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Cil.cilPrinter</title> -</head> -<body> -<code class="code"><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> 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">end</span></code></body></html>
\ No newline at end of file diff --git a/cil/doc/api/type_Cil.cilVisitor.html b/cil/doc/api/type_Cil.cilVisitor.html deleted file mode 100644 index efe3d138..00000000 --- a/cil/doc/api/type_Cil.cilVisitor.html +++ /dev/null @@ -1,43 +0,0 @@ -<html><head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Cil.cilVisitor</title> -</head> -<body> -<code class="code"><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 : <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></code></body></html>
\ No newline at end of file diff --git a/cil/doc/api/type_Cil.defaultCilPrinterClass.html b/cil/doc/api/type_Cil.defaultCilPrinterClass.html deleted file mode 100644 index 75a36eb7..00000000 --- a/cil/doc/api/type_Cil.defaultCilPrinterClass.html +++ /dev/null @@ -1,25 +0,0 @@ -<html><head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Cil.defaultCilPrinterClass</title> -</head> -<body> -<code class="code"><span class="constructor">Cil</span>.cilPrinter</code></body></html>
\ No newline at end of file diff --git a/cil/doc/api/type_Cil.html b/cil/doc/api/type_Cil.html deleted file mode 100644 index da6f9e96..00000000 --- a/cil/doc/api/type_Cil.html +++ /dev/null @@ -1,622 +0,0 @@ -<html><head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : 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">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="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> - }<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> - }<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 * (string * <span class="constructor">Cil</span>.lval) list *<br> - (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 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> 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> 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> 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> - 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> foldLeftCompoundAll :<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> 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 : <span class="constructor">Cil</span>.fundec <span class="keywordsign">-></span> ?name: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> 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> isConstant : <span class="constructor">Cil</span>.exp <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> 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">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 : <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 : <span class="constructor">Cil</span>.cilVisitor <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> 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">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> 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">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">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> 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> bitsSizeOf : <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> int<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">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> lowerConstants : bool <span class="constructor">Pervasives</span>.ref<br> -<span class="keyword">end</span></code></body></html>
\ No newline at end of file diff --git a/cil/doc/api/type_Cil.nopCilVisitor.html b/cil/doc/api/type_Cil.nopCilVisitor.html deleted file mode 100644 index 0ac6c96b..00000000 --- a/cil/doc/api/type_Cil.nopCilVisitor.html +++ /dev/null @@ -1,25 +0,0 @@ -<html><head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Cil.nopCilVisitor</title> -</head> -<body> -<code class="code"><span class="constructor">Cil</span>.cilVisitor</code></body></html>
\ No newline at end of file diff --git a/cil/doc/api/type_Cil.plainCilPrinterClass.html b/cil/doc/api/type_Cil.plainCilPrinterClass.html deleted file mode 100644 index ecd63171..00000000 --- a/cil/doc/api/type_Cil.plainCilPrinterClass.html +++ /dev/null @@ -1,25 +0,0 @@ -<html><head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Cil.plainCilPrinterClass</title> -</head> -<body> -<code class="code"><span class="constructor">Cil</span>.cilPrinter</code></body></html>
\ No newline at end of file diff --git a/cil/doc/api/type_Cillower.html b/cil/doc/api/type_Cillower.html deleted file mode 100644 index a8924ed6..00000000 --- a/cil/doc/api/type_Cillower.html +++ /dev/null @@ -1,25 +0,0 @@ -<html><head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Cillower</title> -</head> -<body> -<code class="code"><span class="keyword">sig</span> <span class="keyword">val</span> lowerEnumVisitor : <span class="constructor">Cil</span>.cilVisitor <span class="keyword">end</span></code></body></html>
\ No newline at end of file diff --git a/cil/doc/api/type_Clist.html b/cil/doc/api/type_Clist.html deleted file mode 100644 index c7dbd02f..00000000 --- a/cil/doc/api/type_Clist.html +++ /dev/null @@ -1,44 +0,0 @@ -<html><head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Clist</title> -</head> -<body> -<code class="code"><span class="keyword">sig</span><br> - <span class="keyword">type</span> <span class="keywordsign">'</span>a clist =<br> - <span class="constructor">CList</span> <span class="keyword">of</span> <span class="keywordsign">'</span>a list<br> - <span class="keywordsign">|</span> <span class="constructor">CConsL</span> <span class="keyword">of</span> <span class="keywordsign">'</span>a * <span class="keywordsign">'</span>a <span class="constructor">Clist</span>.clist<br> - <span class="keywordsign">|</span> <span class="constructor">CConsR</span> <span class="keyword">of</span> <span class="keywordsign">'</span>a <span class="constructor">Clist</span>.clist * <span class="keywordsign">'</span>a<br> - <span class="keywordsign">|</span> <span class="constructor">CSeq</span> <span class="keyword">of</span> <span class="keywordsign">'</span>a <span class="constructor">Clist</span>.clist * <span class="keywordsign">'</span>a <span class="constructor">Clist</span>.clist<br> - <span class="keyword">val</span> toList : <span class="keywordsign">'</span>a <span class="constructor">Clist</span>.clist <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list<br> - <span class="keyword">val</span> fromList : <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Clist</span>.clist<br> - <span class="keyword">val</span> single : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Clist</span>.clist<br> - <span class="keyword">val</span> empty : <span class="keywordsign">'</span>a <span class="constructor">Clist</span>.clist<br> - <span class="keyword">val</span> append : <span class="keywordsign">'</span>a <span class="constructor">Clist</span>.clist <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Clist</span>.clist <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Clist</span>.clist<br> - <span class="keyword">val</span> checkBeforeAppend : <span class="keywordsign">'</span>a <span class="constructor">Clist</span>.clist <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Clist</span>.clist <span class="keywordsign">-></span> bool<br> - <span class="keyword">val</span> length : <span class="keywordsign">'</span>a <span class="constructor">Clist</span>.clist <span class="keywordsign">-></span> int<br> - <span class="keyword">val</span> map : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Clist</span>.clist <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="constructor">Clist</span>.clist<br> - <span class="keyword">val</span> fold_left : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <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>b <span class="constructor">Clist</span>.clist <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> - <span class="keyword">val</span> iter : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Clist</span>.clist <span class="keywordsign">-></span> unit<br> - <span class="keyword">val</span> rev : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Clist</span>.clist <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Clist</span>.clist<br> - <span class="keyword">val</span> docCList :<br> - <span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc) <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Clist</span>.clist <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> -<span class="keyword">end</span></code></body></html>
\ No newline at end of file diff --git a/cil/doc/api/type_Dataflow.BackwardsDataFlow.html b/cil/doc/api/type_Dataflow.BackwardsDataFlow.html deleted file mode 100644 index 78ffeba3..00000000 --- a/cil/doc/api/type_Dataflow.BackwardsDataFlow.html +++ /dev/null @@ -1,26 +0,0 @@ -<html><head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Dataflow.BackwardsDataFlow</title> -</head> -<body> -<code class="code"><span class="keyword">functor</span> (<span class="constructor">T</span> : <span class="constructor">BackwardsTransfer</span>) <span class="keywordsign">-></span><br> - <span class="keyword">sig</span> <span class="keyword">val</span> compute : <span class="constructor">Cil</span>.stmt list <span class="keywordsign">-></span> unit <span class="keyword">end</span></code></body></html>
\ No newline at end of file diff --git a/cil/doc/api/type_Dataflow.BackwardsTransfer.html b/cil/doc/api/type_Dataflow.BackwardsTransfer.html deleted file mode 100644 index 763df748..00000000 --- a/cil/doc/api/type_Dataflow.BackwardsTransfer.html +++ /dev/null @@ -1,44 +0,0 @@ -<html><head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Dataflow.BackwardsTransfer</title> -</head> -<body> -<code class="code"><span class="keyword">sig</span><br> - <span class="keyword">val</span> name : string<br> - <span class="keyword">val</span> debug : bool <span class="constructor">Pervasives</span>.ref<br> - <span class="keyword">type</span> t<br> - <span class="keyword">val</span> pretty : unit <span class="keywordsign">-></span> <span class="constructor">Dataflow</span>.<span class="constructor">BackwardsTransfer</span>.t <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> stmtStartData : <span class="constructor">Dataflow</span>.<span class="constructor">BackwardsTransfer</span>.t <span class="constructor">Inthash</span>.t<br> - <span class="keyword">val</span> combineStmtStartData :<br> - <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span><br> - old:<span class="constructor">Dataflow</span>.<span class="constructor">BackwardsTransfer</span>.t <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">BackwardsTransfer</span>.t <span class="keywordsign">-></span> <span class="constructor">Dataflow</span>.<span class="constructor">BackwardsTransfer</span>.t option<br> - <span class="keyword">val</span> combineSuccessors :<br> - <span class="constructor">Dataflow</span>.<span class="constructor">BackwardsTransfer</span>.t <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">BackwardsTransfer</span>.t <span class="keywordsign">-></span> <span class="constructor">Dataflow</span>.<span class="constructor">BackwardsTransfer</span>.t<br> - <span class="keyword">val</span> doStmt : <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span> <span class="constructor">Dataflow</span>.<span class="constructor">BackwardsTransfer</span>.t <span class="constructor">Dataflow</span>.action<br> - <span class="keyword">val</span> doInstr :<br> - <span class="constructor">Cil</span>.instr <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">BackwardsTransfer</span>.t <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">BackwardsTransfer</span>.t <span class="constructor">Dataflow</span>.action<br> - <span class="keyword">val</span> filterStmt : <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span> bool<br> -<span class="keyword">end</span></code></body></html>
\ No newline at end of file diff --git a/cil/doc/api/type_Dataflow.ForwardsDataFlow.html b/cil/doc/api/type_Dataflow.ForwardsDataFlow.html deleted file mode 100644 index a042cfce..00000000 --- a/cil/doc/api/type_Dataflow.ForwardsDataFlow.html +++ /dev/null @@ -1,25 +0,0 @@ -<html><head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Dataflow.ForwardsDataFlow</title> -</head> -<body> -<code class="code"><span class="keyword">functor</span> (<span class="constructor">T</span> : <span class="constructor">ForwardsTransfer</span>) <span class="keywordsign">-></span> <span class="keyword">sig</span> <span class="keyword">val</span> compute : <span class="constructor">Cil</span>.stmt list <span class="keywordsign">-></span> unit <span class="keyword">end</span></code></body></html>
\ No newline at end of file diff --git a/cil/doc/api/type_Dataflow.ForwardsTransfer.html b/cil/doc/api/type_Dataflow.ForwardsTransfer.html deleted file mode 100644 index 1e4d48b7..00000000 --- a/cil/doc/api/type_Dataflow.ForwardsTransfer.html +++ /dev/null @@ -1,51 +0,0 @@ -<html><head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Dataflow.ForwardsTransfer</title> -</head> -<body> -<code class="code"><span class="keyword">sig</span><br> - <span class="keyword">val</span> name : string<br> - <span class="keyword">val</span> debug : bool <span class="constructor">Pervasives</span>.ref<br> - <span class="keyword">type</span> t<br> - <span class="keyword">val</span> copy : <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="keywordsign">-></span> <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t<br> - <span class="keyword">val</span> stmtStartData : <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="constructor">Inthash</span>.t<br> - <span class="keyword">val</span> pretty : unit <span class="keywordsign">-></span> <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> computeFirstPredecessor :<br> - <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span> <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="keywordsign">-></span> <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t<br> - <span class="keyword">val</span> combinePredecessors :<br> - <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span><br> - old:<span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="keywordsign">-></span> <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t option<br> - <span class="keyword">val</span> doInstr :<br> - <span class="constructor">Cil</span>.instr <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="constructor">Dataflow</span>.action<br> - <span class="keyword">val</span> doStmt :<br> - <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="constructor">Dataflow</span>.stmtaction<br> - <span class="keyword">val</span> doGuard :<br> - <span class="constructor">Cil</span>.exp <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="constructor">Dataflow</span>.guardaction<br> - <span class="keyword">val</span> filterStmt : <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span> bool<br> -<span class="keyword">end</span></code></body></html>
\ No newline at end of file diff --git a/cil/doc/api/type_Dataflow.html b/cil/doc/api/type_Dataflow.html deleted file mode 100644 index fa034764..00000000 --- a/cil/doc/api/type_Dataflow.html +++ /dev/null @@ -1,85 +0,0 @@ -<html><head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Dataflow</title> -</head> -<body> -<code class="code"><span class="keyword">sig</span><br> - <span class="keyword">type</span> <span class="keywordsign">'</span>a action = <span class="constructor">Default</span> <span class="keywordsign">|</span> <span class="constructor">Done</span> <span class="keyword">of</span> <span class="keywordsign">'</span>a <span class="keywordsign">|</span> <span class="constructor">Post</span> <span class="keyword">of</span> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a)<br> - <span class="keyword">type</span> <span class="keywordsign">'</span>a stmtaction = <span class="constructor">SDefault</span> <span class="keywordsign">|</span> <span class="constructor">SDone</span> <span class="keywordsign">|</span> <span class="constructor">SUse</span> <span class="keyword">of</span> <span class="keywordsign">'</span>a<br> - <span class="keyword">type</span> <span class="keywordsign">'</span>a guardaction = <span class="constructor">GDefault</span> <span class="keywordsign">|</span> <span class="constructor">GUse</span> <span class="keyword">of</span> <span class="keywordsign">'</span>a <span class="keywordsign">|</span> <span class="constructor">GUnreachable</span><br> - <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">ForwardsTransfer</span> =<br> - <span class="keyword">sig</span><br> - <span class="keyword">val</span> name : string<br> - <span class="keyword">val</span> debug : bool <span class="constructor">Pervasives</span>.ref<br> - <span class="keyword">type</span> t<br> - <span class="keyword">val</span> copy : <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="keywordsign">-></span> <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t<br> - <span class="keyword">val</span> stmtStartData : <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="constructor">Inthash</span>.t<br> - <span class="keyword">val</span> pretty : unit <span class="keywordsign">-></span> <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> computeFirstPredecessor :<br> - <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="keywordsign">-></span> <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t<br> - <span class="keyword">val</span> combinePredecessors :<br> - <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span><br> - old:<span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="keywordsign">-></span> <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t option<br> - <span class="keyword">val</span> doInstr :<br> - <span class="constructor">Cil</span>.instr <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="constructor">Dataflow</span>.action<br> - <span class="keyword">val</span> doStmt :<br> - <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="constructor">Dataflow</span>.stmtaction<br> - <span class="keyword">val</span> doGuard :<br> - <span class="constructor">Cil</span>.exp <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">ForwardsTransfer</span>.t <span class="constructor">Dataflow</span>.guardaction<br> - <span class="keyword">val</span> filterStmt : <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span> bool<br> - <span class="keyword">end</span><br> - <span class="keyword">module</span> <span class="constructor">ForwardsDataFlow</span> :<br> - <span class="keyword">functor</span> (<span class="constructor">T</span> : <span class="constructor">ForwardsTransfer</span>) <span class="keywordsign">-></span><br> - <span class="keyword">sig</span> <span class="keyword">val</span> compute : <span class="constructor">Cil</span>.stmt list <span class="keywordsign">-></span> unit <span class="keyword">end</span><br> - <span class="keyword">module</span> <span class="keyword">type</span> <span class="constructor">BackwardsTransfer</span> =<br> - <span class="keyword">sig</span><br> - <span class="keyword">val</span> name : string<br> - <span class="keyword">val</span> debug : bool <span class="constructor">Pervasives</span>.ref<br> - <span class="keyword">type</span> t<br> - <span class="keyword">val</span> pretty : unit <span class="keywordsign">-></span> <span class="constructor">Dataflow</span>.<span class="constructor">BackwardsTransfer</span>.t <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> stmtStartData : <span class="constructor">Dataflow</span>.<span class="constructor">BackwardsTransfer</span>.t <span class="constructor">Inthash</span>.t<br> - <span class="keyword">val</span> combineStmtStartData :<br> - <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span><br> - old:<span class="constructor">Dataflow</span>.<span class="constructor">BackwardsTransfer</span>.t <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">BackwardsTransfer</span>.t <span class="keywordsign">-></span> <span class="constructor">Dataflow</span>.<span class="constructor">BackwardsTransfer</span>.t option<br> - <span class="keyword">val</span> combineSuccessors :<br> - <span class="constructor">Dataflow</span>.<span class="constructor">BackwardsTransfer</span>.t <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">BackwardsTransfer</span>.t <span class="keywordsign">-></span> <span class="constructor">Dataflow</span>.<span class="constructor">BackwardsTransfer</span>.t<br> - <span class="keyword">val</span> doStmt : <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span> <span class="constructor">Dataflow</span>.<span class="constructor">BackwardsTransfer</span>.t <span class="constructor">Dataflow</span>.action<br> - <span class="keyword">val</span> doInstr :<br> - <span class="constructor">Cil</span>.instr <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">BackwardsTransfer</span>.t <span class="keywordsign">-></span><br> - <span class="constructor">Dataflow</span>.<span class="constructor">BackwardsTransfer</span>.t <span class="constructor">Dataflow</span>.action<br> - <span class="keyword">val</span> filterStmt : <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span> bool<br> - <span class="keyword">end</span><br> - <span class="keyword">module</span> <span class="constructor">BackwardsDataFlow</span> :<br> - <span class="keyword">functor</span> (<span class="constructor">T</span> : <span class="constructor">BackwardsTransfer</span>) <span class="keywordsign">-></span><br> - <span class="keyword">sig</span> <span class="keyword">val</span> compute : <span class="constructor">Cil</span>.stmt list <span class="keywordsign">-></span> unit <span class="keyword">end</span><br> -<span class="keyword">end</span></code></body></html>
\ No newline at end of file diff --git a/cil/doc/api/type_Dominators.html b/cil/doc/api/type_Dominators.html deleted file mode 100644 index a9fef53e..00000000 --- a/cil/doc/api/type_Dominators.html +++ /dev/null @@ -1,32 +0,0 @@ -<html><head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Dominators</title> -</head> -<body> -<code class="code"><span class="keyword">sig</span><br> - <span class="keyword">val</span> computeIDom : <span class="constructor">Cil</span>.fundec <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt option <span class="constructor">Inthash</span>.t<br> - <span class="keyword">val</span> getIdom : <span class="constructor">Cil</span>.stmt option <span class="constructor">Inthash</span>.t <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt option<br> - <span class="keyword">val</span> dominates : <span class="constructor">Cil</span>.stmt option <span class="constructor">Inthash</span>.t <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt <span class="keywordsign">-></span> bool<br> - <span class="keyword">val</span> findNaturalLoops :<br> - <span class="constructor">Cil</span>.fundec <span class="keywordsign">-></span><br> - <span class="constructor">Cil</span>.stmt option <span class="constructor">Inthash</span>.t <span class="keywordsign">-></span> (<span class="constructor">Cil</span>.stmt * <span class="constructor">Cil</span>.stmt list) list<br> -<span class="keyword">end</span></code></body></html>
\ No newline at end of file diff --git a/cil/doc/api/type_Errormsg.html b/cil/doc/api/type_Errormsg.html deleted file mode 100644 index 3ad0a860..00000000 --- a/cil/doc/api/type_Errormsg.html +++ /dev/null @@ -1,64 +0,0 @@ -<html><head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Errormsg</title> -</head> -<body> -<code class="code"><span class="keyword">sig</span><br> - <span class="keyword">val</span> logChannel : <span class="constructor">Pervasives</span>.out_channel <span class="constructor">Pervasives</span>.ref<br> - <span class="keyword">val</span> debugFlag : bool <span class="constructor">Pervasives</span>.ref<br> - <span class="keyword">val</span> verboseFlag : bool <span class="constructor">Pervasives</span>.ref<br> - <span class="keyword">val</span> warnFlag : bool <span class="constructor">Pervasives</span>.ref<br> - <span class="keyword">exception</span> <span class="constructor">Error</span><br> - <span class="keyword">val</span> error : (<span class="keywordsign">'</span>a, unit, <span class="constructor">Pretty</span>.doc, unit) format4 <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> - <span class="keyword">val</span> bug : (<span class="keywordsign">'</span>a, unit, <span class="constructor">Pretty</span>.doc, unit) format4 <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, unit) format4 <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> - <span class="keyword">val</span> s : <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> - <span class="keyword">val</span> hadErrors : bool <span class="constructor">Pervasives</span>.ref<br> - <span class="keyword">val</span> warn : (<span class="keywordsign">'</span>a, unit, <span class="constructor">Pretty</span>.doc, unit) format4 <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, unit) format4 <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> - <span class="keyword">val</span> log : (<span class="keywordsign">'</span>a, unit, <span class="constructor">Pretty</span>.doc, unit) format4 <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> - <span class="keyword">val</span> logg : (<span class="keywordsign">'</span>a, unit, <span class="constructor">Pretty</span>.doc, unit) format4 <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> - <span class="keyword">val</span> null : (<span class="keywordsign">'</span>a, unit, <span class="constructor">Pretty</span>.doc, unit) format4 <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> - <span class="keyword">val</span> pushContext : (unit <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc) <span class="keywordsign">-></span> unit<br> - <span class="keyword">val</span> popContext : unit <span class="keywordsign">-></span> unit<br> - <span class="keyword">val</span> showContext : unit <span class="keywordsign">-></span> unit<br> - <span class="keyword">val</span> withContext : (unit <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc) <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> - <span class="keyword">val</span> newline : unit <span class="keywordsign">-></span> unit<br> - <span class="keyword">val</span> newHline : unit <span class="keywordsign">-></span> unit<br> - <span class="keyword">val</span> getPosition : unit <span class="keywordsign">-></span> int * string * int<br> - <span class="keyword">val</span> getHPosition : unit <span class="keywordsign">-></span> int * string<br> - <span class="keyword">val</span> setHLine : int <span class="keywordsign">-></span> unit<br> - <span class="keyword">val</span> setHFile : string <span class="keywordsign">-></span> unit<br> - <span class="keyword">val</span> setCurrentLine : int <span class="keywordsign">-></span> unit<br> - <span class="keyword">val</span> setCurrentFile : string <span class="keywordsign">-></span> unit<br> - <span class="keyword">type</span> location = { file : string; line : int; hfile : string; hline : int; }<br> - <span class="keyword">val</span> d_loc : unit <span class="keywordsign">-></span> <span class="constructor">Errormsg</span>.location <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> d_hloc : unit <span class="keywordsign">-></span> <span class="constructor">Errormsg</span>.location <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> getLocation : unit <span class="keywordsign">-></span> <span class="constructor">Errormsg</span>.location<br> - <span class="keyword">val</span> parse_error : string <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> - <span class="keyword">val</span> locUnknown : <span class="constructor">Errormsg</span>.location<br> - <span class="keyword">val</span> readingFromStdin : bool <span class="constructor">Pervasives</span>.ref<br> - <span class="keyword">val</span> startParsing : ?useBasename:bool <span class="keywordsign">-></span> string <span class="keywordsign">-></span> <span class="constructor">Lexing</span>.lexbuf<br> - <span class="keyword">val</span> startParsingFromString :<br> - ?file:string <span class="keywordsign">-></span> ?line:int <span class="keywordsign">-></span> string <span class="keywordsign">-></span> <span class="constructor">Lexing</span>.lexbuf<br> - <span class="keyword">val</span> finishParsing : unit <span class="keywordsign">-></span> unit<br> -<span class="keyword">end</span></code></body></html>
\ No newline at end of file diff --git a/cil/doc/api/type_Formatcil.html b/cil/doc/api/type_Formatcil.html deleted file mode 100644 index 7c5139b9..00000000 --- a/cil/doc/api/type_Formatcil.html +++ /dev/null @@ -1,45 +0,0 @@ -<html><head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Formatcil</title> -</head> -<body> -<code class="code"><span class="keyword">sig</span><br> - <span class="keyword">val</span> cExp : string <span class="keywordsign">-></span> (string * <span class="constructor">Cil</span>.formatArg) list <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp<br> - <span class="keyword">val</span> cLval : string <span class="keywordsign">-></span> (string * <span class="constructor">Cil</span>.formatArg) list <span class="keywordsign">-></span> <span class="constructor">Cil</span>.lval<br> - <span class="keyword">val</span> cType : string <span class="keywordsign">-></span> (string * <span class="constructor">Cil</span>.formatArg) list <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ<br> - <span class="keyword">val</span> cInstr :<br> - string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.location <span class="keywordsign">-></span> (string * <span class="constructor">Cil</span>.formatArg) list <span class="keywordsign">-></span> <span class="constructor">Cil</span>.instr<br> - <span class="keyword">val</span> cStmt :<br> - string <span class="keywordsign">-></span><br> - (string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.varinfo) <span class="keywordsign">-></span><br> - <span class="constructor">Cil</span>.location <span class="keywordsign">-></span> (string * <span class="constructor">Cil</span>.formatArg) list <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt<br> - <span class="keyword">val</span> cStmts :<br> - string <span class="keywordsign">-></span><br> - (string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.varinfo) <span class="keywordsign">-></span><br> - <span class="constructor">Cil</span>.location <span class="keywordsign">-></span> (string * <span class="constructor">Cil</span>.formatArg) list <span class="keywordsign">-></span> <span class="constructor">Cil</span>.stmt list<br> - <span class="keyword">val</span> dExp : string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.exp <span class="keywordsign">-></span> <span class="constructor">Cil</span>.formatArg list option<br> - <span class="keyword">val</span> dLval : string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.lval <span class="keywordsign">-></span> <span class="constructor">Cil</span>.formatArg list option<br> - <span class="keyword">val</span> dType : string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.typ <span class="keywordsign">-></span> <span class="constructor">Cil</span>.formatArg list option<br> - <span class="keyword">val</span> dInstr : string <span class="keywordsign">-></span> <span class="constructor">Cil</span>.instr <span class="keywordsign">-></span> <span class="constructor">Cil</span>.formatArg list option<br> - <span class="keyword">val</span> noMemoize : bool <span class="constructor">Pervasives</span>.ref<br> - <span class="keyword">val</span> test : unit <span class="keywordsign">-></span> unit<br> -<span class="keyword">end</span></code></body></html>
\ No newline at end of file diff --git a/cil/doc/api/type_Pretty.MakeMapPrinter.html b/cil/doc/api/type_Pretty.MakeMapPrinter.html deleted file mode 100644 index 0b9d35ee..00000000 --- a/cil/doc/api/type_Pretty.MakeMapPrinter.html +++ /dev/null @@ -1,42 +0,0 @@ -<html><head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Pretty.MakeMapPrinter</title> -</head> -<body> -<code class="code"><span class="keyword">functor</span><br> - (<span class="constructor">Map</span> : <span class="keyword">sig</span><br> - <span class="keyword">type</span> key<br> - <span class="keyword">type</span> <span class="keywordsign">'</span>a t<br> - <span class="keyword">val</span> fold :<br> - (<span class="constructor">Pretty</span>.<span class="constructor">MakeMapPrinter</span>.key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span><br> - <span class="keywordsign">'</span>a <span class="constructor">Pretty</span>.<span class="constructor">MakeMapPrinter</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> - <span class="keyword">end</span>) <span class="keywordsign">-></span><br> - <span class="keyword">sig</span><br> - <span class="keyword">val</span> docMap :<br> - ?sep:<span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span><br> - (<span class="constructor">Map</span>.key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc) <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Map</span>.t <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> d_map :<br> - ?dmaplet:(<span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc) <span class="keywordsign">-></span><br> - string <span class="keywordsign">-></span><br> - (unit <span class="keywordsign">-></span> <span class="constructor">Map</span>.key <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc) <span class="keywordsign">-></span><br> - (unit <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc) <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Map</span>.t <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">end</span></code></body></html>
\ No newline at end of file diff --git a/cil/doc/api/type_Pretty.MakeSetPrinter.html b/cil/doc/api/type_Pretty.MakeSetPrinter.html deleted file mode 100644 index c5e04661..00000000 --- a/cil/doc/api/type_Pretty.MakeSetPrinter.html +++ /dev/null @@ -1,40 +0,0 @@ -<html><head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Pretty.MakeSetPrinter</title> -</head> -<body> -<code class="code"><span class="keyword">functor</span><br> - (<span class="constructor">Set</span> : <span class="keyword">sig</span><br> - <span class="keyword">type</span> elt<br> - <span class="keyword">type</span> t<br> - <span class="keyword">val</span> fold :<br> - (<span class="constructor">Pretty</span>.<span class="constructor">MakeSetPrinter</span>.elt <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span><br> - <span class="constructor">Pretty</span>.<span class="constructor">MakeSetPrinter</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> - <span class="keyword">end</span>) <span class="keywordsign">-></span><br> - <span class="keyword">sig</span><br> - <span class="keyword">val</span> docSet :<br> - ?sep:<span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span><br> - (<span class="constructor">Set</span>.elt <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc) <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Set</span>.t <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> d_set :<br> - string <span class="keywordsign">-></span><br> - (unit <span class="keywordsign">-></span> <span class="constructor">Set</span>.elt <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc) <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Set</span>.t <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">end</span></code></body></html>
\ No newline at end of file diff --git a/cil/doc/api/type_Pretty.html b/cil/doc/api/type_Pretty.html deleted file mode 100644 index fc70f65b..00000000 --- a/cil/doc/api/type_Pretty.html +++ /dev/null @@ -1,111 +0,0 @@ -<html><head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Pretty</title> -</head> -<body> -<code class="code"><span class="keyword">sig</span><br> - <span class="keyword">type</span> doc<br> - <span class="keyword">val</span> nil : <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> ( ++ ) : <span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> concat : <span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> text : string <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> num : int <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> real : float <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> chr : char <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> line : <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> leftflush : <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> break : <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> align : <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> unalign : <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> mark : <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> unmark : <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> indent : int <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> markup : <span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> seq :<br> - sep:<span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span><br> - doit:(<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc) <span class="keywordsign">-></span> elements:<span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> docList :<br> - ?sep:<span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc) <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> d_list :<br> - string <span class="keywordsign">-></span> (unit <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc) <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="keywordsign">'</span>a list <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> docArray :<br> - ?sep:<span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span><br> - (int <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc) <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="keywordsign">'</span>a array <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> docOpt : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc) <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="keywordsign">'</span>a option <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> d_int32 : int32 <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> f_int32 : unit <span class="keywordsign">-></span> int32 <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> d_int64 : int64 <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> f_int64 : unit <span class="keywordsign">-></span> int64 <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">module</span> <span class="constructor">MakeMapPrinter</span> :<br> - <span class="keyword">functor</span><br> - (<span class="constructor">Map</span> : <span class="keyword">sig</span><br> - <span class="keyword">type</span> key<br> - <span class="keyword">type</span> <span class="keywordsign">'</span>a t<br> - <span class="keyword">val</span> fold :<br> - (<span class="constructor">Pretty</span>.<span class="constructor">MakeMapPrinter</span>.key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span><br> - <span class="keywordsign">'</span>a <span class="constructor">Pretty</span>.<span class="constructor">MakeMapPrinter</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>b <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> - <span class="keyword">end</span>) <span class="keywordsign">-></span><br> - <span class="keyword">sig</span><br> - <span class="keyword">val</span> docMap :<br> - ?sep:<span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span><br> - (<span class="constructor">Map</span>.key <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc) <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Map</span>.t <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> d_map :<br> - ?dmaplet:(<span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc) <span class="keywordsign">-></span><br> - string <span class="keywordsign">-></span><br> - (unit <span class="keywordsign">-></span> <span class="constructor">Map</span>.key <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc) <span class="keywordsign">-></span><br> - (unit <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc) <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="constructor">Map</span>.t <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">end</span><br> - <span class="keyword">module</span> <span class="constructor">MakeSetPrinter</span> :<br> - <span class="keyword">functor</span><br> - (<span class="constructor">Set</span> : <span class="keyword">sig</span><br> - <span class="keyword">type</span> elt<br> - <span class="keyword">type</span> t<br> - <span class="keyword">val</span> fold :<br> - (<span class="constructor">Pretty</span>.<span class="constructor">MakeSetPrinter</span>.elt <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span><br> - <span class="constructor">Pretty</span>.<span class="constructor">MakeSetPrinter</span>.t <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> - <span class="keyword">end</span>) <span class="keywordsign">-></span><br> - <span class="keyword">sig</span><br> - <span class="keyword">val</span> docSet :<br> - ?sep:<span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span><br> - (<span class="constructor">Set</span>.elt <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc) <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Set</span>.t <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> d_set :<br> - string <span class="keywordsign">-></span><br> - (unit <span class="keywordsign">-></span> <span class="constructor">Set</span>.elt <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc) <span class="keywordsign">-></span> unit <span class="keywordsign">-></span> <span class="constructor">Set</span>.t <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">end</span><br> - <span class="keyword">val</span> insert : unit <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc<br> - <span class="keyword">val</span> dprintf : (<span class="keywordsign">'</span>a, unit, <span class="constructor">Pretty</span>.doc, <span class="constructor">Pretty</span>.doc) format4 <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> - <span class="keyword">val</span> gprintf :<br> - (<span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> <span class="keywordsign">'</span>a) <span class="keywordsign">-></span> (<span class="keywordsign">'</span>b, unit, <span class="constructor">Pretty</span>.doc, <span class="keywordsign">'</span>a) format4 <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> - <span class="keyword">val</span> fprint : <span class="constructor">Pervasives</span>.out_channel <span class="keywordsign">-></span> width:int <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> unit<br> - <span class="keyword">val</span> sprint : width:int <span class="keywordsign">-></span> <span class="constructor">Pretty</span>.doc <span class="keywordsign">-></span> string<br> - <span class="keyword">val</span> fprintf :<br> - <span class="constructor">Pervasives</span>.out_channel <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> printf : (<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> eprintf : (<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> withPrintDepth : int <span class="keywordsign">-></span> (unit <span class="keywordsign">-></span> unit) <span class="keywordsign">-></span> unit<br> - <span class="keyword">val</span> printDepth : int <span class="constructor">Pervasives</span>.ref<br> - <span class="keyword">val</span> printIndent : bool <span class="constructor">Pervasives</span>.ref<br> - <span class="keyword">val</span> fastMode : bool <span class="constructor">Pervasives</span>.ref<br> - <span class="keyword">val</span> flushOften : bool <span class="constructor">Pervasives</span>.ref<br> - <span class="keyword">val</span> countNewLines : int <span class="constructor">Pervasives</span>.ref<br> - <span class="keyword">val</span> auto_printer : string <span class="keywordsign">-></span> <span class="keywordsign">'</span>a<br> -<span class="keyword">end</span></code></body></html>
\ No newline at end of file diff --git a/cil/doc/api/type_Stats.html b/cil/doc/api/type_Stats.html deleted file mode 100644 index 77cd2181..00000000 --- a/cil/doc/api/type_Stats.html +++ /dev/null @@ -1,36 +0,0 @@ -<html><head> -<link rel="stylesheet" href="style.css" type="text/css"> -<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.5) : Stats</title> -</head> -<body> -<code class="code"><span class="keyword">sig</span><br> - <span class="keyword">val</span> reset : bool <span class="keywordsign">-></span> unit<br> - <span class="keyword">exception</span> <span class="constructor">NoPerfCount</span><br> - <span class="keyword">val</span> has_performance_counters : unit <span class="keywordsign">-></span> bool<br> - <span class="keyword">val</span> sample_pentium_perfcount_20 : unit <span class="keywordsign">-></span> int<br> - <span class="keyword">val</span> sample_pentium_perfcount_10 : unit <span class="keywordsign">-></span> int<br> - <span class="keyword">val</span> time : string <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> - <span class="keyword">val</span> repeattime : float <span class="keywordsign">-></span> string <span class="keywordsign">-></span> (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> - <span class="keyword">val</span> print : <span class="constructor">Pervasives</span>.out_channel <span class="keywordsign">-></span> string <span class="keywordsign">-></span> unit<br> - <span class="keyword">val</span> lastTime : float <span class="constructor">Pervasives</span>.ref<br> - <span class="keyword">val</span> timethis : (<span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b) <span class="keywordsign">-></span> <span class="keywordsign">'</span>a <span class="keywordsign">-></span> <span class="keywordsign">'</span>b<br> -<span class="keyword">end</span></code></body></html>
\ No newline at end of file |