AArch64: use new non-polymorphic crypto intrinsics

The LLVM backend now has invariant types on the various crypto-intrinsics,
because in all cases there's only really one interpretation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200707 91177308-0d34-0410-b5e6-96231b3b80d8
ARM: implement support for crypto intrinsics in arm_neon.h

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200708 91177308-0d34-0410-b5e6-96231b3b80d8
Test cases for NetBSD/eARM 


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200709 91177308-0d34-0410-b5e6-96231b3b80d8
Allow specifying a custom PathDiagnosticConsumer for use with the static analyzer.

Summary:
Make objects returned by CreateAnalysisConsumer expose an interface,
that allows providing a custom PathDiagnosticConsumer, so that users can have
raw data in a form easily usable from the code (unlike plist/HTML in a file).

Reviewers: jordan_rose, krememek

CC: cfe-commits

Differential Revision: http://llvm-reviews.chandlerc.com/D2556

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200710 91177308-0d34-0410-b5e6-96231b3b80d8
[ms-cxxabi] Fix cast when structor replacement is an alias

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200711 91177308-0d34-0410-b5e6-96231b3b80d8
PR17846, PR17848: don't build a VarTemplateSpecializationDecl for a use of a
variable template until we know what the template arguments actually are.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200714 91177308-0d34-0410-b5e6-96231b3b80d8
Fix a -Wformat warning in ASTUnit.cpp

llvm::sys::cas_flag is 'long' instead of 'uint32_t' on win32, because
that's what InterlockedIncrement is defined to accept.

I still don't know if we should be calling fprintf from ASTUnit.cpp
behind a getenv check.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200718 91177308-0d34-0410-b5e6-96231b3b80d8
Fix a -Wmicrosoft warning about an unrepresentable enum value

In MSVC, enums are always signed unless you explicitly specify the type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200719 91177308-0d34-0410-b5e6-96231b3b80d8
DebugInfo: Fix for an improvement to DIBuilder to not emit {i32 0} for zero-length arrays.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200722 91177308-0d34-0410-b5e6-96231b3b80d8
Tidy up and reduce some comment redundancy.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200723 91177308-0d34-0410-b5e6-96231b3b80d8
Add implicit declarations of allocation functions when looking them up for
redeclaration, not just when looking them up for a use -- we need the implicit
declaration to appropriately check various properties of them (notably, whether
they're deleted).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200729 91177308-0d34-0410-b5e6-96231b3b80d8
[CMake] add_clang_library(): Honor STATIC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200759 91177308-0d34-0410-b5e6-96231b3b80d8
[CMake] add_clang_library(): Fix LLVM_PLUGIN_EXT in MODULE. It was broken since my r199902.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200760 91177308-0d34-0410-b5e6-96231b3b80d8
ARM & AArch64: combine implementation of vcaXYZ intrinsics

Now that the back-end intrinsics are more regular, there's no need for the
special handling these got in the front-end, so they can be moved to
EmitCommonNeonBuiltinExpr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200769 91177308-0d34-0410-b5e6-96231b3b80d8
Fix whitespace handling in ## operator

In x ## y, where x and y are regular tokens, whitespace between x and ##
is ignored, and whitespace between ## and y is also ignored. When either
x or y is a function argument, whitespace was preserved, but it should
not be. This patch removes the checks for whitespace before ## and
before y, and in the special case where x is an empty macro argument and
y is a regular token, actively removes whitespace before y.

One existing test is affected by that change, but as clang's output now
matches the standard's requirements and that of GCC, I've tweaked the
testcase.

Patch by Harald van Dijk!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200785 91177308-0d34-0410-b5e6-96231b3b80d8
Fix whitespace handling in empty macro arguments

When a function-like macro definition ends with one of the macro's
parameters, and the argument is empty, any whitespace before the
parameter name in the macro definition needs to be preserved. Promoting
the existing NextTokGetsSpace to a preserved bit-field and checking it
at the end of the macro expansion allows it to be moved to the first
token following the macro expansion result.

Patch by Harald van Dijk!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200786 91177308-0d34-0410-b5e6-96231b3b80d8
Fix whitespace handling in empty macro expansions

When a macro expansion does not result in any tokens, and the macro name
is preceded by whitespace, the whitespace should be passed to the first
token that follows the macro expansion. Similarly when a macro expansion
ends with a placemarker token, and that placemarker token is preceded by
whitespace. This worked already for top-level macro expansions, but is
now extended to also work for nested macro expansions.

Patch by Harald van Dijk!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200787 91177308-0d34-0410-b5e6-96231b3b80d8
Clean up whitespace checks

In TokenLexer::ExpandFunctionArguments(), CurTok.hasLeadingSpace() is
checked in multiple locations, each time subtly differently. Checking it
early, when the token is seen, and using NextTokGetsSpace exclusively
after that makes the code simpler.

No change in behaviour is intended.

Patch by Harald van Dijk!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200788 91177308-0d34-0410-b5e6-96231b3b80d8
Debug info: fix a crasher when when emitting debug info for
not-yet-completed templated types. getTypeSize() needs a complete type.

rdar://problem/15931354

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@200797 91177308-0d34-0410-b5e6-96231b3b80d8
Simplify testcase from r200797 some more.

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