[ms-cxxabi] Don't do destructor check on declarations if the dtor is deleted

We would previously emit redundant diagnostics for the following code:

  struct S {
    virtual ~S() = delete;
    void operator delete(void*, int);
    void operator delete(void*, double);
  } s;

First we would check on ~S() and error about the ambigous delete functions,
and then we would error about using the deleted destructor.

If the destructor is deleted, there's no need to check it.

Also, move the check from Sema::ActOnFields to CheckCompleteCXXClass. These
are run at almost the same time, called from ActOnFinishCXXMemberSpecification.
However, CHeckCompleteCXXClass may mark a defaulted destructor as deleted, and
if that's the case we don't want to check it.

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197509 91177308-0d34-0410-b5e6-96231b3b80d8
Bring order to the OpenCL keywords

Avoid the gratuitous repurposing of C++ keyword 'private' by using a keyword
alias.

Also attempt to document the OpenCL keywords based on scraps of information
found online.

The purpose of this commit is to reduce impact on the C++ parser.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197511 91177308-0d34-0410-b5e6-96231b3b80d8
Fix strange indentation and remove trailing whitespace on empty lines


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197513 91177308-0d34-0410-b5e6-96231b3b80d8
Objective-C. Make diagnostics and fix-its consistent 
when diagnosing casting of a cstring literal to
NSString in default and -fobjc-arc mode. 
// rdar://14106083


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197515 91177308-0d34-0410-b5e6-96231b3b80d8
Fix line endings in microsoft-dtor-lookup-cxx11.cpp

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197516 91177308-0d34-0410-b5e6-96231b3b80d8
Documentation comment parsing: rearrange tests to clarify the intent of these tests


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197517 91177308-0d34-0410-b5e6-96231b3b80d8
[ms-cxxabi] The 'most derived' ctor parameter usually comes last

Unlike Itanium's VTTs, the 'most derived' boolean or bitfield is the
last parameter for non-variadic constructors, rather than the second.
For variadic constructors, the 'most derived' parameter comes after the
'this' parameter.  This affects constructor calls and constructor decls
in a variety of places.

Reviewers: timurrrr

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197518 91177308-0d34-0410-b5e6-96231b3b80d8
Use the integrated assembler by default on FreeBSD/ppc and ppc64.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197521 91177308-0d34-0410-b5e6-96231b3b80d8
Use triples that match the -target-abi option.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197522 91177308-0d34-0410-b5e6-96231b3b80d8
None of these attributes currently make use of an AST node, so setting ASTNode = 0 to reduce complexity. No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197525 91177308-0d34-0410-b5e6-96231b3b80d8
Documentation comment parsing: allow \param and \returns on std::function,
boost::function and similar function-like objects


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197528 91177308-0d34-0410-b5e6-96231b3b80d8
Documentation comment parsing: when checking if we have typedef to something
that we consider a function for the purposes of checking \param and \returns,
look through reference types.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197530 91177308-0d34-0410-b5e6-96231b3b80d8
Objctive-C. warn if dealloc is being overridden in
a category implementation. // rdar://15397430


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197534 91177308-0d34-0410-b5e6-96231b3b80d8
Move some more test-and-consumes over to TryConsumeToken()

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197537 91177308-0d34-0410-b5e6-96231b3b80d8
Add a 's' specifications to AArch64.

This has no functionality change as clang adds explicit alignment info for
byval arguments. The only difference is that now the clang produced
DataLayout string for AArch64 is identical to the LLVM produced one.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197538 91177308-0d34-0410-b5e6-96231b3b80d8
ObjectiveC. typo fix in my last patch,
per Jordan's review. 


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197540 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format-diff.py: add the OpenCL file extension

It's handled correctly as a C-family language.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197542 91177308-0d34-0410-b5e6-96231b3b80d8
Fix comment-code function name mismatch

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197544 91177308-0d34-0410-b5e6-96231b3b80d8
Print the 'p' specification before the 'i' specification.

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@197548 91177308-0d34-0410-b5e6-96231b3b80d8
Split this test into one per supporter nacl arch.

Right now clang produces the same DataLayout for all of them, but it could, for
example, add 'n' specifications when the end architecture is given.

No functionality change, this should just make future changes easier to read.

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