Add a testcase for svn r153854.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154001 91177308-0d34-0410-b5e6-96231b3b80d8
Don't actually execute gcc during testing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154005 91177308-0d34-0410-b5e6-96231b3b80d8
Adds a tooling library.

Provides an API to run clang tools (FrontendActions) as standalone tools,
or repeatedly in-memory in a process. This is useful for unit-testing,
map-reduce style applications, source transformation daemons or command line
tools.

The ability to run over multiple translation units with different command
line arguments enables building up refactoring tools that need to apply
transformations across translation unit boundaries.

See tools/clang-check/ClangCheck.cpp for an example.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154008 91177308-0d34-0410-b5e6-96231b3b80d8
Add the dependency on clang-check to clang-test, so clang-check
can be integration tested.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154009 91177308-0d34-0410-b5e6-96231b3b80d8
clangFrontend depends on clangEdit.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154010 91177308-0d34-0410-b5e6-96231b3b80d8
Updated release notes for tooling.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154012 91177308-0d34-0410-b5e6-96231b3b80d8
Don't crash (assert failure) when generating blocks for C++ types with a non-const copy constructor.

This was caused by the code deciding the number of fields in the byref structure using a different test to the part of the code creating the GEPs into said structure.  



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154013 91177308-0d34-0410-b5e6-96231b3b80d8
Tooling.cpp: Don't refer to $ENV{PWD}. Use llvm::sys::fs instead.

$ENV{PWD} is not expected to be set on all hosts.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154015 91177308-0d34-0410-b5e6-96231b3b80d8
Tooling.cpp: Reorder inclusions according to the conding standards.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154016 91177308-0d34-0410-b5e6-96231b3b80d8
clang/test/Tooling/clang-check.cpp: Mark it as XFAIL mingw,msvc for now.

It seems JSON parser doesn't like path separator '\' on Win32 hosts.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154017 91177308-0d34-0410-b5e6-96231b3b80d8
Simplify test a bit now that it's not actually running cc1plus.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154018 91177308-0d34-0410-b5e6-96231b3b80d8
objective-c modern translation. Remove commenting out
of extern "C". // rdar://11169733



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154025 91177308-0d34-0410-b5e6-96231b3b80d8
Move the computation of the lambda mangling information (mangling
number + context) to the point where we initially start defining the
lambda, so that the linkage won't change when that information is made
available. Fixes the assertion in <rdar://problem/11182962>.

Plus, actually mangle the context of lambdas properly.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154029 91177308-0d34-0410-b5e6-96231b3b80d8
Include the "issue context" (e.g. function or method) where a static analyzer issue occurred in the plist output.

Fixes <rdar://problem/11004527>

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



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154035 91177308-0d34-0410-b5e6-96231b3b80d8
modern objc translator. Add more
rewriter specific option to cc1 with -rewrite-objc.
// rdar://11143173


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154037 91177308-0d34-0410-b5e6-96231b3b80d8
Look through chains of 'x = y = z' when employing silencing heuristics in the DeadStoresChecker.

Fixes <rdar://problem/11185138>.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154040 91177308-0d34-0410-b5e6-96231b3b80d8
objc-arc: provide a warning when 'receiver' of a message is 'weak'
in arc mode and opted-in with -Wreceiver-is-weak flag.
// rdar://10225276


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154042 91177308-0d34-0410-b5e6-96231b3b80d8
[driver] Create a new -mfpmath= option, which is used to control whether clang
uses Neon instructions for single-precision FP.

-mfpmath=neon is analogous to passing llc -mattr=+neonfp.
-mfpmath=[vfp|vfp2|vfp3|vfp4] is analogous to passing llc -mattr=-neonfp.

rdar://11108618


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

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