llvm-project/clang
Richard Smith 4086a13df8 Remove CXXRecordDecl flags which are unused after r158289.
We need an efficient mechanism to determine whether a defaulted default
constructor is constexpr, in order to determine whether a class is a literal
type, so keep the incrementally-built form on CXXRecordDecl. Remove the
on-demand computation of same, so that we only have one method for determining
whether a default constructor is constexpr. This doesn't affect correctness,
since default constructor lookup is much simpler than selecting a constructor
for copying or moving.

We don't need a corresponding mechanism for defaulted copy or move constructors,
since they can't affect whether a type is a literal type. Conversely, checking
whether such functions are constexpr can require non-trivial effort, so we defer
such checks until the copy or move constructor is required.

Thus we now only compute whether a copy or move constructor is constexpr on
demand, and only compute whether a default constructor is constexpr in advance.
This is unfortunate, but seems like the best solution.

llvm-svn: 158290
2012-06-10 07:07:24 +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/python [clang.py] Implement Cursor.is_static_method 2012-06-09 16:21:34 +00:00
docs Puts the linktime dependencies into stupid-ld-required order, as proposed by Jordan Rose. 2012-06-06 21:30:34 +00:00
examples Honour CLANG_BUILD_EXAMPLES correctly, by setting the directory's 2012-05-03 19:11:45 +00:00
include Remove CXXRecordDecl flags which are unused after r158289. 2012-06-10 07:07:24 +00:00
lib Remove CXXRecordDecl flags which are unused after r158289. 2012-06-10 07:07:24 +00:00
runtime [tsan] add ThreadSanitizer linker flags on Linux and also copy the tsan-rt into the appropriate place at build time 2012-05-16 06:36:00 +00:00
test Fix PR13052 properly, by performing special member lookup to determine whether 2012-06-10 05:43:50 +00:00
tools [libclang] When doing the cursor visitation make sure declarations 2012-06-09 03:03:02 +00:00
unittests Move sideeffecting call out of assert(). 2012-06-07 09:57:21 +00:00
utils [analyzer] Use "issue hash" in CmpRuns; followup on r158180 2012-06-08 01:50:49 +00:00
www Add CSS style for FAQ questions, and restate FAQ questions as actual questions. 2012-06-09 20:10:45 +00:00
.gitignore Revert "Test commit" 2011-10-24 10:03:25 +00:00
CMakeLists.txt Zap the /Za compiler switch from MSVC projects, the option is considered harmful even by Microsoft people and clang won't build using the MSVC 2012 RC if not removed. 2012-06-06 12:00:10 +00:00
INSTALL.txt
LICENSE.TXT Happy new year 2012! 2012-01-01 08:16:56 +00:00
Makefile Add the Clang tblgen backends to Clang, and flip the switch to cause 2011-10-06 13:03:08 +00:00
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/