+++ /dev/null
-// Test whether dwarf2 debug info works with named return value optimization
-// { dg-do compile }
-
-struct S
-{
- virtual ~S();
- S (const char *str);
- S& operator= (const char *str);
- operator const char *() const;
- S& operator+= (const char *str);
-};
-inline S operator+ (const char *s1, const S &s2)
-{
- S x (s1);
- x += s2;
- return x;
-}
-struct U
-{
- U ();
- U& operator= (const char *);
- const char *foo() const;
- operator const char *() const { return foo(); }
-};
-template <class T> struct V
-{
- T v;
-};
-template <class T> struct W
-{
- V<T> *w;
- W() : w (0) {}
- const T& operator* () const { return w->v; }
- T& operator* () { return w->v; }
-};
-struct X {
- X();
-};
-struct Y {
- Y (const U &u);
-};
-X::X()
-{
- W<U> a;
- U b;
- b = (*a) + "xx";
- Y c (b);
-}