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