llvm-project/clang
Argyrios Kyrtzidis a98e861939 [PCH] Fix a regression that r139441 introduced (decls were getting passed
to the consumer without being fully deserialized).

The regression was on compiling boost.python and it was too difficult to get a reduced
test case unfortunately.

Also modify the logic of how objc methods are getting passed to the consumer;
codegen depended on receiving objc methods before the implementation decl.
Since the interesting objc methods are ones with a body and such methods only
exist inside an ObjCImplDecl, deserialize and pass to consumer all the methods
of ObCImplDecl when we see one.

Fixes http://llvm.org/PR10922 & rdar://10117105.

llvm-svn: 139644
2011-09-13 21:35:00 +00:00
..
INPUTS Enhance the CFG construction to detect no-return destructors for 2011-09-13 06:09:01 +00:00
bindings/python Update python testcase for GNU old-style field designator warning, 2011-08-30 00:16:30 +00:00
docs Document __has_feature(objc_instancetype). 2011-09-08 17:19:31 +00:00
examples Match LLVM change: TargetRegistry and TargetSelect have been moved to Support. 2011-08-24 18:09:14 +00:00
include When building a module on-demand, clear out the "non-modular" language 2011-09-13 20:44:41 +00:00
lib [PCH] Fix a regression that r139441 introduced (decls were getting passed 2011-09-13 21:35:00 +00:00
runtime Build and use libcompiler_rt whenever possible. 2011-06-22 17:41:40 +00:00
test Make clang use Acquire loads and Release stores where necessary. 2011-09-13 21:31:32 +00:00
tools [libclang] Correct annotation and taking of cursor for objc class references 2011-09-13 18:49:56 +00:00
unittests Define DiagnosticBuilder<<APValue so it's easy to include APValues in 2011-07-18 16:43:53 +00:00
utils [analyzer] CmpRuns can now optionally delete empty reports. 2011-09-12 22:40:36 +00:00
www Update C++0x status page to reflect support for raw string literals. 2011-08-11 04:09:26 +00:00
.gitignore Add .gitignore file. 2011-07-18 23:05:36 +00:00
CMakeLists.txt Fix cmake for r136702 (at least for the most part). Chandler has been kind 2011-08-02 20:44:34 +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 Make a note about a missing optimization. 2011-07-28 07:41:22 +00:00
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/