llvm-project/clang
Richard Smith b3189a1802 DR1213: element access on an array xvalue or prvalue produces an xvalue. In the
latter case, a temporary array object is materialized, and can be
lifetime-extended by binding a reference to the member access. Likewise, in an
array-to-pointer decay, an rvalue array is materialized before being converted
into a pointer.

This caused IR generation to stop treating file-scope array compound literals
as having static storage duration in some cases in C++; that has been rectified
by modeling such a compound literal as an lvalue. This also improves clang's
compatibility with GCC for those cases.

llvm-svn: 288654
2016-12-05 07:49:14 +00:00
..
INPUTS
bindings [libclang] Fix python tests 2016-12-03 12:53:06 +00:00
cmake cmake: Don't try to install exports if there aren't any 2016-11-08 05:02:33 +00:00
docs Add the --no-color option to the git call in the doc when using clang-format-diff 2016-12-03 23:22:45 +00:00
examples [Examples] Fix use of sema.LateParsedTemplateMap in clang/examples. 2016-10-10 16:41:00 +00:00
include Revert "Recover better from an incompatible .pcm file being provided by -fmodule-file=. We try to include the headers of the module textually in this case, still enforcing the modules semantic rules. In order to make that work, we need to still track that we're entering and leaving the module. Also, if the module was also marked as unavailable (perhaps because it was missing a file), we shouldn't mark the module unavailable -- we don't need the module to be complete if we're going to enter it textually." 2016-12-04 22:34:37 +00:00
lib DR1213: element access on an array xvalue or prvalue produces an xvalue. In the 2016-12-05 07:49:14 +00:00
runtime [sanitizer] Passthrough CMAKE_OSX_DEPLOYMENT_TARGET when building compiler-rt from clang/runtime/CMakeLists.txt 2016-11-14 22:38:57 +00:00
test DR1213: element access on an array xvalue or prvalue produces an xvalue. In the 2016-12-05 07:49:14 +00:00
tools Add the --no-color option to the git call in the doc when using clang-format-diff 2016-12-03 23:22:45 +00:00
unittests DR616, and part of P0135R1: member access (or pointer-to-member access) on a 2016-12-03 01:14:32 +00:00
utils Adapt to llvm/TableGen DagInit changes. 2016-12-05 06:00:51 +00:00
www DR1213: element access on an array xvalue or prvalue produces an xvalue. In the 2016-12-05 07:49:14 +00:00
.arcconfig Upgrade all the .arcconfigs to https. 2016-07-14 13:15:37 +00:00
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt [CMake] Support lld with LTO bootstrap 2016-11-16 23:59:06 +00:00
CODE_OWNERS.TXT
INSTALL.txt
LICENSE.TXT
ModuleInfo.txt
NOTES.txt
README.txt

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.llvm.org/mailman/listinfo/cfe-dev

If you find a bug in Clang, please file it in the LLVM bug tracker:
  http://llvm.org/bugs/