Rebase.
[official-gcc.git] / gcc / testsuite / g++.old-deja / g++.jason / temporary2.C
blobe55738477f22e0866cba819687c116552e9f88ee
1 // { dg-do assemble  }
2 class X // Indentation has been done so to see the similarities.
4 public:
5   X() {}
6          X(X& x) {x.i=7;} // { dg-message "note" } Both functions modify the
7   void bar(X& x) {x.i=7;} // { dg-message "note" } reference parameter x.
8   int i;
9 };
11 X foo() { X x; return x; }
13 int main() 
15   X   x(foo()); // { dg-error "rvalue" } Compiler doesn't warn about temporary reference.
16   x.bar(foo()); // { dg-error "rvalue" } The same mistake is warned about in this case.