llvm-project/clang
Douglas Gregor d5cb1ddb2c After performing template argument deduction for a function template,
check deduced non-type template arguments and template template
arguments against the template parameters for which they were deduced,
performing conversions as appropriate so that deduced template
arguments get the same treatment as explicitly-specified template
arguments. This is the bulk of PR6723.

Also keep track of whether deduction of a non-type template argument
came from an array bound (vs. anywhere else). With this information,
we enforce C++ [temp.deduct.type]p17, which requires exact type
matches when deduction deduces a non-type template argument from
something that is not an array bound.

Finally, when in a SFINAE context, translate the "zero sized
arrays are an extension" extension diagnostic into a hard error (for
better standard conformance), which was a minor part of PR6723.

llvm-svn: 99734
2010-03-28 02:42:43 +00:00
..
INPUTS Add an input file that includes all standard C++ headers 2009-09-29 03:26:11 +00:00
bindings/python Rename the new Iterator objects and raise an assertion instead of returning invalid objects when the key is out of range. 2010-03-06 15:38:03 +00:00
clang.xcodeproj Add some missing files to xcode project 2010-03-23 20:23:06 +00:00
docs Document common clang compatibility issues. 2010-03-17 04:31:53 +00:00
examples Wire up Daniel's new spiffy C interpreter into the CMake build system 2010-02-27 07:46:49 +00:00
include After performing template argument deduction for a function template, 2010-03-28 02:42:43 +00:00
lib After performing template argument deduction for a function template, 2010-03-28 02:42:43 +00:00
test After performing template argument deduction for a function template, 2010-03-28 02:42:43 +00:00
tools scan-build: set environment variable LDPLUSPLUS to 'c++-analyzer' to correctly link projects 2010-03-27 00:20:01 +00:00
utils Didn't mean to commit this. 2010-03-26 04:14:45 +00:00
www Remove VS information for analyzer until we have more real support. 2010-03-27 16:56:20 +00:00
CMakeLists.txt Add optional CMake build for Clang examples, patch by Kovarththanan Rajaratnam. 2009-11-17 09:32:51 +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 Fix 80 col violation 2010-03-18 13:56:20 +00:00
ModuleInfo.txt
NOTES.txt Remove clang-cc tool, it has joined in unholy union with clang. 2009-12-12 00:56:47 +00:00
README.txt rewrite readme. 2009-09-13 17:23:57 +00:00
TODO.txt switch -Werror/-Wfatal-errors error conditions to use diagnostics instead 2009-12-23 18:53:37 +00:00
VER Bump clang minor version (1.5). 2010-03-18 04:39:55 +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 intrastructure 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/