Mirror of official clang git repository located at http://llvm.org/git/clang. Updated every five minutes.
Перейти к файлу
Douglas Gregor 7e010a04fe When instantiating a function type, instantiate the return type before
instantiating the parameters. In a perfect world, this wouldn't
matter, and compilers are free to instantiate in any order they
want. However, every other compiler seems to instantiate the return
type first, and some code (in this case, Boost.Polygon) depends on
this and SFINAE to avoid instantiating something that shouldn't be
instantiated.

We could fight this battle, and insist that Clang is allowed to do
what it does, but it's not beneficial: it's more predictable to
instantiate this way, in source order. When we implement
late-specified return types, we'll need to instantiate the return type
last when it was late-specified, hence the FIXME.

We now compile Boost.Polygon properly.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112561 91177308-0d34-0410-b5e6-96231b3b80d8
2010-08-31 00:26:14 +00:00
INPUTS Add an input file that includes all standard C++ headers 2009-09-29 03:26:11 +00:00
bindings/python Rename 'CIndex' to 'libclang', since it has basically become our stable public 2010-04-30 21:51:10 +00:00
clang.xcodeproj clang.xcodeproj updated. 2010-08-26 19:58:26 +00:00
docs Document '__clang_analyzer__'. 2010-08-24 18:12:35 +00:00
examples clang-interpreter: libFrontend depends on libSerialization. Fix linux build by changing the link order. 2010-08-26 15:21:38 +00:00
include Revert my user-defined literal commits - r1124{58,60,67} pending 2010-08-30 17:47:05 +00:00
lib When instantiating a function type, instantiate the return type before 2010-08-31 00:26:14 +00:00
runtime Runtime: Always build compiler-rt using the Clang we just built, instead of the 2010-06-30 22:10:41 +00:00
test When instantiating a function type, instantiate the return type before 2010-08-31 00:26:14 +00:00
tools Revert my user-defined literal commits - r1124{58,60,67} pending 2010-08-30 17:47:05 +00:00
utils Fix typo in test program 2010-07-14 00:09:17 +00:00
www the target of the link uses the singular form, so do we too 2010-08-28 11:05:27 +00:00
CMakeLists.txt clang: Derive version name from LLVM unless specified explicitly. This means 2010-06-25 23:34:47 +00:00
INSTALL.txt Add minimal INSTALL.txt 2009-09-13 02:21:31 +00:00
LICENSE.TXT 2010 is here. 2010-01-09 18:40:42 +00:00
Makefile Move lib/Runtime to runtime/, and build after everything else. 2010-06-30 22:10:38 +00:00
ModuleInfo.txt Move the ModuleInfo.txt file. 2007-07-11 17:03:27 +00:00
NOTES.txt A Release-Asserts build is now called a Release build. 2010-07-07 07:49:17 +00:00
README.txt Fix typo (test commit) 2010-06-17 12:39:05 +00:00
TODO.txt switch -Werror/-Wfatal-errors error conditions to use diagnostics instead 2009-12-23 18:53:37 +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/