PR18855: Add support for UCNs and UTF-8 encoding within ud-suffixes.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201532 91177308-0d34-0410-b5e6-96231b3b80d8
PR18870: Parse language linkage specifiers properly if the string-literal is
spelled in an interesting way.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201536 91177308-0d34-0410-b5e6-96231b3b80d8
PR18839: 'extern "C++"' also adds an implicit 'extern', not just 'extern "C"'.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201537 91177308-0d34-0410-b5e6-96231b3b80d8
Fix a non-error diagnostic that had an err_ name. Also move it from Warning to
ExtWarn, since it's an extension.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201540 91177308-0d34-0410-b5e6-96231b3b80d8
PR18876: The special-case rule that ignores the destruction of a top-level
temporary in a decltype expression only applies if that temporary was created
by a function call, not by a function-style cast or other flavour of
expression.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201542 91177308-0d34-0410-b5e6-96231b3b80d8
MS ABI: Add support for mangling __restrict

Pointer types in the MSVC ABI are a bit awkward, the width of the
pointer is considered a kind of CVR qualifier.

Restrict is handled similarly to const and volatile but is mangled after
the pointer width qualifier.

This fixes PR18880.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201569 91177308-0d34-0410-b5e6-96231b3b80d8
Remove trailing spaces (no other change)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201570 91177308-0d34-0410-b5e6-96231b3b80d8
MS ABI: Refactor extended qualifiers

Extended qualifiers can appear in many places, refactor the code so it's
more reusable.  Add tests in areas where we've increased compatibility.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201574 91177308-0d34-0410-b5e6-96231b3b80d8
libclang: fix a bug in processing invalid arguments, introduced in r201249

Recommit r201346, reverted in r201373.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201578 91177308-0d34-0410-b5e6-96231b3b80d8
Add files that I forgot to svn add in 201578.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201579 91177308-0d34-0410-b5e6-96231b3b80d8
[analyzer] Teach CastSizeChecker about flexible array members.

...as well as fake flexible array members: structs that end in arrays with
length 0 or 1.

Patch by Daniel Fahlgren!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201583 91177308-0d34-0410-b5e6-96231b3b80d8
Remove trailing spaces (no other change). Bikeshed #2



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201584 91177308-0d34-0410-b5e6-96231b3b80d8
DeLesley Hutchins (who wrote the original thread-safety attribute functionality) and I have agreed to start migrating from lock-specific terminology to "capability"-specific terminology. This opens the door for future threading-related analysis passes so that a common nomenclature can be used.

The following attributes have been (silently) deprecated, with their replacements listed:

lockable => capability
exclusive_locks_required => requires_capability
shared_locks_required => requires_shared_capability
locks_excluded => requires_capability

There are no functional changes intended.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201585 91177308-0d34-0410-b5e6-96231b3b80d8
In some cases (for example, the Firefox build system), the CLANG_CXX variable is defined but empty.
Extend the test (like it is done in scan-build) to check also if the variable 
is empty or not.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201586 91177308-0d34-0410-b5e6-96231b3b80d8
Missed updating this test case with r201585 -- the lockable attribute is now internally represented by CapabilityAttr.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201587 91177308-0d34-0410-b5e6-96231b3b80d8
clang-cl: Parse the /d2Zi+ flag (PR18728)

This is an undocumented, but reportedly widely used flag.
We don't support it, but should be able to parse it.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201588 91177308-0d34-0410-b5e6-96231b3b80d8
Attempting to fix the build bot due to some missing text in the ast dump.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201590 91177308-0d34-0410-b5e6-96231b3b80d8
Fix testcase to actually check what it was supposed to, and make it a bit more robust.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201591 91177308-0d34-0410-b5e6-96231b3b80d8
clang-cl: support -v

It doesn't conflict with any cl.exe options and it's useful for debugging.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@201597 91177308-0d34-0410-b5e6-96231b3b80d8
Updated documentation for Thread Safety Analysis.

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