Thread Safety Analysis: update TIL traversal mechanism to allow arbitrary
local contexts.  Also includes some minor refactoring.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209774 91177308-0d34-0410-b5e6-96231b3b80d8
PR19878: If a pack expansion appears within another pack expansion, correctly
deduce any packs that are expanded by both expansions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209786 91177308-0d34-0410-b5e6-96231b3b80d8
[ASan] Hoist blacklisting globals from init-order checking to Clang.

Clang knows about the sanitizer blacklist and it makes no sense to
add global to the list of llvm.asan.dynamically_initialized_globals if it
will be blacklisted in the instrumentation pass anyway. Instead, we should
do as much blacklisting as possible (if not all) in the frontend.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209789 91177308-0d34-0410-b5e6-96231b3b80d8
Implement a convenience recursive walk method over a cursor and its descendants.

Before r160106 there was a way to recursively visit all descendants of a cursor
via Cursor_visit, but it was removed. Since then, every user needs to
reimplement the recursive descent into get_children.

Adding a walk_preorder() method to Cursor that conveniently implements recursive
walking in a Pythonic way. This also greatly simplifies get_cursor and
get_cursors in tests/cindex/util.py (walk_preorder is now tested through these
utility functions, since they are used in many tests).



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209793 91177308-0d34-0410-b5e6-96231b3b80d8
When merging functions across modules (and in particular, instantiations of
member functions), ensure that the redecl chain never transitions from 'inline'
to 'not inline', since that violates an AST invariant.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209794 91177308-0d34-0410-b5e6-96231b3b80d8
Refactoring. Remove release and take methods from ActionResult. Rename takeAs to getAs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209800 91177308-0d34-0410-b5e6-96231b3b80d8
Fixing a test case which was failing the MSVC build bots. When -std isn't specified with an MSVC build, it defaults to -std=c++11, which overrides the -x cuda option. In turn, this causes all CUDA language option checks to fail.

This fix is possibly temporary while we determine whether -x cuda should be considered along with -std=c++11 when setting language options.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209808 91177308-0d34-0410-b5e6-96231b3b80d8
Refactoring. Remove Owned method from Sema.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209812 91177308-0d34-0410-b5e6-96231b3b80d8
Parsing/Sema for OMPAlignedClause.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209816 91177308-0d34-0410-b5e6-96231b3b80d8
Fix spurious remarks when -Weverything is used.

With -Weverything, the backend remarks are enabled. This was
causing spurious diagnostics for remarks that we don't yet
handle (cf http://reviews.llvm.org/D3683).

This will stop being a problem once http://reviews.llvm.org/D3683
is committed.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209823 91177308-0d34-0410-b5e6-96231b3b80d8
No longer allow the -std options to entirely override the -x language option. This allows -x cuda -std=c++11, for instance.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209824 91177308-0d34-0410-b5e6-96231b3b80d8
Sema: Check dll attributes on static data members

Redeclarations cannot add a dll attribute and static data members cannot
be defined.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209825 91177308-0d34-0410-b5e6-96231b3b80d8
MS ABI: Emit static data members with proper linkage

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209826 91177308-0d34-0410-b5e6-96231b3b80d8
Sema: Functions with dll attributes cannot be deleted

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209827 91177308-0d34-0410-b5e6-96231b3b80d8
Add missing -S to avoid invoking assembler unnecessarily.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209828 91177308-0d34-0410-b5e6-96231b3b80d8
Fix some minor typos in tests

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209830 91177308-0d34-0410-b5e6-96231b3b80d8
Make runlines consistent with other dll attribute tests

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209831 91177308-0d34-0410-b5e6-96231b3b80d8
Make the -mno-global-merge option work for arm64/aarch64. rdar://17024719

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209836 91177308-0d34-0410-b5e6-96231b3b80d8
Add flags -Rpass-missed and -Rpass-analysis.

Summary:
These two flags are in the same family as -Rpass, but are used in
different situations.

-Rpass-missed is used by optimizers to inform the user when they tried
to apply an optimization but couldn't (or wouldn't).

-Rpass-analysis is used by optimizers to report analysis results back
to the user (e.g., why the transformation could not be applied).

Depends on D3682.

Reviewers: rsmith

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D3683

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209839 91177308-0d34-0410-b5e6-96231b3b80d8
Add documentation for -Rpass*

Summary:
This adds documentation for -Rpass, -Rpass-missed and -Rpass-analysis.
It also adds release notes for 3.5.

Reviewers: rsmith

Subscribers: cfe-commits

Differential Revision: http://reviews.llvm.org/D3730

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@209841 91177308-0d34-0410-b5e6-96231b3b80d8