__main is dead along with llvm-gcc3.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43545 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2007-10-31 05:53:31 +00:00
parent 0bda0e8895
commit a631a87ce1

View File

@ -89,8 +89,6 @@
<li><a href="#cfe_code">Questions about code generated by the GCC front-end</a>
<ol>
<li><a href="#__main">What is this <tt>__main()</tt> call that gets inserted into
<tt>main()</tt>?</a></li>
<li><a href="#iosinit">What is this <tt>llvm.global_ctors</tt> and
<tt>_GLOBAL__I__tmp_webcompile...</tt> stuff that happens when I
#include &lt;iostream&gt;?</a></li>
@ -591,29 +589,6 @@ them.</p>
<a name="cfe_code">Questions about code generated by the GCC front-end</a>
</div>
<div class="question"><p>
<a name="__main"></a>
What is this <tt>__main()</tt> call that gets inserted into <tt>main()</tt>?
</p></div>
<div class="answer">
<p>
The <tt>__main</tt> call is inserted by the C/C++ compiler in order to guarantee
that static constructors and destructors are called when the program starts up
and shuts down. In C, you can create static constructors and destructors by
using GCC extensions, and in C++ you can do so by creating a global variable
whose class has a ctor or dtor.
</p>
<p>
The actual implementation of <tt>__main</tt> lives in the
<tt>llvm/runtime/GCCLibraries/crtend/</tt> directory in the source-base, and is
linked in automatically when you link the program.
</p>
</div>
<!--=========================================================================-->
<div class="question">
<a name="iosinit"></a>
<p> What is this <tt>llvm.global_ctors</tt> and