forked from OSchip/llvm-project
parent
10ebf4dcb1
commit
609f9ccb2c
|
@ -66,13 +66,16 @@
|
|||
custom garbage collector, uses global variables extensively, is not
|
||||
reentrant or multi-threadable, etc. Clang has none of these problems.
|
||||
</li>
|
||||
<li>GCC does not track information about macro instantiations when parsing
|
||||
source code, this makes it very difficult for static analysis and
|
||||
refactoring tools to work in the presense of (even simple) macros.</li>
|
||||
<li>GCC simplifies code as it parses it. As one simple example, if you
|
||||
write "x-x" in your source code, the GCC AST will contain "0", with no
|
||||
mention of x. This is extremely bad for a refactoring tool that wants
|
||||
to rename 'x'.</li>
|
||||
<li>For every token, clang tracks information about where it was written and
|
||||
where it was ultimately expanded into if was involved in a macro.
|
||||
GCC does not track information about macro instantiations when parsing
|
||||
source code. This makes it very difficult for static analysis and
|
||||
refactoring tools to work in the presence of (even simple) macros.</li>
|
||||
<li>Clang does not implicitly simplify code as it parses it like GCC does.
|
||||
This causes many problems for source analysis tools: as one simple
|
||||
example, if you write "x-x" in your source code, the GCC AST will
|
||||
contain "0", with no mention of 'x'. This is extremely bad for a
|
||||
refactoring tool that wants to rename 'x'.</li>
|
||||
<li>GCC does not have a way to serialize the AST of a file out to disk and
|
||||
read it back into another program. Its PCH mechanism is architecturally
|
||||
only able to read the dump back into the exact same executable as the
|
||||
|
|
|
@ -7,18 +7,13 @@
|
|||
<label>Clang Info</label>
|
||||
<a href="index.html">About</a>
|
||||
<a href="features.html">Features</a>
|
||||
<a href="comparison.html">Comparisons</a>
|
||||
<a href="get_involved.html">Get Involved</a>
|
||||
<a href="http://clang.llvm.org/docs/InternalsManual.html">Manual</a>
|
||||
</div>
|
||||
|
||||
<div class="submenu">
|
||||
<label>Quick Links</label>
|
||||
<!-- This section is for special links to areas that,
|
||||
organizationally, are deep within another section,
|
||||
but are still important enough to warrant a link.
|
||||
It's for those things that you have to do a lot, but don't
|
||||
want to have to wade through several pages to go there
|
||||
every time. -->
|
||||
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev">cfe-dev</a>
|
||||
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits">cfe-commits</a>
|
||||
<a href="http://llvm.org/bugs/">Bug Reports</a>
|
||||
|
|
Loading…
Reference in New Issue