llvm-capstone/clang
Richard Smith de21704ba9 CWG2352: Allow qualification conversions during reference binding.
The language wording change forgot to update overload resolution to rank
implicit conversion sequences based on qualification conversions in
reference bindings. The anticipated resolution for that oversight is
implemented here -- we order candidates based on qualification
conversion, not only on top-level cv-qualifiers.

For OpenCL/C++, this allows reference binding between pointers with
differing (nested) address spaces. This makes the behavior of reference
binding consistent with that of implicit pointer conversions, as is the
purpose of this change, but that pre-existing behavior for pointer
conversions is itself probably not correct. In any case, it's now
consistently the same behavior and implemented in only one place.
2019-12-19 18:37:55 -08:00
..
bindings
cmake Always -I clang/include when tblgen'ing in Clang. 2019-12-16 13:33:59 -05:00
docs [Remarks][Driver] Place temporary remark files next to temporary object files 2019-12-18 16:42:02 -08:00
examples [Attr] Add missing header for clang example. 2019-12-09 12:50:05 +00:00
include CWG2352: Allow qualification conversions during reference binding. 2019-12-19 18:37:55 -08:00
INPUTS
lib CWG2352: Allow qualification conversions during reference binding. 2019-12-19 18:37:55 -08:00
runtime
test CWG2352: Allow qualification conversions during reference binding. 2019-12-19 18:37:55 -08:00
tools [OPENMP50]Add parsing/sema analysis for nontemporal clause. 2019-12-17 14:46:32 -05:00
unittests Add method to ignore invisible AST nodes 2019-12-18 22:33:23 +00:00
utils [OpenCL] Add builtin function extension handling 2019-12-18 10:13:51 +00:00
www CWG2352: Allow qualification conversions during reference binding. 2019-12-19 18:37:55 -08:00
.arcconfig
.clang-format
.clang-tidy
.gitignore
CMakeLists.txt [clang] Move CLANG_BOOTSTRAP_CMAKE_ARGS above PASSTHROUGH_VARIABLES 2019-12-13 19:05:04 -08:00
CODE_OWNERS.TXT
INSTALL.txt
LICENSE.TXT
ModuleInfo.txt
NOTES.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/