Speed up hasName() matcher.

Summary:
Speed up hasName() matcher by skipping the expensive generation of the
fully qualified name unless we need it.
In the common case of matching an unqualified name, we don't need to
generate the full name. We might not even need to copy any string at
all.
This change speeds up our clang-tidy benchmark by ~10%

Reviewers: klimek

Subscribers: klimek, cfe-commits

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

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@219792 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] Handle 'mingw32-make' in the same way as 'make' and 'gmake'.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@219794 91177308-0d34-0410-b5e6-96231b3b80d8
Turned Sema::HandleDelayedAvailabilityCheck into a static function; NFC.

Did a bit of drive-by reformatting as well since it required rearranging some other static functions in the file.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@219795 91177308-0d34-0410-b5e6-96231b3b80d8
Update for llvm api change.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@219797 91177308-0d34-0410-b5e6-96231b3b80d8
Update for llvm api change.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@219800 91177308-0d34-0410-b5e6-96231b3b80d8
Fix for PR21254 - Assertion in comment parser

The size of the ID field in CommandInfo was narrow, leading to potential 
wrap-around of command IDs, causing misinterpretation later on.
The patch does the following:
- It extends the ID bitfield from 8 to 20 bits.
- It provides a DRY definition of the number of bits for the field to 
  avoid using literal numbers in different files.
- It introduces a new assertion that checks for the wrap-around.
- It adds the testcase from PR21254.



git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@219802 91177308-0d34-0410-b5e6-96231b3b80d8
CodeGen: Cleanup CGRecordLowering::lowerUnion a little

Remove some duplicated state, no functionality change intended.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@219805 91177308-0d34-0410-b5e6-96231b3b80d8
Don't use a global_ctors comdat for globals that aren't externally visible

In particular, if you have two identical templates in different TUs in
anonymous namespaces, we would use the same global_ctors comdat key for
both. As a result, only one would be run.

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