Add a test case for rdar://11806334.

Makes sure we don't overflow the stack.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160511 91177308-0d34-0410-b5e6-96231b3b80d8
Don't crash checking a format string if one of the arguments is invalid.

Previously, we would ask for the SourceLocation of an argument even if
it were NULL (i.e. if Sema resulted in an ExprError trying to build it).

<rdar://problem/11890818>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160515 91177308-0d34-0410-b5e6-96231b3b80d8
Capitalize "Objective-C" and "C++" in user-facing contexts.

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160516 91177308-0d34-0410-b5e6-96231b3b80d8
For varargs, diagnose passing ObjC objects by value like other non-POD types.

While we still want to consider this a hard error (non-POD variadic args are
normally a DefaultError warning), delaying the diagnostic allows us to give
better error messages, which also match the usual non-POD errors more closely.

In addition, this change improves the diagnostic messages for format string
argument type mismatches by passing down the type of the callee, so we can
say "variadic method" or "variadic function" appropriately.

<rdar://problem/11825593>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160517 91177308-0d34-0410-b5e6-96231b3b80d8
CommentDumper: print word-like arguments for block commands.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160519 91177308-0d34-0410-b5e6-96231b3b80d8
Removing a spurious comment, no functionality changes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160522 91177308-0d34-0410-b5e6-96231b3b80d8
Reset the layout of an ObjC class if we see an ivar in a category
or implementation since we've now got a different layout.

Fixes rdar://11842763

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160526 91177308-0d34-0410-b5e6-96231b3b80d8
Remove HasSynthBitfield and all callers/writers/etc. Also remove
previous ResetObjCLayout calls since this is now handled in Sema.

Part of rdar://11842763

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160528 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] Refactor VisitObjCMessage and VisitCallExpr to rely on the
same implementation for call evaluation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160530 91177308-0d34-0410-b5e6-96231b3b80d8
Remove dos line endings. Please remember to configure your windows SVN
clients to default text files to 'eol-native'.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160534 91177308-0d34-0410-b5e6-96231b3b80d8
Switch to the canonical pipe-based testing of clang output using
FileCheck.

This avoids copying files around needlessly during test runs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160535 91177308-0d34-0410-b5e6-96231b3b80d8
Rename warn-unused-member.cpp to warn-unused-private-field.cpp to
make it match the flag it tests.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160536 91177308-0d34-0410-b5e6-96231b3b80d8
Let Expr::HasSideEffects() return false for NULL, bool literals, this, and nullptr.

Fixes PR13413, -Wunused-private-field now warns on unused fields initialized to NULL.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160541 91177308-0d34-0410-b5e6-96231b3b80d8
Revert r160319, it caused PR13417. Add a test for PR13417.



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