PR12788: Remove unnecessary and incorrect special case for indirect fields.
This caused us to skip a step that was essential for correct access control.


git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199522 91177308-0d34-0410-b5e6-96231b3b80d8
Use switch statements in preparation for adding more architectures.


git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199529 91177308-0d34-0410-b5e6-96231b3b80d8
Restrict redeclaration of tags introduced by using decls to MSVCCompat

This limits the facility added in r199490 while we seek clarification on the
standard.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199531 91177308-0d34-0410-b5e6-96231b3b80d8
Refactor ABI argument lowering a little

Currently it tracks the number of free registers, but soon it will track
stack offsets for inalloca lowering.

No functional change.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199532 91177308-0d34-0410-b5e6-96231b3b80d8
Driver support for -fdebug-types-sections

Using backend-option like a few other debug codegen flags. I believe
Eric Christopher's working at porting those over to something nicer
such as an API level CodeGenOptions or the like, so this can be
improved along with that work.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199535 91177308-0d34-0410-b5e6-96231b3b80d8
Try to fix this link.


git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199538 91177308-0d34-0410-b5e6-96231b3b80d8
Make unreferenced f-group options anonymous

These were showing up with find-unused-options.sh

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199560 91177308-0d34-0410-b5e6-96231b3b80d8
docs: clarify the role of compiler-builtin type trait primitives

Update the documentation to clarify the intent of clang's built-in type trait
facilities, their relation to user-facing C++ type traits and means to check
for availability.

Also explain that __has_feature() is not currently up to date and should not
generally be used in user code (there's a proposal to provide more consistent
checks via __has_builtin(), see cfe-dev).

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199562 91177308-0d34-0410-b5e6-96231b3b80d8
Fix comment typos

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199563 91177308-0d34-0410-b5e6-96231b3b80d8
Harden InitListExpr::isStringLiteralInit() against getInit() returning null.

This led to a crash on invalid code (sorry, no good test case).

Fixes <rdar://problem/15831804>.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199571 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Fix ObjC block as first call parameter formatting.

Before:
  foo (^{ bar(); });
After:
  foo(^{ bar(); });

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199573 91177308-0d34-0410-b5e6-96231b3b80d8
[CMake] check-clang requires clang-tblgen. It is not required by anyone when external CLANG_TABLEGEN is specified.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199579 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Better support and testing for protocol buffers.

With this patch, there is dedicated testing for protocol buffers
(https://developers.google.com/protocol-buffers/).

Also some minor tweaks formatting tweaks.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199580 91177308-0d34-0410-b5e6-96231b3b80d8
[CMake] Prune LLVM_TOOLS_DIR and LLVM_LIBS_DIR in clang/test/CMakeLists.txt. They are overridden in configure_lit_site_cfg().

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199591 91177308-0d34-0410-b5e6-96231b3b80d8
[CMake][Standalone] Redefine LLVM_RUNTIME_OUTPUT_INTDIR and LLVM_LIBRARY_OUTPUT_INTDIR to point appropriate target directories.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199596 91177308-0d34-0410-b5e6-96231b3b80d8
[CMake] Deprecate CLANG_RUNTIME_OUTPUT_INTDIR and CLANG_LIBRARY_OUTPUT_INTDIR.

LLVM_*_OUTPUT_INTDIR should be available everywhere. It was my mistake when I introduced INTDIR stuff.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199597 91177308-0d34-0410-b5e6-96231b3b80d8
PR18544: don't assert that 'operator new' is not declared inside a namespace;
such an assert will fail in invalid code that does so!


git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199617 91177308-0d34-0410-b5e6-96231b3b80d8
Fix nothrow trait with multiple default constructors

Check all default ctors, not just the first one we see. This brings
__has_nothrow_constructor() in line with the other unary type traits.

A C++ class can have multiple default constructors but clang was only checking
the first one written, presumably due to ambiguity in the GNU specification.

MSVC has the same bug, while g++ has the correct implementation which we now
match.

git-svn-id: http://llvm.org/svn/llvm-project/cfe/trunk@199618 91177308-0d34-0410-b5e6-96231b3b80d8
MSVC 2013 type trait support

Implement type trait primitives used in the latest edition of the Microsoft
standard C++ library type_traits header.

With this change we can parse much of the Visual Studio 2013 standard headers,
particularly anything that includes <type_traits>.

Fully implemented, available in all language modes:

 * __is_constructible()
 * __is_nothrow_constructible()
 * __is_nothrow_assignable()

Partially implemented, semantic analysis WIP, available as MS extensions:

 * __is_destructible()
 * __is_nothrow_destructible()

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