[Driver][Mips] Remove redundant abstract/override function.

No functional changes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211982 91177308-0d34-0410-b5e6-96231b3b80d8
[Driver][Mips] Remove redundant brackets.

No functional changes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211983 91177308-0d34-0410-b5e6-96231b3b80d8
[Driver][Mips] Fix else-after-return.

No functional changes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211984 91177308-0d34-0410-b5e6-96231b3b80d8
Remove llvm:: from uses of ArrayRef.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211987 91177308-0d34-0410-b5e6-96231b3b80d8
Import MutableArrayRef into clang namespace.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211988 91177308-0d34-0410-b5e6-96231b3b80d8
Extend -Wtautological-undefined-compare and -Wundefined-bool-conversion to
trigger on taking the address of a reference that is returned from a function
call.


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

Remove unnecessary separation of anonymous namespace.  NFC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211990 91177308-0d34-0410-b5e6-96231b3b80d8
Basic: fix handling for Windows Itanium environment

This corrects the handling for i686-windows-itanium.  This environment is nearly
identical to Windows MSVC, except it uses the itanium ABI for C++.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211991 91177308-0d34-0410-b5e6-96231b3b80d8
test: add a test for windows itanium exceptions

Some time ago, I noticed that try would get resolved incorrectly for Windows
Itanium targets.  Add an explicit test to exsure that exceptions are handled
correctly for Windows Itanium environments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211992 91177308-0d34-0410-b5e6-96231b3b80d8
Driver: add a cygwin linker tool

This adds a linker tool for the Windows cygwin environment.  This linker
invocation is significantly different from the generic ld invocation.  It
requires additional parameters as well as does not accept some normal
parameters.  This should fix self-hosting on Cygwin.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211995 91177308-0d34-0410-b5e6-96231b3b80d8
clang/test/CodeGenCXX/windows-itanium-exceptions.cpp: Add REQUIRES:asserts for now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211996 91177308-0d34-0410-b5e6-96231b3b80d8
LibclangTest.cpp: s/uint/unsigned/. I think 'uint' is not a standard type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211997 91177308-0d34-0410-b5e6-96231b3b80d8
Revert r211866, r211895 and r211995, "Driver: use GNU::Link for the Generic_GCC toolchain". It broke users of Generic_GCC, cygwin and mingw32.

It reverts commits as follows:
  r211866: "Driver: use GNU::Link for the Generic_GCC toolchain"
  r211895: "Replace GetProgramPath("ld") with GetLinkerPath()."
  r211995: "Driver: add a cygwin linker tool"

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211998 91177308-0d34-0410-b5e6-96231b3b80d8
[Mips] Fix MIPS ABI name in the test. The name "64" is accepted by both gcc
and Clang drivers but internally LLVM/Clang use the name "n64".

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211999 91177308-0d34-0410-b5e6-96231b3b80d8
Add a matcher for SubstNonTypeTemplateParmExpr.

Reviewers: klimek, djasper

Reviewed By: djasper

Subscribers: klimek, aemerson, cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212001 91177308-0d34-0410-b5e6-96231b3b80d8
Fix a stray semi-colon. (Found by a pedantic warning)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212003 91177308-0d34-0410-b5e6-96231b3b80d8
Basic: correct the va_list type on Windows on ARM

Windows on ARM defines va_list as a typedef for char *.  Although the semantics
of argument passing for variadic functions matches AAPCS VFP, the wrapped
struct __va_list type is unused.  This makes the intrinsic definition for
va_list match that of Visual Studio.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212004 91177308-0d34-0410-b5e6-96231b3b80d8
Extract an isReservedName() function

We'll want to share the implementation if anything else decides to check
for reserved names in future, so make this little snippet of code more
discoverable.

Also remove the __va_list_tag and __builtin_va_list special-case
checks. They're leftovers from before when the reserved name logic was
added.

No change in functionality.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212006 91177308-0d34-0410-b5e6-96231b3b80d8
CodeGenAction::ExecuteAction(): check for invalid LLVM source locations

Add sign checks to deal with the fact that IR parser line/column pairs are
signed integers and sometimes invalid.

The crash path is potentially triggered by corrupt '.bc' files in practice,
though I don't have a binary input test case that can be checked-in right now.

(Unfortunately the backend itself crashes on various ill-formed '.bc' inputs so
this bandage isn't as helpful as it appears yet.)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@212007 91177308-0d34-0410-b5e6-96231b3b80d8
Remove some incorrect test suppressions

These don't actually require any registered backend to run.

This commit tests the water with a handful of fixes for what is a more
widespread problem.

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