    class Env
    { /* whatever */
    };
    
    class CEnv{
    private: 
        Env m;
    
    public:
        static Env *Instance()
        {
            CEnv *pEnv = new CEnv; /* memory leak */
            return &pEnv->m;
        }
    };
    /*
    Env *test()
    {
        CEnv *p = new CEnv;
        return &p->m;
    }
    */
    class CEnv2{
    private: 
        Env m;
        friend Env *::test2();
    };

    Env *test2()
    {
        CEnv2 *p = new CEnv2;
        return &p->m;
    }

int main()
{
}