Revert 192220 as it fails on an assertion

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192225 91177308-0d34-0410-b5e6-96231b3b80d8
ObjectiveC migration. Add support for inferring
properties of block pointer types. Also, remove
strong lifetime attribute from property type
in this migration. This is wip.
// rdar://15082818


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192226 91177308-0d34-0410-b5e6-96231b3b80d8
Explicitly request unsigned enum types when desired

This fixes repeated -Wmicrosoft warnings when self-hosting clang on
Windows, and gets us real unsigned enum types with MSVC.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192228 91177308-0d34-0410-b5e6-96231b3b80d8
[AArch64] Add support for NEON scalar signed/unsigned integer to floating-point
convert instructions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192232 91177308-0d34-0410-b5e6-96231b3b80d8
ObjectiveC migrator: Add support for inferring 
properties of function pointer type.
// rdar://15082812


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192237 91177308-0d34-0410-b5e6-96231b3b80d8
Turn error about fastcall variadic function into warning in MS mode (PR12535)

MSVC allows this and silently falls back to __cdecl for variadic functions.
This patch turns Clang's error into a warning in MS mode and adds a test
to make sure we generate correct code.

Differential Revision: http://llvm-reviews.chandlerc.com/D1861

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192240 91177308-0d34-0410-b5e6-96231b3b80d8
[AArch64] Add support for NEON scalar floating-point reciprocal estimate,
reciprocal exponent, and reciprocal square root estimate instructions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192243 91177308-0d34-0410-b5e6-96231b3b80d8
-Wmicrosoft: Don't warn on non-inline pure virtual method definitions

MSVC and clang with -fms-extensions allow pure virtual methods to be
defined inline after the "= 0" tokens.  Clang warns on these because it
is not standard, but incorrectly warns on out-of-line definitions, which
are standard.

With this change, clang will only warn on inline definitions of pure
virtual methods.

Fixes some self-host warnings on out-of-line definitions of pure virtual
destructors.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192244 91177308-0d34-0410-b5e6-96231b3b80d8
Debug Info: update testing cases when the derived-from field of
DIDerivedType is updated to use DITypeRef.

Paired commit with r192246.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192247 91177308-0d34-0410-b5e6-96231b3b80d8
Debug Info: update testing cases when the derived-from field of
DICompositeType is updated to use DITypeRef.

Paired commit with r192251.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192252 91177308-0d34-0410-b5e6-96231b3b80d8
Debug Info: update testing cases when the context field of
DICompositeType is updated to use DIScopeRef.

Paired commit with r192256.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192257 91177308-0d34-0410-b5e6-96231b3b80d8
Make wording for certain invalid unary expressions more consistent.

An invalid decltype expression like 'decltype int' gives:
error: expected '(' after 'decltype'

This makes it so 'sizeof int' gives a similar one:
error: expected parentheses around type name in sizeof expression


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192258 91177308-0d34-0410-b5e6-96231b3b80d8
Reland 192220 "Abstract out parts of thunk emission code, add support for simple thunks when using -cxx-abi microsoft" with relaxed assertions

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192285 91177308-0d34-0410-b5e6-96231b3b80d8
clang/test/Coverage/codegen-next.m: Exclude this for targeting x86_64-win32.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192286 91177308-0d34-0410-b5e6-96231b3b80d8
Code cleanup: rename VTableContext to ItaniumVTableContext, VTableBuilder to ItaniumVTableBuilder and clang-format code around

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192288 91177308-0d34-0410-b5e6-96231b3b80d8
[Mips] Make mips32/mips32r2/mips64/mips64r2 real aliases for appropriate
march options.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192289 91177308-0d34-0410-b5e6-96231b3b80d8
[Mips] Do not check for options from the OPT_mips_CPUs_Group. All these
options are aliases now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192290 91177308-0d34-0410-b5e6-96231b3b80d8
[Mips] Remove unused mips_CPUs_Group options group. It's better to join
all MIPS-related options to the new m_mips_Features_Group later.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192291 91177308-0d34-0410-b5e6-96231b3b80d8
[Mips] Make the isMipsR2Arch() function simpler - remove checking for
MIPS-arch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192292 91177308-0d34-0410-b5e6-96231b3b80d8
[Mips] Group MIPS-related options checking function in one place.

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