Delay attribute checking until auto types are deduced

Checking in ActOnVariableDeclarator computes and caches the linkage using
the non-deduced auto type which defaults to external linkage. Depending on
how the auto type is deduced linkage can change and conflict with the
cached linkage, hitting asserts.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199774 91177308-0d34-0410-b5e6-96231b3b80d8
When formatting a C++-only declaration name, enable C++ mode in the formatter's
language options. This is not really ideal -- we should require the right
language options to be passed in, or not require language options to format a
name -- but it fixes a number of *obviously* wrong formattings. Patch by
Olivier Goffart!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199778 91177308-0d34-0410-b5e6-96231b3b80d8
Build an appropriate (albeit trivial) TypeSourceInfo for a destructor name, so
AST consumers can determine where the destructor name was written. Patch by
Olivier Goffart!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199779 91177308-0d34-0410-b5e6-96231b3b80d8
ObjectiveC driver. change to reinstate -fno-objc-legacy-dispatch behavior 
when the deployment target is 10.5. // rdar://15852259


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199780 91177308-0d34-0410-b5e6-96231b3b80d8
Enforce restrictions that 'main' is not allowed to be deleted, or to be used by
the program, in C++. (We allow the latter as an extension, since we've always
permitted it, and GCC does the same, and our supported C++ ABIs don't do
anything special in main.)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@199782 91177308-0d34-0410-b5e6-96231b3b80d8
Add a test file missed from r199782.


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