Driver: Skip the -fmodules-cache-path argument in driver crash diags

The modules cache path shouldn't be included in crash reports, as it's
a system (or run) specific directory.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206922 91177308-0d34-0410-b5e6-96231b3b80d8
PR18746: If a constexpr function has a dependent return type and no return
statements, don't diagnose; the return type might end up being 'void'.

Patch by Rahul Jain! Tiny tweaks by me.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206929 91177308-0d34-0410-b5e6-96231b3b80d8
Add some missing checks for C++1y digit separators that don't in fact separate
digits. Turns out we have completely separate lexing codepaths for floating
point numbers depending on whether or not they start with a zero. Who knew...
=)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206932 91177308-0d34-0410-b5e6-96231b3b80d8
Driver: Avoid a duplicate path separator and clean up code

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206933 91177308-0d34-0410-b5e6-96231b3b80d8
Driver: Honor %INCLUDE% when built with MinGW

Users are expected to pass system includes through the INCLUDE
environment variable on Windows.  There's no reason to change behavior
based on the toolchain used to build Clang.

I didn't change the registry searching code because I'm not sure it
builds with mingw and I'm not set up to test it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206934 91177308-0d34-0410-b5e6-96231b3b80d8
Add missing test triples

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206935 91177308-0d34-0410-b5e6-96231b3b80d8
CodeGen: Unify handling guard variables in the Itanium C++ ABI

We previously treated ARM separately from the generic Itanium ABI for
initializing guard variables. This code duplication led to things like
the ARM path missing the memory barrier for threadsafe handling, and a
highly misleading comment about how we were (mis)using the generic ABI
for ARM64 when really it went through the ARM codepath.

This unifies the two code paths. Functionally, this changes the ARM
and ARM64 codepath to use one byte loads instead of 4 and 8,
respectively, and adds the missing atomic acquire to these loads.
Other architectures are unchanged.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206937 91177308-0d34-0410-b5e6-96231b3b80d8
AST: Cleanup/simplify some LV calculation code

No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206943 91177308-0d34-0410-b5e6-96231b3b80d8
MS ABI: Cleanup some egregious style violations

No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206944 91177308-0d34-0410-b5e6-96231b3b80d8
MS ABI: Use range-based for loops in the mangler

No functional change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206945 91177308-0d34-0410-b5e6-96231b3b80d8
MS ABI: Implement mangling for ref-qualifiers on methods

Mangle ref-qualifiers like the Nov 2013 CTP.

This fixes PR19361.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206946 91177308-0d34-0410-b5e6-96231b3b80d8
[ARM64] Add a missed case label for arm64_be, and enable the aarch64-varargs test for arm64_be.

This ensures that r203917 (cpirker "AArch64_be varargs processing for ARM ABI") is ported to ARM64.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206961 91177308-0d34-0410-b5e6-96231b3b80d8
[ARM64] Enable the test aarch64-type-sizes.c for ARM64 BE.

This completes the port of r203918 (cpirker "AArch64_be specific clang target settings") to ARM64.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206962 91177308-0d34-0410-b5e6-96231b3b80d8
[ARM64] Change inline assembly constraints to be more lax, to match the behaviour of Clang/AArch64 and GCC.

GCC allows sub-64bit values to use the 'r' register constraint.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206963 91177308-0d34-0410-b5e6-96231b3b80d8
[ARM64] Enable more CodeGen tests for ARM64. The crypto and neon intrinsics tests needed changing slightly due to the naming differences between AArch64 and ARM64.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206964 91177308-0d34-0410-b5e6-96231b3b80d8
Update Target::createMCAsmParser calls for the LLVM interface change.

Patch by Yuri Gorshenin.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206970 91177308-0d34-0410-b5e6-96231b3b80d8
This reverts commit r206934 and r206935.

The original messages were:
  "Driver: Honor %INCLUDE% when built with MinGW"
  "Add missing test triples"

The test was still failing on OS X.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206973 91177308-0d34-0410-b5e6-96231b3b80d8
Add yet another vtordisp test

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206974 91177308-0d34-0410-b5e6-96231b3b80d8
Initial implementation of -modules-earch-all option, for searching for symbols in non-imported modules.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@206977 91177308-0d34-0410-b5e6-96231b3b80d8
Add aarch64-linux-android triple for Android.


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