Skip to content

Commit

Permalink
Fix ALL the markup.
Browse files Browse the repository at this point in the history
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148219 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
d0k committed Jan 15, 2012
1 parent ae9f85b commit 665a8dc
Show file tree
Hide file tree
Showing 36 changed files with 412 additions and 387 deletions.
4 changes: 2 additions & 2 deletions docs/AddressSanitizer.html
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ <h2 id="intro">Introduction</h2>
<h2 id="howtobuild">How to build</h2>
Follow the <a href="../get_started.html">clang build instructions</a>.

<h2 id="intro">Usage</h2>
<h2 id="usage">Usage</h2>
Simply compile and link your program with <tt>-faddress-sanitizer</tt> flag. <BR>
To get a reasonable performance add <tt>-O1</tt> or higher. <BR>
To get nicer stack traces in error messages add
Expand Down Expand Up @@ -93,7 +93,7 @@ <h3 id="has_feature">__has_feature(address_sanitizer)</h3>
<a href="LanguageExtensions.html#__has_feature_extension">__has_feature</a>
can be used for this purpose.
<pre>
#if defined(__has_feature) && __has_feature(address_sanitizer)
#if defined(__has_feature) &amp;&amp; __has_feature(address_sanitizer)
code that runs only under AddressSanitizer
#else
code that does not run under AddressSanitizer
Expand Down
6 changes: 4 additions & 2 deletions docs/AnalyzerRegions.html
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Static Analyzer Design Document: Memory Regions</title>
Expand Down Expand Up @@ -59,7 +61,7 @@ <h2 id="intro">Introduction</h2>
concerns not only isolates the core analysis engine from the details of
reasoning about program memory but also facilities the option of a client of the
path-sensitive engine to easily swap in different StoreManager implementations
that internally reason about program memory in very different ways.</pp>
that internally reason about program memory in very different ways.</p>

<p>The rest of this document is divided into two parts. We first discuss region
taxonomy and the semantics of regions. We then discuss the StoreManager
Expand Down Expand Up @@ -102,7 +104,7 @@ <h3>Pointers</h3>
void *p;
int *q = (int*) p;
char *r = (char*) p;
</pre
</pre>

<p>Thus we need to canonicalize the MemRegion which is used in binding and
retrieving.</p>
Expand Down
46 changes: 21 additions & 25 deletions docs/AutomaticReferenceCounting.html
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Objective-C Automatic Reference Counting (ARC)</title>
<link type="text/css" rel="stylesheet" href="../menu.css" />
<link type="text/css" rel="stylesheet" href="../content.css" />
<link type="text/css" rel="stylesheet" href="../menu.css">
<link type="text/css" rel="stylesheet" href="../content.css">
<style type="text/css">
/* Collapse the items in the ToC to the left. */
div#toc ul {
Expand All @@ -26,7 +28,7 @@
span.term { font-style: italic; font-weight: bold }
</style>

