| // { dg-do run { target ia64-*-* } } |
| // { dg-options "-fabi-version=0" } |
| |
| extern "C" void abort (); |
| |
| struct ConstructedObject { |
| ConstructedObject() {}; |
| ~ConstructedObject() {}; |
| ConstructedObject(const ConstructedObject &from) {}; |
| }; |
| |
| struct FrameworkObject { |
| ConstructedObject action(); |
| }; |
| |
| ConstructedObject FrameworkObject::action() { |
| void *r32, *r33; |
| |
| asm("mov %0 = r32\nmov %1 = r33" : "=r"(r32), "=r"(r33) : ); |
| if (this != r33) { |
| abort (); |
| } |
| return ConstructedObject(); |
| } |
| |
| int main() |
| { |
| FrameworkObject slawa; |
| slawa.action(); |
| return 0; |
| } |
| |