These attributes are no longer "checker-specific."

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199625 91177308-0d34-0410-b5e6-96231b3b80d8
Wire up basic parser/sema support for attribute 'returns_nonnull'.

This attribute is supported by GCC.  More generally it should
probably be a type attribute, but this behavior matches 'nonnull'.

This patch does not include warning logic for checking if a null
value is returned from a function annotated with this attribute.
That will come in subsequent patches.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199626 91177308-0d34-0410-b5e6-96231b3b80d8
PR18551: accepts invalid strong enum to bool when operator! is used

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199627 91177308-0d34-0410-b5e6-96231b3b80d8
Make the Linux support for finding libc++ somewhat less braindead.

Now instead of just looking in the system root for it, we also look
relative to the clang binary's directory. This should "just work" in
almost all cases. I've added test cases accordingly.

This is probably *very* worthwhile to backport to the 3.4 branch so that
folks can check it out, build it, and use that as their host compiler
going forward.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199632 91177308-0d34-0410-b5e6-96231b3b80d8
Add the test trees that were supposed to be part of r199632.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199633 91177308-0d34-0410-b5e6-96231b3b80d8
[CMake] Apply ADDITIONAL_HEADERS introduced in r199639.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199640 91177308-0d34-0410-b5e6-96231b3b80d8
[ARM] Add ACLE enum/wchar size predefines

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199642 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Leave 2 empty lines in Google's JavaScript style.

As per the style guide, two lines are required between top-level
elements.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199660 91177308-0d34-0410-b5e6-96231b3b80d8
HasFunctionProto is a more strict version of FunctionLike. Since attribute subjects are inclusive (passing a single subject test means no subject-related diagnostic will fire), these two subjects should not be combined.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199662 91177308-0d34-0410-b5e6-96231b3b80d8
Making some minor improvements to r199626.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199663 91177308-0d34-0410-b5e6-96231b3b80d8
Since the diagnostics engine understands Attr objects, this code is no longer required -- we can just pass in the attribute directly.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199664 91177308-0d34-0410-b5e6-96231b3b80d8
Remove virtual methods that were added in 2009 and still had 1 implementation.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199665 91177308-0d34-0410-b5e6-96231b3b80d8
Fixing a typo (turned out to be harmless since the default priority values are the same between the two attributes).

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199666 91177308-0d34-0410-b5e6-96231b3b80d8
Make the test more strict.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199669 91177308-0d34-0410-b5e6-96231b3b80d8
Add a triple. Should fix the 64 bit bots.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199670 91177308-0d34-0410-b5e6-96231b3b80d8
Formatting cleanups; no functional changes.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199671 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Properly format custom options in protocol buffer definitions.

Before:
  option(my_option) = "abc";

After:
  option (my_option) = "abc";

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199672 91177308-0d34-0410-b5e6-96231b3b80d8
Remove some hard-coded specialness for thread-safety attributes from the parser, and made it more declarative. If an attribute is allowed to appear on a function definition when late parsed, it can now use the FunctionDefinition attribute subject. It's treated as a FunctionDecl for most purposes, except it also gets exposed on the AttributeList so that it can be used while parsing.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199676 91177308-0d34-0410-b5e6-96231b3b80d8
Exposed a declarative way to specify that an attribute can be duplicated when merging attributes on a declaration. This replaces some hard-coded functionality from Sema.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199677 91177308-0d34-0410-b5e6-96231b3b80d8
Adding a bit of documentation that was missed with r198883 (when ParseArgumentsAsUnevaluated was added).

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