Update for LLVM api change.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217050 91177308-0d34-0410-b5e6-96231b3b80d8
Enhance the 'Vectors and Extended Vectors' section.

Added cast operations to the table of vector operations. Supported status 'no' means that there are no tests in the Clang test suite for the given cast.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217055 91177308-0d34-0410-b5e6-96231b3b80d8
Fix member function call on null pointer in Sema::FindInstantiatedDecl.

This bug was reported by UBSan.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217059 91177308-0d34-0410-b5e6-96231b3b80d8
Add ubsan/not_ubsan features to Clang lit tests and use
them to exclude tests with large stack usage from UBSan bootstrap.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217064 91177308-0d34-0410-b5e6-96231b3b80d8
[modules] Make NamespaceAliasDecl redeclarable, as it should be. This fixes
merging of namespace aliases across modules and improves source fidelity.
Incidentally also fixes PR20816.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217103 91177308-0d34-0410-b5e6-96231b3b80d8
Adjust test to handle fallout from r217102.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217104 91177308-0d34-0410-b5e6-96231b3b80d8
Add matcher for linkage specification

Patch by Jacques Pienaar.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217135 91177308-0d34-0410-b5e6-96231b3b80d8
ARM: Default to apcs-gnu ABI for NetBSD

r216662 changed the default ABI for 32-bit ARM targets to be "aapcs"
when no environment is given in the triple, however NetBSD requires it
to be "apcs-gnu".



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217141 91177308-0d34-0410-b5e6-96231b3b80d8
[mips] Zero-sized structs cannot be ignored in MipsABIInfo::classifyReturnType() for O32

Summary:
They are returned indirectly which causes the other arguments to move to
the next argument slot.

With this, utils/ABITest does not discover any failing cases in the first
500 attempts on big/little endian for O32. Previously some of these failed.
Also tested N32/N64 little endian (big endian has other known issues) with
no issues.

Reviewers: atanasyan

Reviewed By: atanasyan

Subscribers: atanasyan, cfe-commits

Differential Revision: http://reviews.llvm.org/D4811

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217147 91177308-0d34-0410-b5e6-96231b3b80d8
Refactor VariantMatcher::MatcherOps to reduce the amount of generated code.

Summary:
Refactor VariantMatcher::MatcherOps to reduce the amount of generated code.
 - Make some code type agnostic and move it to the cpp file.
 - Return a DynTypedMatcher instead of storing the object in MatcherOps.

This change reduces the number of symbols generated in Registry.cpp by
~19%, the object byte size by ~17% and the compilation time (in non-release mode) by ~20%.

Reviewers: klimek

Subscribers: klimek, cfe-commits

Differential Revision: http://reviews.llvm.org/D5124

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217152 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: [JS] Support comments in dict literals.

Before:
  var stuff = {
    // comment for update
    update : false,
             // comment for update
    modules : false,
              // comment for update
    tasks : false
  };

After:
  var stuff = {
    // comment for update
    update : false,
    // comment for update
    modules : false,
    // comment for update
    tasks : false
  };

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217157 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: [JS] Supprot "catch" as function name.

Before:
  someObject.catch ();

After:
  someObject.catch();

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217158 91177308-0d34-0410-b5e6-96231b3b80d8
[mips] Mark aggregates returned in registers with the 'inreg' attribute.

Summary:
This allows us to easily find them in the backend after the aggregates have
been lowered to other types. This is important on big-endian targets using
the N32/N64 ABI's since these ABI's must shift small structures into the
upper bits of the register.

Reviewers: atanasyan

Reviewed By: atanasyan

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D5005

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217160 91177308-0d34-0410-b5e6-96231b3b80d8
Fix double full-stop that was accidentally added in r217160.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217161 91177308-0d34-0410-b5e6-96231b3b80d8
Fix the clang -Werror build after r217152 by flagging a polymorphically used but statically owned hierarchy with a protected base dtor and final classes to satisfy -Wnon-virtual-dtor

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217168 91177308-0d34-0410-b5e6-96231b3b80d8
MS inline asm: Add a test for xgetbv clobbers

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217174 91177308-0d34-0410-b5e6-96231b3b80d8
Win64: Add the uwtable attribute by default on Win64

Now that LLVM emits correct .pdata and .xdata for inline functions, we
can reenable this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217178 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: [JS] Support alternative operator names as identifiers.

Before:
  not. and . or . not_eq = 1;

After:
  not.and.or.not_eq = 1;

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@217179 91177308-0d34-0410-b5e6-96231b3b80d8
MS inline asm: Allow __asm blocks to set a return value

If control falls off the end of a function after an __asm block, MSVC
assumes that the inline assembly filled the EAX and possibly EDX
registers with an appropriate return value. This functionality is used
in inline functions returning 64-bit integers in system headers, so we
need some amount of compatibility.

This is implemented in Clang by adding extra output constraints to every
inline asm block, and storing the resulting output registers into the
return value slot. If we see an asm block somewhere in the function
body, we emit a normal epilogue instead of marking the end of the
function with a return type unreachable.

Normal returns in functions not using this functionality will overwrite
the return value slot, and in most cases LLVM should be able to
eliminate the dead stores.

Fixes PR17201.

Reviewed By: majnemer

Differential Revision: http://reviews.llvm.org/D5177

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