[Thumb] Clang thinks "char" is signed when using a thumb triple

'char' is unsigned on all ARM and Thumb architectures. Clang gets this
right for ARM, and for thumb when using and arm triple and the -mthumb
option, but gets it wrong for thumb triples. This fixes that.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220555 91177308-0d34-0410-b5e6-96231b3b80d8
Report when a function-try-block does not return a value on all control paths. Fixed PR14620.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220557 91177308-0d34-0410-b5e6-96231b3b80d8
Add arguments() to CXXConstructExpr so the same interface as with CallExpr can be used.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220558 91177308-0d34-0410-b5e6-96231b3b80d8
ASTMatchers: for-rangify loops. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220559 91177308-0d34-0410-b5e6-96231b3b80d8
ASTMatchers: Peel off a layer of indirection from true matcher. NFC.

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

This fixes a crash in the RecursiveASTVisitor on such code
 __typeof__(struct F*) var[invalid];

The UnderlyingTInfo of a TypeOfTypeLoc was left uninitialized when
created from ASTContext::getTrivialTypeSourceInfo
This lead to a crash in RecursiveASTVisitor when trying to access it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220562 91177308-0d34-0410-b5e6-96231b3b80d8
[mips] Promote all integral/enumeration types to the GPR width

Summary:
Ensure all integral/enumeration types are appropriately annotated with
signext/zeroext. In particular, i32 now has these attributes when using the
N32/N64 ABI. This paves the way for accurately representing the way the
N32/N64 ABI's promotes integer arguments to i64.

Reviewers: atanasyan

Reviewed By: atanasyan

Subscribers: cfe-commits, theraven

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220563 91177308-0d34-0410-b5e6-96231b3b80d8
[mips] Mark aggregate arguments passed in registers with the inreg attribute

Summary:
This allows us to easily identify them in the backend which in turn allows us
to handle them correctly for big-endian targets (where they must be shifted
into the upper bits of the register).

Depends on D5961

Reviewers: atanasyan

Reviewed By: atanasyan

Subscribers: cfe-commits, theraven

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220566 91177308-0d34-0410-b5e6-96231b3b80d8
[Modules] Free modules that failed signature verification.

The control flow and ownership is weird enough so unique_ptr doesn't help here :(

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220569 91177308-0d34-0410-b5e6-96231b3b80d8
Use enumerators instead of hardcoded integers when processing macro names.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220572 91177308-0d34-0410-b5e6-96231b3b80d8
Add frontend support for __vectorcall

Wire it through everywhere we have support for fastcall, essentially.

This allows us to parse the MSVC "14" CTP headers, but we will
miscompile them because LLVM doesn't support __vectorcall yet.

Reviewed By: Aaron Ballman

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220573 91177308-0d34-0410-b5e6-96231b3b80d8
Fix windows-cross.c test on my machine

I suspect it will need a custom sysroot to pass reliably elsewhere.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220576 91177308-0d34-0410-b5e6-96231b3b80d8
CodeGen: GLValue exprs in template parameters should have reference type

This fixes a corner-case where __uuidof as a template argument would
result in us trying to emit a GLValue as an RValue.  This would lead to
a crash down the road.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220585 91177308-0d34-0410-b5e6-96231b3b80d8
test: add -std=c++11

This test uses C++11 features (r-value references) in ObjC++.  Add a -std=c++11
to silence a warning.  NFC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220586 91177308-0d34-0410-b5e6-96231b3b80d8
CodeGen: trivial conversion to range based loop

Switch to a range-based for loop.  NFC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220587 91177308-0d34-0410-b5e6-96231b3b80d8
Itanium ABI: Template template parameters are usable as substitutions

Template template parameters weren't added to the list of substitutions.
This would make the substitution map contain inaccurate mappings,
leading to Clang violating the Itanium ABI and breaking compatibility
with GCC.

This fixes PR21351.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220588 91177308-0d34-0410-b5e6-96231b3b80d8
[modules] Support combining 'textual' with 'private'.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220589 91177308-0d34-0410-b5e6-96231b3b80d8
CodeGen: correct materialize temporary aggregates in ARC mode

Avoid an assertion when materializing a lifetime type aggregate temporary.  When
performing CodeGen for ObjC++, we could generate a lifetime-only aggregate
temporary by using an initializer list (which is effectively an array).  We
would reach through the temporary expression, fishing out the inner expression.
If this expression was a lifetime expression, we would attempt to emit this as a
scalar.  This would eventually result in an assertion as the emission would
eventually assert that the expression being emitted has a scalar evaluation
kind.

Add a case to handle the aggregate expressions.  Use the EmitAggExpr to emit the
aggregate expression rather than the EmitScalarInit.

Addresses PR21347.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220590 91177308-0d34-0410-b5e6-96231b3b80d8
test: correct an overzealous search-and-replace

The temporary initialized is referenced as %0, not as the auto-release pool.
Fixes R+A tests.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@220593 91177308-0d34-0410-b5e6-96231b3b80d8
CodeGen: Don't form weak dllexport aliases

The MS linker cannot do anything interesting with these, it doesn't make
sense to emit them.

This fixes PR21373.

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

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