llvm-project/clang
Kristof Umann 92541e359e [CFG] Introduce CFGElementRef, a wrapper that knows it's position in a CFGBlock
Previously, collecting CFGElements in a set was practially impossible, because
both CFGBlock::operator[] and both the iterators returned it by value. One
workaround would be to collect the iterators instead, but they don't really
capture the concept of an element, and elements from different iterator types are incomparable.

This patch introduces CFGElementRef, a wrapper around a (CFGBlock, Index) pair,
and a variety of new iterators and iterator ranges to solve this problem.

I guess you could say that this patch took a couple iterations to get right :^)

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

llvm-svn: 368883
2019-08-14 17:05:55 +00:00
..
INPUTS
bindings [clang][Tooling] Infer target and mode from argv[0] when using JSONCompilationDatabase 2019-06-26 07:39:03 +00:00
cmake [CMake][Fuchsia] Define asan+noexcept multilib 2019-07-13 08:07:10 +00:00
docs Document clang-cpp in the release notes for clang 2019-08-14 16:49:52 +00:00
examples [ORC] Fix clang-interpreter example code broken by r368707. 2019-08-14 01:03:35 +00:00
include [CFG] Introduce CFGElementRef, a wrapper that knows it's position in a CFGBlock 2019-08-14 17:05:55 +00:00
lib [CFG] Introduce CFGElementRef, a wrapper that knows it's position in a CFGBlock 2019-08-14 17:05:55 +00:00
runtime [GWP-ASan] Mutex implementation [2]. 2019-05-30 19:45:32 +00:00
test [Sema][ObjC] Fix a -Wformat false positive with localizedStringForKey 2019-08-14 16:57:11 +00:00
tools [clang] - An update after LLVM change. 2019-08-14 11:10:01 +00:00
unittests [CFG] Introduce CFGElementRef, a wrapper that knows it's position in a CFGBlock 2019-08-14 17:05:55 +00:00
utils [analyzer] exploded-graph-rewriter: Implement displaying Store pointers. 2019-08-13 23:04:56 +00:00
www Fix cxx_status html for r367027 2019-07-25 17:14:37 +00:00
.arcconfig
.clang-format
.clang-tidy Disable tidy checks with too many hits 2019-02-01 11:20:13 +00:00
.gitignore
CMakeLists.txt [CMake] Don't set Python_ADDITIONAL_VERSIONS 2019-07-18 15:17:42 +00:00
CODE_OWNERS.TXT
INSTALL.txt
LICENSE.TXT
ModuleInfo.txt
NOTES.txt
README.txt [NFC] Test commit 2019-06-12 07:50:48 +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.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/