DR1346: a parenthesized braced-init-list cannot be used as the initializer when
performing auto type deduction.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203683 91177308-0d34-0410-b5e6-96231b3b80d8
CodeGen: Move hot/cold logic out of PGOProfileData

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203689 91177308-0d34-0410-b5e6-96231b3b80d8
PR19113: Emit 'vtable' TBAA metadata when loading a vptr in a pointer-to-member-function call.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203691 91177308-0d34-0410-b5e6-96231b3b80d8
Objective-C. Issue diagnostics on mismatched methods when their selector is used
in an @selector expression. // rdar://15794055


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203693 91177308-0d34-0410-b5e6-96231b3b80d8
Dont unconditionally add gcc4.2 include paths on FreeBSD.

Newer FreeBSD doesnt ship with gcc and defaults to using libc++.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203700 91177308-0d34-0410-b5e6-96231b3b80d8
CodeGen: Use a binary format for instrumentation based profiling

This updates CodeGenPGO to use the ProfileDataReader introduced to
llvm in r203703 and the new API for writing out the profile introduced
to compiler-rt in r203710.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203711 91177308-0d34-0410-b5e6-96231b3b80d8
Revert "CodeGen: Use a binary format for instrumentation based profiling"

I've clearly done something wrong with how to get this to link
correctly. Reverting for now.

This reverts commit r203711.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203712 91177308-0d34-0410-b5e6-96231b3b80d8
MS intrinsics: don't declare __readeflags and __writeeflags in Intrin.h

They're already defined in ia32intrin.h, and this would cause including Intrin.h
in 64-bit mode to fail because of conflicting types. Update ms-intrin.cpp to
also run in 64-bit mode to catch things like this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203714 91177308-0d34-0410-b5e6-96231b3b80d8
MS intrinsics: implement __readgs{byte,word,dword,qword} (PR19054)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203715 91177308-0d34-0410-b5e6-96231b3b80d8
Thread Safety Analysis: new test case for lambdas

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203720 91177308-0d34-0410-b5e6-96231b3b80d8
MS intrinsics: implement the __movs and __stos intrinsics (PR19054)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203722 91177308-0d34-0410-b5e6-96231b3b80d8
Fix crash if delayed template parsing meets an erroneous trailing return type.
Based on a patch and test by Stephan Tolksdorf! Refactoring and fixing adjacent
brokenness by me.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203733 91177308-0d34-0410-b5e6-96231b3b80d8
Only allow streaming exactly type 'bool' to a DiagnosticBuilder, not anything
that implicitly converts to 'bool' (such as pointers, and the first operand of
?:). Clean up issues found by this. Patch by Stephan Tolksdorf!


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203735 91177308-0d34-0410-b5e6-96231b3b80d8
PR18275: If a member function of a class template is declared with a
const-qualified parameter type and the defined with a non-const-qualified
parameter type, the parameter is not const inside its body. Ensure that
the type we use when instantiating the body is the right one. Patch by
suyog sarda!

This is still rather unsatisfactory; it seems like it might be better to
instantiate at least the function parameters, and maybe the complete function
declaration, when we instantiate the definition for such a member function
(instead of reusing the declaration from inside the instantiated class
definition).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203741 91177308-0d34-0410-b5e6-96231b3b80d8
Always use --eh-frame-hdr on NetBSD, even for -static.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203742 91177308-0d34-0410-b5e6-96231b3b80d8
[C++11] Add 'override' keyword to virtual methods that override their base class.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203746 91177308-0d34-0410-b5e6-96231b3b80d8
[C++11] Add 'override' keyword to virtual methods that override their base class.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203758 91177308-0d34-0410-b5e6-96231b3b80d8
Remove unreachable PragmaCaptured method. It's not a real PPCallback.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203759 91177308-0d34-0410-b5e6-96231b3b80d8
De-virtualize a method. It's called through template magic and doesn't override anything.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@203764 91177308-0d34-0410-b5e6-96231b3b80d8
[C++11] Add 'override' keyword to virtual methods that override their base class.

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