Objective-C. Fixes a regression when figuring out linkage
for metadata symbols for forward referenced protocols which 
are never defined.  // rdar://16203115


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202761 91177308-0d34-0410-b5e6-96231b3b80d8
Include <tuple> to speculatively try to fix VS2013 build after r202755

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202765 91177308-0d34-0410-b5e6-96231b3b80d8
DebugInfo: Emit only the declaration of a class template that has an explicit instantiation declaration (& always emit such a type when there's an explicit instantiation definition)

We should only have this optimization fire when the explicit
instantiation definition would cause at  least one member function to be
emitted, thus ensuring that even a compiler not performing this
optimization would still emit the full type information elsewhere.

But we should also pessimize output still by always emitting the
definition when the explicit instantiation definition appears so that at
some point in the future we can depend on that information even when no
code had to be emitted in that TU. (this shouldn't happen very often,
since people mostly use explicit spec decl/defs to reduce code size -
but perhaps one day they could use it to explicitly reduce debug info
size too)

This was worth about 2% for Clang and LLVM - so not a huge win, but a
win. It looks really great for simple STL programs (include <string> and
just declare a string - 14k -> 1.4k of .dwo)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202769 91177308-0d34-0410-b5e6-96231b3b80d8
Fix typo that resulted in names at TU scope getting lost sometimes after a
module import.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202771 91177308-0d34-0410-b5e6-96231b3b80d8
Add triple to test.  On Mac OS it was failing to generate debug info which matched the check lines

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202777 91177308-0d34-0410-b5e6-96231b3b80d8
Implement __readeflags and __writeeflags intrinsics


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202778 91177308-0d34-0410-b5e6-96231b3b80d8
DebugInfo: Improvements/corrections to conservative emission of types in explicit template instantiation declarations

* detect out of line definitions correctly
* detect member function explicit specializations correctly

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202779 91177308-0d34-0410-b5e6-96231b3b80d8
DebugInfo: Make test (introduced in r202769) resilient to platforms that default to -fstandalone-debug

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202780 91177308-0d34-0410-b5e6-96231b3b80d8
Fix for r202778 - Implement __readeflags and __writeeflags intrinsics (renamed res to __res)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202784 91177308-0d34-0410-b5e6-96231b3b80d8
MS ABI: Mangle variable templates properly

We wouldn't recognize variable templates as being templates leading us
to leave the template arguments off of the mangled name.  This would
allow two unrelated templates to map to the same mangled name.

N.B.  While MSVC doesn't support variable templates as of this date,
this mangling is the most likely thing they will choose to use.  Their
demangler can successfully demangle our manglings with the template
arguments shown.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202789 91177308-0d34-0410-b5e6-96231b3b80d8
MS ABI: Reorganize some tests

Move some c++11 specific tests to mangle-ms-cxx11


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202790 91177308-0d34-0410-b5e6-96231b3b80d8
[CMake] Add the newly introduced compiler header.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202792 91177308-0d34-0410-b5e6-96231b3b80d8
Give %itanium_abi_triple to the test to appease targeting msvc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202803 91177308-0d34-0410-b5e6-96231b3b80d8
We now require Visual C++ 2012 (MSVC_VERSION = 1700) or later to build LLVM.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202804 91177308-0d34-0410-b5e6-96231b3b80d8
[cleanup] Re-sort includes with llvm/utils/sort_includes.py and fix
a missing include from CLog.h.

CLog.h referenced most of the core libclang types but never directly
included Index.h that provides them. Previously it got lucky and other
headers were always included first but with the sorting it ended up
first in one case and stopped compiling. Adding the Index.h include
fixes it right up.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202810 91177308-0d34-0410-b5e6-96231b3b80d8
[Modules] Update to reflect the move of CallSite into the IR library in
LLVM r202816.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202817 91177308-0d34-0410-b5e6-96231b3b80d8
[Modules] Update to reflect ValueHandle moving to the IR library in LLVM
r202821.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202822 91177308-0d34-0410-b5e6-96231b3b80d8
[Modules] Update to reflect the move of CFG.h to the IR library in LLVM
r202827.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202828 91177308-0d34-0410-b5e6-96231b3b80d8
[C++11] Make StoredDeclsList move-only.

It is only moved when a StoredDeclsMap grows.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@202859 91177308-0d34-0410-b5e6-96231b3b80d8
Fix -Wsign-compare warning.

No functionality change.

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