OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [tags/] [gnu-src/] [gcc-4.5.1/] [gcc-4.5.1-or32-1.0rc1/] [gcc/] [testsuite/] [g++.old-deja/] [g++.law/] [visibility19.C] - Diff between revs 305 and 338

Only display areas with differences | Details | Blame | View Log

Rev 305 Rev 338
// { dg-do assemble  }
// { dg-do assemble  }
// GROUPS passed visibility
// GROUPS passed visibility
// visibility file
// visibility file
// From: mclaugh@tnt.acsys.com (Mark A. McLaughlin)
// From: mclaugh@tnt.acsys.com (Mark A. McLaughlin)
// Date:     Wed, 25 Aug 93 14:30:47 MDT
// Date:     Wed, 25 Aug 93 14:30:47 MDT
// Subject:  g++ bug
// Subject:  g++ bug
// Message-ID: <9308252030.AA02352@tnt.acsys.com>
// Message-ID: <9308252030.AA02352@tnt.acsys.com>
class B {
class B {
protected:
protected:
    int i; // { dg-error "" } protected
    int i; // { dg-error "" } protected
};
};
class D1 : public B {
class D1 : public B {
};
};
class D2 : public B {
class D2 : public B {
    friend void fr(B*,D1*,D2*);
    friend void fr(B*,D1*,D2*);
    void mem(B*,D1*);
    void mem(B*,D1*);
};
};
void fr(B* pb, D1* p1, D2* p2)
void fr(B* pb, D1* p1, D2* p2)
{
{
    pb->i = 1;  // illegal// { dg-error "" } .*
    pb->i = 1;  // illegal// { dg-error "" } .*
    p1->i = 2;  // illegal// { dg-error "" } .*
    p1->i = 2;  // illegal// { dg-error "" } .*
    p2->i = 3;  // ok (access through D2)
    p2->i = 3;  // ok (access through D2)
}
}
void D2::mem(B* pb, D1* p1)
void D2::mem(B* pb, D1* p1)
{
{
    pb->i = 1;  // illegal// { dg-error "" } .*
    pb->i = 1;  // illegal// { dg-error "" } .*
    p1->i = 2;  // illegal// { dg-error "" } .*
    p1->i = 2;  // illegal// { dg-error "" } .*
    i = 3;      // ok (access through `this')
    i = 3;      // ok (access through `this')
}
}
void g(B* pb, D1* p1, D2* p2)
void g(B* pb, D1* p1, D2* p2)
{
{
    pb->i = 1;  // illegal// { dg-error "" } .*
    pb->i = 1;  // illegal// { dg-error "" } .*
    p1->i = 2;  // illegal// { dg-error "" } .*
    p1->i = 2;  // illegal// { dg-error "" } .*
    p2->i = 3;  // illegal// { dg-error "" } .*
    p2->i = 3;  // illegal// { dg-error "" } .*
}
}
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.