mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-23 11:13:28 +01:00
__main is dead along with llvm-gcc3.
llvm-svn: 43545
This commit is contained in:
parent
ae0530aaf4
commit
5082217e07
@ -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 <iostream>?</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
|
||||
|
Loading…
Reference in New Issue
Block a user