[llvm-commits] CVS: llvm/docs/LangRef.html

Chris Lattner sabre at nondot.org
Sun Jan 7 23:55:31 PST 2007



Changes in directory llvm/docs:

LangRef.html updated: 1.189 -> 1.190
---
Log message:

Fully specify the type of the llvm.va* intrinsics.  This helps resolve 
Pr1093: http://llvm.org/PR1093 


---
Diffs of the changes:  (+16 -9)

 LangRef.html |   25 ++++++++++++++++---------
 1 files changed, 16 insertions(+), 9 deletions(-)


Index: llvm/docs/LangRef.html
diff -u llvm/docs/LangRef.html:1.189 llvm/docs/LangRef.html:1.190
--- llvm/docs/LangRef.html:1.189	Sun Jan  7 02:53:26 2007
+++ llvm/docs/LangRef.html	Mon Jan  8 01:55:15 2007
@@ -3519,18 +3519,20 @@
 define i32 %test(i32 %X, ...) {
   ; Initialize variable argument processing
   %ap = alloca i8 *
-  call void %<a href="#i_va_start">llvm.va_start</a>(i8 ** %ap)
+  %ap2 = bitcast i8** %ap to i8*
+  call void %<a href="#i_va_start">llvm.va_start</a>(i8* %ap2)
 
   ; Read a single integer argument
   %tmp = va_arg i8 ** %ap, i32
 
   ; Demonstrate usage of llvm.va_copy and llvm.va_end
   %aq = alloca i8 *
-  call void %<a href="#i_va_copy">llvm.va_copy</a>(i8 ** %aq, i8 ** %ap)
-  call void %<a href="#i_va_end">llvm.va_end</a>(i8 ** %aq)
+  %aq2 = bitcast i8** %aq to i8*
+  call void %<a href="#i_va_copy">llvm.va_copy</a>(i8 *%aq2, i8* %ap2)
+  call void %<a href="#i_va_end">llvm.va_end</a>(i8* %aq2)
 
   ; Stop processing of arguments.
-  call void %<a href="#i_va_end">llvm.va_end</a>(i8 ** %ap)
+  call void %<a href="#i_va_end">llvm.va_end</a>(i8* %ap2)
   ret i32 %tmp
 }
 </pre>
@@ -3544,7 +3546,7 @@
 
 <div class="doc_text">
 <h5>Syntax:</h5>
-<pre>  declare void %llvm.va_start(<va_list>* <arglist>)<br></pre>
+<pre>  declare void %llvm.va_start(i8* <arglist>)<br></pre>
 <h5>Overview:</h5>
 <P>The '<tt>llvm.va_start</tt>' intrinsic initializes
 <tt>*<arglist></tt> for subsequent use by <tt><a
@@ -3572,19 +3574,25 @@
 
 <div class="doc_text">
 <h5>Syntax:</h5>
-<pre>  declare void %llvm.va_end(<va_list*> <arglist>)<br></pre>
+<pre>  declare void %llvm.va_end(i8* <arglist>)<br></pre>
 <h5>Overview:</h5>
+
 <p>The '<tt>llvm.va_end</tt>' intrinsic destroys <tt><arglist></tt>
 which has been initialized previously with <tt><a href="#i_va_start">llvm.va_start</a></tt>
 or <tt><a href="#i_va_copy">llvm.va_copy</a></tt>.</p>
+
 <h5>Arguments:</h5>
+
 <p>The argument is a <tt>va_list</tt> to destroy.</p>
+
 <h5>Semantics:</h5>
+
 <p>The '<tt>llvm.va_end</tt>' intrinsic works just like the <tt>va_end</tt>
 macro available in C.  In a target-dependent way, it destroys the <tt>va_list</tt>.
 Calls to <a href="#i_va_start"><tt>llvm.va_start</tt></a> and <a
  href="#i_va_copy"><tt>llvm.va_copy</tt></a> must be matched exactly
 with calls to <tt>llvm.va_end</tt>.</p>
+
 </div>
 
 <!-- _______________________________________________________________________ -->
@@ -3597,8 +3605,7 @@
 <h5>Syntax:</h5>
 
 <pre>
-  declare void %llvm.va_copy(<va_list>* <destarglist>,
-                                          <va_list>* <srcarglist>)
+  declare void %llvm.va_copy(i8* <destarglist>, i8* <srcarglist>)
 </pre>
 
 <h5>Overview:</h5>
@@ -4468,7 +4475,7 @@
 
   <a href="mailto:sabre at nondot.org">Chris Lattner</a><br>
   <a href="http://llvm.org">The LLVM Compiler Infrastructure</a><br>
-  Last modified: $Date: 2007/01/07 08:53:26 $
+  Last modified: $Date: 2007/01/08 07:55:15 $
 </address>
 </body>
 </html>






More information about the llvm-commits mailing list