HomePhabricator

Revert Itanium parts of "Don't copy objects with trivial, deleted copy ctors"

Description

Revert Itanium parts of "Don't copy objects with trivial, deleted copy ctors"

This undoes half of r208786.

It had problems with lazily declared special members in cases like this:

struct A {
  A();
  A &operator=(A &&o);
  void *p;
};
void foo(A);
void bar() {
  foo({});
}

In this case, the copy and move constructors are implicitly deleted.
However, Clang doesn't eagerly declare the copy ctor in the AST, so we
pass the struct in registers. Furthermore, GCC passes this in registers
even though this class should be uncopyable.

Revert this for now until the dust settles.

Details

Committed
rnkMay 14 2014, 6:26 PM
Parents
rL208835: Remove unused functions setting MCOptions from TargetMachine.
Branches
Unknown
Tags
Unknown

Event Timeline