hanchenye-llvm-project/clang/test/CXX
Douglas Gregor 146b8e9a58 When performing a derived-to-base cast on the right-hand side of the
synthesized move assignment within an implicitly-defined move
assignment operator, be sure to treat the derived-to-base cast as an
xvalue (rather than an lvalue). Otherwise, we'll end up getting the
wrong constructor.

Optimize a direct call to a trivial move assignment operator to an
aggregate copy, as we do for trivial copy assignment operators, and
update the the assertion in CodeGenFunction::EmitAggregateCopy() to
cope with this optimization.

Fixes PR10860.

llvm-svn: 139143
2011-09-06 16:26:56 +00:00
..
basic De-Unicode-ify. 2011-08-12 05:49:51 +00:00
class PR10458: Finesse behaviour of C++0x features when in pre-0x mode. Accept for-range and auto with an ExtWarn, and produce a -Wc++0x-compat warning in C++98 mode when auto is used as a storage class. 2011-09-04 19:54:14 +00:00
class.access Update our diagnostics to properly account for move operations. 2011-05-25 23:16:36 +00:00
class.derived Get rid of handling of the 'explicit' keyword from class-head. We still parse it though, although that will change shortly. 2011-03-25 14:31:08 +00:00
conv Drop an unjustified limitation from Type::isObjectType(). Fixes PR7801 and doesn't seem to break anything. 2010-08-05 01:21:19 +00:00
dcl.dcl PR10458: Last part of providing 'auto' type specifier as an extension in C++98: permit it within type-ids. 2011-09-04 20:24:20 +00:00
dcl.decl Implement the suggested resolution of WG21 N3307 issue 19: When determining whether a class is an aggregate in C++0x, treat all functions which are neither deleted nor defaulted as user-provided, not just special member functions. The wording of the standard only defines the term "user-provided" for special member functions, but the intent seems to be that any function can be user-provided. 2011-09-05 02:13:09 +00:00
except clang side to match the LLVM IR type system rewrite patch. 2011-07-09 17:41:47 +00:00
expr Implement support for C++11 in-class initialization of non-static data members. 2011-06-11 17:19:42 +00:00
lex Allow C99 hexfloats in C++0x mode. This change resolves the standards 2011-08-30 22:40:35 +00:00
over Make yet another placeholder type, this one marking that an expression is a bound 2011-04-26 20:42:42 +00:00
special When performing a derived-to-base cast on the right-hand side of the 2011-09-06 16:26:56 +00:00
stmt.stmt Declare and define implicit move constructor and assignment operator. 2011-08-30 19:58:05 +00:00
temp Declare and define implicit move constructor and assignment operator. 2011-08-30 19:58:05 +00:00