forked from OSchip/llvm-project
[www] Change URLs to HTTPS.
This changes most URLs in llvm's html files to HTTPS. Most changes were search-and-replace with manual verification; some changes were manual. For a few URLs, the websites were performing redirects or had changed their anchors; I fixed those up manually. This consistently uses the official https://wg21.link redirector. This also strips trailing whitespace and fixes a couple of typos. Fixes D69363. There are a very small number of dead links for which I don't know any replacements (they are equally dead as HTTP or HTTPS): https://llvm.org/cmds/llvm2cpp.html https://llvm.org/devmtg/2010-11/videos/Grosser_Polly-desktop.mp4 https://llvm.org/devmtg/2010-11/videos/Grosser_Polly-mobile.mp4 https://llvm.org/devmtg/2011-11/videos/Grosser_PollyOptimizations-desktop.mov https://llvm.org/devmtg/2011-11/videos/Grosser_PollyOptimizations-mobile.mp4 https://llvm.org/perf/db_default/v4/nts/22463 https://polly.llvm.org/documentation/memaccess.html
This commit is contained in:
parent
d0bd3fc88b
commit
2e4f1e112d
|
@ -44,19 +44,19 @@ doxygen markup, but cannot yet generate documentation from it.</li>
|
|||
Clang is built as a set of libraries, which means that it is possible to
|
||||
implement capabilities similar to other source language tools, improving them
|
||||
in various ways. Three examples are <a
|
||||
href="http://distcc.samba.org/">distcc</a>, the <a
|
||||
href="https://github.com/distcc">distcc</a>, the <a
|
||||
href="http://delta.tigris.org/">delta testcase reduction tool</a>, and the
|
||||
"indent" source reformatting tool.
|
||||
distcc can be improved to scale better and be more efficient. Delta could be
|
||||
faster and more efficient at reducing C-family programs if built on the clang
|
||||
preprocessor. The clang-based indent replacement,
|
||||
<a href="http://clang.llvm.org/docs/ClangFormat.html">clang-format</a>,
|
||||
<a href="https://clang.llvm.org/docs/ClangFormat.html">clang-format</a>,
|
||||
could be taught to handle simple structural rules like those in <a
|
||||
href="http://llvm.org/docs/CodingStandards.html#hl_earlyexit">the LLVM coding
|
||||
href="https://llvm.org/docs/CodingStandards.html#use-early-exits-and-continue-to-simplify-code">the LLVM coding
|
||||
standards</a>.</li>
|
||||
|
||||
<li><b>Use clang libraries to extend Ragel with a JIT</b>: <a
|
||||
href="http://research.cs.queensu.ca/~thurston/ragel/">Ragel</a> is a state
|
||||
href="https://www.colm.net/open-source/ragel/">Ragel</a> is a state
|
||||
machine compiler that lets you embed C code into state machines and generate
|
||||
C code. It would be relatively easy to turn this into a JIT compiler using
|
||||
LLVM.</li>
|
||||
|
|
|
@ -45,7 +45,7 @@ to solve and a proposed implementation (from the user perspective).</p>
|
|||
development. Stay tuned for more information, and of course, patches
|
||||
welcome!</p>
|
||||
|
||||
<p>See also <a href="http://llvm.org/PR4127">PR4127</a>.</p>
|
||||
<p>See also <a href="https://llvm.org/PR4127">PR4127</a>.</p>
|
||||
|
||||
<h2>Existing Solutions and Related Work</h2>
|
||||
|
||||
|
@ -55,14 +55,14 @@ welcome!</p>
|
|||
and <tt>-m64</tt> solve a small subset of the problem for specific
|
||||
architectures.</li>
|
||||
|
||||
<li>gcc's <a href="http://www.airs.com/ian/configure/configure_8.html">multilibs</a>
|
||||
<li>gcc's <a href="https://www.airs.com/ian/configure/configure_8.html">multilibs</a>
|
||||
solve the part of the problem that relates to finding appropriate libraries
|
||||
and include files based on particular feature support (soft float,
|
||||
etc.).</li>
|
||||
|
||||
<li>Apple's "driver driver" supported by gcc and clang solve a subset of the
|
||||
problem by supporting <tt>-arch</tt>. Apple also provides a tool chain which
|
||||
supports <a href="http://en.wikipedia.org/wiki/Universal_binary">universal
|
||||
supports <a href="https://en.wikipedia.org/wiki/Universal_binary">universal
|
||||
binaries</a> and object files which may include data for multiple
|
||||
architectures. See <a href="http://developer.apple.com/mac/library/technotes/tn2005/tn2137.html">TN2137</a>
|
||||
for an example of how this is used.</li>
|
||||
|
@ -73,7 +73,7 @@ welcome!</p>
|
|||
does not match well with tools which are inherently capable of cross
|
||||
compiling.</li>
|
||||
|
||||
<li>The Debian <a href="http://wiki.debian.org/ArmEabiPort">ArmEabiPort</a>
|
||||
<li>The Debian <a href="https://wiki.debian.org/ArmEabiPort">ArmEabiPort</a>
|
||||
wiki page for their work to support the ARM EABI provide an interesting
|
||||
glimpse into how related issues impact the operating system distribution.</li>
|
||||
|
||||
|
|
|
@ -930,9 +930,9 @@ alpha.unix.SimpleStream</span><span class="lang">
|
|||
Check for misuses of stream APIs:<div class=functions>
|
||||
fopen<br>
|
||||
fclose</div>(demo checker, the subject of the demo
|
||||
(<a href="http://llvm.org/devmtg/2012-11/Zaks-Rose-Checker24Hours.pdf">Slides</a>
|
||||
(<a href="https://llvm.org/devmtg/2012-11/Zaks-Rose-Checker24Hours.pdf">Slides</a>
|
||||
,<a href="https://youtu.be/kdxlsP5QVPw">Video</a>)
|
||||
by Anna Zaks and Jordan Rose presented at the <a href="http://llvm.org/devmtg/2012-11/">
|
||||
by Anna Zaks and Jordan Rose presented at the <a href="https://llvm.org/devmtg/2012-11/">
|
||||
2012 LLVM Developers' Meeting).</a></div></div></a></td>
|
||||
<td><div class="exampleContainer expandable">
|
||||
<div class="example"><pre>
|
||||
|
|
|
@ -17,18 +17,18 @@
|
|||
<h1>Source Annotations</h1>
|
||||
|
||||
<p>The Clang frontend supports several source-level annotations in the form of
|
||||
<a href="http://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html">GCC-style
|
||||
<a href="https://gcc.gnu.org/onlinedocs/gcc/Attribute-Syntax.html">GCC-style
|
||||
attributes</a> and pragmas that can help make using the Clang Static Analyzer
|
||||
more useful. These annotations can both help suppress false positives as well as
|
||||
enhance the analyzer's ability to find bugs.</p>
|
||||
|
||||
<p>This page gives a practical overview of such annotations. For more technical
|
||||
specifics regarding Clang-specific annotations please see the Clang's list of <a
|
||||
href="http://clang.llvm.org/docs/LanguageExtensions.html">language
|
||||
href="https://clang.llvm.org/docs/LanguageExtensions.html">language
|
||||
extensions</a>. Details of "standard" GCC attributes (that Clang also
|
||||
supports) can be found in the <a href="http://gcc.gnu.org/onlinedocs/gcc/">GCC
|
||||
supports) can be found in the <a href="https://gcc.gnu.org/onlinedocs/gcc/">GCC
|
||||
manual</a>, with the majority of the relevant attributes being in the section on
|
||||
<a href="http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html">function
|
||||
<a href="https://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html">function
|
||||
attributes</a>.</p>
|
||||
|
||||
<p>Note that attributes that are labeled <b>Clang-specific</b> are not
|
||||
|
@ -91,7 +91,7 @@ recognized by GCC. Their use can be conditioned using preprocessor macros
|
|||
<p>The analyzer recognizes the GCC attribute 'nonnull', which indicates that a
|
||||
function expects that a given function parameter is not a null pointer. Specific
|
||||
details of the syntax of using the 'nonnull' attribute can be found in <a
|
||||
href="http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html#index-g_t_0040code_007bnonnull_007d-function-attribute-2263">GCC's
|
||||
href="https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-nonnull-function-attribute">GCC's
|
||||
documentation</a>.</p>
|
||||
|
||||
<p>Both the Clang compiler and GCC will flag warnings for simple cases where a
|
||||
|
@ -139,7 +139,7 @@ conventions can cause the analyzer to miss bugs or flag false positives.</p>
|
|||
functions that deviate from the Cocoa and Core Foundation conventions using the
|
||||
attributes described here. However, you should consider using proper naming
|
||||
conventions or the <a
|
||||
href="http://clang.llvm.org/docs/LanguageExtensions.html#the-objc-method-family-attribute"><tt>objc_method_family</tt></a>
|
||||
href="https://clang.llvm.org/docs/LanguageExtensions.html#the-objc-method-family-attribute"><tt>objc_method_family</tt></a>
|
||||
attribute, if applicable.</p>
|
||||
|
||||
<h4 id="attr_ns_returns_retained">Attribute 'ns_returns_retained'
|
||||
|
@ -729,7 +729,7 @@ with a 'noreturn' attribute should never return.</p>
|
|||
|
||||
<p>Specific details of the syntax of using the 'noreturn' attribute can be found
|
||||
in <a
|
||||
href="http://gcc.gnu.org/onlinedocs/gcc/Function-Attributes.html#index-g_t_0040code_007bnoreturn_007d-function-attribute-2264">GCC's
|
||||
href="https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html#index-noreturn-function-attribute">GCC's
|
||||
documentation</a>.</p>
|
||||
|
||||
<p>Not only does the analyzer exploit this information when pruning false paths,
|
||||
|
|
|
@ -29,8 +29,8 @@ Experimental (Alpha) Checkers</a>.
|
|||
<ul>
|
||||
<li><a href="http://www.mobileorchard.com/bug-finding-with-clang-5-resources-to-get-you-started/">Bug Finding With Clang: 5 Resources To Get You Started</a></li>
|
||||
<li><a href="http://fruitstandsoftware.com/blog/index.php/2008/08/finding-memory-leaks-with-the-llvmclang-static-analyzer/#comment-2">Finding Memory Leaks With The LLVM/Clang Static Analyzer</a></li>
|
||||
<li><a href="http://www.rogueamoeba.com/utm/2008/07/14/the-clang-static-analyzer/">Under the Microscope - The Clang Static Analyzer</a></li>
|
||||
<li><a href="http://www.mikeash.com/?page=pyblog/friday-qa-2009-03-06-using-the-clang-static-analyzer.html">Mike Ash - Using the Clang Static Analyzer</a></li>
|
||||
<li><a href="https://weblog.rogueamoeba.com/2008/07/14/the-clang-static-analyzer/">Under the Microscope - The Clang Static Analyzer</a></li>
|
||||
<li><a href="https://www.mikeash.com/pyblog/friday-qa-2009-03-06-using-the-clang-static-analyzer.html">Mike Ash - Using the Clang Static Analyzer</a></li>
|
||||
</ul>
|
||||
|
||||
<h2 id="default_checkers">Default Checkers</h2>
|
||||
|
|
|
@ -22,13 +22,13 @@
|
|||
relies on a set of checkers to implement the logic for detecting and
|
||||
constructing specific bug reports. Anyone who is interested in implementing their own
|
||||
checker, should check out the Building a Checker in 24 Hours talk
|
||||
(<a href="http://llvm.org/devmtg/2012-11/Zaks-Rose-Checker24Hours.pdf">slides</a>
|
||||
(<a href="https://llvm.org/devmtg/2012-11/Zaks-Rose-Checker24Hours.pdf">slides</a>
|
||||
<a href="https://youtu.be/kdxlsP5QVPw">video</a>)
|
||||
and refer to this page for additional information on writing a checker. The static analyzer is a
|
||||
part of the Clang project, so consult <a href="http://clang.llvm.org/hacking.html">Hacking on Clang</a>
|
||||
and <a href="http://llvm.org/docs/ProgrammersManual.html">LLVM Programmer's Manual</a>
|
||||
part of the Clang project, so consult <a href="https://clang.llvm.org/hacking.html">Hacking on Clang</a>
|
||||
and <a href="https://llvm.org/docs/ProgrammersManual.html">LLVM Programmer's Manual</a>
|
||||
for developer guidelines and send your questions and proposals to
|
||||
<a href=http://lists.llvm.org/mailman/listinfo/cfe-dev>cfe-dev mailing list</a>.
|
||||
<a href=https://lists.llvm.org/mailman/listinfo/cfe-dev>cfe-dev mailing list</a>.
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
|
@ -59,7 +59,7 @@ for developer guidelines and send your questions and proposals to
|
|||
<h2 id=start>Getting Started</h2>
|
||||
<ul>
|
||||
<li>To check out the source code and build the project, follow steps 1-4 of
|
||||
the <a href="http://clang.llvm.org/get_started.html">Clang Getting Started</a>
|
||||
the <a href="https://clang.llvm.org/get_started.html">Clang Getting Started</a>
|
||||
page.</li>
|
||||
|
||||
<li>The analyzer source code is located under the Clang source tree:
|
||||
|
@ -99,19 +99,19 @@ for developer guidelines and send your questions and proposals to
|
|||
the values of all the expressions in the program based on the input symbols
|
||||
and the path. The execution is path sensitive and every possible path through
|
||||
the program is explored. The explored execution traces are represented with
|
||||
<a href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1ExplodedGraph.html">ExplodedGraph</a> object.
|
||||
<a href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1ExplodedGraph.html">ExplodedGraph</a> object.
|
||||
Each node of the graph is
|
||||
<a href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1ExplodedNode.html">ExplodedNode</a>,
|
||||
<a href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1ExplodedNode.html">ExplodedNode</a>,
|
||||
which consists of a <tt>ProgramPoint</tt> and a <tt>ProgramState</tt>.
|
||||
<p>
|
||||
<a href="http://clang.llvm.org/doxygen/classclang_1_1ProgramPoint.html">ProgramPoint</a>
|
||||
<a href="https://clang.llvm.org/doxygen/classclang_1_1ProgramPoint.html">ProgramPoint</a>
|
||||
represents the corresponding location in the program (or the CFG).
|
||||
<tt>ProgramPoint</tt> is also used to record additional information on
|
||||
when/how the state was added. For example, <tt>PostPurgeDeadSymbolsKind</tt>
|
||||
kind means that the state is the result of purging dead symbols - the
|
||||
analyzer's equivalent of garbage collection.
|
||||
<p>
|
||||
<a href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1ProgramState.html">ProgramState</a>
|
||||
<a href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1ProgramState.html">ProgramState</a>
|
||||
represents abstract state of the program. It consists of:
|
||||
<ul>
|
||||
<li><tt>Environment</tt> - a mapping from source code expressions to symbolic
|
||||
|
@ -137,19 +137,19 @@ for developer guidelines and send your questions and proposals to
|
|||
<h3 id=values>Representing Values</h3>
|
||||
|
||||
<p>
|
||||
During symbolic execution, <a href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1SVal.html">SVal</a>
|
||||
During symbolic execution, <a href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1SVal.html">SVal</a>
|
||||
objects are used to represent the semantic evaluation of expressions.
|
||||
They can represent things like concrete
|
||||
integers, symbolic values, or memory locations (which are memory regions).
|
||||
They are a discriminated union of "values", symbolic and otherwise.
|
||||
If a value isn't symbolic, usually that means there is no symbolic
|
||||
information to track. For example, if the value was an integer, such as
|
||||
<tt>42</tt>, it would be a <a href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1nonloc_1_1ConcreteInt.html">ConcreteInt</a>,
|
||||
<tt>42</tt>, it would be a <a href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1nonloc_1_1ConcreteInt.html">ConcreteInt</a>,
|
||||
and the checker doesn't usually need to track any state with the concrete
|
||||
number. In some cases, <tt>SVal</tt> is not a symbol, but it really should be
|
||||
a symbolic value. This happens when the analyzer cannot reason about something
|
||||
(yet). An example is floating point numbers. In such cases, the
|
||||
<tt>SVal</tt> will evaluate to <a href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1UnknownVal.html">UnknownVal</a>.
|
||||
<tt>SVal</tt> will evaluate to <a href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1UnknownVal.html">UnknownVal</a>.
|
||||
This represents a case that is outside the realm of the analyzer's reasoning
|
||||
capabilities. <tt>SVals</tt> are value objects and their values can be viewed
|
||||
using the <tt>.dump()</tt> method. Often they wrap persistent objects such as
|
||||
|
@ -157,7 +157,7 @@ for developer guidelines and send your questions and proposals to
|
|||
</p>
|
||||
|
||||
<p>
|
||||
<a href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1SymExpr.html">SymExpr</a> (symbol)
|
||||
<a href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1SymExpr.html">SymExpr</a> (symbol)
|
||||
is meant to represent abstract, but named, symbolic value. Symbols represent
|
||||
an actual (immutable) value. We might not know what its specific value is, but
|
||||
we can associate constraints with that value as we analyze a path. For
|
||||
|
@ -166,14 +166,14 @@ for developer guidelines and send your questions and proposals to
|
|||
</p>
|
||||
|
||||
<p>
|
||||
<a href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1MemRegion.html">MemRegion</a> is similar to a symbol.
|
||||
<a href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1MemRegion.html">MemRegion</a> is similar to a symbol.
|
||||
It is used to provide a lexicon of how to describe abstract memory. Regions can
|
||||
layer on top of other regions, providing a layered approach to representing memory.
|
||||
For example, a struct object on the stack might be represented by a <tt>VarRegion</tt>,
|
||||
but a <tt>FieldRegion</tt> which is a subregion of the <tt>VarRegion</tt> could
|
||||
be used to represent the memory associated with a specific field of that object.
|
||||
So how do we represent symbolic memory regions? That's what
|
||||
<a href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1SymbolicRegion.html">SymbolicRegion</a>
|
||||
<a href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1SymbolicRegion.html">SymbolicRegion</a>
|
||||
is for. It is a <tt>MemRegion</tt> that has an associated symbol. Since the
|
||||
symbol is unique and has a unique name; that symbol names the region.
|
||||
</p>
|
||||
|
@ -245,7 +245,7 @@ values (e.g., the number 1).
|
|||
solver to model symbolic execution.</li>
|
||||
|
||||
<li>Consult the <a
|
||||
href="http://llvm.org/bugs/buglist.cgi?query_format=advanced&bug_status=NEW&bug_status=REOPENED&version=trunk&component=Static%20Analyzer&product=clang">Bugzilla database</a>
|
||||
href="https://bugs.llvm.org/buglist.cgi?query_format=advanced&bug_status=NEW&bug_status=REOPENED&version=trunk&component=Static%20Analyzer&product=clang">Bugzilla database</a>
|
||||
to get some ideas for new checkers and consider starting with improving/fixing
|
||||
bugs in the existing checkers.</li>
|
||||
</ul>
|
||||
|
@ -305,16 +305,16 @@ was successfully added by seeing if it appears in the list of available checkers
|
|||
<h2 id=events_callbacks>Events, Callbacks, and Checker Class Structure</h2>
|
||||
|
||||
<p> All checkers inherit from the <tt><a
|
||||
href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1Checker.html">
|
||||
href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1Checker.html">
|
||||
Checker</a></tt> template class; the template parameter(s) describe the type of
|
||||
events that the checker is interested in processing. The various types of events
|
||||
that are available are described in the file <a
|
||||
href="http://clang.llvm.org/doxygen/CheckerDocumentation_8cpp_source.html">
|
||||
href="https://clang.llvm.org/doxygen/CheckerDocumentation_8cpp_source.html">
|
||||
CheckerDocumentation.cpp</a>
|
||||
|
||||
<p> For each event type requested, a corresponding callback function must be
|
||||
defined in the checker class (<a
|
||||
href="http://clang.llvm.org/doxygen/CheckerDocumentation_8cpp_source.html">
|
||||
href="https://clang.llvm.org/doxygen/CheckerDocumentation_8cpp_source.html">
|
||||
CheckerDocumentation.cpp</a> shows the
|
||||
correct function name and signature for each event type).
|
||||
|
||||
|
@ -335,13 +335,13 @@ the analyzer cannot be sure whether the file was closed or not.
|
|||
</ul>
|
||||
|
||||
<p>These events that will be used for each of these actions are, respectively, <a
|
||||
href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1check_1_1PreCall.html">PreCall</a>,
|
||||
href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1check_1_1PreCall.html">PreCall</a>,
|
||||
<a
|
||||
href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1check_1_1PostCall.html">PostCall</a>,
|
||||
href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1check_1_1PostCall.html">PostCall</a>,
|
||||
<a
|
||||
href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1check_1_1DeadSymbols.html">DeadSymbols</a>,
|
||||
href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1check_1_1DeadSymbols.html">DeadSymbols</a>,
|
||||
and <a
|
||||
href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1check_1_1PointerEscape.html">PointerEscape</a>.
|
||||
href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1check_1_1PointerEscape.html">PointerEscape</a>.
|
||||
The high-level structure of the checker's class is thus:
|
||||
|
||||
<pre class="code_example">
|
||||
|
@ -376,22 +376,22 @@ several macros designed for this purpose. They are:
|
|||
|
||||
<ul>
|
||||
<li><a
|
||||
href="http://clang.llvm.org/doxygen/ProgramStateTrait_8h.html#ae4cddb54383cd702a045d7c61b009147">REGISTER_TRAIT_WITH_PROGRAMSTATE</a>:
|
||||
href="https://clang.llvm.org/doxygen/ProgramStateTrait_8h.html#ae4cddb54383cd702a045d7c61b009147">REGISTER_TRAIT_WITH_PROGRAMSTATE</a>:
|
||||
Used when the state information is a single value. The methods available for
|
||||
state types declared with this macro are <tt>get</tt>, <tt>set</tt>, and
|
||||
<tt>remove</tt>.
|
||||
<li><a
|
||||
href="http://clang.llvm.org/doxygen/CheckerContext_8h.html#aa27656fa0ce65b0d9ba12eb3c02e8be9">REGISTER_LIST_WITH_PROGRAMSTATE</a>:
|
||||
href="https://clang.llvm.org/doxygen/CheckerContext_8h.html#aa27656fa0ce65b0d9ba12eb3c02e8be9">REGISTER_LIST_WITH_PROGRAMSTATE</a>:
|
||||
Used when the state information is a list of values. The methods available for
|
||||
state types declared with this macro are <tt>add</tt>, <tt>get</tt>,
|
||||
<tt>remove</tt>, and <tt>contains</tt>.
|
||||
<li><a
|
||||
href="http://clang.llvm.org/doxygen/CheckerContext_8h.html#ad90f9387b94b344eaaf499afec05f4d1">REGISTER_SET_WITH_PROGRAMSTATE</a>:
|
||||
href="https://clang.llvm.org/doxygen/CheckerContext_8h.html#ad90f9387b94b344eaaf499afec05f4d1">REGISTER_SET_WITH_PROGRAMSTATE</a>:
|
||||
Used when the state information is a set of values. The methods available for
|
||||
state types declared with this macro are <tt>add</tt>, <tt>get</tt>,
|
||||
<tt>remove</tt>, and <tt>contains</tt>.
|
||||
<li><a
|
||||
href="http://clang.llvm.org/doxygen/CheckerContext_8h.html#a6d1893bb8c18543337b6c363c1319fcf">REGISTER_MAP_WITH_PROGRAMSTATE</a>:
|
||||
href="https://clang.llvm.org/doxygen/CheckerContext_8h.html#a6d1893bb8c18543337b6c363c1319fcf">REGISTER_MAP_WITH_PROGRAMSTATE</a>:
|
||||
Used when the state information is a map from a key to a value. The methods
|
||||
available for state types declared with this macro are <tt>add</tt>,
|
||||
<tt>set</tt>, <tt>get</tt>, <tt>remove</tt>, and <tt>contains</tt>.
|
||||
|
@ -438,11 +438,11 @@ new data category; the name of this type is the name of the data category with
|
|||
"Ty" appended. For <tt>REGISTER_TRAIT_WITH_PROGRAMSTATE</tt>, this will simply
|
||||
be passed data type; for the other three macros, this will be a specialized
|
||||
version of the <a
|
||||
href="http://llvm.org/doxygen/classllvm_1_1ImmutableList.html">llvm::ImmutableList</a>,
|
||||
href="https://llvm.org/doxygen/classllvm_1_1ImmutableList.html">llvm::ImmutableList</a>,
|
||||
<a
|
||||
href="http://llvm.org/doxygen/classllvm_1_1ImmutableSet.html">llvm::ImmutableSet</a>,
|
||||
href="https://llvm.org/doxygen/classllvm_1_1ImmutableSet.html">llvm::ImmutableSet</a>,
|
||||
or <a
|
||||
href="http://llvm.org/doxygen/classllvm_1_1ImmutableMap.html">llvm::ImmutableMap</a>
|
||||
href="https://llvm.org/doxygen/classllvm_1_1ImmutableMap.html">llvm::ImmutableMap</a>
|
||||
templated class. For the <tt>ExampleDataType</tt> example above, the type
|
||||
created would be equivalent to writing the declaration:
|
||||
|
||||
|
@ -465,9 +465,9 @@ analyzer core by calling the <tt>CheckerContext::addTransition</tt> function.
|
|||
<p> When a checker detects a mistake in the analyzed code, it needs a way to
|
||||
report it to the analyzer core so that it can be displayed. The two classes used
|
||||
to construct this report are <tt><a
|
||||
href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1BugType.html">BugType</a></tt>
|
||||
href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1BugType.html">BugType</a></tt>
|
||||
and <tt><a
|
||||
href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1BugReport.html">
|
||||
href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1BugReport.html">
|
||||
BugReport</a></tt>.
|
||||
|
||||
<p>
|
||||
|
@ -500,15 +500,15 @@ the program to meaningfully continue after such an error.
|
|||
generated by the checker can be passed to the <tt>BugReport</tt> constructor
|
||||
without additional modification. This <tt>ExplodedNode</tt> will be the one
|
||||
returned by the most recent call to <a
|
||||
href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78">CheckerContext::addTransition</a>.
|
||||
href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78">CheckerContext::addTransition</a>.
|
||||
If no transition has been performed during the current callback, the checker should call <a
|
||||
href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78">CheckerContext::addTransition()</a>
|
||||
href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#a264f48d97809707049689c37aa35af78">CheckerContext::addTransition()</a>
|
||||
and use the returned node for bug reporting.
|
||||
|
||||
<p>If analysis can not continue, then the current state should be transitioned
|
||||
into a so-called <i>sink node</i>, a node from which no further analysis will be
|
||||
performed. This is done by calling the <a
|
||||
href="http://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#adeea33a5a2bed190210c4a2bb807a6f0">
|
||||
href="https://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#adeea33a5a2bed190210c4a2bb807a6f0">
|
||||
CheckerContext::generateSink</a> function; this function is the same as the
|
||||
<tt>addTransition</tt> function, but marks the state as a sink node. Like
|
||||
<tt>addTransition</tt>, this returns an <tt>ExplodedNode</tt> with the updated
|
||||
|
@ -516,7 +516,7 @@ state, which can then be passed to the <tt>BugReport</tt> constructor.
|
|||
|
||||
<p>
|
||||
After a <tt>BugReport</tt> is created, it should be passed to the analyzer core
|
||||
by calling <a href = "http://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#ae7738af2cbfd1d713edec33d3203dff5">CheckerContext::emitReport</a>.
|
||||
by calling <a href = "https://clang.llvm.org/doxygen/classclang_1_1ento_1_1CheckerContext.html#ae7738af2cbfd1d713edec33d3203dff5">CheckerContext::emitReport</a>.
|
||||
|
||||
<h2 id=ast>AST Visitors</h2>
|
||||
Some checks might not require path-sensitivity to be effective. Simple AST walk
|
||||
|
@ -796,9 +796,9 @@ Documentation for how the Store works</a></li>
|
|||
<li><a href="https://github.com/llvm/llvm-project/blob/master/clang/docs/analyzer/IPA.txt">
|
||||
Documentation about inlining</a></li>
|
||||
<li> The "Building a Checker in 24 hours" presentation given at the <a
|
||||
href="http://llvm.org/devmtg/2012-11">November 2012 LLVM Developer's
|
||||
href="https://llvm.org/devmtg/2012-11">November 2012 LLVM Developer's
|
||||
meeting</a>. Describes the construction of SimpleStreamChecker. <a
|
||||
href="http://llvm.org/devmtg/2012-11/Zaks-Rose-Checker24Hours.pdf">Slides</a>
|
||||
href="https://llvm.org/devmtg/2012-11/Zaks-Rose-Checker24Hours.pdf">Slides</a>
|
||||
and <a
|
||||
href="https://youtu.be/kdxlsP5QVPw">video</a>
|
||||
are available.</li>
|
||||
|
@ -807,15 +807,15 @@ are available.</li>
|
|||
Artem Degrachev: Clang Static Analyzer: A Checker Developer's Guide
|
||||
</a> (reading the previous items first might be a good idea)</li>
|
||||
<li>The list of <a href="implicit_checks.html">Implicit Checkers</a></li>
|
||||
<li> <a href="http://clang.llvm.org/doxygen">Clang doxygen</a>. Contains
|
||||
<li> <a href="https://clang.llvm.org/doxygen">Clang doxygen</a>. Contains
|
||||
up-to-date documentation about the APIs available in Clang. Relevant entries
|
||||
have been linked throughout this page. Also of use is the
|
||||
<a href="http://llvm.org/doxygen">LLVM doxygen</a>, when dealing with classes
|
||||
<a href="https://llvm.org/doxygen">LLVM doxygen</a>, when dealing with classes
|
||||
from LLVM.</li>
|
||||
<li> The <a href="http://lists.llvm.org/mailman/listinfo/cfe-dev">
|
||||
<li> The <a href="https://lists.llvm.org/mailman/listinfo/cfe-dev">
|
||||
cfe-dev mailing list</a>. This is the primary mailing list used for
|
||||
discussion of Clang development (including static code analysis). The
|
||||
<a href="http://lists.llvm.org/pipermail/cfe-dev">archive</a> also contains
|
||||
<a href="https://lists.llvm.org/pipermail/cfe-dev">archive</a> also contains
|
||||
a lot of information.</li>
|
||||
</ul>
|
||||
|
||||
|
|
|
@ -224,4 +224,3 @@ false positives.
|
|||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ and why.</li>
|
|||
|
||||
<h3>Bugzilla</h3>
|
||||
|
||||
<p>Please <a href="http://llvm.org/bugs/enter_bug.cgi?product=clang">file
|
||||
<p>Please <a href="https://bugs.llvm.org/enter_bug.cgi?product=clang">file
|
||||
bugs</a> in LLVM's Bugzilla database against the Clang <b>Static Analyzer</b>
|
||||
component.</p>
|
||||
|
||||
|
@ -45,7 +45,7 @@ component.</p>
|
|||
|
||||
<p>If you are using the analyzer to analyze code associated with an Apple NDA
|
||||
(e.g., preview versions of SDKs or seed releases of Mac OS X) please file bug
|
||||
reports to Apple's <a href="http://bugreporter.apple.com">Bug Reporter</a> web
|
||||
reports to Apple's <a href="https://feedbackassistant.apple.com/welcome">Feedback Assistant</a> web
|
||||
site.</p>
|
||||
|
||||
<p>You are free to always file bugs through this website, but this option is less
|
||||
|
@ -59,4 +59,3 @@ the analyzer has access to that bug database.</p>
|
|||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -78,7 +78,7 @@ invoked from the command line, and is intended to be run in tandem with a build
|
|||
of a codebase.</p>
|
||||
|
||||
<p>The analyzer is 100% open source and is part of the <a
|
||||
href="http://clang.llvm.org">Clang</a> project. Like the rest of Clang, the
|
||||
href="https://clang.llvm.org">Clang</a> project. Like the rest of Clang, the
|
||||
analyzer is implemented as a C++ library that can be used by other tools and
|
||||
applications.</p>
|
||||
|
||||
|
@ -161,7 +161,7 @@ Objective-C programs that is freely available, extensible, and has a high qualit
|
|||
<h3 id="Clang">Part of Clang and LLVM</h3>
|
||||
|
||||
<p>As its name implies, the Clang Static Analyzer is built on top of <a
|
||||
href="http://clang.llvm.org">Clang</a> and <a href="http://llvm.org">LLVM</a>.
|
||||
href="https://clang.llvm.org">Clang</a> and <a href="https://llvm.org">LLVM</a>.
|
||||
Strictly speaking, the analyzer is part of Clang, as Clang consists of a set of
|
||||
reusable C++ libraries for building powerful source-level tools. The static
|
||||
analysis engine used by the Clang Static Analyzer is a Clang library, and has
|
||||
|
@ -220,4 +220,3 @@ patches.</p>
|
|||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ weeks old.</p>
|
|||
we need volunteers who are willing to help provide such regular builds.
|
||||
If you wish to help contribute regular builds of the analyzer on other
|
||||
platforms, please email the <a
|
||||
href="http://lists.llvm.org/mailman/listinfo/cfe-dev">Clang
|
||||
href="https://lists.llvm.org/mailman/listinfo/cfe-dev">Clang
|
||||
Developers' mailing list</a>.</p>
|
||||
|
||||
<h3>Using Packaged Builds</h3>
|
||||
|
@ -81,7 +81,7 @@ determine where to find its accompanying files.</p>
|
|||
|
||||
<p>For other platforms, you must build Clang and LLVM manually. To do
|
||||
so, please follow the instructions for <a
|
||||
href="http://clang.llvm.org/get_started.html#build">building Clang from
|
||||
href="https://clang.llvm.org/get_started.html#build">building Clang from
|
||||
source code</a>.<p>
|
||||
|
||||
<p>Once the Clang is built, you need to add the following to your path:</p>
|
||||
|
@ -108,4 +108,3 @@ when clang is built.</p></li>
|
|||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
power. Most of the projects listed here are infrastructure-related so this list
|
||||
is an addition to the <a href="potential_checkers.html">potential checkers
|
||||
list</a>. If you are interested in tackling one of these, please send an email
|
||||
to the <a href=http://lists.llvm.org/mailman/listinfo/cfe-dev>cfe-dev
|
||||
to the <a href=https://lists.llvm.org/mailman/listinfo/cfe-dev>cfe-dev
|
||||
mailing list</a> to notify other members of the community.</p>
|
||||
|
||||
<ul>
|
||||
|
@ -51,7 +51,7 @@ mailing list</a> to notify other members of the community.</p>
|
|||
<li><code>alpha.unix.StreamChecker</code>
|
||||
<p>A SimpleStreamChecker has been presented in the Building a Checker in 24
|
||||
Hours talk
|
||||
(<a href="http://llvm.org/devmtg/2012-11/Zaks-Rose-Checker24Hours.pdf">slides</a>
|
||||
(<a href="https://llvm.org/devmtg/2012-11/Zaks-Rose-Checker24Hours.pdf">slides</a>
|
||||
<a href="https://youtu.be/kdxlsP5QVPw">video</a>).</p>
|
||||
|
||||
<p>This alpha checker is an attempt to write a production grade stream checker.
|
||||
|
@ -144,7 +144,7 @@ mailing list</a> to notify other members of the community.</p>
|
|||
<p>Currently in the analyzer the value of a union is always regarded as
|
||||
an unknown.
|
||||
This problem was
|
||||
previously <a href="http://lists.llvm.org/pipermail/cfe-dev/2017-March/052864.html">discussed</a>
|
||||
previously <a href="https://lists.llvm.org/pipermail/cfe-dev/2017-March/052864.html">discussed</a>
|
||||
on the mailing list, but no solution was implemented.
|
||||
<p><i> (Difficulty: Medium) </i></p></p>
|
||||
</li>
|
||||
|
@ -228,4 +228,3 @@ mailing list</a> to notify other members of the community.</p>
|
|||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
memory.LeakEvalOrder</span><span class="lang">
|
||||
(C, C++)</span><div class="descr">
|
||||
Potential memory leaks caused by an undefined argument evaluation order.
|
||||
<p>Source: <a href="http://www.boost.org/doc/libs/1_49_0/libs/smart_ptr/shared_ptr.htm#BestPractices">
|
||||
<p>Source: <a href="https://www.boost.org/doc/libs/1_49_0/libs/smart_ptr/shared_ptr.htm#BestPractices">
|
||||
boost docs: shared_ptr</a>.</p></div></div></td>
|
||||
<td><div class="exampleContainer expandable">
|
||||
<div class="example"><pre>
|
||||
|
@ -92,7 +92,7 @@ memory.NegativeArraySize</span><span class="lang">
|
|||
'n' is used to specify the buffer size may be negative.
|
||||
<br>Note: possibly an enhancement to <span class="name">
|
||||
alpha.security.MallocOverflow</span>.
|
||||
<p>Source: <a href="http://cwe.mitre.org/data/definitions/20.html">CWE-20,
|
||||
<p>Source: <a href="https://cwe.mitre.org/data/definitions/20.html">CWE-20,
|
||||
Example 2</a>.</p></div></div></td>
|
||||
<td><div class="exampleContainer expandable">
|
||||
<div class="example"><pre>
|
||||
|
@ -127,7 +127,7 @@ void test() {
|
|||
delete[] p;
|
||||
}
|
||||
</pre></div></div></td>
|
||||
<td class="aligned"><a href="http://reviews.llvm.org/D6178">
|
||||
<td class="aligned"><a href="https://reviews.llvm.org/D6178">
|
||||
D6178</a></td></tr>
|
||||
|
||||
</table>
|
||||
|
@ -294,7 +294,7 @@ int test(bool cond) {
|
|||
return i;
|
||||
}
|
||||
</pre></div></div></td>
|
||||
<td class="aligned"><a href="http://llvm.org/bugs/show_bug.cgi?id=16890">PR16890</a></td></tr>
|
||||
<td class="aligned"><a href="https://bugs.llvm.org/show_bug.cgi?id=16890">PR16890</a></td></tr>
|
||||
|
||||
<tr><td><div class="namedescr expandable"><span class="name">
|
||||
deadcode.IdempotentOperations</span><span class="lang">
|
||||
|
@ -360,7 +360,7 @@ void use(int fd) {
|
|||
print("%d", count); // should not warn
|
||||
}
|
||||
</pre></div></div></td>
|
||||
<td class="aligned"><a href="http://llvm.org/bugs/show_bug.cgi?id=18701">PR18701</a></td></tr>
|
||||
<td class="aligned"><a href="https://bugs.llvm.org/show_bug.cgi?id=18701">PR18701</a></td></tr>
|
||||
|
||||
</table>
|
||||
|
||||
|
@ -447,7 +447,7 @@ void test() {
|
|||
delete[] p;
|
||||
}
|
||||
</pre></div></div></td>
|
||||
<td class="aligned"><a href="http://reviews.llvm.org/D8273">D8273</a></td></tr>
|
||||
<td class="aligned"><a href="https://reviews.llvm.org/D8273">D8273</a></td></tr>
|
||||
|
||||
|
||||
<tr><td><div class="namedescr expandable"><span class="name">
|
||||
|
@ -1734,7 +1734,7 @@ different.IntegerOverflow</span><span class="lang">
|
|||
Integer overflow.
|
||||
<br>Note: partially handled by Clang core
|
||||
(search for 'overflow in expression' warning in Clang tests).
|
||||
<p>Source: <a href="http://cwe.mitre.org/data/definitions/190.html">
|
||||
<p>Source: <a href="https://cwe.mitre.org/data/definitions/190.html">
|
||||
CWE-190</a>.</p></div></div></td>
|
||||
<td><div class="exampleContainer expandable">
|
||||
<div class="example"><pre>
|
||||
|
@ -1761,7 +1761,7 @@ int test() {
|
|||
different.SignExtension</span><span class="lang">
|
||||
(C)</span><div class="descr">
|
||||
Unexpected sign extension might take place.
|
||||
<p>Source: <a href="http://cwe.mitre.org/data/definitions/194.html">
|
||||
<p>Source: <a href="https://cwe.mitre.org/data/definitions/194.html">
|
||||
CWE-194</a>.</p></div></div></td>
|
||||
<td><div class="exampleContainer expandable">
|
||||
<div class="example"><pre>
|
||||
|
@ -1789,7 +1789,7 @@ unsigned int test(int i) {
|
|||
different.NumericTruncation</span><span class="lang">
|
||||
(C)</span><div class="descr">
|
||||
Numeric truncation might take place.
|
||||
<p>Source: <a href="http://cwe.mitre.org/data/definitions/197.html">
|
||||
<p>Source: <a href="https://cwe.mitre.org/data/definitions/197.html">
|
||||
CWE-197</a>.</p></div></div></td>
|
||||
<td><div class="exampleContainer expandable">
|
||||
<div class="example"><pre>
|
||||
|
@ -1851,7 +1851,7 @@ white space-delimited string pointed to by <code><i>lpCommandLine</code></i>.
|
|||
If the executable or path name has a space in it, there is a risk that a
|
||||
different executable could be run because of the way the function parses
|
||||
spaces.
|
||||
<p>Source: <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms682425%28v=vs.85%29.aspx">
|
||||
<p>Source: <a href="https://docs.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-createprocessa#security-remarks">
|
||||
MSDN: CreateProcess function, Security Remarks</a>.</p></div></div></td>
|
||||
<td><div class="exampleContainer expandable">
|
||||
<div class="example"><pre>
|
||||
|
@ -1873,7 +1873,7 @@ WinAPI.LoadLibrary</span><span class="lang">
|
|||
(C)</span><div class="descr">
|
||||
The <code>SearchPath()</code> function is used to retrieve a path to a DLL for
|
||||
a subsequent <code>LoadLibrary()</code> call.
|
||||
<p>Source: <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms684175%28v=vs.85%29.aspx">
|
||||
<p>Source: <a href="https://docs.microsoft.com/en-us/windows/win32/api/libloaderapi/nf-libloaderapi-loadlibrarya#security-remarks">
|
||||
MSDN: LoadLibrary function, Security Remarks</a>.</p></div></div></td>
|
||||
<td><div class="exampleContainer expandable">
|
||||
<div class="example"><pre>
|
||||
|
@ -1894,7 +1894,7 @@ WinAPI.WideCharToMultiByte</span><span class="lang">
|
|||
Buffer overrun while calling <code>WideCharToMultiByte()</code>. The size of
|
||||
the input buffer equals the number of characters in the Unicode string, while
|
||||
the size of the output buffer equals the number of bytes.
|
||||
<p>Source: <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/dd374130%28v=vs.85%29.aspx">
|
||||
<p>Source: <a href="https://docs.microsoft.com/en-us/windows/win32/api/stringapiset/nf-stringapiset-widechartomultibyte">
|
||||
MSDN: WideCharToMultiByte function</a>.</p></div></div></td>
|
||||
<td><div class="exampleContainer expandable">
|
||||
<div class="example"><pre>
|
||||
|
|
|
@ -380,4 +380,3 @@ $ find . | grep xcspec | grep Clang
|
|||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -381,4 +381,3 @@ full path to the compiler that Xcode is using, and use that as an argument to
|
|||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -141,4 +141,3 @@ $ sudo set-xcode-analyzer --use-xcode-clang
|
|||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -53,7 +53,7 @@
|
|||
<li>GCC supports more targets than LLVM.</li>
|
||||
<li>GCC supports many language extensions, some of which are not implemented
|
||||
by Clang. For instance, in C mode, GCC supports
|
||||
<a href="http://gcc.gnu.org/onlinedocs/gcc/Nested-Functions.html">nested
|
||||
<a href="https://gcc.gnu.org/onlinedocs/gcc/Nested-Functions.html">nested
|
||||
functions</a> and has an
|
||||
<a href="https://gcc.gnu.org/onlinedocs/gcc/Variable-Length.html">extension
|
||||
allowing VLAs in structs</a>.
|
||||
|
@ -72,8 +72,8 @@
|
|||
generation. GCC is built as a monolithic static compiler, which makes
|
||||
it extremely difficult to use as an API and integrate into other tools.
|
||||
Further, its historic design and <a
|
||||
href="http://gcc.gnu.org/ml/gcc/2007-11/msg00460.html">current</a>
|
||||
<a href="http://gcc.gnu.org/ml/gcc/2004-12/msg00888.html">policy</a>
|
||||
href="https://gcc.gnu.org/ml/gcc/2007-11/msg00460.html">current</a>
|
||||
<a href="https://gcc.gnu.org/ml/gcc/2004-12/msg00888.html">policy</a>
|
||||
makes it difficult to decouple the front-end from the rest of the
|
||||
compiler. </li>
|
||||
<li>Various GCC design decisions make it very difficult to reuse: its build
|
||||
|
@ -112,7 +112,7 @@
|
|||
<li><a href="compatibility.html#cxx">Clang's support for C++</a> is more
|
||||
compliant than GCC's in many ways.</li>
|
||||
<li>Clang supports
|
||||
<a href="http://clang.llvm.org/docs/LanguageExtensions.html">many language
|
||||
<a href="https://clang.llvm.org/docs/LanguageExtensions.html">many language
|
||||
extensions</a>, some of which are not implemented by GCC. For instance,
|
||||
Clang provides attributes for checking thread safety and extended vector
|
||||
types.</li>
|
||||
|
|
|
@ -784,7 +784,7 @@ void g(X x) {
|
|||
</pre>
|
||||
|
||||
<p>This affects some early C++11 code, including Boost's popular <a
|
||||
href="http://www.boost.org/doc/libs/release/libs/smart_ptr/shared_ptr.htm"><tt>shared_ptr</tt></a>
|
||||
href="https://www.boost.org/doc/libs/release/libs/smart_ptr/shared_ptr.htm"><tt>shared_ptr</tt></a>
|
||||
up to version 1.47.0. The fix for Boost's <tt>shared_ptr</tt> is
|
||||
<a href="https://svn.boost.org/trac/boost/changeset/73202">available here</a>.</p>
|
||||
|
||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -64,7 +64,7 @@ optimizers.</p>
|
|||
|
||||
<p>
|
||||
Select this option to run the <a
|
||||
href="http://llvm.org/cmds/llvm-bcanalyzer.html">llvm-bcanalyzer</a> tool
|
||||
href="https://llvm.org/docs/CommandGuide/llvm-bcanalyzer.html">llvm-bcanalyzer</a> tool
|
||||
on the generated bytecode, which introspects into the format of the .bc file
|
||||
itself. </p>
|
||||
|
||||
|
@ -73,11 +73,10 @@ itself. </p>
|
|||
|
||||
<p>
|
||||
Select this option to run the <a
|
||||
href="http://llvm.org/cmds/llvm2cpp.html">llvm2cpp</a> tool
|
||||
href="https://llvm.org/cmds/llvm2cpp.html">llvm2cpp</a> tool
|
||||
on the generated bytecode, which auto generates the C++ API calls that could
|
||||
be used to create the .bc file.
|
||||
</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -290,7 +290,7 @@ to get bigger goals accomplished: it makes sense for everyone to work
|
|||
together.</p>
|
||||
|
||||
<p>For more information about the LLVM/clang license, please see the <a
|
||||
href="http://llvm.org/docs/DeveloperPolicy.html#license">LLVM License
|
||||
href="https://llvm.org/docs/DeveloperPolicy.html#copyright-license-and-patents">LLVM License
|
||||
Description</a> for more information.</p>
|
||||
|
||||
|
||||
|
|
|
@ -28,15 +28,15 @@ to author patches.
|
|||
|
||||
<h2>Follow what's going on</h2>
|
||||
|
||||
<p>Clang is a subproject of the <a href="http://llvm.org">LLVM Project</a>, but
|
||||
<p>Clang is a subproject of the <a href="https://llvm.org">LLVM Project</a>, but
|
||||
has its own mailing lists because the communities have people with different
|
||||
interests. The two clang lists are:</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="http://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits
|
||||
<li><a href="https://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits
|
||||
</a> - This list is for patch submission/discussion.</li>
|
||||
|
||||
<li><a href="http://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev</a> -
|
||||
<li><a href="https://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev</a> -
|
||||
This list is for everything else Clang related (questions and answers, design
|
||||
discussions, etc).</li>
|
||||
|
||||
|
@ -45,17 +45,17 @@ discussions, etc).</li>
|
|||
<p>If you are interested in clang only, these two lists should be all
|
||||
you need. If you are interested in the LLVM optimizer and code generator,
|
||||
please consider signing up for <a
|
||||
href="http://lists.llvm.org/mailman/listinfo/llvm-dev">llvm-dev</a> and <a
|
||||
href="http://lists.llvm.org/mailman/listinfo/llvm-commits">llvm-commits</a>
|
||||
href="https://lists.llvm.org/mailman/listinfo/llvm-dev">llvm-dev</a> and <a
|
||||
href="https://lists.llvm.org/mailman/listinfo/llvm-commits">llvm-commits</a>
|
||||
as well.</p>
|
||||
|
||||
|
||||
<p>The most common way to talk with other developers on the project is through
|
||||
the <a href="http://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev mailing
|
||||
the <a href="https://lists.llvm.org/mailman/listinfo/cfe-dev">cfe-dev mailing
|
||||
list</a>. The clang mailing list is a very friendly place and we welcome
|
||||
newcomers. In addition to the cfe-dev list, a significant amount of design
|
||||
discussion takes place on the <a
|
||||
href="http://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits mailing
|
||||
href="https://lists.llvm.org/mailman/listinfo/cfe-commits">cfe-commits mailing
|
||||
list</a>. All of these lists have archives, so you can browse through previous
|
||||
discussions or follow the list development on the web if you prefer.</p>
|
||||
|
||||
|
|
|
@ -40,11 +40,11 @@ follows:</p>
|
|||
<a href="https://llvm.org/docs/GettingStarted.html#requirements">
|
||||
Getting Started with the LLVM System - Requirements</a>.</li>
|
||||
<li>Note also that Python is needed for running the test suite.
|
||||
Get it at: <a href="http://www.python.org/download">
|
||||
http://www.python.org/download</a></li>
|
||||
Get it at: <a href="https://www.python.org/downloads/">
|
||||
https://www.python.org/downloads/</a></li>
|
||||
<li>Standard build process uses CMake. Get it at:
|
||||
<a href="http://www.cmake.org/download">
|
||||
http://www.cmake.org/download</a></li>
|
||||
<a href="https://cmake.org/download/">
|
||||
https://cmake.org/download/</a></li>
|
||||
</ul>
|
||||
|
||||
<li>Check out the LLVM project:
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
<!--=====================================================================-->
|
||||
|
||||
<p>Clang follows the
|
||||
LLVM <a href="http://llvm.org/docs/CodingStandards.html">Coding
|
||||
LLVM <a href="https://llvm.org/docs/CodingStandards.html">Coding
|
||||
Standards</a>. When submitting patches, please take care to follow these standards
|
||||
and to match the style of the code to that present in Clang (for example, in
|
||||
terms of indentation, bracing, and statement spacing).</p>
|
||||
|
@ -53,7 +53,7 @@
|
|||
use <tt>llvm::errs()</tt>. Other uses of <tt>cstdio</tt> impose behavior
|
||||
upon clients and block integrating Clang as a library. Libraries should
|
||||
support <tt>raw_ostream</tt> based interfaces for textual
|
||||
output. See <a href="http://llvm.org/docs/CodingStandards.html#ll_raw_ostream">Coding
|
||||
output. See <a href="https://llvm.org/docs/CodingStandards.html#use-raw-ostream">Coding
|
||||
Standards</a>.</li>
|
||||
</ul>
|
||||
|
||||
|
@ -64,12 +64,12 @@
|
|||
<p>Both Clang and LLVM use doxygen to provide API documentation. Their
|
||||
respective web pages (generated nightly) are here:</p>
|
||||
<ul>
|
||||
<li><a href="http://clang.llvm.org/doxygen">Clang</a></li>
|
||||
<li><a href="http://llvm.org/doxygen">LLVM</a></li>
|
||||
<li><a href="https://clang.llvm.org/doxygen">Clang</a></li>
|
||||
<li><a href="https://llvm.org/doxygen">LLVM</a></li>
|
||||
</ul>
|
||||
|
||||
<p>For work on the LLVM IR generation, the LLVM assembly language
|
||||
<a href="http://llvm.org/docs/LangRef.html">reference manual</a> is
|
||||
<a href="https://llvm.org/docs/LangRef.html">reference manual</a> is
|
||||
also useful.</p>
|
||||
|
||||
<!--=====================================================================-->
|
||||
|
@ -87,7 +87,7 @@
|
|||
the <tt>isConstQualified()</tt>, for example, to get one of the
|
||||
qualifiers, and the <tt>getTypePtr()</tt> method to get the
|
||||
wrapped <tt>Type*</tt> which you can then dump.</li>
|
||||
<li>For <a href="http://lldb.llvm.org"> <tt>LLDB</tt></a> users there are
|
||||
<li>For <a href="https://lldb.llvm.org"> <tt>LLDB</tt></a> users there are
|
||||
data formatters for clang data structures in
|
||||
<a href="https://github.com/llvm/llvm-project/blob/master/clang/utils/ClangDataFormat.py">
|
||||
<tt>clang/utils/ClangDataFormat.py</tt></a>.</li>
|
||||
|
@ -164,7 +164,7 @@
|
|||
<tt>make test VG=1</tt> in the top-level clang directory.</p>
|
||||
|
||||
<p>For more intensive changes, running
|
||||
the <a href="http://llvm.org/docs/TestingGuide.html#testsuiterun">LLVM
|
||||
the <a href="https://llvm.org/docs/TestingGuide.html#quick-start">LLVM
|
||||
Test Suite</a> with clang is recommended. Currently the best way to
|
||||
override LLVMGCC, as in: <tt>make LLVMGCC="clang -std=gnu89"
|
||||
TEST=nightly report</tt> (make sure <tt>clang</tt> is in your PATH or use the
|
||||
|
@ -179,7 +179,7 @@
|
|||
|
||||
<p>Note that the test runner is based on
|
||||
Python, which must be installed. Find Python at:
|
||||
<a href="http://www.python.org/download/">http://www.python.org/download/</a>.
|
||||
<a href="https://www.python.org/downloads/">https://www.python.org/downloads/</a>.
|
||||
Download the latest stable version.</p>
|
||||
|
||||
<p>The GnuWin32 tools are also necessary for running the tests.
|
||||
|
@ -197,9 +197,9 @@
|
|||
|
||||
<p>
|
||||
Please see also
|
||||
<a href="http://llvm.org/docs/GettingStartedVS.html">Getting Started
|
||||
<a href="https://llvm.org/docs/GettingStartedVS.html">Getting Started
|
||||
with the LLVM System using Microsoft Visual Studio</a> and
|
||||
<a href="http://llvm.org/docs/CMake.html">Building LLVM with CMake</a>.
|
||||
<a href="https://llvm.org/docs/CMake.html">Building LLVM with CMake</a>.
|
||||
</p>
|
||||
|
||||
<!--=====================================================================-->
|
||||
|
@ -278,7 +278,7 @@ Testing Time: 81.52s
|
|||
<p>To return changes to the Clang team, unless you have checkin
|
||||
privileges, the preferred way is to send patch files
|
||||
<a href="https://llvm.org/docs/Contributing.html#how-to-submit-a-patch">using LLVM's Phabricator</a> with an explanation of what the patch is for. Clang follows <a
|
||||
href="http://llvm.org/docs/DeveloperPolicy.html">LLVM's developer policy</a>.
|
||||
href="https://llvm.org/docs/DeveloperPolicy.html">LLVM's developer policy</a>.
|
||||
If your patch requires a wider discussion (for example, because it is an
|
||||
architectural change), you can use the cfe-dev mailing list.</p>
|
||||
|
||||
|
@ -315,7 +315,7 @@ Testing Time: 81.52s
|
|||
can also use <tt>-emit-llvm-bc</tt> to write an LLVM bitcode file
|
||||
which can be processed by the suite of LLVM tools
|
||||
like <tt>llvm-dis</tt>, <tt>llvm-nm</tt>, etc. See the LLVM
|
||||
<a href="http://llvm.org/docs/CommandGuide/">Command Guide</a>
|
||||
<a href="https://llvm.org/docs/CommandGuide/">Command Guide</a>
|
||||
for more information.</p>
|
||||
|
||||
</div>
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
<p>The Clang project provides a language front-end and tooling infrastructure
|
||||
for languages in the C language family (C, C++, Objective C/C++, OpenCL,
|
||||
CUDA, and RenderScript) for the <a href="http://www.llvm.org/">LLVM</a>
|
||||
CUDA, and RenderScript) for the <a href="https://www.llvm.org/">LLVM</a>
|
||||
project. Both a GCC-compatible compiler driver (<tt>clang</tt>) and an
|
||||
MSVC-compatible compiler driver (<tt>clang-cl.exe</tt>) are provided. You
|
||||
can <a href="get_started.html">get and build</a> the source today.</p>
|
||||
|
|
|
@ -27,8 +27,8 @@
|
|||
<dd>
|
||||
<p>
|
||||
<b>Site:</b>
|
||||
<a href="http://wiki.freebsd.org/BuildingFreeBSDWithClang">
|
||||
http://wiki.freebsd.org/BuildingFreeBSDWithClang</a>
|
||||
<a href="https://wiki.freebsd.org/BuildingFreeBSDWithClang">
|
||||
https://wiki.freebsd.org/BuildingFreeBSDWithClang</a>
|
||||
</p>
|
||||
<p>
|
||||
This is an effort to get FreeBSD to build with clang/llvm.
|
||||
|
@ -51,9 +51,9 @@
|
|||
<dd>
|
||||
<p>
|
||||
<b>Sites:</b><br />
|
||||
<a href="http://clang.debian.net/">http://clang.debian.net/</a><br />
|
||||
<a href="http://wiki.debian.org/llvm-clang">
|
||||
http://wiki.debian.org/llvm-clang</a>
|
||||
<a href="https://clang.debian.net/">https://clang.debian.net/</a><br />
|
||||
<a href="https://wiki.debian.org/llvm-clang">
|
||||
https://wiki.debian.org/llvm-clang</a>
|
||||
</p>
|
||||
<p>
|
||||
Notes on using Clang to rebuild the whole Debian archive.
|
||||
|
@ -97,7 +97,7 @@
|
|||
<dd>
|
||||
<p>
|
||||
<b>Site:</b>
|
||||
<a href="http://github.com/Ericsson/CodeCompass">http://github.com/Ericsson/CodeCompass</a>
|
||||
<a href="https://github.com/Ericsson/CodeCompass">https://github.com/Ericsson/CodeCompass</a>
|
||||
</p>
|
||||
<p>
|
||||
CodeCompass is an open-source, extensible code comprehension framework which uses LLVM/Clang to analyze and visualize C and C++ projects. It also supports both regex-based text search, discovering complex C/C++ language elements, with advanced navigation and visualisation.
|
||||
|
@ -108,7 +108,7 @@
|
|||
<dd>
|
||||
<p>
|
||||
<b>Site:</b>
|
||||
<a href="http://github.com/Ericsson/CodeChecker">http://github.com/Ericsson/CodeChecker</a>
|
||||
<a href="https://github.com/Ericsson/CodeChecker">https://github.com/Ericsson/CodeChecker</a>
|
||||
</p>
|
||||
<p>
|
||||
CodeChecker is a static analysis infrastructure built on the LLVM/Clang Static Analyzer toolchain. It provides a user interface to execute analysis of C/C++ projects with Clang SA and Clang-Tidy, which outputs are then stored into a database navigable via a web application. This web application and a corresponding command-line tool supports a variety of report management and issue triaging options, such as difference view between analyses, automatic incremental analysis, marking and commenting on individual reports.
|
||||
|
|
|
@ -36,12 +36,12 @@
|
|||
<b>sanitizer runtimes</b> - runtime libraries that are required to run
|
||||
the code with sanitizer instrumentation. This includes runtimes for:
|
||||
<ul>
|
||||
<li><a href="http://clang.llvm.org/docs/AddressSanitizer.html">AddressSanitizer</a></li>
|
||||
<li><a href="http://clang.llvm.org/docs/ThreadSanitizer.html">ThreadSanitizer</a></li>
|
||||
<li><a href="http://clang.llvm.org/docs/UsersManual.html#opt-fsanitize-undefined">UndefinedBehaviorSanitizer</a></li>
|
||||
<li><a href="http://clang.llvm.org/docs/MemorySanitizer.html">MemorySanitizer</a></li>
|
||||
<li><a href="http://clang.llvm.org/docs/LeakSanitizer.html">LeakSanitizer</a></li>
|
||||
<li><a href="http://clang.llvm.org/docs/DataFlowSanitizer.html">DataFlowSanitizer</a></li>
|
||||
<li><a href="https://clang.llvm.org/docs/AddressSanitizer.html">AddressSanitizer</a></li>
|
||||
<li><a href="https://clang.llvm.org/docs/ThreadSanitizer.html">ThreadSanitizer</a></li>
|
||||
<li><a href="https://clang.llvm.org/docs/UsersManual.html#opt-fsanitize-undefined">UndefinedBehaviorSanitizer</a></li>
|
||||
<li><a href="https://clang.llvm.org/docs/MemorySanitizer.html">MemorySanitizer</a></li>
|
||||
<li><a href="https://clang.llvm.org/docs/LeakSanitizer.html">LeakSanitizer</a></li>
|
||||
<li><a href="https://clang.llvm.org/docs/DataFlowSanitizer.html">DataFlowSanitizer</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
|
@ -55,7 +55,7 @@
|
|||
</p>
|
||||
|
||||
<p>All of the code in the compiler-rt project is <a
|
||||
href="http://llvm.org/docs/DeveloperPolicy.html#license">dual licensed</a>
|
||||
href="https://llvm.org/docs/DeveloperPolicy.html#copyright-license-and-patents">dual licensed</a>
|
||||
under the MIT license and the UIUC License (a BSD-like license).</p>
|
||||
|
||||
<!--=====================================================================-->
|
||||
|
@ -63,11 +63,11 @@
|
|||
<!--=====================================================================-->
|
||||
|
||||
<p>Currently compiler-rt is primarily used by
|
||||
the <a href="http://clang.llvm.org">Clang</a>
|
||||
and <a href="http://llvm.org">LLVM</a> projects as the implementation for
|
||||
the <a href="https://clang.llvm.org">Clang</a>
|
||||
and <a href="https://llvm.org">LLVM</a> projects as the implementation for
|
||||
the runtime compiler support libraries. For more information on using
|
||||
compiler-rt with Clang, please see the Clang
|
||||
<a href="http://clang.llvm.org/get_started.html">Getting Started</a>
|
||||
<a href="https://clang.llvm.org/get_started.html">Getting Started</a>
|
||||
page.</p>
|
||||
|
||||
<!--=====================================================================-->
|
||||
|
@ -81,7 +81,7 @@
|
|||
</ul>
|
||||
|
||||
<p>Most sanitizer runtimes are supported only on Linux x86-64. See tool-specific
|
||||
pages in <a href="http://clang.llvm.org/docs/index.html">Clang docs</a> for more
|
||||
pages in <a href="https://clang.llvm.org/docs/index.html">Clang docs</a> for more
|
||||
details.</p>
|
||||
|
||||
<!--=====================================================================-->
|
||||
|
@ -116,7 +116,7 @@
|
|||
cmake.
|
||||
|
||||
<p>To build it separately, first
|
||||
<a href="http://llvm.org/docs/CMake.html#quick-start">build LLVM</a>
|
||||
<a href="https://llvm.org/docs/CMake.html#quick-start">build LLVM</a>
|
||||
separately to get llvm-config binary, and then run:
|
||||
|
||||
<ul>
|
||||
|
@ -128,7 +128,7 @@
|
|||
</ul>
|
||||
|
||||
<p>Tests for sanitizer runtimes are ported to
|
||||
<a href="http://llvm.org/docs/CommandGuide/lit.html">llvm-lit</a> and are
|
||||
<a href="https://llvm.org/docs/CommandGuide/lit.html">llvm-lit</a> and are
|
||||
run by <b>make check-all</b> command in LLVM/Clang/compiler-rt build tree.</p>
|
||||
|
||||
<p>compiler-rt libraries are installed to the system with <b>make install</b>
|
||||
|
@ -137,10 +137,10 @@
|
|||
|
||||
<p>compiler-rt doesn't have its own mailing list, if you have questions please
|
||||
email the <a
|
||||
href="http://lists.llvm.org/mailman/listinfo/llvm-dev">llvm-dev</a> mailing
|
||||
href="https://lists.llvm.org/mailman/listinfo/llvm-dev">llvm-dev</a> mailing
|
||||
list. Commits to the compiler-rt SVN module are automatically sent to the
|
||||
<a
|
||||
href="http://lists.llvm.org/mailman/listinfo/llvm-commits">llvm-commits</a>
|
||||
href="https://lists.llvm.org/mailman/listinfo/llvm-commits">llvm-commits</a>
|
||||
mailing list.</p>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
libclc is an open source, BSD/MIT dual licensed
|
||||
implementation of the library requirements of the
|
||||
OpenCL C programming language, as specified by the <a
|
||||
href="http://www.khronos.org/registry/cl/specs/opencl-1.1.pdf">OpenCL
|
||||
href="https://www.khronos.org/registry/OpenCL/specs/opencl-1.1.pdf">OpenCL
|
||||
1.1 Specification</a>. The following sections of the specification
|
||||
impose library requirements:
|
||||
<ul>
|
||||
|
@ -25,7 +25,7 @@ impose library requirements:
|
|||
</p>
|
||||
|
||||
<p>
|
||||
libclc is intended to be used with the <a href="http://clang.llvm.org/">Clang</a>
|
||||
libclc is intended to be used with the <a href="https://clang.llvm.org/">Clang</a>
|
||||
compiler's OpenCL frontend.
|
||||
</p>
|
||||
|
||||
|
@ -47,7 +47,7 @@ support for more targets is welcome.
|
|||
|
||||
<h2>Mailing List</h2>
|
||||
|
||||
libclc-dev@lists.llvm.org (<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/libclc-dev">subscribe/unsubscribe</a>, <a href="http://lists.llvm.org/pipermail/libclc-dev/">archives</a>)
|
||||
libclc-dev@lists.llvm.org (<a href="https://lists.llvm.org/cgi-bin/mailman/listinfo/libclc-dev">subscribe/unsubscribe</a>, <a href="https://lists.llvm.org/pipermail/libclc-dev/">archives</a>)
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
C++11, C++14 and above.</p>
|
||||
|
||||
<p>All of the code in libc++ is <a
|
||||
href="https://llvm.org/docs/DeveloperPolicy.html#license">dual licensed</a>
|
||||
href="https://llvm.org/docs/DeveloperPolicy.html#copyright-license-and-patents">dual licensed</a>
|
||||
under the MIT license and the UIUC License (a BSD-like license).</p>
|
||||
|
||||
<!--=====================================================================-->
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<body>
|
||||
<div id="menu">
|
||||
<div>
|
||||
<a href="http://llvm.org/">LLVM Home</a>
|
||||
<a href="https://llvm.org/">LLVM Home</a>
|
||||
</div>
|
||||
|
||||
<div class="submenu">
|
||||
|
@ -23,9 +23,9 @@
|
|||
<div class="submenu">
|
||||
<label>Quick Links</label>
|
||||
<a href="https://libcxx.llvm.org/">libc++</a>
|
||||
<a href="http://lists.llvm.org/mailman/listinfo/libcxx-dev">libcxx-dev</a>
|
||||
<a href="http://lists.llvm.org/mailman/listinfo/libcxx-commits">libcxx-commits</a>
|
||||
<a href="http://llvm.org/bugs/">Bug Reports</a>
|
||||
<a href="https://lists.llvm.org/mailman/listinfo/libcxx-dev">libcxx-dev</a>
|
||||
<a href="https://lists.llvm.org/mailman/listinfo/libcxx-commits">libcxx-commits</a>
|
||||
<a href="https://bugs.llvm.org/">Bug Reports</a>
|
||||
<a href="https://github.com/llvm/llvm-project/tree/master/libcxxabi/">Browse Sources</a>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -39,7 +39,7 @@
|
|||
C++ library.</p>
|
||||
|
||||
<p>All of the code in libc++abi is <a
|
||||
href="http://llvm.org/docs/DeveloperPolicy.html#license">dual licensed</a>
|
||||
href="https://llvm.org/docs/DeveloperPolicy.html#copyright-license-and-patents">dual licensed</a>
|
||||
under the MIT license and the UIUC License (a BSD-like license).</p>
|
||||
|
||||
<!--=====================================================================-->
|
||||
|
@ -48,7 +48,7 @@
|
|||
|
||||
<ul>
|
||||
<li>Correctness as defined by the C++11 standard.</li>
|
||||
<li>Provide a portable sublayer to ease the porting of <a href="http://libcxx.llvm.org/">libc++</a></li>
|
||||
<li>Provide a portable sublayer to ease the porting of <a href="https://libcxx.llvm.org/">libc++</a></li>
|
||||
<li>On Mac OS X, be ABI compatible with the existing low-level support.</li>
|
||||
</ul>
|
||||
|
||||
|
@ -118,7 +118,7 @@
|
|||
a different ABI library), this may interfere with test results.</p>
|
||||
|
||||
<p>Send discussions to the
|
||||
(<a href="http://lists.llvm.org/mailman/listinfo/libcxx-dev">libcxx-dev mailing list</a>).</p>
|
||||
(<a href="https://lists.llvm.org/mailman/listinfo/libcxx-dev">libcxx-dev mailing list</a>).</p>
|
||||
|
||||
<!--=====================================================================-->
|
||||
<h2>Frequently asked questions</h2>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<body>
|
||||
<div id="menu">
|
||||
<div>
|
||||
<a href="http://llvm.org/">LLVM Home</a>
|
||||
<a href="https://llvm.org/">LLVM Home</a>
|
||||
</div>
|
||||
|
||||
<div class="submenu">
|
||||
|
@ -22,9 +22,9 @@
|
|||
|
||||
<div class="submenu">
|
||||
<label>Quick Links</label>
|
||||
<a href="http://lists.llvm.org/mailman/listinfo/openmp-dev">openmp-dev</a>
|
||||
<a href="http://lists.llvm.org/mailman/listinfo/openmp-commits">openmp-commits</a>
|
||||
<a href="http://llvm.org/bugs/">Bug Reports</a>
|
||||
<a href="https://lists.llvm.org/mailman/listinfo/openmp-dev">openmp-dev</a>
|
||||
<a href="https://lists.llvm.org/mailman/listinfo/openmp-commits">openmp-commits</a>
|
||||
<a href="https://bugs.llvm.org/">Bug Reports</a>
|
||||
<a href="https://github.com/llvm/llvm-project/tree/master/openmp">Browse Sources</a>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -60,7 +60,7 @@
|
|||
</p>
|
||||
|
||||
<p>All of the code here is <a
|
||||
href="http://llvm.org/docs/DeveloperPolicy.html#license">dual licensed</a>
|
||||
href="https://llvm.org/docs/DeveloperPolicy.html#copyright-license-and-patents">dual licensed</a>
|
||||
under the MIT license and the UIUC License (a BSD-like license).
|
||||
The LICENSE.txt file at the top of the OpenMP project contains
|
||||
the license text and associated patent grants.
|
||||
|
@ -83,19 +83,19 @@
|
|||
<!--=====================================================================-->
|
||||
|
||||
<ul>
|
||||
<li>Support for the <a href="http://www.openmp.org/mp-documents/OpenMP3.1.pdf">OpenMP
|
||||
<li>Support for the <a href="https://www.openmp.org/wp-content/uploads/OpenMP3.1.pdf">OpenMP
|
||||
3.1 standard (PDF)</a> has been achieved in the Clang 3.8.0
|
||||
release.
|
||||
</li>
|
||||
|
||||
<li>Support for the
|
||||
<a href="http://www.openmp.org/mp-documents/OpenMP4.0.0.pdf">OpenMP
|
||||
4.0 standard (PDF)</a> and <a href="http://www.openmp.org/mp-documents/OpenMP4.5.pdf">OpenMP
|
||||
<a href="https://www.openmp.org/wp-content/uploads/OpenMP4.0.0.pdf">OpenMP
|
||||
4.0 standard (PDF)</a> and <a href="https://www.openmp.org/wp-content/uploads/openmp-4.5.pdf">OpenMP
|
||||
4.5 standard (PDF)</a> is now being implemented. (Some OpenMP 4.0
|
||||
and 4.5 features are already available).
|
||||
<li>High performance.</li>
|
||||
<li>ABI compatibility with <a href="http://gcc.gnu.org">Gcc</a> and
|
||||
<a href="http://software.intel.com/en-us/intel-compilers">Intel's
|
||||
<li>ABI compatibility with <a href="https://gcc.gnu.org">Gcc</a> and
|
||||
<a href="https://software.intel.com/en-us/compilers">Intel's
|
||||
existing OpenMP compilers.</a>
|
||||
We currently have binary compatibility with OpenMP
|
||||
3.1 code compiled by gcc 4.9, however we do not have support
|
||||
|
@ -149,7 +149,7 @@
|
|||
<!--=====================================================================-->
|
||||
|
||||
<p>First please review our
|
||||
<a href="http://llvm.org/docs/DeveloperPolicy.html">Developer's Policy</a>.
|
||||
<a href="https://llvm.org/docs/DeveloperPolicy.html">Developer's Policy</a>.
|
||||
|
||||
<p>To check out the code, use:</p>
|
||||
|
||||
|
@ -186,7 +186,7 @@
|
|||
</p>
|
||||
|
||||
<p>Send discussions to the
|
||||
(<a href="http://lists.llvm.org/mailman/listinfo/openmp-dev">OpenMP mailing list</a>).</p>
|
||||
(<a href="https://lists.llvm.org/mailman/listinfo/openmp-dev">OpenMP mailing list</a>).</p>
|
||||
|
||||
|
||||
<!--=====================================================================-->
|
||||
|
|
|
@ -51,7 +51,7 @@ interface.</li>
|
|||
<h2> Older releases</h2>
|
||||
|
||||
No changelog available. Please look at the <a
|
||||
href="http://repo.or.cz/w/polly-mirror.git">commit history</a>.
|
||||
href="https://repo.or.cz/w/polly-mirror.git">commit history</a>.
|
||||
|
||||
</html>
|
||||
</div>
|
||||
|
|
|
@ -25,7 +25,7 @@ of four simple steps:
|
|||
|
||||
<pre>
|
||||
mkdir polly && cd polly
|
||||
wget http://polly.llvm.org/polly.sh
|
||||
wget https://polly.llvm.org/polly.sh
|
||||
chmod +x polly.sh
|
||||
./polly.sh
|
||||
</pre>
|
||||
|
@ -34,7 +34,7 @@ chmod +x polly.sh
|
|||
<h3 id="source"> Get the code </h3>
|
||||
|
||||
<pre>
|
||||
git clone http://github.com/llvm/llvm-project.git llvm_git
|
||||
git clone https://github.com/llvm/llvm-project.git llvm_git
|
||||
</pre>
|
||||
<h3 id="build">Build Polly</h3>
|
||||
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
For many users, however, it's not the existing optimizations in Polly that are
|
||||
of most interest, but the new analyses and optimizations enabled by the Polly
|
||||
infrastructure. At
|
||||
<a href="http://polyhedral.info">polyhedral.info</a> you can get an idea of
|
||||
<a href="https://polyhedral.info">polyhedral.info</a> you can get an idea of
|
||||
what has already been done and what is possible in the context of polyhedral
|
||||
compilation.
|
||||
|
||||
|
@ -152,7 +152,7 @@
|
|||
<h4>Polly can be built without GPL licensed software</h4> After Sebastian
|
||||
Pop's
|
||||
and David Peixotto's (both Qualcomm) recent <a
|
||||
href="http://repo.or.cz/w/isl.git/commit/60703e3ee89b9d5d4d1afb6a3f611292c0884574">commit</a>
|
||||
href="https://repo.or.cz/w/isl.git/commit/60703e3ee89b9d5d4d1afb6a3f611292c0884574">commit</a>
|
||||
to isl, isl's latest development version can be built with imath instead of
|
||||
GMP. With both CLooG and gmp having become optional, the last obilgatory
|
||||
dependency to GPL licensed software has been removed. Now Polly only depends
|
||||
|
@ -194,7 +194,7 @@
|
|||
buildbots</a> has been extended. We now have 16 new blades that track
|
||||
correctness and performance when compiling the LLVM test-suite. For now five
|
||||
of them are used to provide <a
|
||||
href="http://llvm.org/perf/db_default/v4/nts/22463">fine granularity
|
||||
href="https://llvm.org/perf/db_default/v4/nts/22463">fine granularity
|
||||
reports</a> (almost per-commit)
|
||||
for 'clang -O3' (no polly). We also have six machines that track different
|
||||
configurations of polly.
|
||||
|
@ -205,11 +205,11 @@
|
|||
<h4>islplot released</h4>
|
||||
<a href="https://github.com/tobig/islplot">islplot</a> is a library that
|
||||
generates illustrations of integer sets and maps. It relies on <a
|
||||
href="http://repo.or.cz/w/isl.git">isl</a> to model the integer sets and uses the <a
|
||||
href="https://repo.or.cz/w/isl.git">isl</a> to model the integer sets and uses the <a
|
||||
href="https://pypi.python.org/pypi/islpy">islpy</a> Python bindings to access
|
||||
them. Plotting is performed with <a
|
||||
href="http://matplotlib.org">matplotlib</a>. The following <a
|
||||
href="http://nbviewer.ipython.org/github/tobig/islplot/blob/master/notebooks/islplot-examples.ipynb">
|
||||
href="https://matplotlib.org">matplotlib</a>. The following <a
|
||||
href="https://nbviewer.ipython.org/github/tobig/islplot/blob/master/notebooks/islplot-examples.ipynb">
|
||||
Examples</a> show its use.
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -217,7 +217,7 @@
|
|||
<tr><td width="120"><p>November</p></td>
|
||||
<td>
|
||||
<h4>Loop optimization BoF at upcoming LLVM conference</h4>
|
||||
At the upcoming <a href="http://llvm.org/devmtg/2013-11/#bof5">LLVM conference
|
||||
At the upcoming <a href="https://llvm.org/devmtg/2013-11/#bof5">LLVM conference
|
||||
</a> there will be a loop optimization BoF discussing Polly and other high
|
||||
level loop optimizers.
|
||||
</td>
|
||||
|
@ -226,8 +226,8 @@
|
|||
<td>
|
||||
<h4>Automatic code coverage and static analysis tests</h4>
|
||||
Sylvestre Ledru set up automatic tests for <a
|
||||
href="http://llvm.org/reports/coverage/">code coverage</a> and
|
||||
<a href="http://llvm.org/reports/scan-build/">static analysis</a>
|
||||
href="https://llvm.org/reports/coverage/">code coverage</a> and
|
||||
<a href="https://llvm.org/reports/scan-build/">static analysis</a>
|
||||
which run at least once a day and which include results for Polly.
|
||||
<h4>Move to CLooG 0.18.1 and isl 0.12.1</h4>
|
||||
With the move to an isl 0.12 version Polly can be compiled without the
|
||||
|
@ -283,13 +283,13 @@ research tool.<br \>
|
|||
<tr><td width="120"><p>February</p></td>
|
||||
<td>
|
||||
<p>Polly is an official LLVM project, reachable at <a
|
||||
href="http://polly.llvm.org">http://polly.llvm.org</a></p>
|
||||
href="https://polly.llvm.org">https://polly.llvm.org</a></p>
|
||||
</td></tr>
|
||||
<tr><td width="120"><p>January</p></td>
|
||||
<td>
|
||||
<p>Improved support for the isl scheduling optimizer</p>
|
||||
Polly can now automatically optimize all <a
|
||||
href="http://www.cse.ohio-state.edu/~pouchet/software/polybench/">polybench
|
||||
href="https://web.cse.ohio-state.edu/~pouchet.2/software/polybench/">polybench
|
||||
2.0</a> kernels without the help of
|
||||
an external optimizer. The compile time is reasonable and we can show
|
||||
notable speedups for various kernels.
|
||||
|
@ -300,7 +300,7 @@ research tool.<br \>
|
|||
<tr><td width="120"><p>November</p></td>
|
||||
<td>
|
||||
<p>
|
||||
Talk at the <a href="http://llvm.org/devmtg/2011-11/">
|
||||
Talk at the <a href="https://llvm.org/devmtg/2011-11/">
|
||||
LLVM Developer Meeting 2011</a></p>
|
||||
New SCEV parser<br>
|
||||
(Allows parameters in array subscript and max/signextend)
|
||||
|
@ -384,7 +384,7 @@ research tool.<br \>
|
|||
<tr>
|
||||
<td><p> November </p></td>
|
||||
<td><p>Talk at the <a
|
||||
href="http://llvm.org/devmtg/2010-11/">LLVM Developer Meeting</a> </p></td>
|
||||
href="https://llvm.org/devmtg/2010-11/">LLVM Developer Meeting</a> </p></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
<h1>Performance</h1>
|
||||
|
||||
<p>To evaluate the performance benefits Polly currently provides we compiled the
|
||||
<a href="http://www.cse.ohio-state.edu/~pouchet/software/polybench/">Polybench
|
||||
<a href="https://web.cse.ohio-state.edu/~pouchet.2/software/polybench/">Polybench
|
||||
2.0</a> benchmark suite. Each benchmark was run with double precision floating
|
||||
point values on an Intel Core Xeon X5670 CPU @ 2.93GHz (12 cores, 24 thread)
|
||||
system. We used <a href="http://pocc.sf.net">PoCC</a> and the included <a
|
||||
|
|
|
@ -21,15 +21,15 @@
|
|||
|
||||
<ul>
|
||||
<li><b>VoIP/SIP:</b> sip:000777polyhedral@iptel.org<br />
|
||||
<a href="http://ekiga.org">Ekiga</a> is a SIP client that works well for
|
||||
<a href="https://www.ekiga.org">Ekiga</a> is a SIP client that works well for
|
||||
most of us.</li>
|
||||
<li><b>Traditional Dailin Numbers:</b><br />
|
||||
<li><b>Traditional Dial In Numbers:</b><br />
|
||||
To use your normal land line phone to connect to the conference dial
|
||||
one of the many available <a
|
||||
href="http://www.sipbroker.com/sipbroker/action/pstnNumbers">dial in
|
||||
numbers</a>. When asked for the number to connect type: <em>*011497659</em>.
|
||||
<br />
|
||||
Attention: Some of the dial in numbers do not work reliable. If you are not
|
||||
Attention: Some of the dial in numbers do not work reliably. If you are not
|
||||
asked for the number you want to connect to after a couple of seconds, just
|
||||
try another one. <br/>
|
||||
Some selected dial in numbers:
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
href="https://developers.google.com/open-source/gsoc/">Google Summer of
|
||||
Code</a> projects. In case you are interested in a Google Summer of code
|
||||
project make sure to reach out via the Polly <a
|
||||
href="http://groups.google.com/group/polly-dev">mailing list</a> early to
|
||||
href="https://groups.google.com/group/polly-dev">mailing list</a> early to
|
||||
discuss your project proposal.
|
||||
|
||||
<h3>Integrate Polly with the LLVM vectorizers</h3>
|
||||
|
@ -59,7 +59,7 @@
|
|||
libraries and outperforming the code icc/gcc currently generate.
|
||||
|
||||
<h3>Polly support for Julia - First steps</h3>
|
||||
<a href="http://julialang.org/">Julia</a> is a new matlab style programming
|
||||
<a href="https://julialang.org/">Julia</a> is a new matlab style programming
|
||||
language that provides C like performance for scientific computing. Even
|
||||
though Julia also translates to LLVM-IR, parsing and optimizing Julia code
|
||||
poses new challenges that currently prevent Polly from optimizing Julia
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<!--*********************************************************************-->
|
||||
|
||||
<h2> Publications about polyhedral compilation </h2>
|
||||
<a href="http://polyhedral.info/publications.html">polyhedral.info</a> has a
|
||||
<a href="https://polyhedral.info/publications.html">polyhedral.info</a> has a
|
||||
large list of publications related to polyhedral compilation. They are very
|
||||
useful to get an idea of the latest developments in this area of compilation
|
||||
as well as to understand what kind of optimizations can be built on top of
|
||||
|
@ -41,7 +41,7 @@ Parallel Processing Letters 2012 22:04<br />
|
|||
<li><em>Loopy: Programmable and Formally Verified Loop Transformations</em><br />
|
||||
Kedar Namjoshi and Nimit Singhania<br />
|
||||
23rd Static Analysis Symposium (SAS 2016)<br />
|
||||
<a href="http://link.springer.com/chapter/10.1007/978-3-662-53413-7_19">Paper</a>
|
||||
<a href="https://link.springer.com/chapter/10.1007/978-3-662-53413-7_19">Paper</a>
|
||||
</li>
|
||||
<li><em>Input Space Splitting for OpenCL</em><br />
|
||||
Simon Moll, Johannes Doerfert and Sebastian Hack<br />
|
||||
|
@ -102,10 +102,10 @@ Parallel Processing Letters 2012 22:04<br />
|
|||
<li><em>Polly - First Successful Optimizations - How to proceed?</em><br />
|
||||
Tobias Grosser, Ragesh A<br />
|
||||
LLVM Developer Meeting 2011<br /><a
|
||||
href="http://llvm.org/devmtg/2011-11/Grosser_PollyOptimizations.pdf">Slides</a>, <a
|
||||
href="http://llvm.org/devmtg/2011-11/videos/Grosser_PollyOptimizations-desktop.mov">Video
|
||||
href="https://llvm.org/devmtg/2011-11/Grosser_PollyOptimizations.pdf">Slides</a>, <a
|
||||
href="https://llvm.org/devmtg/2011-11/videos/Grosser_PollyOptimizations-desktop.mov">Video
|
||||
(Computer)</a>, <a
|
||||
href="http://llvm.org/devmtg/2011-11/videos/Grosser_PollyOptimizations-mobile.mp4">Video
|
||||
href="https://llvm.org/devmtg/2011-11/videos/Grosser_PollyOptimizations-mobile.mp4">Video
|
||||
(Mobile)</a></li>
|
||||
<li><em>A Framework for Automatic OpenMP Code Generation</em><br />
|
||||
Raghesh A<br />
|
||||
|
@ -133,10 +133,10 @@ Parallel Processing Letters 2012 22:04<br />
|
|||
<li><em>Polly - Polyhedral Transformations for LLVM</em><br />
|
||||
Tobias Grosser, Hongbin Zheng<br />
|
||||
LLVM Developer Meeting 2010<br /><a
|
||||
href="http://llvm.org/devmtg/2010-11/Grosser-Polly.pdf">Slides</a>, <a
|
||||
href="http://llvm.org/devmtg/2010-11/videos/Grosser_Polly-desktop.mp4">Video
|
||||
href="https://llvm.org/devmtg/2010-11/Grosser-Polly.pdf">Slides</a>, <a
|
||||
href="https://llvm.org/devmtg/2010-11/videos/Grosser_Polly-desktop.mp4">Video
|
||||
(Computer)</a>, <a
|
||||
href="http://llvm.org/devmtg/2010-11/videos/Grosser_Polly-mobile.mp4">Video
|
||||
href="https://llvm.org/devmtg/2010-11/videos/Grosser_Polly-mobile.mp4">Video
|
||||
(Mobile)</a></li>
|
||||
</ul>
|
||||
|
||||
|
|
|
@ -151,7 +151,7 @@ Code generate PHI dependences
|
|||
</td><td>
|
||||
</td></tr>
|
||||
<tr>
|
||||
<th align="left"> <a href="http://llvm.org/bugs/show_bug.cgi?id=12398">Remove
|
||||
<th align="left"> <a href="https://bugs.llvm.org/show_bug.cgi?id=12398">Remove
|
||||
the need for independent blocks</a>
|
||||
</th><td class="done"> Done
|
||||
</td><td>
|
||||
|
@ -172,13 +172,13 @@ cornercases </th></tr>
|
|||
<th> Owner </th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th align="left"> <a href="http://llvm.org/bugs/show_bug.cgi?id=10381">Derive
|
||||
<th align="left"> <a href="https://bugs.llvm.org/show_bug.cgi?id=10381">Derive
|
||||
optimal types (instead of always using i64)</a>
|
||||
</th><td class="open"> Open
|
||||
</td><td>
|
||||
</td></tr>
|
||||
<tr>
|
||||
<th align="left"> <a href="http://llvm.org/bugs/show_bug.cgi?id=12397">Model
|
||||
<th align="left"> <a href="https://bugs.llvm.org/show_bug.cgi?id=12397">Model
|
||||
integer wrapping</a>
|
||||
</th><td align="center" class='done'> Done
|
||||
</td><td> Johannes
|
||||
|
@ -274,14 +274,14 @@ Optimizations (ongoing)</h3>
|
|||
<tr>
|
||||
<tr>
|
||||
<th align="left"> <a
|
||||
href="http://llvm.org/bugs/show_bug.cgi?id=12403">Variable-size
|
||||
href="https://bugs.llvm.org/show_bug.cgi?id=12403">Variable-size
|
||||
multi-dimensional arrays</a>
|
||||
</th><td align="center" class='done'> Done
|
||||
</td><td>Sebastian
|
||||
</td></tr>
|
||||
<tr>
|
||||
<th align="left"> <a
|
||||
href="http://llvm.org/bugs/show_bug.cgi?id=12407">Derive information for
|
||||
href="https://bugs.llvm.org/show_bug.cgi?id=12407">Derive information for
|
||||
the SCoP context
|
||||
</a>
|
||||
</th>
|
||||
|
@ -289,7 +289,7 @@ the SCoP context
|
|||
</td><td>
|
||||
</td></tr>
|
||||
<tr>
|
||||
<th align="left"> <a href="http://llvm.org/bugs/show_bug.cgi?id=12402">Finer
|
||||
<th align="left"> <a href="https://bugs.llvm.org/show_bug.cgi?id=12402">Finer
|
||||
grained statements</a>
|
||||
</th><td align="center" class='nice'> Open
|
||||
</td><td>
|
||||
|
@ -317,7 +317,7 @@ grained statements</a>
|
|||
<th> Owner </th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th align="left"> <a href="http://llvm.org/bugs/show_bug.cgi?id=12405">Polyhedral
|
||||
<th align="left"> <a href="https://bugs.llvm.org/show_bug.cgi?id=12405">Polyhedral
|
||||
dead code elimination</a>
|
||||
</th><td class="done">Done
|
||||
</td><td>
|
||||
|
@ -342,7 +342,7 @@ dead code elimination</a>
|
|||
</td><td>Johannes
|
||||
<tr>
|
||||
<th align="left"> <a
|
||||
href="http://polly.llvm.org/documentation/gpgpucodegen.html">GPGPU Code
|
||||
href="https://polly.llvm.org/documentation/gpgpucodegen.html">GPGPU Code
|
||||
Generation</a>
|
||||
</th><td class="niceinprogress">in progress
|
||||
</td><td>
|
||||
|
@ -350,13 +350,13 @@ Yabin
|
|||
</td></tr>
|
||||
<tr>
|
||||
<th align="left"> <a
|
||||
href="http://polly.llvm.org/documentation/memaccess.html">Allow optimizers to
|
||||
href="https://polly.llvm.org/documentation/memaccess.html">Allow optimizers to
|
||||
change memory access functions</a>
|
||||
</th><td class="done"> Done
|
||||
</td><td>Johannes
|
||||
</td></tr>
|
||||
<tr>
|
||||
<th align="left"> <a href="http://llvm.org/bugs/show_bug.cgi?id=12406">Make code
|
||||
<th align="left"> <a href="https://bugs.llvm.org/show_bug.cgi?id=12406">Make code
|
||||
generation independent of the clast</a>
|
||||
</th><td class="done">Done
|
||||
</td><td>
|
||||
|
@ -377,7 +377,7 @@ generation independent of the clast</a>
|
|||
</td></tr>
|
||||
<tr>
|
||||
<th align="left"> Add <a
|
||||
href="http://www.cse.ohio-state.edu/~pouchet/software/polybench/">Polybench
|
||||
href="https://web.cse.ohio-state.edu/~pouchet.2/software/polybench/">Polybench
|
||||
3.2</a> to the LLVM test suite
|
||||
</th><td class="done"> Done
|
||||
</td><td>
|
||||
|
@ -407,8 +407,8 @@ href="http://www.cse.ohio-state.edu/~pouchet/software/polybench/">Polybench
|
|||
<th align="left"> Move to LLVM SVN
|
||||
</th><td class="done" align="center">
|
||||
<a
|
||||
href="http://llvm.org/svn/llvm-project/polly"
|
||||
>http://llvm.org/svn/llvm-project/polly</a>
|
||||
href="https://llvm.org/svn/llvm-project/polly"
|
||||
>https://llvm.org/svn/llvm-project/polly</a>
|
||||
</td><td> Tobias
|
||||
|
||||
</td></tr>
|
||||
|
@ -422,14 +422,14 @@ llvm-commits@lists.llvm.org
|
|||
|
||||
<th align="left"> LLVM Bugzilla category
|
||||
</th><td class="done" align="center">
|
||||
<a href="http://llvm.org/bugs/enter_bug.cgi?product=Projects">LLVM Bugzilla</a>
|
||||
<a href="https://bugs.llvm.org/enter_bug.cgi?product=Projects">LLVM Bugzilla</a>
|
||||
<br />
|
||||
(Product is 'Projects', Component is 'Polly')
|
||||
</td><td> Tobias
|
||||
<tr>
|
||||
<th align="left"> Website
|
||||
</th><td class="done" align="center">
|
||||
<a href="http://polly.llvm.org">http://polly.llvm.org</a>
|
||||
<a href="https://polly.llvm.org">https://polly.llvm.org</a>
|
||||
</td><td> Tobias
|
||||
</td></tr>
|
||||
<tr>
|
||||
|
|
Loading…
Reference in New Issue