llvm-capstone/clang
Sam McCall 32ef52063c [AST] Fix double-traversal of code in top-level lambdas in RAV(implicit = yes).
Summary:
Prior to r351069, lambda classes were traversed or not depending on the
{Function, Class, Namespace, TU} DeclContext containing them.
If it was a function (common case) they were not traversed.
If it was a namespace or TU (top-level lambda) they were traversed as part of
that DeclContext traversal.

r351069 "fixed" RAV to traverse these as part of the LambdaExpr, which is the
right place. But top-level lambdas are now traversed twice.
We fix that as blocks and block captures were apparently fixed in the past.

Maybe it would be nicer to avoid adding the lambda classes to the DeclContext
in the first place, but I can't work out the implications of that.

Reviewers: bkramer, klimek

Subscribers: cfe-commits

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

llvm-svn: 351075
2019-01-14 17:16:00 +00:00
..
bindings [python] Make the collections import future-proof 2019-01-05 12:07:36 +00:00
cmake [CMake] Use hidden visibility for static libc++ in Fuchsia 2019-01-06 08:23:56 +00:00
docs fixup: sphinx warning 2019-01-10 19:26:35 +00:00
examples cmake: Remove uses of add_llvm_loadable_module macro 2018-12-20 22:04:36 +00:00
include [AST] Fix double-traversal of code in top-level lambdas in RAV(implicit = yes). 2019-01-14 17:16:00 +00:00
INPUTS
lib [OpenCL] Set generic addr space of 'this' in special class members. 2019-01-14 11:44:22 +00:00
runtime Fix check-hwasan with LLVM_BUILD_EXTERNAL_COMPILER_RT=ON 2019-01-03 22:50:45 +00:00
test [OpenCL] Set generic addr space of 'this' in special class members. 2019-01-14 11:44:22 +00:00
tools [analyzer][CrossTU][NFC] Generalize to external definitions instead of external functions 2019-01-10 17:44:04 +00:00
unittests [AST] Fix double-traversal of code in top-level lambdas in RAV(implicit = yes). 2019-01-14 17:16:00 +00:00
utils Implement Attr dumping in terms of visitors 2019-01-11 19:16:01 +00:00
www Implementation Feature Test Macros for P0722R3 2019-01-11 17:09:22 +00:00
.arcconfig
.clang-format
.clang-tidy
.gitignore NFC: Add .vscode to .gitignore 2018-12-03 22:51:07 +00:00
CMakeLists.txt inhereit LLVM_ENABLE_LIBXML2 2018-11-29 14:57:14 +00:00
CODE_OWNERS.TXT Add myself as code owner for OpenBSD driver 2018-11-30 21:42:34 +00:00
INSTALL.txt
LICENSE.TXT Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
ModuleInfo.txt
NOTES.txt PTH-- Remove feature entirely- 2018-12-04 14:34:09 +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/