Fixing MSVC warning: "warning C4373: 'blah': virtual function overrides 'blah', previous versions of the compiler did not override when parameters only differed by const/volatile qualifiers."

This warning is basically useless because the "previous versions" being referred to is MSVC 2005 and earlier, and we obviously do not care about them. However, this warning isn't particularly chatty (I don't recall ever seeing it previously), and it has the opportunity to point out cases where the cv-qualifiers differ unintentionally (like this case), so I am leaving it enabled for now.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216267 91177308-0d34-0410-b5e6-96231b3b80d8
-fms-extensions: Alias _intNN to __intNN

Fixes build for SPEC 2000 CPU. MSVC disables these aliases under /Za,
which enables stricter standards compliance. We don't currently have any
way to disable them.

Patch by Kevin Smith!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216270 91177308-0d34-0410-b5e6-96231b3b80d8
Objective-C. Warn if user has made explicit call
to +initilize as this results in an extra call
to this method. rdar://16628028


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216271 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] Remove check covered by -Wobjc-missing-super-calls.

The ObjCDealloc checker is currently disabled because it was too aggressive, but this
is a good first step in getting it back to a useful state.

Patch by David Kilzer!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216272 91177308-0d34-0410-b5e6-96231b3b80d8
[test/CodeGen/ARM] Adpat test to match new codegen after r216274.
Moreover, rework some patterns to actually check the emitted instructions
instead of matching unrelated string!

E.g.,
some of the "// CHECK: vmov" were matching stuff like ".globl
funcname_with_vmov" instead of actual instructions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216275 91177308-0d34-0410-b5e6-96231b3b80d8
Fix PR17239 by changing the semantics of the RemainingArgsClass Option kind

This patch aims at fixing PR17239.

This bug happens because the /link (clang-cl.exe argument) is marked as
"consume all remaining arguments". However, when inside a response file,
/link should only consume all remaining arguments inside the response
file where it is located, not the entire command line after expansion.
The LLVM side of the patch will change the semantics of the
RemainingArgsClass kind to always consume only until the end of the
response file when the option originally came from a response file.
There are only two options in this class: dash dash (--) and /link.

This is the Clang side of the patch in http://reviews.llvm.org/D4899

Reviewered By: rafael, rnk

Differential Revision: http://reviews.llvm.org/D4900

Patch by Rafael Auler!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216281 91177308-0d34-0410-b5e6-96231b3b80d8
Objective-C. Update my previous patch to not warn if
+initialize is called on 'super' in its implementation.
rdar://16628028


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216282 91177308-0d34-0410-b5e6-96231b3b80d8
Ignore -Wunsupported-dll-base-class-template by default

The situation it is warning about (see PR20725) is not very likely
to be a real problem, and it is unclear what action the user should take
if the warning does fire.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216283 91177308-0d34-0410-b5e6-96231b3b80d8
DebugInfo: Scope for condition variables more narrowly than the loop variable.

for loops introduce two scopes - one for the outer loop variable and its
initialization, and another for the body of the loop, including any
variable declared inside the loop condition.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216288 91177308-0d34-0410-b5e6-96231b3b80d8
DebugInfo: Provide scopes for C++11 range-for loop variables similar to r216288 (which was for plain-for loop condition variables).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216291 91177308-0d34-0410-b5e6-96231b3b80d8
Clear the clang release notes to make room for 3.6.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216293 91177308-0d34-0410-b5e6-96231b3b80d8
DebugInfo: for loop backedge should be attributed to the start of the for statement.

Similar to r215768 (which fixed the same case for while loops). To quote
r215768's commit message:

"A little test case simplification - this could be simplified further,
though there are certainly interesting connections to the if/else
construct so I'm hesitant to remove that entirely though it does appear
somewhat unrelated.

(similar fix to r215766, related to PR19864)"

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216297 91177308-0d34-0410-b5e6-96231b3b80d8
DebugInfo: Test that the loop backedge in a range-for is attribute to the loop header.

This already works, but somewhat by accident (due to the order of
emission in clang, the location is set to the loop header (during the
emission of the iteratior increment) before the loop backedge is
emitted), so let's just add a test for symmetry and future-proofing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216298 91177308-0d34-0410-b5e6-96231b3b80d8
Objective-C. Warn when @encode'ing provides an incomplete
type encoding because in certain cases, such as for vector
types, because we still haven't designed encoding for them.
rdar://9255564


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216301 91177308-0d34-0410-b5e6-96231b3b80d8
Fix a bad location in -Wparentheses fix-it hint

The code used getLocStart() instead of getLocEnd().  This works for single
token expressions, but breaks if the expression is longer.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216306 91177308-0d34-0410-b5e6-96231b3b80d8
[modules] Put class template declarations into the scope in which they're
declared, rather than putting them into the template parameter scope. We
previously had *no record* in the scope for class template declarations, once
those declarations completed and their template parameter scopes were popped.
This in turn caused us to be unable to merge class template declarations that
were declared in the global scope (where we use scope lookup rather than
DeclContext lookup for merging), when loading a module.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216311 91177308-0d34-0410-b5e6-96231b3b80d8
[modules] When merging a tag declaration that has a typedef name for linkage
purposes, look for other typedefs with that same name and merge into their
named tag declaration if there is one.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216312 91177308-0d34-0410-b5e6-96231b3b80d8
CodeGen: Skip unnamed bitfields when handling designated initializers

We would accidently initialize unnamed bitfields instead of the
following field.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216313 91177308-0d34-0410-b5e6-96231b3b80d8
checkDLLAttribute: remove a redundant dyn_cast

The same dyn_cast was done earlier in the function. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@216326 91177308-0d34-0410-b5e6-96231b3b80d8
MS ABI: Inherit DLL attributes to partial class template specializations

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