llvm-project/clang
Ted Kremenek 9e100ea1a8 Reduce -Wuninitialized time by 22% (on sqlite) by removing the recursive AST crawl.
This is accomplished by forcing the needed expressions for -Wuninitialized to always be CFGElements in the CFG.
This allows us to remove a fair amount of the code for -Wuninitialized.

Some fallout:
- AnalysisBasedWarnings.cpp now specifically toggles the CFGBuilder to create a CFG that is suitable for -Wuninitialized.  This
is a layering violation, since the logic for -Wuninitialized is in libAnalysis.  This can be fixed with the proper refactoring.
- Some of the source locations for -Wunreachable-code warnings have shifted.  While not ideal, this is okay because that analysis
already needs some serious reworking.

llvm-svn: 135480
2011-07-19 14:18:48 +00:00
..
INPUTS Add several CFG-stress-testing input source files. These use the 2011-07-08 11:20:51 +00:00
bindings/python Improve the Python bindings for libclang in a few ways, from Eli 2011-07-06 03:00:34 +00:00
clang.xcodeproj Remove BoostCon-specific code from Clang. FWIW, I'm a fan of things like this living in a separate branch. 2011-07-07 22:40:15 +00:00
docs Thanks to Chandler for reminding me to update the documentation for the 2011-07-18 17:22:33 +00:00
examples Reverts the Tooling changes as requested by Chris. 2011-06-02 16:58:33 +00:00
include Add hooks into the CFG builder to force that specific expressions are always CFGElements. 2011-07-19 14:18:43 +00:00
lib Reduce -Wuninitialized time by 22% (on sqlite) by removing the recursive AST crawl. 2011-07-19 14:18:48 +00:00
runtime Build and use libcompiler_rt whenever possible. 2011-06-22 17:41:40 +00:00
test Reduce -Wuninitialized time by 22% (on sqlite) by removing the recursive AST crawl. 2011-07-19 14:18:48 +00:00
tools Match createTargetMachine API change. 2011-07-19 06:37:41 +00:00
unittests Define DiagnosticBuilder<<APValue so it's easy to include APValues in 2011-07-18 16:43:53 +00:00
utils fix a bunch of comment typos found by codespell. Patch by 2011-04-15 05:22:18 +00:00
www Hyphenate "argument-dependent". 2011-06-14 12:59:25 +00:00
.gitignore Add .gitignore file. 2011-07-18 23:05:36 +00:00
CMakeLists.txt Tweak the CMake build so that building a project just containing Clang 2011-07-14 23:42:32 +00:00
INSTALL.txt
LICENSE.TXT My calendar says it's 2011. 2011-06-12 15:26:54 +00:00
Makefile Basic: Add support for a build variable to set the repository path that goes 2011-03-31 00:32:50 +00:00
ModuleInfo.txt
NOTES.txt
README.txt
TODO.txt Test commit; added blank line to TODO.txt 2011-01-04 19:19:20 +00:00

README.txt

//===----------------------------------------------------------------------===//
// C Language Family Front-end
//===----------------------------------------------------------------------===//

Welcome to Clang.  This is a compiler front-end for the C family of languages
(C, C++, Objective-C, and Objective-C++) which is built as part of the LLVM
compiler infrastructure project.

Unlike many other compiler frontends, Clang is useful for a number of things
beyond just compiling code: we intend for Clang to be host to a number of
different source level tools.  One example of this is the Clang Static Analyzer.

If you're interested in more (including how to build Clang) it is best to read
the relevant web sites.  Here are some pointers:

Information on Clang:              http://clang.llvm.org/
Building and using Clang:          http://clang.llvm.org/get_started.html
Clang Static Analyzer:             http://clang-analyzer.llvm.org/
Information on the LLVM project:   http://llvm.org/

If you have questions or comments about Clang, a great place to discuss them is
on the Clang development mailing list:
  http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

If you find a bug in Clang, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/