PGO: Separate out common isMachO logic; no functionality change

<rdar://problem/15943240>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204297 91177308-0d34-0410-b5e6-96231b3b80d8
scanf format checking: include the buffer length in the fix-it for %s.

Patch by Zach Davis!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204300 91177308-0d34-0410-b5e6-96231b3b80d8
PGO: use linker magic to find instrumentation data on Darwin

<rdar://problem/15943240>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204301 91177308-0d34-0410-b5e6-96231b3b80d8
[libclang] Introduce clang_VirtualFileOverlay_setCaseSensitivity that exposes the VFS option
to set the case-sensitivity for lookups.

rdar://16374696

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204303 91177308-0d34-0410-b5e6-96231b3b80d8
[-Wunreachable-code] Simplify and broad -Wunreachable-code-return, including nontrivial returns.

The exception is return statements that include control-flow,
which are clearly doing something "interesting".

99% of the cases I examined for -Wunreachable-code that fired
on return statements were not interesting enough to warrant
being in -Wunreachable-code by default.  Thus the move to
include them in -Wunreachable-code-return.

This simplifies a bunch of logic, including removing the ad hoc
logic to look for std::string literals.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204307 91177308-0d34-0410-b5e6-96231b3b80d8
[-Wunreachable-code] constexpr functions can be used as configuration values.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204308 91177308-0d34-0410-b5e6-96231b3b80d8
[-Wunreachable-code] Look through member accesses for 'static const bool' configuration values.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204315 91177308-0d34-0410-b5e6-96231b3b80d8
Kill -faddress-sanitizer, -fthread-sanitizer and -fcatch-undefined-behavior flags.

These flags are deprecated since at least Clang 3.3. Users should instead
use -fsanitize= with appropriate values.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204330 91177308-0d34-0410-b5e6-96231b3b80d8
Make format-strings-fixit.c aware of "%hu" uint16_t on wchar_t for targeting win32.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204334 91177308-0d34-0410-b5e6-96231b3b80d8
Tooling: Move heavyweight vectors around instead of copying.

While there convert to range-based for loops. No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204338 91177308-0d34-0410-b5e6-96231b3b80d8
Flust stdout after each vftable dumped to simplify debugging

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204341 91177308-0d34-0410-b5e6-96231b3b80d8
Silencing an MSVC warning about not all control paths returning a value. No functional change intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204345 91177308-0d34-0410-b5e6-96231b3b80d8
[msan] -fsanitize-memory-track-origins=[level] flag and docs.

This change turns -fsanitize-memory-track-origins into
-fsanitize-memory-track-origins=[level] flag (keeping the old one for
compatibility). Possible levels are 0 (off), 1 (default) and 2 (incredibly
detailed). See docs (part of this patch) for more info.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204346 91177308-0d34-0410-b5e6-96231b3b80d8
Remove wchar_t* buffer from scanf format fix-it test.

Amends r204300 to not try to test fixing a wchar_t* to "%ls", which we don't
do correctly anyway. In C mode, wchar_t is just a typedef for a normal
primitive integer type, not a distinct type like it is in C++. To make this
work correctly, we'll need to look for the wchar_t typedef, not just the
builtin type.

Should fix the buildbots.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204349 91177308-0d34-0410-b5e6-96231b3b80d8
Replacing the exclusive_lock_function, shared_lock_function and unlock_function attributes with the acquire_capability and release_capability attributes. The old spellings will continue to work, but the underlying semantic attributes have been replaced.

Downgraded the capability diagnostics from error to warning to match the desired behavior, and updated the existing test cases.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204350 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] scan-build: match whitespace instead of word boundaries around flags.

Because neither ' ' nor '-' is alphanumeric, \b won't match between them!
Since in this case we know our output is coming from a -### invocation,
we should always have spaces on both sides of the flag we're trying to match,
"-cc1".

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204356 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] scan-build: allow quotes around "-cc1" when looking at -### output.

Third time's the charm. Patch by Brennan Shacklett!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204362 91177308-0d34-0410-b5e6-96231b3b80d8
Prevent lookup of subframework modules by name without parent framework

We were 'allowing' the following import
@import Sub;

where Sub is a subframework of Foo and we had a -F path inside
Foo.framework/Frameworks and no module map file for Sub. This would
later hit assertion failures in debug builds.

Now we should correctly diagnose this as a module not found error.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204368 91177308-0d34-0410-b5e6-96231b3b80d8
Coding style fixup; no functionality change

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@204371 91177308-0d34-0410-b5e6-96231b3b80d8
Use nullptr; no functionality change

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