Variable templates: handle instantiation of static data member templates
appropriately, especially when they appear within class templates.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191548 91177308-0d34-0410-b5e6-96231b3b80d8
Mark variable template implementation as complete. Nearly all of the credit
here goes to Larisse Voufo.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191549 91177308-0d34-0410-b5e6-96231b3b80d8
Implement N3760, support for the [[deprecated]] attribute.

This motion appears to have consensus in the C++ committee and is
expected to be voted into the C++14 draft tomorrow during the formal
vote.

No extension warning in C++11 as attributes not specified in the
standard using the standard syntax in C++11 have implementation defined
meaning, and we define the meaning proposed for C++14.

There is one bug exposed as we do not warn on a deprecated template
specialization. I've left a FIXME in the test case and will dig into
that next.

Also, I will add a few more exhaustive test cases of the other features
specified for this attribute in a follow-up commit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191550 91177308-0d34-0410-b5e6-96231b3b80d8
Replace -fobjc-default-synthesize-properties with disable-objc-default-synthesize-properties.

We want the modern behavior most of the time, so inverting the option simplifies
the driver and the tests.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191551 91177308-0d34-0410-b5e6-96231b3b80d8
Update the help text.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191554 91177308-0d34-0410-b5e6-96231b3b80d8
docs: Remove note about Identifiers being used for C++ operators

C++ operators are represented by CXXOperatorName now, which is already
documented.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191559 91177308-0d34-0410-b5e6-96231b3b80d8
docs: Document CXXLiteralOperatorName and CXXUsingDirective

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191560 91177308-0d34-0410-b5e6-96231b3b80d8
Note that modules are supported for C/Objective-C, and have syntax in ObjC.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191562 91177308-0d34-0410-b5e6-96231b3b80d8
Fix a bug where we failed to diagnose class template specialization
uses.

This fixes one of the two remaining failures to implement [[deprecated]]
as specified for C++14.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191572 91177308-0d34-0410-b5e6-96231b3b80d8
Implementation of N3760 which is planned to be voted into C++14's draft
tomorrow is complete.

There is a missing warning due to a serious issue with template
instantiation in Clang (and potentially in the core language).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191577 91177308-0d34-0410-b5e6-96231b3b80d8
ObjectiveC migrator. Infer property from getters only
if property name is a valid identifier in the underlying
language. // rdar://15044184


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191584 91177308-0d34-0410-b5e6-96231b3b80d8
TBAA: use the same format for scalar TBAA and struct-path aware TBAA.

Struct-path aware TBAA generates tags to specify the access path,
while scalar TBAA only generates tags to scalar types.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191586 91177308-0d34-0410-b5e6-96231b3b80d8
Don't suggest namespaces if the next token is a '.'

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191589 91177308-0d34-0410-b5e6-96231b3b80d8
Implements some of the more commonly used intrinsics in Intrin.h
Differential Revision: http://llvm-reviews.chandlerc.com/D1766



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191590 91177308-0d34-0410-b5e6-96231b3b80d8
Typo correction: _int64 -> __int64.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191592 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] Make inlining decisions based on the callee being variadic.

...rather than trying to figure it out from the call site, and having
people complain that we guessed wrong and that a prototype-less call is
the same as a variadic call on their system. More importantly, fix a
crash when there's no decl at the call site (though we could have just
returned a default value).

<rdar://problem/15037033>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191599 91177308-0d34-0410-b5e6-96231b3b80d8
Merge branch 'master' of git://github.com/llvm-mirror/clang into attribute-packed