Use getPointerSizeInBits.

I introduced this bug in 198815. Thanks for Mark Lacey for noticing.
Unfortunately, I have no idea how to test this code.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198891 91177308-0d34-0410-b5e6-96231b3b80d8
Fix ast-dump-color.cpp test following r198883

The commit added a source location that used to be missing from the AST.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198892 91177308-0d34-0410-b5e6-96231b3b80d8
Removing the notion of TargetAttributesSema and replacing it with one where the parsed attributes are responsible for knowing their target-specific nature, instead of letting Sema figure it out. This is necessary so that __has_attribute can eventually determine whether a parsed attribute applies to the given target or not.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198896 91177308-0d34-0410-b5e6-96231b3b80d8
__has_attribute now understands target-specific attributes. So when you ask whether an ARM target has the "interrupt" attribute, it will return true for ARM and MSP430 targets, and false for others.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198897 91177308-0d34-0410-b5e6-96231b3b80d8
Updating documentation for the __has_attribute changes landed in r198897.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198899 91177308-0d34-0410-b5e6-96231b3b80d8
[ms-abi] Fixing CGRecordLayoutBuilder w.r.t. MS NonVirutalBase Layout


The MS abi lays out *all* non-virtual bases with leading vfptrs before 
laying out non-virutal bases without vfptrs.  This guarantees that the 
primary base is laid out first.  r198818 fixed RecordLayoutBuilder to 
produce compatiable layouts.  This patch fixes CGRecordLayoutBuilder to 
be able to consume those layouts and produce meaningful output without 
tripping any asserts about assumed incoming layout.

A test case is included that shows CGRecordLayoutBuilder in fact 
produces output in the compatiable order.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198900 91177308-0d34-0410-b5e6-96231b3b80d8
Reapply r198845, reverted in r198849, with a fix to make it valid C++98, not
just valid C++11 =)

Original commit message:

PR18427: Use an appropriately-aligned buffer in APValue, to avoid a crash on
SPARC, where uint64_t apparently requires higher alignment than void*.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198903 91177308-0d34-0410-b5e6-96231b3b80d8
ObjectiveC. 1) Warn when @dynamic (as well as synthesize) 
property has the naming convention that implies 'ownership'.
2) improve on diagnostic and make it property specific.
3) fix the line number in the case of default property
synthesis. // rdar://15757510


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198905 91177308-0d34-0410-b5e6-96231b3b80d8
CGRecordLayoutBuilder.cpp: Clarify if-else. [-Wdangling-else]

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198906 91177308-0d34-0410-b5e6-96231b3b80d8
[ms-abi] Handle __declspec(align) on bitfields "properly"

__declspec(align), when applied to bitfields affects their perferred 
alignment instead of their required alignment.  We don't know why.  
Also, #pragma pack(n) turns packing *off* if n is greater than the 
pointer size.  This is now observable because of the impact of 
declspec(align) on bitfields.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198907 91177308-0d34-0410-b5e6-96231b3b80d8
Pass -32/-64 to the assembler when building for sparc/sparc64.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198911 91177308-0d34-0410-b5e6-96231b3b80d8
Give the linker the right ELF type for SPARC targets.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198912 91177308-0d34-0410-b5e6-96231b3b80d8
Make the tautological out of range warning use Sema::DiagRuntimeBehavior so that
the warning will not trigger on code protected by compile time checks.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198913 91177308-0d34-0410-b5e6-96231b3b80d8
Locate GCC installations on SPARC systems.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198918 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Understand ObjC boxed expressions.

Before:
  [dictionary setObject:@(1)forKey:@"number"];
After:
  [dictionary setObject:@(1) forKey:@"number"];

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198920 91177308-0d34-0410-b5e6-96231b3b80d8
reapply r198858: Disable LeakSanitizer in TableGen binaries, see PR18325; this time LeakSanitizerIsTurnedOffForTheCurrentProcess is used instead of __lsan_is_turned_off

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198922 91177308-0d34-0410-b5e6-96231b3b80d8
Use the right dynamic linker for SPARC Linux executables.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@198923 91177308-0d34-0410-b5e6-96231b3b80d8
clang-format: Slightly adapt line break in edge case.

Before:
  SomeMap[std::pair(aaaaaaaaaaaa, bbbbbbbbbbbbbbb)]
      .insert(ccccccccccccccccccccccc);

After:
  SomeMap[std::pair(aaaaaaaaaaaa, bbbbbbbbbbbbbbb)].insert(
      ccccccccccccccccccccccc);

This seems to be about 3:1 more common in Google and Chromium style and I found
only a handful of instances inside the LLVM codebase.

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

Also move some comments into the block they were meant to describe.

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

Based on recent discussions, attempt to provide a clearer distinction between
MicrosoftMode and MicrosoftExt. This still doesn't feel perfect but gives a
better idea which is which.

Also update the CPlusPlus11 description which got missed in r171367.

C++0x is dead, long live C++0x!

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