<script lang="javascript">
<script type="text/javascript">
/// A little script to recursively build a table of contents.
function buildTOC(div, toc, ancestry) {
var children = div.childNodes;
Expand Down Expand Up @@ -739,7 +741,7 @@ <h1>Semantics</h1>
lvalue with the same alignment and non-ownership qualification.</p>

<p><span class="term">Reading</span> occurs when performing a
lvalue-to-rvalue conversion on an object lvalue.
lvalue-to-rvalue conversion on an object lvalue.</p>

<ul>
<li>For <tt>__weak</tt> objects, the current pointee is retained and
Expand All @@ -749,10 +751,9 @@ <h1>Semantics</h1>
<li>For all other objects, the lvalue is loaded with primitive
semantics.</li>
</ul>
</p>

<p><span class="term">Assignment</span> occurs when evaluating
an assignment operator. The semantics vary based on the qualification:
an assignment operator. The semantics vary based on the qualification:</p>
<ul>
<li>For <tt>__strong</tt> objects, the new pointee is first retained;
second, the lvalue is loaded with primitive semantics; third, the new
Expand All @@ -771,11 +772,10 @@ <h1>Semantics</h1>
<li>For <tt>__autoreleasing</tt> objects, the new pointee is retained,
autoreleased, and stored into the lvalue using primitive semantics.</li>
</ul>
</p>

<p><span class="term">Initialization</span> occurs when an object's
lifetime begins, which depends on its storage duration.
Initialization proceeds in two stages:
Initialization proceeds in two stages:</p>
<ol>
<li>First, a null pointer is stored into the lvalue using primitive
semantics. This step is skipped if the object
Expand All @@ -784,7 +784,6 @@ <h1>Semantics</h1>
evaluated and then assigned into the object using the usual assignment
semantics.</li>
</ol>
</p>

<p><span class="term">Destruction</span> occurs when an object's
lifetime ends. In all cases it is semantically equivalent to
Expand Down Expand Up @@ -863,7 +862,7 @@ <h1>Conversion of pointers to ownership-qualified types</h1>
<p>A program is ill-formed if an expression of type <tt>T*</tt> is
converted, explicitly or implicitly, to the type <tt>U*</tt>,
where <tt>T</tt> and <tt>U</tt> have different ownership
qualification, unless:
qualification, unless:</p>
<ul>
<li><tt>T</tt> is qualified with <tt>__strong</tt>,
<tt>__autoreleasing</tt>, or <tt>__unsafe_unretained</tt>, and
Expand All @@ -876,9 +875,8 @@ <h1>Conversion of pointers to ownership-qualified types</h1>
<li>the conversion is a
well-formed <a href="#ownership.restrictions.pass_by_writeback">pass-by-writeback</a>.</li>
</ul>
</p>

<p>The analogous rule applies to <tt>T&</tt> and <tt>U&</tt> in
<p>The analogous rule applies to <tt>T&amp;</tt> and <tt>U&amp;</tt> in
Objective-C++.</p>

<div class="rationale"><p>Rationale: these rules provide a reasonable
Expand Down Expand Up @@ -933,7 +931,7 @@ <h1>Passing to an out parameter by writeback</h1>
candidate for <span class="term">pass-by-writeback</span> if:</p>

<ul>
<li><tt>oq</tt> is <tt>__strong</tt> or <tt>__weak</tt>, and
<li><tt>oq</tt> is <tt>__strong</tt> or <tt>__weak</tt>, and</li>
<li>it would be legal to initialize a <tt>T __strong *</tt> with
a <tt>U __strong *</tt>.</li>
</ul>
Expand All @@ -946,7 +944,7 @@ <h1>Passing to an out parameter by writeback</h1>
not have a legal form:</p>

<ul>
<li><tt>&var</tt>, where <tt>var</tt> is a scalar variable of
<li><tt>&amp;var</tt>, where <tt>var</tt> is a scalar variable of
automatic storage duration with retainable object pointer type</li>
<li>a conditional expression where the second and third operands are
both legal forms</li>
Expand All @@ -963,7 +961,7 @@ <h1>Passing to an out parameter by writeback</h1>
implementation, below, where their store to the writeback temporary is
not immediately seen in the original argument variable.</p></div>

<p>A pass-by-writeback is evaluated as follows:
<p>A pass-by-writeback is evaluated as follows:</p>
<ol>
<li>The argument is evaluated to yield a pointer <tt>p</tt> of
type <tt>U oq *</tt>.</li>
Expand All @@ -978,7 +976,7 @@ <h1>Passing to an out parameter by writeback</h1>
actual call.</li>
<li>After the call completes, the temporary is loaded with primitive
semantics, and that value is assigned into <tt>*p</tt>.</li>
</ol></p>
</ol>

<div class="rationale"><p>Rationale: this is all admittedly
convoluted. In an ideal world, we would see that a local variable is
Expand Down Expand Up @@ -1055,7 +1053,6 @@ <h1>Indirect parameters</h1>
<li>otherwise, it is implicitly qualified
with <tt>__autoreleasing</tt>.</li>
</ul>
</p>

<div class="rationale"><p>Rationale: <tt>__autoreleasing</tt> exists
mostly for this case, the Cocoa convention for out-parameters. Since
Expand Down Expand Up @@ -1101,15 +1098,15 @@ <h1>Method families</h1>
family</span>, which is a conventional set of behaviors ascribed to it
by the Cocoa conventions.</p>

<p>A method is in a certain method family if:
<p>A method is in a certain method family if:</p>
<ul>
<li>it has a <tt>objc_method_family</tt> attribute placing it in that
family; or if not that,</li>
<li>it does not have an <tt>objc_method_family</tt> attribute placing
it in a different or no family, and</li>
<li>its selector falls into the corresponding selector family, and</li>
<li>its signature obeys the added restrictions of the method family.</li>
</ul></p>
</ul>

<p>A selector is in a certain selector family if, ignoring any leading
underscores, the first component of the selector either consists
Expand All @@ -1132,7 +1129,7 @@ <h1>Method families</h1>
type is neither <tt>id</tt> nor a pointer to a super-class or
sub-class of the declaring class (if the method was declared on
a class) or the static receiver type of the call (if it was declared
on a protocol).</p>
on a protocol).

