ObjectiveC. By default allow array/dictionary subscripting in
ObjectiveC legacy runtime too. // rdar://15363492


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194434 91177308-0d34-0410-b5e6-96231b3b80d8
ObjectiveC. Try to unbreak buildbot.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194435 91177308-0d34-0410-b5e6-96231b3b80d8
REFACTOR: Have PushLambdaScope return the LambdaScopeInfo that it creates.

No Functionality change.

This refactoring avoids having to call getCurLambda right after PushLambdaScope, to obtain the LambdaScopeInfo that was created during the call to PushLambdaScope. 

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194438 91177308-0d34-0410-b5e6-96231b3b80d8
COSMETIC: Right justify an asterix in the previous refactoring.

Hopefully Richard won't notice this terrible egregiocity - clearly the work of a malevolent poltergeist - fixed now ;)

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194439 91177308-0d34-0410-b5e6-96231b3b80d8
-fms-compatibility: Use C++98 null pointer constant rules

Patch by Will Wilson!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194441 91177308-0d34-0410-b5e6-96231b3b80d8
Rather than duplicating extension diagnostics to allow them to cause a
substitution failure, allow a flag to be set on the Diagnostic object,
to mark it as 'causes substitution failure'.

Refactor Diagnostic.td and the tablegen to use an enum for SFINAE behavior
rather than a bunch of flags.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194444 91177308-0d34-0410-b5e6-96231b3b80d8
Extra test for r194444.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194445 91177308-0d34-0410-b5e6-96231b3b80d8
Remove C++11ism.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194446 91177308-0d34-0410-b5e6-96231b3b80d8
A quick fix to PR17877 that was introduced by r194188 (generic-lambda-capturing) that broke libc++.

See http://lists.cs.uiuc.edu/pipermail/cfe-dev/2013-November/033369.html for discussion on cfe-dev.

This fix explicitly checks whether we are within the declcontext of a lambda's call operator - which is what I had intended to be true (and assumed would be true if getCurLambda returns a valid pointer) before checking whether a lambda can capture the potential-captures of the innermost lambda.

A deeper fix (that addresses why getCurLambda() returns a valid pointer when perhaps it shouldn't?) - as proposed by Richard Smith in http://llvm.org/bugs/show_bug.cgi?id=17877 - has been suggested as a FIXME.

Patch was LGTM'd by Richard (just barely :)

http://llvm-reviews.chandlerc.com/D2144

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194448 91177308-0d34-0410-b5e6-96231b3b80d8
COSMETIC: Fix 80 column overflow in some comments introduced in r194188

no functionality change.

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

Trying to get the bots green.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194450 91177308-0d34-0410-b5e6-96231b3b80d8
Keep the old function order in CodeGenModule::applyReplacements.

The original decls are created when used. The replacements are created at the
end of the TU in reverse order.

This makes the original order far better for testing. This is particularly
important since the replacement logic could be used even when
-mconstructor-aliases is not used, but that would make many tests hard to read.

This is a fixed version of r194357 which handles replacing a destructor with
another which is an alias to a third one.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194452 91177308-0d34-0410-b5e6-96231b3b80d8
Tests for core issue 201-215.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194458 91177308-0d34-0410-b5e6-96231b3b80d8
XCore target has -fno-use-cxa-atexit as default.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194460 91177308-0d34-0410-b5e6-96231b3b80d8
XCore target Type defines.

Change SizeType, PtrDiffType, IntPtrType, WCharType, WIntType
to follow the XMOS llvm-gcc front end's settings.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194461 91177308-0d34-0410-b5e6-96231b3b80d8
XCore target requires preferred alignment.

The xcore llvm backend does not handle 8 byte alignment viz:
  "%BadAlignment = alloca i64, align 8"
So getPreferredTypeAlign() must never overalign.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194462 91177308-0d34-0410-b5e6-96231b3b80d8
[mips] Small fixes to test/CodeGen/mips-clobber-reg.c

Fixed the following:
- Whitespace at end of most lines
- $11 test actually testing $10



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194473 91177308-0d34-0410-b5e6-96231b3b80d8
[mips] Added fpu register tests to tests/CodeGen/mips-clobber-reg.c



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194474 91177308-0d34-0410-b5e6-96231b3b80d8
[mips][msa] Enable inlinse assembly for MSA.

Like GCC, this re-uses the 'f' constraint and a new 'w' print-modifier:
  asm ("ldi.w %w0, 1", "=f"(result));

Unlike GCC, the 'w' print-modifer is not _required_ to produce the intended
output. This is a consequence of differences in the internal handling of
the registers in each compiler. To be source-compatible between the
compilers, users must use the 'w' print-modifier.

MSA registers (including control registers) are supported in clobber lists.



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


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