llvm-project/clang
Jordan Rose 574ef152fc [analyzer] Handle dynamic_casts that turn out to be upcasts.
This can occur with multiple inheritance, which jumps from one parent to
the other, and with virtual inheritance, since virtual base regions always
wrap the actual object and can't be nested within other base regions.

This also exposed some incorrect logic for multiple inheritance: even if B
is known not to derive from C, D might still derive from both of them.

llvm-svn: 161798
2012-08-13 22:11:42 +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] Don't strip CXXBaseObjectRegions when checking dynamic_casts. 2012-08-13 22:11:34 +00:00
lib [analyzer] Handle dynamic_casts that turn out to be upcasts. 2012-08-13 22:11:42 +00:00
runtime build/compiler-rt: Companion commit to r159172. 2012-06-25 23:02:25 +00:00
test [analyzer] Handle dynamic_casts that turn out to be upcasts. 2012-08-13 22:11:42 +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 Happy new year 2012! 2012-01-01 08:16:56 +00:00
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/