[analyzer] Look through temporary destructors when finding a region to construct.

Fixes a false positive when temporary destructors are enabled where a temporary
is destroyed after a variable is constructed but before the VarDecl itself is
processed, which occurs when the variable is in the condition of an if or while.

Patch by Alex McCarthy, with an extra test from me.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205661 91177308-0d34-0410-b5e6-96231b3b80d8
Revert "DebugInfo: Place global constants in their appropriate context."

This reverts commit r205655.

Breaks the compiler-rt build with an assertion failure in LLVM...
reverting while I investigate.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205664 91177308-0d34-0410-b5e6-96231b3b80d8
Add a new subgroup to -Wtautological-compare, -Wtautological-overlap-compare,
which warns on compound conditionals that always evaluate to the same value.
For instance, (x > 5 && x < 3) will always be false since no value for x can
satisfy both conditions.

This patch also changes the CFG to use these tautological values for better
branch analysis.  The test for -Wunreachable-code shows how this change catches
additional dead code.

Patch by Anders Rönnholm.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205665 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] Update Open Projects page with BitwiseConstraintManager.

Also, add the names of people most recently working on particular projects,
and remove "relate bugs and checkers" (thanks, Alex!).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205666 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] Add an ErrnoChecker (PR18701) to the Potential Checkers list.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205667 91177308-0d34-0410-b5e6-96231b3b80d8
DebugInfo: Avoid emitting constnants for every use

While the folding set would deduplicate the nodes themselves and LLVM
would handle not emitting the same global twice, it still meant creating
a long/redundant list of global variables.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205668 91177308-0d34-0410-b5e6-96231b3b80d8
Reapply r205655, DebugInfo: Place global constants in their appropriate context.

This was reverted in 205664 and seems to be fixed by 205668... though
that may be more by accident than anything well founded.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205669 91177308-0d34-0410-b5e6-96231b3b80d8
[Frontend] If the module file lock owner have died, try to get the lock again. Needs llvm r205683.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205684 91177308-0d34-0410-b5e6-96231b3b80d8
DebugInfo: emit namespace aliases as named imported declarations instead of named imported entities

Apparently that's how DWARF4 suggests they be emitted. So let's do that.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205686 91177308-0d34-0410-b5e6-96231b3b80d8
DebugInfo: Support type alias templates

We already got the type alias correct (though I've included a test case
here) since Clang represents that like any other typedef - but type
alias templates weren't being handled.

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


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205695 91177308-0d34-0410-b5e6-96231b3b80d8
libclang: add clang_CXXMethod_isConst API that allows to determine if a C++
member function or member function template is declared 'const'

Patch by Kevin Funk with testcase updates by me.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205714 91177308-0d34-0410-b5e6-96231b3b80d8
Fix clang-tidy warning (argument comments don't match parameter names).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205715 91177308-0d34-0410-b5e6-96231b3b80d8
clang-cl: make /Gw map to -fdata-sections

Note that /Gy no longer implies -fdata-sections.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205716 91177308-0d34-0410-b5e6-96231b3b80d8
Fix a typo introduced in r205716

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205717 91177308-0d34-0410-b5e6-96231b3b80d8
Revert r205646 (keeping the test in its modified form) as
it is subsumed by r205521.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205718 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] Re-enable test I accidentally committed commented-out.

Thanks, Alex!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205720 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] Fix mistake in example for potential checker "posix.Errno".

Found by Richard Osbourne!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205721 91177308-0d34-0410-b5e6-96231b3b80d8
Mangle the vbptr offset into pointers to member functions

This can actually be non-zero if you override a function from a virtual
base and you have forced the most_general pointer to member
representation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205727 91177308-0d34-0410-b5e6-96231b3b80d8
Thread Safety Analysis: update to internal SExpr handling.
This patch is the first part of a significant refactoring that seeks to restore
sanity to way thread safety analysis deals with capability expressions.  The
current patch merely provides an outline of the structure of the new system.
It's not yet connected to the actual analysis, so there's no change in
functionality.

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