Pass the filter function_ref by value now that r221753 fixes the bug
that was preventing pass-by-value from working correctly.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221803 91177308-0d34-0410-b5e6-96231b3b80d8
Update Clang's SD-6 support to match N4200 (except for __has_cpp_attribute,
which we don't yet implement).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221816 91177308-0d34-0410-b5e6-96231b3b80d8
Fix brace init of unions with unnamed struct members

The check for unnamed members was intended to skip unnamed bitfields,
but it ended up skipping unnamed structs. This lead to an assertion in
IRGen.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221818 91177308-0d34-0410-b5e6-96231b3b80d8
Fix fallout from r219557

Summary:
Consider the following nifty 1 liner: (0 ? csqrtl(2.0f) : sqrtl(2.0f)). One can easily obtain such code from e.g. tgmath. Right now it produces an assertion because we fail to do the promotion real => _Complex real.

The case was properly handled previously (old handleOtherComplexFloatConversion routine), but was forgotten in the current version. This seems to be about fallout from r219557

Reviewers: chandlerc, rsmith

Reviewed By: rsmith

Subscribers: cfe-commits

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221821 91177308-0d34-0410-b5e6-96231b3b80d8
[Objective-C++ IRGen] do not generate .cxx_construct 
for class that contains trivially-constructible struct ivar.
rdar://18950072


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221823 91177308-0d34-0410-b5e6-96231b3b80d8
Update the tests to handle proper result type of (?:)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221824 91177308-0d34-0410-b5e6-96231b3b80d8
Now really fix the typo in the test


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221825 91177308-0d34-0410-b5e6-96231b3b80d8
Temporary revert r221818 until all the problems
with objc stuff will be resolved.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221829 91177308-0d34-0410-b5e6-96231b3b80d8
PR19372: Keep checking template arguments after we see an argument pack
expansion into a parameter pack; we know that we're still filling in that
parameter's arguments. Previously, if we hit this case for an alias template,
we'd try to substitute using non-canonical template arguments.


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


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221833 91177308-0d34-0410-b5e6-96231b3b80d8
Another test for PR19372, showing why we need to keep checking arguments after a pack expansion.


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



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221843 91177308-0d34-0410-b5e6-96231b3b80d8
CMake: Set HOST_LINK_VERSION on Darwin (PR21268)

The Autoconf build already does this, but it was never ported to
CMake. The host linker version affects the flags that Clang pass
to the linker, notably whether it passes -demangle or not.

http://reviews.llvm.org/D6239

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221844 91177308-0d34-0410-b5e6-96231b3b80d8
[liblang] Handle CXXForRangeStmt during AST visitation.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221874 91177308-0d34-0410-b5e6-96231b3b80d8
[libclang] Make sure to visit the body of a CXXForRangeStmt.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221881 91177308-0d34-0410-b5e6-96231b3b80d8
Support non-owned DiagnosticConsumer in SetupSerializedDiagnostics

This fixes an assertion when running clang-tidy on a file having
--serialize-diagnostics in compiler options. Committing a regression test
for clang-tidy separately.

Patch by Aaron Wishnick!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221884 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: [Java] Support Java enums.

In Java, enums can contain a class body and enum constants can have
arguments as well as class bodies. Support most of that.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221895 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Format extern "C" blocks like namespace blocks.

namespace blocks act as if KeepEmptyLinesAtTheStartOfBlocks is always true,
and aren't collapsed to a single line even if they would fit. Do the same
for extern "C" blocks.

Before,

  extern "C" {

  void ExternCFunction();

  }

was collapsed into `extern "C" { void ExternCFunction(); }`. Now it stays like
it was.

Fixes http://crbug.com/432640 and part of PR21419.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221897 91177308-0d34-0410-b5e6-96231b3b80d8
Hook up FreeBSD AArch64 support

Patch from Andrew Turner.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@221900 91177308-0d34-0410-b5e6-96231b3b80d8
Remove -Wcast-qual as it's inherited from llvm since r221913.


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