Go to file
Jordan Rose cf10ea8cb2 [analyzer; new edges] Simplify edges in a C++11 for-range loop.
Previously our edges were completely broken here; now, the final result
is a very simple set of edges in most cases: one up to the "for" keyword
for context, and one into the body of the loop. This matches the behavior
for ObjC for-in loops.

In the AST, however, CXXForRangeStmts are handled very differently from
ObjCForCollectionStmts. Since they are specified in terms of equivalent
statements in the C++ standard, we actually have implicit AST nodes for
all of the semantic statements. This makes evaluation very easy, but
diagnostic locations a bit trickier. Fortunately, the problem can be
generally defined away by marking all of the implicit statements as
part of the top-level for-range statement.

One of the implicit statements in a for-range statement is the declaration
of implicit iterators __begin and __end. The CFG synthesizes two
separate DeclStmts to match each of these decls, but until now these
synthetic DeclStmts weren't in the function's ParentMap. Now, the CFG
keeps track of its synthetic statements, and the AnalysisDeclContext will
make sure to add them to the ParentMap.

<rdar://problem/14038483>

llvm-svn: 183449
2013-06-06 21:53:45 +00:00
clang [analyzer; new edges] Simplify edges in a C++11 for-range loop. 2013-06-06 21:53:45 +00:00
clang-tools-extra cpp11-migrate: Add EnableHeaderModification flag 2013-06-06 20:32:29 +00:00
compiler-rt [lsan] Put SANITIZER_INTERFACE_ATTRIBUTE on LSan interface functions. 2013-06-06 18:40:55 +00:00
debuginfo-tests Remove IR scenario tests. 2013-03-15 20:52:10 +00:00
libclc Update the copyright coredits -- Happy new year 2013! 2013-01-01 10:00:19 +00:00
libcxx Neglected to remove a debugging comment from last commit. 2013-05-21 21:19:35 +00:00
libcxxabi Add capability to demangle invocation functions for ObjC blocks. 2013-04-10 19:44:03 +00:00
lld [Driver][Core] Handle -mllvm option. 2013-06-05 23:19:18 +00:00
lldb Hardened the IR interpreter to prevent it from 2013-06-06 21:14:35 +00:00
llvm Revert "ARM sched model: Add SIMD/VFP load/store instructions on Swift" 2013-06-06 21:08:18 +00:00
polly scop detection: do not call getAliasSetForPointer when IgnoreAliasing 2013-06-03 16:35:41 +00:00