Updating the capability attribute diagnostics to be more capability-neutral. Instead of using terminology such as "lock", "unlock" and "locked", the new terminology is "acquire", "release" and "held". Additionally, the capability attribute's name argument is now reported as part of the diagnostic, instead of hard coding as "mutex."

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205359 91177308-0d34-0410-b5e6-96231b3b80d8
Partially revert r204517 and fix a different way:

We don't want to encourage the code to emit a lexical block for
a function that needs one in order for the line table to change,
we need to grab the line information from the body of the pattern
that we were instantiated from, this code should do that.

Modify the test case to ensure that we're still looking in the
right place for all of the scopes and also that we haven't
created a lexical block where we didn't need one.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205368 91177308-0d34-0410-b5e6-96231b3b80d8
Harden this test against windows/changes.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205370 91177308-0d34-0410-b5e6-96231b3b80d8
Fix type mismatch assertion related to inalloca and PR19287

Augment the test case from r205217 to catch this related bug.

Fixes the Windows self-host which was failing on VariantValue.cpp.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205378 91177308-0d34-0410-b5e6-96231b3b80d8
Add the location of Decls to ast dump.

While investigating some debug info issues, Eric and I came across a
particular template case where the location of a decl was quite
different from the range of the same decl. It might've been rather
helpful if the dumper had actually showed us this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205396 91177308-0d34-0410-b5e6-96231b3b80d8
Render anonymous entities as '(anonymous <thing>)' (and lambdas as '(lambda at ... )')

For namespaces, this is consistent with mangling and GCC's debug info
behavior. For structs, GCC uses <anonymous struct> but we prefer
consistency between all anonymous entities but don't want to confuse
them with template arguments, etc, so we'll just go with parens in all
cases.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205398 91177308-0d34-0410-b5e6-96231b3b80d8
Some more anonymous namespace diagnostics to switch to ()

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205400 91177308-0d34-0410-b5e6-96231b3b80d8
Add support for named values in the parser.

Summary:
Add support for named values in the parser.
This allows injection of arbitrary constants using a custom Sema object.
Completions are not supported right now.

Will be used by clang_query to support the 'let' command.
Usage example:
  clang_query> let unique_ptr recordDecl(hasName("unique_ptr"))
  clang_query> match varDecl(hasType(unique_ptr))

Reviewers: klimek, pcc

CC: cfe-commits, klimek

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205419 91177308-0d34-0410-b5e6-96231b3b80d8
Add matcher for ExprWithCleanups.

Summary: Add matcher for ExprWithCleanups.

Reviewers: klimek

CC: cfe-commits, klimek

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205420 91177308-0d34-0410-b5e6-96231b3b80d8
Extend the SSE2 comment lexing to AVX2. Only 16byte align when not on AVX2.

This provides some 3% speedup when preprocessing gcc.c as a single file.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205436 91177308-0d34-0410-b5e6-96231b3b80d8
DebugInfo: Include default template arguments in template type names

This was committed 4 years ago in 108916 with insufficient testing to
explain why the "getTypeAsWritten" case was appropriate. Experience says
that it isn't - the presence or absence of an explicit instantiation
declaration was causing this code to generate either i<int> or i<int,
int>.

That didn't seem to be a useful distinction, and omitting the template
arguments was destructive to debuggers being able to associate the two
types across translation units or across compilers (GCC, reasonably,
never omitted the arguments).

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205447 91177308-0d34-0410-b5e6-96231b3b80d8
PR19305: Don't issue -Wunused-variable warnings on variable templates. It's not
meaningful to odr-use the VarDecl inside a variable template. (Separately, it'd
be nice to track referenced-ness for templates, and warn on unused ones, but
that's really a distinct issue...)

Move a test that generates and tests a warning-suppressing error out to its own
test file, so it doesn't have weird effects on the other tests in the same file.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205448 91177308-0d34-0410-b5e6-96231b3b80d8
If a using-declaration names a class member, but appears outside a class, try
to suggest a different syntax to get the same effect.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205467 91177308-0d34-0410-b5e6-96231b3b80d8
Objective-C [IRGen]. Add encoding for 'weak' attribute of a
'readonly' property. // rdar://16136439



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205477 91177308-0d34-0410-b5e6-96231b3b80d8
CodeGen: Emit some functions as weak_odr under -fms-compatibility

Summary:
MSVC always emits inline functions marked with the extern storage class
specifier.  The result is something similar to the opposite of
__attribute__((gnu_inline)).

This extension is also available in C.

This fixes PR19264.

Reviewers: rnk, rsmith

CC: cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205485 91177308-0d34-0410-b5e6-96231b3b80d8
Allow ASTFile to be reset to null

Which we do in removeModules().

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205491 91177308-0d34-0410-b5e6-96231b3b80d8
[OPENMP] Small update for C++11


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205506 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Understand that "auto" is a type.

Before:
  MACRO(auto * a);

After:
  MACRO(auto *a);

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@205517 91177308-0d34-0410-b5e6-96231b3b80d8
Improved semantics for implicit scalar -> extvector conversions.

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

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