hanchenye-llvm-project/clang
Jordan Rose ce6c99a559 [analyzer] Reduce code duplication: make CXXDestructorCall a CXXInstanceCall.
While there is now some duplication between SimpleCall and the CXXInstanceCall
sub-hierarchy, this is much better than copy-and-pasting the devirtualization
logic shared by both instance methods and destructors.

An unfortunate side effect is that there is no longer a single CallEvent type
that corresponds to "calls written as CallExprs". For the most part this is a
good thing, but the checker callback eval::Call still takes a CallExpr rather
than a CallEvent (since we're not sure if we want to allow checkers to
evaluate other kinds of calls). A mistake here will be caught by a cast<> in
CheckerManager::runCheckersForEvalCall.

No functionality change.

llvm-svn: 161809
2012-08-13 23:46:05 +00:00
..
INPUTS all-std-headers.cpp: Include the C++11 headers when building with clang 2012-04-13 03:39:16 +00:00
bindings Comment XML: use xml:space="preserve" in Verbatim tags, so that XML tidy does 2012-08-08 22:10:24 +00:00
docs Minor rework of code example for clarity. No functionality change 2012-08-13 18:56:38 +00:00
examples libclang, examples: [CMake] Add dependencies to tblgen'd headers. 2012-07-27 06:17:56 +00:00
include [analyzer] Reduce code duplication: make CXXDestructorCall a CXXInstanceCall. 2012-08-13 23:46:05 +00:00
lib [analyzer] Reduce code duplication: make CXXDestructorCall a CXXInstanceCall. 2012-08-13 23:46:05 +00:00
runtime build/compiler-rt: Companion commit to r159172. 2012-06-25 23:02:25 +00:00
test [analyzer] Be more careful when downcasting for devirtualization. 2012-08-13 23:46:01 +00:00
tools Implemented -ast-dump, -ast-print, -ast-dump-filter options in clang-check 2012-08-13 10:50:08 +00:00
unittests [ms-inline asm] Add various MC components to clang build to support MS-style inline assembly. 2012-08-09 17:17:01 +00:00
utils Fix horrible regression in control of warnings caused by introduction of -Wpedantic. 2012-08-10 20:50:00 +00:00
www clarify that the advantages of the BSD license apply to when you incorporate clang into proprietary code bases, 2012-08-08 05:26:51 +00:00
.gitignore Teach Git to ignore the tools/extra directory. 2012-08-13 17:45:30 +00:00
CMakeLists.txt Fix capitalization of LibXml2 for CMake on case-sensitive file systems 2012-08-07 20:42:31 +00:00
INSTALL.txt
LICENSE.TXT
Makefile
ModuleInfo.txt
NOTES.txt Add a note about a missing optimization in the case of virtual 2012-03-30 04:25:03 +00:00
README.txt commit access verified, revert change 2012-03-06 22:55:51 +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/