new
From-SVN: r22801
This commit is contained in:
parent
5eea678fdb
commit
d5698b0753
89
gcc/testsuite/g++.old-deja/g++.mike/p16146.C
Normal file
89
gcc/testsuite/g++.old-deja/g++.mike/p16146.C
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
// prms-id: 16146
|
||||||
|
|
||||||
|
extern "C" int printf (const char *, ...);
|
||||||
|
|
||||||
|
class myFoundation {
|
||||||
|
protected:
|
||||||
|
myFoundation () { count = 0; };
|
||||||
|
virtual ~myFoundation () {};
|
||||||
|
|
||||||
|
public:
|
||||||
|
void addRef () { ++count; }
|
||||||
|
void removeRef () { if (count > 0) --count; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
long count;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class firstIntermediate :virtual public myFoundation {
|
||||||
|
public:
|
||||||
|
firstIntermediate () {};
|
||||||
|
~firstIntermediate () {};
|
||||||
|
|
||||||
|
void bar () { printf ("Bar\n"); }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class firstBase : public firstIntermediate {
|
||||||
|
public:
|
||||||
|
firstBase () {};
|
||||||
|
~firstBase () {};
|
||||||
|
|
||||||
|
virtual void g () {};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class secondIntermediate : virtual public myFoundation {
|
||||||
|
public:
|
||||||
|
secondIntermediate () {};
|
||||||
|
~secondIntermediate () {};
|
||||||
|
|
||||||
|
virtual void h () {};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class secondBase : public secondIntermediate {
|
||||||
|
public:
|
||||||
|
secondBase () {};
|
||||||
|
~secondBase () {};
|
||||||
|
|
||||||
|
virtual void h () {};
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
class typeInterface : virtual public firstBase {
|
||||||
|
public:
|
||||||
|
typeInterface () {};
|
||||||
|
~typeInterface () {};
|
||||||
|
|
||||||
|
virtual void i () {};
|
||||||
|
};
|
||||||
|
|
||||||
|
class classServices : virtual public firstBase,
|
||||||
|
public secondBase {
|
||||||
|
public:
|
||||||
|
classServices () {};
|
||||||
|
~classServices () {};
|
||||||
|
|
||||||
|
virtual void j () {};
|
||||||
|
};
|
||||||
|
|
||||||
|
class classImplementation : public typeInterface,
|
||||||
|
public classServices {
|
||||||
|
public:
|
||||||
|
classImplementation () {};
|
||||||
|
~classImplementation () {};
|
||||||
|
|
||||||
|
void g () {};
|
||||||
|
void h () {};
|
||||||
|
void i () {};
|
||||||
|
void j () {};
|
||||||
|
};
|
||||||
|
|
||||||
|
main () {
|
||||||
|
firstBase* fbp = new classImplementation;
|
||||||
|
classImplementation* cip = dynamic_cast <classImplementation*> (fbp);
|
||||||
|
cip->addRef();
|
||||||
|
myFoundation* mfp = cip;
|
||||||
|
}
|
24
gcc/testsuite/g++.old-deja/g++.ns/using9.C
Normal file
24
gcc/testsuite/g++.old-deja/g++.ns/using9.C
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
// Test for proper merging of functions from multiple using directives.
|
||||||
|
|
||||||
|
// Build don't link:
|
||||||
|
|
||||||
|
namespace standard
|
||||||
|
{ void print(int) {};
|
||||||
|
void dump(int) {};
|
||||||
|
}
|
||||||
|
namespace A { using standard::print; }
|
||||||
|
namespace B { using namespace standard; }
|
||||||
|
namespace User
|
||||||
|
{ using namespace standard;
|
||||||
|
using namespace A;
|
||||||
|
void test()
|
||||||
|
{ print(1); }
|
||||||
|
// egcs-1.1: call of overloaded `print (int)' is ambiguous
|
||||||
|
}
|
||||||
|
namespace User2
|
||||||
|
{ using namespace standard;
|
||||||
|
using namespace B;
|
||||||
|
void test()
|
||||||
|
{ print(1); } // egcs has no problems here
|
||||||
|
}
|
||||||
|
|
14
gcc/testsuite/g++.old-deja/g++.other/linkage1.C
Normal file
14
gcc/testsuite/g++.old-deja/g++.other/linkage1.C
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
typedef struct {
|
||||||
|
int i;
|
||||||
|
} *p;
|
||||||
|
|
||||||
|
void f (p) { } // ERROR - function uses anonymous type
|
||||||
|
p q;
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
extern p j;
|
||||||
|
struct A { int j; };
|
||||||
|
extern A a; // ERROR - extern uses local type
|
||||||
|
extern void f (A); // ERROR - extern uses local type
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user