// Special g++ Options: -felide-constructors
// GROUPS passed temps
// temps file
// Message-Id: <9311102043.AA22871@ses.com>
// From: jamshid@ses.com (Jamshid Afshar)
// Subject: elide-constructors (aka return value optimization)
// Date: Wed, 10 Nov 93 14:43:54 CST

#include <stdio.h>

class X {
    int i;
  public:
    X();
    X(const X&);
    X(int);
    ~X();
};

int did_it = 0;

X::X() { ; }
X::X(const X&) { did_it = 1; }
X::X(int) { ; }
X::~X() { ; }

X foo() {
    X x(1);
    return x;
}

main() {
    X x = foo();
    if (did_it)
	printf ("FAIL\n");
    else
	printf ("PASS\n");
}
