+++ /dev/null
-// { dg-do run }
-
-// Copyright (C) 2001 Free Software Foundation, Inc.
-// Contributed by Nathan Sidwell 31 Dec 2001 <nathan@codesourcery.com>
-
-// PR 4379. We created pointers to member references and pointers to
-// member fields when we shouldn't have.
-
-int gs;
-int gm;
-
-struct D {
- D () :m (gm) {}
-
- int &m;
- static int &s;
-
- int Foo ();
-};
-
-int &D::s = gs;
-
-template<class T> int f1(T x)
-{
- return x != &gm;
-}
-template<class T> int f2(T x)
-{
- return x != &gs;
-}
-
-int D::Foo ()
-{
- int r;
-
- if (f1( &(D::m)))
- return 3;
-
- if (f2( &D::s))
- return 1;
- if (f2( &(D::s)))
- return 2;
- return 0;
-}
-
-int Foo ()
-{
- if (f2( &D::s))
- return 4;
- if (f2( &(D::s)))
- return 5;
- return 0;
-}
-
-int main ()
-{
- D d;
- int r = d.Foo ();
- if (r)
- return r;
- r = Foo ();
- if (r)
- return r;
- return 0;
-
-}