<div class="rationale"><p>Rationale: there are a fair number of existing
methods with <tt>init</tt>-like selectors which nonetheless don't
Expand Down Expand Up @@ -1361,14 +1358,13 @@ <h1>Memory management methods</h1>

<p>A program is ill-formed if it contains a method definition, message
send, or <tt>@selector</tt> expression for any of the following
selectors:
selectors:</p>
<ul>
<li><tt>autorelease</tt></li>
<li><tt>release</tt></li>
<li><tt>retain</tt></li>
<li><tt>retainCount</tt></li>
</ul>
</p>

<div class="rationale"><p>Rationale: <tt>retainCount</tt> is banned
because ARC robs it of consistent semantics. The others were banned
Expand Down Expand Up @@ -1519,7 +1515,7 @@ <h1>Fast enumeration iteration variables</h1>
synchronously modified. It can be overridden by explicitly qualifying
the variable with <tt>__strong</tt>, which will make the variable
mutable again and cause the loop to retain the objects it
encounters.</div>
encounters.</p></div>

</div>

Expand All @@ -1540,7 +1536,7 @@ <h1>Blocks</h1>

<p><tt>__block</tt> variables of retainable object owner type are
moved off the stack by initializing the heap copy with the result of
moving from the stack copy.</tt></p>
moving from the stack copy.</p>

<p>With the exception of retains done as part of initializing
a <tt>__strong</tt> parameter variable or reading a <tt>__weak</tt>
Expand All @@ -1555,7 +1551,7 @@ <h1>Blocks</h1>
<h1>Exceptions</h1>

<p>By default in Objective C, ARC is not exception-safe for normal
releases:
releases:</p>
<ul>
<li>It does not end the lifetime of <tt>__strong</tt> variables when
their scopes are abnormally terminated by an exception.</li>
Expand Down
26 changes: 16 additions & 10 deletions docs/DriverInternals.html
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Clang Driver Manual</title>
<link type="text/css" rel="stylesheet" href="../menu.css" />
<link type="text/css" rel="stylesheet" href="../content.css" />
<link type="text/css" rel="stylesheet" href="../menu.css">
<link type="text/css" rel="stylesheet" href="../content.css">
<style type="text/css">
td {
vertical-align: top;
Expand All @@ -19,26 +21,29 @@ <h1>Driver Design &amp; Internals</h1>

<ul>
<li><a href="#intro">Introduction</a></li>
<li><a href="#features">Features and Goals</a></li>
<li><a href="#features">Features and Goals</a>
<ul>
<li><a href="#gcccompat">GCC Compatibility</a></li>
<li><a href="#components">Flexible</a></li>
<li><a href="#performance">Low Overhead</a></li>
<li><a href="#simple">Simple</a></li>
</ul>
<li><a href="#design">Design</a></li>
</li>
<li><a href="#design">Design</a>
<ul>
<li><a href="#int_intro">Internals Introduction</a></li>
<li><a href="#int_overview">Design Overview</a></li>
<li><a href="#int_notes">Additional Notes</a></li>
<li><a href="#int_notes">Additional Notes</a>
<ul>
<li><a href="#int_compilation">The Compilation Object</a></li>
<li><a href="#int_unified_parsing">Unified Parsing &amp; Pipelining</a></li>
<li><a href="#int_toolchain_translation">ToolChain Argument Translation</a></li>
<li><a href="#int_unused_warnings">Unused Argument Warnings</a></li>
</ul>
</li>
<li><a href="#int_gcc_concepts">Relation to GCC Driver Concepts</a></li>
</ul>
</li>
</ul>


Expand Down Expand Up @@ -168,11 +173,12 @@ <h3><a name="int_overview">Design Overview</a></h3>
distinct stages which manipulate these data structures, and
the blue components are important helper classes. </p>

<center>
<a href="DriverArchitecture.png" alt="Driver Architecture Diagram">
<img width=400 src="DriverArchitecture.png">
<div style="text-align:center">
<a href="DriverArchitecture.png">
<img width=400 src="DriverArchitecture.png"
alt="Driver Architecture Diagram">
</a>
</center>
</div>

<!--=======================================================================-->
<h3><a name="int_stages">Driver Stages</a></h3>
Expand Down Expand Up @@ -495,7 +501,7 @@ <h3><a name="int_gcc_concepts">Relation to GCC Driver Concepts</a></h3>
embedded in specs is in the Tool specific argument
translation routines. The parts of specs which control the
compilation pipeline are generally part of
the <ii>Pipeline</ii> stage.</p>
the <i>Pipeline</i> stage.</p>
</li>

<li>
Expand Down
Loading

0 comments on commit 665a8dc

Please sign in to comment.