llvm-project/clang
Scott Linder c0830f5577 [Support] Teach YAMLIO about polymorphic types
Add support for "polymorphic" types to YAMLIO.

PolymorphicTraits can dynamically switch between other traits (Scalar, Map, or
Sequence). When inputting, the PolymorphicTraits type is told which type to
become, and when outputting the PolymorphicTraits type is asked which type it
currently is.

Also add support for TaggedScalarTraits to allow dynamically differentiating
between multiple scalar types using YAML tags.

Serialize empty maps as "{}" and empty sequences as "[]", so that types
are preserved when round-tripping PolymorphicTraits. This change has
equivalent semantics, but may break e.g. tests which compare output
verbatim.

Differential Revision: https://reviews.llvm.org/D48144

llvm-svn: 346884
2018-11-14 19:39:59 +00:00
..
INPUTS
bindings [python] Support PathLike filenames and directories 2018-11-10 11:41:36 +00:00
cmake [CMake] Include clang-apply-replacements in Fuchsia toolchain 2018-11-14 04:06:47 +00:00
docs UserManual: Tweak the /Zc:dllexportInlines- docs some 2018-11-13 09:05:12 +00:00
examples Fix buildbots - update clang-interpreter to use Legacy ORC classes introduced in rL344572. 2018-10-16 09:21:58 +00:00
include Reverted D52835 to fix review comments 2018-11-14 14:27:51 +00:00
lib [AST] Fix typo in MicrosoftMangle 2018-11-14 19:16:22 +00:00
runtime [CMake] Make bootstrap and compiler-rt depend on cxx-headers. 2018-06-28 18:35:25 +00:00
test Reverted D52835 to fix review comments 2018-11-14 14:27:51 +00:00
tools [OpenCL] Add support of cl_intel_device_side_avc_motion_estimation extension 2018-11-08 11:25:41 +00:00
unittests [Support] Teach YAMLIO about polymorphic types 2018-11-14 19:39:59 +00:00
utils [analyzer] Drastically simplify the tblgen files used for checkers 2018-11-12 17:49:51 +00:00
www Implement P1094R2 (nested inline namespaces) 2018-11-12 17:19:48 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore [NFC] Add tags file to .gitignore 2018-08-22 23:23:17 +00:00
CMakeLists.txt CMake: Deprecate using llvm-config to detect llvm installation 2018-11-13 03:42:46 +00:00
CODE_OWNERS.TXT
INSTALL.txt
LICENSE.TXT Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
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/