From 2f38dfa1096333c4d7803b258c0c5f6584b3ff39 Mon Sep 17 00:00:00 2001 From: Benjamin Kosnik Date: Fri, 4 Dec 1998 19:12:58 +0000 Subject: [PATCH] =?utf8?q?=EF=BF=BD=20nortel=20regressions=20since=2097r1?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit From-SVN: r24097 --- .../g++.old-deja/g++.benjamin/13523.C | 12 +++ .../g++.old-deja/g++.benjamin/13908.C | 21 +++++ .../g++.old-deja/g++.benjamin/14664-1.C | 16 ++++ .../g++.old-deja/g++.benjamin/14664-2.C | 16 ++++ .../g++.old-deja/g++.benjamin/14687.C | 77 +++++++++++++++++++ .../g++.old-deja/g++.benjamin/15071.C | 11 +++ .../g++.old-deja/g++.benjamin/15309-1.C | 21 +++++ .../g++.old-deja/g++.benjamin/15309-2.C | 10 +++ .../g++.old-deja/g++.benjamin/15351-1.C | 27 +++++++ .../g++.old-deja/g++.benjamin/15351-2.C | 27 +++++++ .../g++.old-deja/g++.benjamin/15756-1.C | 36 +++++++++ .../g++.old-deja/g++.benjamin/15756-2.C | 44 +++++++++++ .../g++.old-deja/g++.benjamin/15799.C | 29 +++++++ .../g++.old-deja/g++.benjamin/15800-2.C | 18 +++++ .../g++.old-deja/g++.benjamin/15822.C | 27 +++++++ .../g++.old-deja/g++.benjamin/16567.C | 44 +++++++++++ .../g++.old-deja/g++.benjamin/17930.C | 6 ++ 17 files changed, 442 insertions(+) create mode 100644 gcc/testsuite/g++.old-deja/g++.benjamin/13523.C create mode 100644 gcc/testsuite/g++.old-deja/g++.benjamin/13908.C create mode 100644 gcc/testsuite/g++.old-deja/g++.benjamin/14664-1.C create mode 100644 gcc/testsuite/g++.old-deja/g++.benjamin/14664-2.C create mode 100644 gcc/testsuite/g++.old-deja/g++.benjamin/14687.C create mode 100644 gcc/testsuite/g++.old-deja/g++.benjamin/15071.C create mode 100644 gcc/testsuite/g++.old-deja/g++.benjamin/15309-1.C create mode 100644 gcc/testsuite/g++.old-deja/g++.benjamin/15309-2.C create mode 100644 gcc/testsuite/g++.old-deja/g++.benjamin/15351-1.C create mode 100644 gcc/testsuite/g++.old-deja/g++.benjamin/15351-2.C create mode 100644 gcc/testsuite/g++.old-deja/g++.benjamin/15756-1.C create mode 100644 gcc/testsuite/g++.old-deja/g++.benjamin/15756-2.C create mode 100644 gcc/testsuite/g++.old-deja/g++.benjamin/15799.C create mode 100644 gcc/testsuite/g++.old-deja/g++.benjamin/15800-2.C create mode 100644 gcc/testsuite/g++.old-deja/g++.benjamin/15822.C create mode 100644 gcc/testsuite/g++.old-deja/g++.benjamin/16567.C create mode 100644 gcc/testsuite/g++.old-deja/g++.benjamin/17930.C diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/13523.C b/gcc/testsuite/g++.old-deja/g++.benjamin/13523.C new file mode 100644 index 00000000000..eca71fa2f7b --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/13523.C @@ -0,0 +1,12 @@ +// 981203 bkoz +// g++/13523 +// Build don't link: + +template class latin_america; + +class peru +{ + friend class latin_america; // Particular template class friend works + template friend class latin_america; // This does not work. +}; + diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/13908.C b/gcc/testsuite/g++.old-deja/g++.benjamin/13908.C new file mode 100644 index 00000000000..403a9988dfd --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/13908.C @@ -0,0 +1,21 @@ +// 981203 bkoz +// g++/13908 +// Build don't link: + +class chile +{ +public: +protected: +private: +}; + +typedef void (chile::* pmf) (); + +void* foo; + +void bar (chile* pobj, pmf pmethod) +{ + //-edg: expected member name + //-g++: taking address of bound pointer-to-member expression + foo = (void*) &(pobj->*pmethod); // ERROR - +} diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/14664-1.C b/gcc/testsuite/g++.old-deja/g++.benjamin/14664-1.C new file mode 100644 index 00000000000..b5dc839f884 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/14664-1.C @@ -0,0 +1,16 @@ +// 981203 bkoz +// g++/14664 - test +// Build don't link: +// Special g++ Options: -fconst-strings + +char foo[26]; + +void bar() +{ + //-g++: incompatible types in assignment of 'const char[]' to 'char[]' + //-edg: expression must be a modifiable lvalue + foo = "0123456789012345678901234"; // ERROR - // ERROR - +} + + + diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/14664-2.C b/gcc/testsuite/g++.old-deja/g++.benjamin/14664-2.C new file mode 100644 index 00000000000..35dc0b2f6ad --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/14664-2.C @@ -0,0 +1,16 @@ +// 981203 bkoz +// g++/14664 + test +// Build don't link: +// Special g++ Options: -fno-const-strings + +char foo[26]; + +void bar() +{ + // the addition of the flag "-fno-const-string-literal" reverts to pre-ISO. + // -g++: ANSI C++ forbids assignment of arrays + foo = "0123456789012345678901234"; // WARNING - +} + + + diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/14687.C b/gcc/testsuite/g++.old-deja/g++.benjamin/14687.C new file mode 100644 index 00000000000..d9713fe780a --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/14687.C @@ -0,0 +1,77 @@ +// 981203 bkoz +// g++/14687 + +#include +unsigned int gtest; + +// 7.3.3 the using declaration + +// p 3 +struct belieze { + void f(char); + void g(char); + enum E { e }; + union { int x; }; +}; + +struct dominica: belieze { + using belieze::f; + void f(int i) { f('c'); } // calls belieze::f(char) + void g(int i) { g('c'); } // recursively calls dominca::g(int) +}; + + +// p 6 +namespace A { + void f(int i) { gtest = 1; } +} + +using A::f; //f is a synonym for A::f, that is for A::f(int) + +namespace A { + void f(char c) { gtest = 3; } +} + +void foo(void) { + f('a'); //calls f(int), even though A::f(char) exits + assert (gtest = 1); +} + +void bar(void) { + using A::f; //f is a synonm for A::f, that is for A::f(int) and A::f(char) + f('a'); //calls f(char) + assert (gtest = 3); +} + +int main(void) +{ + foo(); + bar(); + + return 0; +} + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/15071.C b/gcc/testsuite/g++.old-deja/g++.benjamin/15071.C new file mode 100644 index 00000000000..d05ba8c00dd --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/15071.C @@ -0,0 +1,11 @@ +// 981203 bkoz +// g++/15071 +// gcc invocation fails to link in libstdc++ + +#include + +int main() { + cout<<"hi"< + +bool gtest; + +struct acapulco { + acapulco(const char *) { gtest = false; } + acapulco(char *) { gtest = true; } +}; + +void foo(void) +{ + acapulco("some such string\n"); +} + +int main() +{ + foo(); + if (!gtest) + assert (0); + + return !gtest; +} + diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/15351-2.C b/gcc/testsuite/g++.old-deja/g++.benjamin/15351-2.C new file mode 100644 index 00000000000..98ecaac29a1 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/15351-2.C @@ -0,0 +1,27 @@ +// 981203 bkoz +// g++/15351 + test +// Special g++ Options: -fconst-strings + +#include + +bool gtest; + +struct acapulco { + acapulco(const char *) { gtest = true; } + acapulco(char *) { gtest = false; } +}; + +void foo(void) +{ + acapulco("some such string\n"); +} + +int main() +{ + foo(); + if (!gtest) + assert (0); + + return !gtest; +} + diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/15756-1.C b/gcc/testsuite/g++.old-deja/g++.benjamin/15756-1.C new file mode 100644 index 00000000000..cc44e6a74a0 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/15756-1.C @@ -0,0 +1,36 @@ +// 981203 bkoz +// g++/15756 test1 +// Build don't link: +// Special g++ Options: -Wsign-promo + +enum e_value { first = 0, next = 30 }; + +struct sanjuan { + sanjuan(int value); + sanjuan(unsigned value); + friend sanjuan operator&(const sanjuan& x, const sanjuan& y); + friend int operator!=(const sanjuan& x, const sanjuan& y); +}; + +extern void mod_enum(e_value*); +extern int a; + +void foo(void) { + e_value mod = first; + mod_enum(&mod); + if (mod != next) + ++a; +} + + + + + + + + + + + + + diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/15756-2.C b/gcc/testsuite/g++.old-deja/g++.benjamin/15756-2.C new file mode 100644 index 00000000000..33c4b23963e --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/15756-2.C @@ -0,0 +1,44 @@ +// 981203 bkoz +// g++/15756 test2 +// Build don't link: +// Special g++ Options: -Wsign-promo +// this test may only be valid for 32bit targets at present + +enum e_i { + vali +} +enum_int; + +enum e_ui { + valui = 0xF2345678 +} +enum_uint; + +int i; +unsigned int ui; + +struct caracas { + caracas(int); + caracas(unsigned int); + void foo(); +}; + +int main () +{ + caracas obj_ei ( enum_int ); // WARNING - // WARNING - + caracas obj_eui ( enum_uint ); // WARNING - // WARNING - + caracas obj_i ( i ); + caracas obj_ui ( ui ); + + obj_ei.foo(); + obj_eui.foo(); + obj_i.foo(); + obj_ui.foo(); +} + + + + + + + diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/15799.C b/gcc/testsuite/g++.old-deja/g++.benjamin/15799.C new file mode 100644 index 00000000000..5309daf8c63 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/15799.C @@ -0,0 +1,29 @@ +// 981203 bkoz +// g++/15799 test1 +// Build don't link: + +/* +15799.cpp: In function `void foo()': +15799.cpp:21: call of overloaded `sanjose({anonymous enum})' is ambiguous +15799.cpp:13: candidates are: sanjose::sanjose(const sanjose &) +15799.cpp:14: sanjose::sanjose(unsigned int) +*/ + +typedef char int_8; +typedef unsigned long uint_32; + +class sanjose { +public: + sanjose(); + sanjose(const sanjose&); + sanjose(int_8 value); // ERROR - // ERROR - + sanjose(uint_32 value); // ERROR - // ERROR - +}; + +enum { first, last}; + +void foo(void) { + sanjose obj(first); // ERROR - // ERROR - +}; + + diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/15800-2.C b/gcc/testsuite/g++.old-deja/g++.benjamin/15800-2.C new file mode 100644 index 00000000000..18e299aa44c --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/15800-2.C @@ -0,0 +1,18 @@ +// 981203 bkoz +// g++/15800 + test +// Build don't link: + +struct panama { + panama(); + panama(panama &); + panama& operator=(panama&); + panama& getref() { return *this; } +}; + +extern panama dig(); + +void foo() { + panama obj; + obj = dig().getref(); +} + diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/15822.C b/gcc/testsuite/g++.old-deja/g++.benjamin/15822.C new file mode 100644 index 00000000000..ecd93afd869 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/15822.C @@ -0,0 +1,27 @@ +// 981203 bkoz +// g++/15822 + +#include + +static unsigned int gcount; + +struct playahermosa { + playahermosa() { ++gcount; } + playahermosa(const playahermosa &) { ++gcount; } + ~playahermosa() { --gcount; } +}; + +struct playacoco { + playacoco(const playahermosa& = playahermosa()) { } //create a temporary +}; + +void foo(playacoco *) { } + +int main() +{ + playacoco bar[2]; + foo(bar); + assert (gcount == 0); + + return 0; +} diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/16567.C b/gcc/testsuite/g++.old-deja/g++.benjamin/16567.C new file mode 100644 index 00000000000..8039f5babe6 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/16567.C @@ -0,0 +1,44 @@ +// 981203 bkoz +// g++/16567 +// Build don't link: + +typedef bool Bool; +typedef unsigned char Uint8; +typedef unsigned short Uint16; +typedef unsigned int Uint32; + +enum e_ms { third = 3, fourth = 4 }; + +struct bitmask { + Uint8* anon1; + Uint32 anon2; + Uint8 anon3; + Uint8 here: 2; + Uint8 anon4: 2; + Uint8 anon5: 4; +}; + +struct control { + Uint8 foo_1(); +}; + +inline Uint8 foo_2(bitmask* p) { + return p->here; +} + +inline Uint8 control::foo_1() { + return foo_2((bitmask*) this); +} + +void foo(void) { + control obj; + control *fp = &obj; + e_ms result; + + result = (e_ms) fp->foo_1; // ERROR - // ERROR - +} + + + + + diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/17930.C b/gcc/testsuite/g++.old-deja/g++.benjamin/17930.C new file mode 100644 index 00000000000..3d7fc65a326 --- /dev/null +++ b/gcc/testsuite/g++.old-deja/g++.benjamin/17930.C @@ -0,0 +1,6 @@ +// 981204 bkoz +// g++/17930 +// Build don't link: + +char const one[] = "test"; +char const two[] = one; // ERROR - // ERROR - -- 2.30.2