[cmake] Write Version.inc at cmake time, not at build time.

In SVN checkouts, clang_revision_tag is rerun on every build, even if nothing
else is dirty.  After this change, Version.inc is only written at cmake time,
so that empty builds run 0 build steps (like r191784 apparently did for git).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198704 91177308-0d34-0410-b5e6-96231b3b80d8
Updating the documentation about how to add attributes based on the rather extensive refactorings that have happened over the past several months.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198705 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] Remove unused ARCNotOwnedSymbol retain count return effect.

RetainCountChecker has to track returned object values to know if they are
retained or not. Under ARC, even methods that return +1 are tracked by the
system and should be treated as +0. However, this effect behaves exactly
like NotOwned(ObjC), i.e. a generic Objective-C method that actually returns
+0, so we don't need a special case for it.

No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198709 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] Pointers escape into +[NSValue valueWithPointer:]...

...even though the argument is declared "const void *", because this is
just a way to pass pointers around as objects. (Though NSData is often
a better one.)

PR18262

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198710 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] Files with .c extensions are still C++ files if the compiler is CXX.

PR18339

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198711 91177308-0d34-0410-b5e6-96231b3b80d8
Revert "Debug info: Implement a cleaner version of r198461. For symmetry with"

This reverts commit 198699 so we can get a cleaner patch.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198713 91177308-0d34-0410-b5e6-96231b3b80d8
Revert "Debug info: Ensure that the last stop point in a function is still within"

This reverts commit r198461.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198714 91177308-0d34-0410-b5e6-96231b3b80d8
Re-applying r198699 after reverting r198461.
Debug info: Implement a cleaner version of r198461. For symmetry with
C and C++ don't emit an extra lexical scope for the compound statement
that is the body of an Objective-C method.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198715 91177308-0d34-0410-b5e6-96231b3b80d8
PR18234: Mark a tag definition as invalid early if it appears in a
type-specifier in C++. Some checks will assert in this case otherwise (in
particular, the access specifier may be missing if this happens inside a class
definition, due to a violation of an AST invariant).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198721 91177308-0d34-0410-b5e6-96231b3b80d8
[Driver] Fix a typo in the setting of the arch name when -arch x86_64h is used.
<rdar://problem/15711488>


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198722 91177308-0d34-0410-b5e6-96231b3b80d8
PR18400: ignore cv-qualifiers on the underlying type of an enumeration.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198723 91177308-0d34-0410-b5e6-96231b3b80d8
RP18408: If a member template is used as a template template argument, it does
not cause the template specialization to have no linkage.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198726 91177308-0d34-0410-b5e6-96231b3b80d8
For AArch64, support builtin neon vector type with 'long' as base element type.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198741 91177308-0d34-0410-b5e6-96231b3b80d8
Add tests for clang plugins

Somehow the entire plugin infrastructure went wholly untested until now.

The only plugins available for use in testing are the examples, so plugin tests
will only be run if CLANG_BUILD_EXAMPLES is enabled in the build.

(The examples should really be enabled by default, not just to aid testing but
also to prevent bitrot in some key user-facing code. I'll propose that
shortly.)

Requires supporting changes in LLVM r198746.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198747 91177308-0d34-0410-b5e6-96231b3b80d8
Use -std=gnu89 in tools/c-index-test/CMakeLists.txt

With the old use of -std=c89 off_t is not defined and the build fails.

This seems to be another variation of
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40278.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198748 91177308-0d34-0410-b5e6-96231b3b80d8
Build fix following r198747

Convert CMake CLANG_BUILD_EXAMPLES to a boolean value for consumption by
Python, otherwise the raw config string gets passed through which may not be
0/1.

The if/else matches the technique used to solve the problem in LLVM's own
CMakeLists.txt.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198750 91177308-0d34-0410-b5e6-96231b3b80d8
Prospective build fix for the Makefile system

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198751 91177308-0d34-0410-b5e6-96231b3b80d8
Define ENABLE_CLANG_EXAMPLES instead of relying on BUILD_EXAMPLES

This is a further build fix attempt for r198747 on some Makefile builders where
the value wasn't set at all.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198764 91177308-0d34-0410-b5e6-96231b3b80d8
Treating the RegParmAttr as a TypeAttr because that is what it is.

Patch reviewed by Rafael Espindola.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198765 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Fix spacing in Cpp11 braced lists:

Before:
  vector<int> foo{ ::SomeFunction()};

After:
  vector<int> foo{::SomeFunction()};

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