WIP

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224843 91177308-0d34-0410-b5e6-96231b3b80d8
Sema: Qualify getPrintable's Expr argument

getPrintable has an overload which takes a bool.  This means that const
qualified Exprs would get forwarded to the bool overload instead of the
Expr overload.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224844 91177308-0d34-0410-b5e6-96231b3b80d8
Update tests due to r224849

Inferring nuw caused some clang tests to change their output.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224851 91177308-0d34-0410-b5e6-96231b3b80d8
Adjust the rest of the tests due to r224849.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224865 91177308-0d34-0410-b5e6-96231b3b80d8
Add more test coverage for the Objective-C deprected selector warning.

I broke this case in a local patch I'm writing, and there was no test to stop
me.  Now there is.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224873 91177308-0d34-0410-b5e6-96231b3b80d8
Mark __builtin_ia32_cmppd256 and __builtin_ia32_cmpps256 as taking an ICE for the constant parameter.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224874 91177308-0d34-0410-b5e6-96231b3b80d8
Make the test from r224873 actually pass.

The behavior looks incorrect to me, but the test is supposed to document
current behavior for now.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224875 91177308-0d34-0410-b5e6-96231b3b80d8
Address review feedback on r221933.

Remove ObjCMethodList::Count, instead store a "has more than one decl" bit in
the low bit of the ObjCMethodDecl pointer, using a PointerIntPair.

Most of this patch is replacing ".Method" with ".getMethod()".

No intended behavior change.


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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224877 91177308-0d34-0410-b5e6-96231b3b80d8
Add more feature flags to the x86 instrinsic test.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224878 91177308-0d34-0410-b5e6-96231b3b80d8
[x86] Add the (v)cmpps/pd/ss/sd builtins to match gcc. Use them in the sse intrinsic files.

This still lower to the same intrinsics as before.

This is preparation for bounds checking the immediate on the avx version of the builtin so we don't pass illegal immediates into the backend. Since SSE uses a smaller size immediate its not possible to bounds check when using a shared builtin. Rather than creating a clang specific builtin for the different immediate, I decided (after consulting with Chandler) that it was better to match gcc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224879 91177308-0d34-0410-b5e6-96231b3b80d8
[x86] Add range checking to the constant argument of cmpps/pd/ss/sd builtinas.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224880 91177308-0d34-0410-b5e6-96231b3b80d8
Objective-C: Tweak unavailability warning.

Don't warn when a selector has an unavailable and an available variant,
and the first also has an implementation.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224881 91177308-0d34-0410-b5e6-96231b3b80d8
[x86] Add missing typecast to __v4si to sha intrinsic header file.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224882 91177308-0d34-0410-b5e6-96231b3b80d8
[x86] Also add the missing type casts on the returns in the sha
intrinsic header file. Along with r224822, this should restore the build
bots to passing.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224883 91177308-0d34-0410-b5e6-96231b3b80d8
Objective-C: Serialize "more than one decl" state of ObjCMethodList.

This fixes PR21587, what r221933 fixed for regular programs is now also
fixed for decls coming from PCH files.

Use another bit from the count/bits uint16_t for storing the "more than one
decl" bit.  This reduces the number of bits for the count from 14 to 13.
The selector with the most overloads in Cocoa.h has ~55 overloads, so 13 bits
should still be plenty.  Since this changes the meaning of a serialized bit
pattern, also increase clang::serialization::VERSION_MAJOR.

Storing the "more than one decl" state of only the first overload isn't quite
correct, but Sema::AreMultipleMethodsInGlobalPool() currently only looks at
the state of the first overload so it's good enough for now.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224892 91177308-0d34-0410-b5e6-96231b3b80d8
Remove unneeded include of DeclCXX.h from libParse.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224893 91177308-0d34-0410-b5e6-96231b3b80d8
Add stub sections about Parse, Sema, CodeGen to the internals manual.

I'd be interested if the paragraph on Parse not knowing much about AST is
something folks agree with.  I think this used to be true after rjmccall removed
the Action interface in r112244 and I believe it's still true, but I'm not sure.
(For example, ParseOpenMP.cpp does include AST/StmtOpenMP.h.  Other than that,
Parse not using AST nodes much seems to be still true, though.)


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224894 91177308-0d34-0410-b5e6-96231b3b80d8
Fix markup from r224894.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@224895 91177308-0d34-0410-b5e6-96231b3b80d8
Lex: Don't let annotation tokens get into macro expansion

We'd let annotation tokens from '#pragma pack' and the like get inside a
function-like macro.  This would lead to terror and mayhem; stop the
madness early.

This fixes PR22037.

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