Decribe the "implementation" keyword.
authorChris Lattner <sabre@nondot.org>
Tue, 13 Jun 2006 03:05:47 +0000 (03:05 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 13 Jun 2006 03:05:47 +0000 (03:05 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28762 91177308-0d34-0410-b5e6-96231b3b80d8

docs/LangRef.html

index 0d19f0af02dd2d92565a044e195167b145294d43..6e339f6616dd616d747a0227a5ebac5d3f07356a 100644 (file)
@@ -350,6 +350,9 @@ symbol table entries. Here is an example of the "hello world" module:</p>
 <i>; External declaration of the puts function</i>
 <a href="#functionstructure">declare</a> int %puts(sbyte*)                                            <i>; int(sbyte*)* </i>
 
+<i>; Global variable / Function body section separator</i>
+implementation
+
 <i>; Definition of main function</i>
 int %main() {                                                        <i>; int()* </i>
         <i>; Convert [13x sbyte]* to sbyte *...</i>
@@ -373,6 +376,13 @@ represented by a pointer to a memory location (in this case, a pointer to an
 array of char, and a pointer to a function), and have one of the following <a
 href="#linkage">linkage types</a>.</p>
 
+<p>Due to a limitation in the current LLVM assembly parser (it is limited by
+one-token lookahead), modules are split into two pieces by the "implementation"
+keyword.  Global variable prototypes and definitions must occur before the
+keyword, and function definitions must occur after it.  Function prototypes may
+occur either before or after it.  In the future, the implementation keyword may
+become a noop, if the parser gets smarter.</p>
+
 </div>
 
 <!-- ======================================================================= -->