Reverting r222638; it broke the MSVC build bots because Visual Studio 2012 does not support variadic templates. Also reverting r222641 because it was relying on 222638.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222656 91177308-0d34-0410-b5e6-96231b3b80d8
Unbreaking the MSVC 2012 build; however, these tests still fail on Windows.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222664 91177308-0d34-0410-b5e6-96231b3b80d8
Fix crash when using __if_exists in C mode

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222666 91177308-0d34-0410-b5e6-96231b3b80d8
Reverting r222646; the tests do not pass on Windows. Also reverts r222664, which was required for r222646 to compile with Visual Studio 2012.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222667 91177308-0d34-0410-b5e6-96231b3b80d8
CodeGen: use a range-based for loop

Convert a debug assertion into a range-based loop form.  NFC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222679 91177308-0d34-0410-b5e6-96231b3b80d8
CodeGen: make i686-windows-itanium more similar to msvc

The itanium environment follows the system calling convention for structures.
Pass small aggregates via registers.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222680 91177308-0d34-0410-b5e6-96231b3b80d8
Correctly remove OptimizeForSize from functions marked OptimizeNone.
This allows using __attribute__((optnone)) and the -Os/-Oz options.
Fixes PR21604.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222683 91177308-0d34-0410-b5e6-96231b3b80d8
testing: make test use FileCheck

The "grep internal | count" was fragile when your source or remote paths could
contain the word "internal".

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222685 91177308-0d34-0410-b5e6-96231b3b80d8
Filter the toplevel matchers by kind.

Summary:
Filter the toplevel matchers by kind.
Decl and Stmt matchers are tied to a specific node kind and trying to
match incompatible nodes is a waste.
Precalculate a filtered list of matchers that have a chance of matching
the node and ignore the rest.
Speeds up our clang-tidy benchmark by ~10%

Reviewers: klimek

Subscribers: klimek, cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222688 91177308-0d34-0410-b5e6-96231b3b80d8
Force the correction of delayed typos in casts in non-C++ code.

Fixes PR21656, which is fallout from r222551 caused by an untested/missed
code path.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222694 91177308-0d34-0410-b5e6-96231b3b80d8
Remove unnecessary environment switch

All supported environments on x86 Windows return structs in EAX:EDX.
This removes code added in r204978 that had to get updated in r222680.
We should now have the same behavior we had before r204978.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222697 91177308-0d34-0410-b5e6-96231b3b80d8
See if this fixes Mips bot; ignore contents of parameter lists.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222708 91177308-0d34-0410-b5e6-96231b3b80d8
CodeGen: further simplify assertion

Use more of algorithm to simplify the assertion.  Pointed out by David Blakie!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222721 91177308-0d34-0410-b5e6-96231b3b80d8
docs: Update the MSVCCompatibility doc for changes to debug info

The document should reflect that we now support emission for DWARF.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222731 91177308-0d34-0410-b5e6-96231b3b80d8
MS ABI: Add CodeGen support for rethrowing MS C++ exceptions

Rethrowing exceptions in the MS model is very simple: just call
_CxxThrowException with nullptr for both arguments.

N.B.  They chose stdcall as the calling convention for x86 but cdecl for
all other platforms.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222733 91177308-0d34-0410-b5e6-96231b3b80d8
[ARM] Define __ARM_FEATURE_DSP macro for CPUs that have DSP instructions

Summary:
This resolves [[ http://llvm.org/bugs/show_bug.cgi?id=17391 | PR17391 ]].

GCC's sources were used as a guide (couldn't find much information in ARM documentation).

Reviewers: doug.gregor, asl

Reviewed By: asl

Subscribers: asl, aemerson, cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222741 91177308-0d34-0410-b5e6-96231b3b80d8
Add a missing override, caught by clang's inconsistent override warning.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222742 91177308-0d34-0410-b5e6-96231b3b80d8
Add flag -f(no-)modules-implicit-maps.

This suppresses the implicit search for files called 'module.modulemap' and
similar.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@222745 91177308-0d34-0410-b5e6-96231b3b80d8
Merge branch 'master', remote-tracking branch 'trunk/master'