Merging r155803:
------------------------------------------------------------------------
r155803 | rsmith | 2012-04-29 17:16:51 -0700 (Sun, 29 Apr 2012) | 8 lines

PR11926 + duplicates: Fix crash in -Wuninitialized when using a compiler like
g++4.7, which reuses stack space allocated for temporaries. CFGElement::getAs
returns a suitably-cast version of 'this'. Patch by Markus Trippelsdorf!

No test: this code has the same observable behavior as the old code when built
with most compilers, and the tests were already failing when built with a
compiler for which this produced a broken binary.

------------------------------------------------------------------------


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


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_31@156470 91177308-0d34-0410-b5e6-96231b3b80d8
Update.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_31@156641 91177308-0d34-0410-b5e6-96231b3b80d8
Merging r155860:
------------------------------------------------------------------------
r155860 | dgregor | 2012-04-30 16:42:57 -0700 (Mon, 30 Apr 2012) | 2 lines

Add support for openSUSE 12.2, from Ismail Donmez!

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_31@156670 91177308-0d34-0410-b5e6-96231b3b80d8
Merging r155975:
------------------------------------------------------------------------
r155975 | rsmith | 2012-05-01 18:29:43 -0700 (Tue, 01 May 2012) | 4 lines

Disable our non-standard delayed parsing of exception specifications. Delaying
the parsing of such things appears to be a conforming extension, but it breaks
libstdc++4.7's std::pair.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_31@156672 91177308-0d34-0410-b5e6-96231b3b80d8
Merging r156047:
------------------------------------------------------------------------
r156047 | rjmccall | 2012-05-02 18:34:46 -0700 (Wed, 02 May 2012) | 4 lines

Merge x86-64-abi-sret-vs-2word-struct-param.cpp into the generic
x86_64-arguments.cpp test file and be sure to test the coerced
case as well.  Thanks to Wei-Ren Chen for bringing this test
to my attention.
------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_31@156673 91177308-0d34-0410-b5e6-96231b3b80d8
Merging r155910:
------------------------------------------------------------------------
r155910 | chapuni | 2012-05-01 03:51:55 -0700 (Tue, 01 May 2012) | 1 line

clang/test/Rewriter/rewrite-modern-extern-c-func-decl.mm: Remove XFAIL and add -U__declspec. mingw32 tends to define built-in __declspec.
------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_31@156674 91177308-0d34-0410-b5e6-96231b3b80d8
Merging r155823:
------------------------------------------------------------------------
r155823 | dgregor | 2012-04-30 09:20:27 -0700 (Mon, 30 Apr 2012) | 4 lines

Restore paren, bracket and brace counts in parser when
TentativeParsingAction is reverted, from Pasi Parviainen! Fixes
PR12480 / <rdar://problem/11341251>.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_31@156675 91177308-0d34-0410-b5e6-96231b3b80d8
Merging r155788:
------------------------------------------------------------------------
r155788 | rsmith | 2012-04-29 00:31:09 -0700 (Sun, 29 Apr 2012) | 4 lines

PR12688: ParseCXXClassMemberDeclaration's sometimes-null ThisDecl takes another
victim. Don't crash if we have a delay-parsed exception specification for a
class member which is invalid in a way which precludes building a FunctionDecl.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_31@156676 91177308-0d34-0410-b5e6-96231b3b80d8
Merging r155356:
------------------------------------------------------------------------
r155356 | dgregor | 2012-04-23 09:42:52 -0700 (Mon, 23 Apr 2012) | 3 lines

Teach RequireCompleteType about multi-dimensional arrays. Fixes
<rdar://problem/11284902>.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_31@156677 91177308-0d34-0410-b5e6-96231b3b80d8
Merging r155608:
------------------------------------------------------------------------
r155608 | rsmith | 2012-04-25 20:16:45 -0700 (Wed, 25 Apr 2012) | 3 lines

PR12660: Don't crash when initializing a const reference from a braced init list
which creates a temporary by calling a constructor.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_31@156678 91177308-0d34-0410-b5e6-96231b3b80d8
Merging r155424:
------------------------------------------------------------------------
r155424 | rsmith | 2012-04-23 22:06:35 -0700 (Mon, 23 Apr 2012) | 3 lines

PR12629: Cope with parenthesized function types when attaching a delayed
exception specification to a function.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_31@156679 91177308-0d34-0410-b5e6-96231b3b80d8
Merging r155289:
------------------------------------------------------------------------
r155289 | rsmith | 2012-04-21 10:47:47 -0700 (Sat, 21 Apr 2012) | 3 lines

Fix serialization of uninstantiated exception specifications. Patch by Li Kan,
test by me.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_31@156681 91177308-0d34-0410-b5e6-96231b3b80d8
Merging r155218:
------------------------------------------------------------------------
r155218 | rsmith | 2012-04-20 11:46:14 -0700 (Fri, 20 Apr 2012) | 5 lines

Fix bug where a class's (deleted) copy constructor would be implicitly given a
non-const reference parameter type if the class had any subobjects with deleted
copy constructors. This causes a rejects-valid if the class's copy constructor
is explicitly defaulted (as happens for some implementations of std::pair etc).

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_31@156682 91177308-0d34-0410-b5e6-96231b3b80d8
Merging r155293:
------------------------------------------------------------------------
r155293 | rsmith | 2012-04-21 11:42:51 -0700 (Sat, 21 Apr 2012) | 4 lines

Fix regression in r154844. If necessary, defer computing adjusted destructor
exception specifications in C++11 until after we've parsed the exception
specifications for nested classes.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_31@156683 91177308-0d34-0410-b5e6-96231b3b80d8
Merging r156031:
------------------------------------------------------------------------
r156031 | rsmith | 2012-05-02 15:22:32 -0700 (Wed, 02 May 2012) | 4 lines

Revert most of r154844, which was disabled in r155975. Keep around the
refactorings in that revision, and some of the subsequent bugfixes, which
seem to be relevant even without delayed exception specification parsing.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_31@156684 91177308-0d34-0410-b5e6-96231b3b80d8
Fix accidental merge error.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_31@156688 91177308-0d34-0410-b5e6-96231b3b80d8
Merging r155426:
------------------------------------------------------------------------
r155426 | rsmith | 2012-04-23 22:48:42 -0700 (Mon, 23 Apr 2012) | 3 lines

Don't try to delay parsing the exception specification for a data member of a
class; we would never actually parse it and attach it to the type.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_31@156701 91177308-0d34-0410-b5e6-96231b3b80d8
Bah...

git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_31@156702 91177308-0d34-0410-b5e6-96231b3b80d8
Ported IOC to mainline.