Declare type of flags to be used in a __block (byref)
variable descriptor captured by a block.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166746 91177308-0d34-0410-b5e6-96231b3b80d8
Fix test suppressed in r166683 on 32-bit Linux

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

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166759 91177308-0d34-0410-b5e6-96231b3b80d8
These tests require an actual x86 registered target, so mark them as such. Tested on ARM.

Patch by Joey Gouly.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166765 91177308-0d34-0410-b5e6-96231b3b80d8
Remove clang-fixit from tools page as it is currently not planned as a
separate tool.

Review: http://llvm-reviews.chandlerc.com/D81

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166766 91177308-0d34-0410-b5e6-96231b3b80d8
In the ASTImporter, don't try to emit a diagnostic if we're not
allowed to complain about a failure.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166776 91177308-0d34-0410-b5e6-96231b3b80d8
Eliminate some longstanding FIXMEs regarding variadic templates in the
ASTImporter.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166777 91177308-0d34-0410-b5e6-96231b3b80d8
Add comments for RemoveRedundantMsgs, rename it to removeRedundantMsgs() per Jordan's feedback.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166778 91177308-0d34-0410-b5e6-96231b3b80d8
Match up anonymous structs/unions in the ASTImporter. Previously, we'd
only actually get the answer right if there was only a single
anonymous struct/union at that level. This is part of
<rdar://problem/11904570>; the test will go into LLDB itself.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166781 91177308-0d34-0410-b5e6-96231b3b80d8
[ms-inline asm] Test case for r166790.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166791 91177308-0d34-0410-b5e6-96231b3b80d8
[ms-inline asm] Add test case for r166792.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166793 91177308-0d34-0410-b5e6-96231b3b80d8
tests: Tweak unprintable.c to try another character which is hopefully even more
unprintable.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166798 91177308-0d34-0410-b5e6-96231b3b80d8
[options] Fix mishandling of aliased options that was introduced in r166444.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166801 91177308-0d34-0410-b5e6-96231b3b80d8
This patch addresses a 64-bit PowerPC ELF ABI compatibility issue with
varargs parameter passing.

A strict reading of the ABI indicates that any argument with alignment greater
than 8 may require skipping doublewords in the parameter save area to align
the argument, and hence require skipping GPRs.  In practice, this is not done
by GCC.  The alignment restriction is used for internal alignment of a
structure, but a structure with 16-byte alignment, for example, is not
itself 16-byte aligned in the parameter save area.  Although this is messy,
it has become the de facto standard used in building existing libraries.

My initial varargs support followed the ABI language, but not the de facto
standard.  Running the GCC compatibility test suite exposed this issue, and
indeed showed that LLVM didn't pass parameters self-consistently with my
original logic.  Removing the additional alignment logic allows the affected
tests to now pass.

I modified the ppc64-varargs-struct.c test case to remove the existing test
for generation of alignment code, which is no longer appropriate.

Built and tested on powerpc64-unknown-linux-gnu with no new regressions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166805 91177308-0d34-0410-b5e6-96231b3b80d8
[driver] Before applying the working directory check if the input path
is absolute.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166808 91177308-0d34-0410-b5e6-96231b3b80d8
objective-C IRGen: for @implementation nested in 
extern "C", its method definitions must be IRGen'ed
before meta-data for class is generated. Otherwise,
IRGen crashes (to say the least).
// rdar://12581683 


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166809 91177308-0d34-0410-b5e6-96231b3b80d8
Remove BLOCK_BYREF_LAYOUT_BYREF flags from list of
flags for __block variable meta-data.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166811 91177308-0d34-0410-b5e6-96231b3b80d8
This patch is a follow-up to r166805.  As suggested on-list, a check was
added to ensure no extra alignment code is added in the future.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166812 91177308-0d34-0410-b5e6-96231b3b80d8
Add comment for my patch in r166809.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166823 91177308-0d34-0410-b5e6-96231b3b80d8
When an externally-supplied record layout has a size that clearly
doesn't include padding up to the alignment of the record, take this
as a cue that the alignment of the record should (conservatively) be
set to 1. This is similar to other the other cues we use to determine
that the record has a lower alignment, e.g., that the
externally-supplied layout places fields at lower offsets than we
would. Fixes <rdar://problem/12582052>; test case in LLDB.


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