diff options
author | YamaArashi <shadow962@live.com> | 2016-02-12 10:34:13 -0800 |
---|---|---|
committer | YamaArashi <shadow962@live.com> | 2016-02-12 10:34:13 -0800 |
commit | 166e94b61c7150981753e2ad54f1d55149e5f0c7 (patch) | |
tree | a78958cacb85309d56ed8924b1a9a5ba7ef2f3a1 /gcc | |
parent | 7e65adeeca85a232d11aeaa063227dad72f12e2f (diff) |
remove g++ test cases
Diffstat (limited to 'gcc')
2495 files changed, 0 insertions, 87173 deletions
diff --git a/gcc/testsuite/g++.dg/special/conpr-1.C b/gcc/testsuite/g++.dg/special/conpr-1.C deleted file mode 100755 index 8ab6bfe..0000000 --- a/gcc/testsuite/g++.dg/special/conpr-1.C +++ /dev/null @@ -1,18 +0,0 @@ -/* { dg-do run } */ - -class foo_t { - int x; -public: - foo_t(void) { x=1; } - int get(void) { return x; } -}; - -static foo_t foo __attribute__((init_priority(5000))); - -int main(void) { - - if (foo.get()) - exit(0); - else - abort(); -} diff --git a/gcc/testsuite/g++.dg/special/conpr-2.C b/gcc/testsuite/g++.dg/special/conpr-2.C deleted file mode 100755 index 07ba8ab..0000000 --- a/gcc/testsuite/g++.dg/special/conpr-2.C +++ /dev/null @@ -1,20 +0,0 @@ -/* { dg-do run } */ - -class foo_t { - int x; - static int count; -public: - foo_t(void) { x=++count; } - int get(void) { return x; } -}; - -int foo_t::count; - -extern foo_t foo1, foo2; - -int main(void) { - - if ( (foo1.get() != 2) || (foo2.get() != 1) ) - abort(); - exit(0); -} diff --git a/gcc/testsuite/g++.dg/special/conpr-2a.C b/gcc/testsuite/g++.dg/special/conpr-2a.C deleted file mode 100755 index 69fb7d6..0000000 --- a/gcc/testsuite/g++.dg/special/conpr-2a.C +++ /dev/null @@ -1,12 +0,0 @@ -/* { dg-do run } */ - -class foo_t { - int x; - static int count; -public: - foo_t(void) { x=++count; } - int get(void) { return x; } -}; - -foo_t foo1 __attribute__((init_priority(6000))); -foo_t foo2 __attribute__((init_priority(5000))); diff --git a/gcc/testsuite/g++.dg/special/conpr-3.C b/gcc/testsuite/g++.dg/special/conpr-3.C deleted file mode 100755 index 07ba8ab..0000000 --- a/gcc/testsuite/g++.dg/special/conpr-3.C +++ /dev/null @@ -1,20 +0,0 @@ -/* { dg-do run } */ - -class foo_t { - int x; - static int count; -public: - foo_t(void) { x=++count; } - int get(void) { return x; } -}; - -int foo_t::count; - -extern foo_t foo1, foo2; - -int main(void) { - - if ( (foo1.get() != 2) || (foo2.get() != 1) ) - abort(); - exit(0); -} diff --git a/gcc/testsuite/g++.dg/special/conpr-3a.C b/gcc/testsuite/g++.dg/special/conpr-3a.C deleted file mode 100755 index b237bb5..0000000 --- a/gcc/testsuite/g++.dg/special/conpr-3a.C +++ /dev/null @@ -1,11 +0,0 @@ -/* { dg-do run } */ - -class foo_t { - int x; - static int count; -public: - foo_t(void) { x=++count; } - int get(void) { return x; } -}; - -foo_t foo1 __attribute__((init_priority(6000))); diff --git a/gcc/testsuite/g++.dg/special/conpr-3b.C b/gcc/testsuite/g++.dg/special/conpr-3b.C deleted file mode 100755 index b5efa0c..0000000 --- a/gcc/testsuite/g++.dg/special/conpr-3b.C +++ /dev/null @@ -1,11 +0,0 @@ -/* { dg-do run } */ - -class foo_t { - int x; - static int count; -public: - foo_t(void) { x=++count; } - int get(void) { return x; } -}; - -foo_t foo2 __attribute__((init_priority(5000))); diff --git a/gcc/testsuite/g++.dg/special/ecos.exp b/gcc/testsuite/g++.dg/special/ecos.exp deleted file mode 100755 index 34a54b7..0000000 --- a/gcc/testsuite/g++.dg/special/ecos.exp +++ /dev/null @@ -1,75 +0,0 @@ -# Copyright (C) 1999 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -# Please email any bugs, comments, and/or additions to this file to: -# jlarmour@cygnus.co.uk - -# This file was written by Jonathan Larmour (jlarmour@cygnus.co.uk). - -# G++ testsuite that uses the `dg.exp' driver. - -# Load support procs. -load_lib g++-dg.exp - -########### -# conpr-1.C -########### - -dg-init -dg-runtest "$srcdir/$subdir/conpr-1.C" "-finit-priority" "" -dg-finish - - -########### -# conpr-2.C -########### - -dg-init - -set lines [g++_target_compile "$srcdir/$subdir/conpr-2a.C" "conpr-2a.o" object "additional_flags=-finit-priority"] -if ![string match "" $lines] then { - fail "conpr-2a.o" -} else { - dg-runtest "$srcdir/$subdir/conpr-2.C" "conpr-2a.o" "-finit-priority" - file delete conpr-2a.o -} -dg-finish - - -########### -# conpr-3.C -########### - -dg-init - -set lines [g++_target_compile "$srcdir/$subdir/conpr-3a.C" "conpr-3a.o" object "additional_flags=-finit-priority"] -if ![string match "" $lines] then { - fail "conpr-3a.o" -} else { - set lines [g++_target_compile "$srcdir/$subdir/conpr-3b.C" "conpr-3b.o" object "additional_flags=-finit-priority"] - if ![string match "" $lines] then { - fail "conpr-3b.o" - } else { - # run it with objects both ways around! - dg-runtest "$srcdir/$subdir/conpr-3.C" "conpr-3a.o conpr-3b.o" "-finit-priority" - dg-runtest "$srcdir/$subdir/conpr-3.C" "conpr-3b.o conpr-3a.o" "-finit-priority" - file delete conpr-3a.o conpr-3b.o - } -} -dg-finish - - -### EOF ecos.exp diff --git a/gcc/testsuite/g++.old-deja/Makefile.in b/gcc/testsuite/g++.old-deja/Makefile.in deleted file mode 100755 index e6209db..0000000 --- a/gcc/testsuite/g++.old-deja/Makefile.in +++ /dev/null @@ -1,12 +0,0 @@ -#### host, target, and site specific Makefile frags come in here. - -srcdir = . - -# Nothing to do... -all: - -clean: - -rm -f *.o *.diff *~ *.bad core *.x - -distclean: clean - -rm -f Makefile config.status diff --git a/gcc/testsuite/g++.old-deja/configure.in b/gcc/testsuite/g++.old-deja/configure.in deleted file mode 100755 index c6cacc6..0000000 --- a/gcc/testsuite/g++.old-deja/configure.in +++ /dev/null @@ -1,15 +0,0 @@ -# This file is a shell script fragment that supplies the information -# necessary to tailor a template configure script into the configure -# script appropriate for this directory. For more information, check -# any existing configure script. - -srctrigger=old-deja.exp -srcname="DejaGnu" - -# per-host: - -# per-target: - -target_makefile_frag=../config/mt-${target_alias} - -# post-target: diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/.cvsignore b/gcc/testsuite/g++.old-deja/g++.benjamin/.cvsignore deleted file mode 100755 index 7abff1d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -config.status diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/13478.C b/gcc/testsuite/g++.old-deja/g++.benjamin/13478.C deleted file mode 100755 index 97256ed..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/13478.C +++ /dev/null @@ -1,36 +0,0 @@ -// 981203 bkoz -// g++/13478 -// Build don't link: - -class A {}; -class AData {}; - -typedef void (A::* hand) (void); - -struct hand_table { - const int data1; - const hand data2; -}; - -class Agent : public A { -public: - enum { first = 1, last }; -protected: - static const hand_table table_1[]; - static const AData table_2; -private: - void foo (void); -}; - -const hand_table Agent::table_1[] = -{ - {0, &Agent::table_2}, - {first, &Agent::foo}, - {last, &(hand)Agent::foo} // ERROR - // ERROR - -}; // ERROR - // ERROR - - - - - - - diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/13523.C b/gcc/testsuite/g++.old-deja/g++.benjamin/13523.C deleted file mode 100755 index eca71fa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/13523.C +++ /dev/null @@ -1,12 +0,0 @@ -// 981203 bkoz -// g++/13523 -// Build don't link: - -template<typename T> class latin_america; - -class peru -{ - friend class latin_america<int>; // Particular template class friend works - template<class T> 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 deleted file mode 100755 index 403a998..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/13908.C +++ /dev/null @@ -1,21 +0,0 @@ -// 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/14139.C b/gcc/testsuite/g++.old-deja/g++.benjamin/14139.C deleted file mode 100755 index dc0c569..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/14139.C +++ /dev/null @@ -1,22 +0,0 @@ -// 981203 bkoz -// g++/14309 -// test for global functions, mf's, and templatized mf's. -// Build don't link: - -static int fooe_1(void) { return 5; } -static int fooe_2(int x = fooe_1()) { return x; } - -struct antigua { - static int& foo_1(); - static int foo_2(int& x = antigua::foo_1()); - static int foo_3(int x = fooe_2()); -}; - -template <typename T> - struct jamacia { - static int& foo_1(); - static int foo_2(int& x = antigua::foo_1()); - static int foo_3(int x = fooe_2()); - }; - -template class jamacia<int>; diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/14664-1.C b/gcc/testsuite/g++.old-deja/g++.benjamin/14664-1.C deleted file mode 100755 index b5dc839..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/14664-1.C +++ /dev/null @@ -1,16 +0,0 @@ -// 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 deleted file mode 100755 index 35dc0b2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/14664-2.C +++ /dev/null @@ -1,16 +0,0 @@ -// 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 deleted file mode 100755 index c2a9a99..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/14687.C +++ /dev/null @@ -1,53 +0,0 @@ -// 981203 bkoz -// g++/14687 -// excess errors test - XFAIL *-*-* - -#include <assert.h> -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/15054.C b/gcc/testsuite/g++.old-deja/g++.benjamin/15054.C deleted file mode 100755 index 65688f7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/15054.C +++ /dev/null @@ -1,10 +0,0 @@ -// 981203 bkoz -// g++/15054 -// Build don't link: -// Special g++ Options: -Wno-pointer-arith -// note that -pedantic also turns on this warning - -void cuba(void) { - void* p; - p++; -} diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/15071.C b/gcc/testsuite/g++.old-deja/g++.benjamin/15071.C deleted file mode 100755 index d05ba8c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/15071.C +++ /dev/null @@ -1,11 +0,0 @@ -// 981203 bkoz -// g++/15071 -// gcc invocation fails to link in libstdc++ - -#include <iostream.h> - -int main() { - cout<<"hi"<<endl; - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/15309-1.C b/gcc/testsuite/g++.old-deja/g++.benjamin/15309-1.C deleted file mode 100755 index ec83fb4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/15309-1.C +++ /dev/null @@ -1,21 +0,0 @@ -// 981203 bkoz -// g++/15309 -// Build don't link: -// Special g++ Options: -Wnon-virtual-dtor -Weffc++ - -class bahamian { -public: - bahamian (); - ~bahamian (); -}; - -class miami : public bahamian -{ -public: - miami (); - ~miami (); -}; // WARNING - // WARNING - - - - - diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/15309-2.C b/gcc/testsuite/g++.old-deja/g++.benjamin/15309-2.C deleted file mode 100755 index 1b483c8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/15309-2.C +++ /dev/null @@ -1,10 +0,0 @@ -// 981203 bkoz -// g++/15309 -// Build don't link: -// Special g++ Options: -Wnon-virtual-dtor -Weffc++ - -class bermuda { -public: - virtual int func1(int); - ~bermuda(); -}; // WARNING - // WARNING - diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/15351-1.C b/gcc/testsuite/g++.old-deja/g++.benjamin/15351-1.C deleted file mode 100755 index 755c360..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/15351-1.C +++ /dev/null @@ -1,27 +0,0 @@ -// 981203 bkoz -// g++/15351 - test -// Special g++ Options: -fno-const-strings - -#include <assert.h> - -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 deleted file mode 100755 index 98ecaac..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/15351-2.C +++ /dev/null @@ -1,27 +0,0 @@ -// 981203 bkoz -// g++/15351 + test -// Special g++ Options: -fconst-strings - -#include <assert.h> - -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 deleted file mode 100755 index cc44e6a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/15756-1.C +++ /dev/null @@ -1,36 +0,0 @@ -// 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 deleted file mode 100755 index 33c4b23..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/15756-2.C +++ /dev/null @@ -1,44 +0,0 @@ -// 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 deleted file mode 100755 index 5309daf..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/15799.C +++ /dev/null @@ -1,29 +0,0 @@ -// 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 &) <near match> -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-1.C b/gcc/testsuite/g++.old-deja/g++.benjamin/15800-1.C deleted file mode 100755 index 49aabc9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/15800-1.C +++ /dev/null @@ -1,17 +0,0 @@ -// 981203 bkoz -// g++/15800 - test -// Build don't link: - -struct panama { - panama(); - panama(panama &); - panama& operator=(panama&); // ERROR - // ERROR - -}; - -extern panama dig(); - -void foo() { - panama obj; - obj = dig(); // 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 deleted file mode 100755 index 18e299a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/15800-2.C +++ /dev/null @@ -1,18 +0,0 @@ -// 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 deleted file mode 100755 index ecd93af..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/15822.C +++ /dev/null @@ -1,27 +0,0 @@ -// 981203 bkoz -// g++/15822 - -#include <assert.h> - -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/16077.C b/gcc/testsuite/g++.old-deja/g++.benjamin/16077.C deleted file mode 100755 index f38154e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/16077.C +++ /dev/null @@ -1,28 +0,0 @@ -// 981203 bkoz -// g++/16077 -// Build don't link: - -class nicaragua; -struct colombia { - colombia(); - colombia(const colombia &); - colombia(const nicaragua &); - colombia &operator= (const colombia&); -}; - -struct nicaragua { -public: - nicaragua(); - nicaragua(const nicaragua&); - operator colombia(); -}; - -void peace(const colombia&); // WARNING - // WARNING - - -void foo(nicaragua& b) { - peace(b); // WARNING - // WARNING - -} - - - - diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/16567.C b/gcc/testsuite/g++.old-deja/g++.benjamin/16567.C deleted file mode 100755 index 8039f5b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/16567.C +++ /dev/null @@ -1,44 +0,0 @@ -// 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/17922.C b/gcc/testsuite/g++.old-deja/g++.benjamin/17922.C deleted file mode 100755 index 4717092..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/17922.C +++ /dev/null @@ -1,19 +0,0 @@ -// 981204 bkoz -// g++/17922 -// Build don't link: - -class base { }; - -struct derived : public base { - derived (const derived&); - derived (const base&); -}; - -class tahiti { -public: - static void mf (derived); -}; - -void foo (const derived aaa) { - tahiti::mf(aaa); -} diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/17930.C b/gcc/testsuite/g++.old-deja/g++.benjamin/17930.C deleted file mode 100755 index 3d7fc65..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/17930.C +++ /dev/null @@ -1,6 +0,0 @@ -// 981204 bkoz -// g++/17930 -// Build don't link: - -char const one[] = "test"; -char const two[] = one; // ERROR - // ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/18208.C b/gcc/testsuite/g++.old-deja/g++.benjamin/18208.C deleted file mode 100755 index 7ec1dc0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/18208.C +++ /dev/null @@ -1,25 +0,0 @@ -// 981204 bkoz -// g++/18208 -// Build don't link: - -typedef unsigned int uint_32; - -class puertorico { -public: - void *f (); -private: - uint_32 member; -}; - -void foo( ) -{ - uint_32 ui; - puertorico obj; - - // Bug using static_cast<> - ui = static_cast<uint_32>(obj); // ERROR - // ERROR - - - // Bug when missing the pair of braces - ui = (uint_32) obj.f; // ERROR - // ERROR - -} - diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/bool01.C b/gcc/testsuite/g++.old-deja/g++.benjamin/bool01.C deleted file mode 100755 index c73557a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/bool01.C +++ /dev/null @@ -1,74 +0,0 @@ -//980323 bkoz -//test for bools with inclusive ors - -#include <assert.h> -void bar ( bool x ) {}; -void bars ( short x ) {}; - -/* 980326 bkoz this is not initialized and so can have indeterminate value. */ -#if 0 -int orb(){ - bool y; - bar ( y ); - int blob = ( 27 | int (y) ); - return blob; //expect 27 or 0 -} -#endif - -int orbtrue(){ - bool y = true; - bar ( y ); - int blob = ( 27 | int (y) ); - return blob; //expect 27 -} - -int orbfalse(){ - bool y = false; - bar ( y ); - int blob = ( 27 | int (y) ); - return blob; //expect 27 -} - -int orbfalse2(){ - bool y = 0; - bar ( y ); - int blob = ( 27 | int (y) ); - return blob; //expect 27 -} - -int ors(){ - short y = 1; - bars ( y ); - int blob = ( 27 | int (y) ); - return blob; //expect 27 -} - - -int orus(){ - unsigned short y = 1; - bars ( y ); - int blob = ( 65539 | int (y) ); - return blob; //expect 65539, will be 3 if done in us type -} - - -int main() { - int tmp; -#if 0 - tmp = orb(); - assert (tmp == 27 || tmp == 0); -#endif - tmp = orbtrue(); - assert (tmp ==27); - tmp = orbfalse(); - assert (tmp ==27); - tmp = orbfalse2(); - assert (tmp ==27); - tmp = ors(); - assert (tmp ==27); - tmp = orus(); - assert (tmp == 65539); - - return 0; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/bool02.C b/gcc/testsuite/g++.old-deja/g++.benjamin/bool02.C deleted file mode 100755 index c17c935..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/bool02.C +++ /dev/null @@ -1,63 +0,0 @@ -//980324 bkoz -//test for bool and bitwise ands - -#include <assert.h> - - -void bar ( bool x ) {}; -void bars ( short x ) {}; - -#if 0 -int andb(){ - bool y; - bar ( y ); - int blob = ( 27 & int (y) ); - return blob; //expect 1 or 0 -} -#endif - -int andbtrue(){ - bool y = true; - bar ( y ); - int blob = ( 27 & int (y) ); - return blob; //expect 1 -} - -int andbfalse(){ - bool y = false; - bar ( y ); - int blob = ( 27 & int (y) ); - return blob; //expect 0 -} - -int andbfalse2(){ - bool y = 0; - bar ( y ); - int blob = ( 27 & int (y) ); - return blob; //expect 0 -} - -int ands(){ - short y = 1; - bars ( y ); - int blob = ( 27 & int (y) ); - return blob; //expect 1 -} - - -int main() { - int tmp; -#if 0 - tmp = andb(); - assert (tmp == 1 || tmp == 0); -#endif - tmp = andbtrue(); - assert (tmp == 1); - tmp = andbfalse(); - assert (tmp == 0); - tmp = andbfalse2(); - assert (tmp == 0); - tmp = ands(); - assert (tmp == 1); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/friend01.C b/gcc/testsuite/g++.old-deja/g++.benjamin/friend01.C deleted file mode 100755 index 66d42c5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/friend01.C +++ /dev/null @@ -1,31 +0,0 @@ -// Build don't link: -//980610 bkoz -// example 1: buggy - -class foo { -public: - class bar; - int func(bar *); - class bar { - int st; - public: - bar(){st=12;} - ~bar(){} - friend int foo::func(bar *); - }; - foo(){} - ~foo(){} -}; - - -int foo::func(bar *obj) { - obj->st++; - return (obj->st); -} - -void test02() { - foo obj_f; - foo::bar obj_b; - - obj_f.func( &obj_b); -} diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/friend02.C b/gcc/testsuite/g++.old-deja/g++.benjamin/friend02.C deleted file mode 100755 index e9520e3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/friend02.C +++ /dev/null @@ -1,31 +0,0 @@ -// Build don't link: -//980610 bkoz -// example 2: ok - -class bar; -class foo { -public: - int func(bar *); - foo(){} - ~foo(){} -}; - -class bar { - int st; -public: - bar(){st=12;} - ~bar(){} - friend int foo::func(bar *); -}; - -int foo::func(bar *obj) { - obj->st++; - return (obj->st); -} - -void test02() { - foo obj_f; - bar obj_b; - - obj_f.func( &obj_b); -} diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/p12475.C b/gcc/testsuite/g++.old-deja/g++.benjamin/p12475.C deleted file mode 100755 index 4f9d8b5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/p12475.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: -// prms-id: 12475 -// excess errors test - XFAIL alpha*-*-* mips64*-*-* - -enum huh { start =-2147483648, next }; // WARNING - , XFAIL sparc64-*-* alpha*-*-* mips64*-*-* diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/p13417.C b/gcc/testsuite/g++.old-deja/g++.benjamin/p13417.C deleted file mode 100755 index 18d62e8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/p13417.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// Special g++ Options: -// prms-id: 13417 - -class Foo { -public: - explicit Foo (int){} -}; -Foo f(10); -Foo blat() return f(4){}; //this should not give an error - diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/p13721.C b/gcc/testsuite/g++.old-deja/g++.benjamin/p13721.C deleted file mode 100755 index be1df79..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/p13721.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// prms-id: 13721 - -class A -{ - public : - int a; -}; -class B : public A -{ - public : - void cmp(int a, int b) {} - B(int a = 0) - { - cmp(A::a, a); //should not give warning - } -}; -int main(void) -{ - return(1); -} diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/scope01.C b/gcc/testsuite/g++.old-deja/g++.benjamin/scope01.C deleted file mode 100755 index a834f4f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/scope01.C +++ /dev/null @@ -1,71 +0,0 @@ -// Build don't link: -// 980604 bkoz -// 3.4.5 Class member access p 4 -// nested and non-nested calls, no dtors - -struct L { - int ii; - void foo(int a) {++a;} - struct Linner { - int ii_inner; - void foo_inner(int b) {++b;} - }; -}; -class A : public L {}; -class B : public L {}; -class C : public A, public B {}; - - -void foo() { - // straight call - C x; - x.A::ii = 5; - x.A::foo(x.A::ii); - - // 5.1 Primary expressions - // p 8 - // a nested name specifier that names a class, - // optionally followed by the keyword template and then followd by - // the name of a member of either that class or one of its base - // classes is a qualified-id. (3.4.3.1 describes their lookup.) - - // 5.2.5 Class memember access - - // p 3 if E1 has the type 'pointer to class X' then - // E1->E2 == (*(E1)).E32 - // E1 == object-expression - // E2 == id-expression - // thus everything gets converted to the "." notation - - // p 2 - // the id-expression shall name a member of the class - // (object-expression) or of one of its base classes. - - // p4 if E2 is a nested type (of the object-expression), tye - // expression E1.E2 is ill formed. - - // try 1 nested call - ERROR -#if 0 - C x2; - x2.A::L::Linner::ii_inner = 6; //ERROR violates p2, does not name member of C - x2.A::L::Linner::foo_inner(x2.A::L::Linner::ii_inner); -#endif - - //try2: scoped method call -edg +acc +g++ -#if 1 - C::A::Linner x2; - x2.A::Linner::ii_inner = 6; - x2.A::Linner::foo_inner(x2.A::Linner::ii_inner); -#endif - - //try 3: non-scoped method call -edg +acc +g++ -#if 0 - C::A::L::Linner x3; - x3.ii_inner = 6; - x3.foo_inner(x3.ii_inner); -#endif -} - - - - diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/scope02.C b/gcc/testsuite/g++.old-deja/g++.benjamin/scope02.C deleted file mode 100755 index a2c9c04..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/scope02.C +++ /dev/null @@ -1,208 +0,0 @@ -// Build don't link: -//980529 bkoz -//3.4.5 Class member access via pointer and non-pointer -// non-nested dtor calls - -int counter = 0; - -struct X { - int rank; - X(int init = 64) : rank(init) { } - ~X() { ++counter; } - typedef X classtype; -}; -typedef X globaltype; - -#if 0 -template <typename T> -struct X_tem { - T rank; - X_tem(T init = T(64) ) : rank(init) { } - ~X_tem() { ++counter; } - typedef X_tem classtype_tem; -}; -typedef X_tem<int> globaltype_tem; -#endif - - - - -int main(void) -{ - // 3.4.5 Class member access - // p 2 - // if the id-expression in a class member access is an - // unqualified-id, and the type of the object expression is of class - // type C (or pointer to class type C), the unqualified-id is looked - // up in the scope of class C. If the type of the object-expression - // is of pointer to scalar type, the unqualified-id is looked up in - // the context of the complete postfix-expression. - - // p 3 - // if the unqualitified id is ~type-name, and the type of the object - // expression is of a class type C (or pointer to class type C), the - // type-name is looked up in the context of the entire - // postfix-expression and in the scope of class C. The type-name - // shall refer to a class-name. If type-name is found in both - // contexts, the name shall refer to the same class type. If the - // type of the object expression is of scalar type, the type-name is - // looked up in the complete postfix-expression. - - typedef X localtype; - - // - // 1 non-templatized, pointer, unqualified - // - X x01 ; - X *px = &x01; - px->~X(); - - X x02 (66); - px = &x02; - px->~localtype(); - - X x03 (68); - px = &x03; - px->~classtype(); //-g++ //p3: unqual-id lookup in object and postfix-expr - - X x04 (70); - px = &x04; - px->~globaltype(); - - - // p 1 - // . . . the id-expression is first looked up in the class of the - // object-expression. If the identifier is not found, itis then - // looked up in the context of the entier postfix-expression and - // shall name a class or function template. If the lookup in the - // class of the object-expression finds a template, the name is also - // looked up in teh context of the entier postfix-expression and - // 1 if the name is not found, use the name from the object-expr - // 2 if the name found in postfix-expr != class template, use object-expr - // 3 if name found is class template, name must match object-expr or error - - // p 4 - - // if the id-expr in a class member acess is a qualified-id, the - // id-expression is looked up in both the context of the entire - // postfix-expr and in the scope of the class of the object-expr. If - // the name is found in both contexts, the id-expr shall refer to - // the same entity. - - - // - // 2 non-templatized, pointer, qualified - // - X x05 ; - px = &x05; - px->X::~X(); - - X x06 (66); - px = &x06; - px->X::~localtype(); - - X x07 (68); - px = &x07; - px->X::~classtype(); // -edg - - X x08 (70); - px = &x08; - px->X::~globaltype(); - - X x09 (66); - px = &x09; - px->localtype::~localtype(); - - X x10 (68); - px = &x10; - px->classtype::~classtype(); - - X x11 (70); - px = &x11; - px->globaltype::~globaltype(); - - X x12 (66); - px = &x12; - px->classtype::~localtype(); - - X x13 (68); - px = &x13; - px->globaltype::~localtype(); - - X x14 (70); - px = &x14; - px->localtype::~globaltype(); - - X x15 (70); - px = &x15; - px->classtype::~globaltype(); - - X x16 (70); - px = &x16; - px->localtype::~classtype(); //-edg - - X x17 (70); - px = &x17; - px->globaltype::~classtype(); //-edg - -#if 0 - // - // non-templatized, non-pointer - // - X xo5 ; - xo5.~X(); //unqualified - - localtype xo6 (66); - xo6.~localtype(); - - X xo7 (68); - xo7.~classtype(); - - X xo8 (70); - xo8.~globaltype(); - - - // - // templatized, pointer - // - X_tem<int> xto1 ; - X_tem<int> *pxt = &xto1; - pxt->~X_tem(); //unqualified - - typedef X_tem<int> localtype_tem; - localtype_tem xto2 (66); - pxt = &xto2; - pxt->~localtype_tem(); - - //paragraph 2: unqualitifed id looked up in scope of post-fix expr if object - X_tem<int> xto3 (68); - pxt = &xto3; - pxt->~classtype_tem(); - - X_tem<int> xto4 (70); - pxt = &xto4; - pxt->~globaltype_tem(); - - // - // templatized, non-pointer - // - X_tem<int> xto5 ; - xto5.~X_tem(); //unqualified - - localtype_tem xto6 (66); - xto6.~localtype_tem(); - - X_tem<int> xto7 (68); - xto7.~classtype_tem(); - - X_tem<int> xto8 (70); - xto8.~globaltype_tem(); -#endif - return 0; -} - - - - - - diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/tem01.C b/gcc/testsuite/g++.old-deja/g++.benjamin/tem01.C deleted file mode 100755 index e464c0e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/tem01.C +++ /dev/null @@ -1,136 +0,0 @@ -// Build don't link: -// prms-id: 13911 - -template<unsigned int N> -class ref_counter { -public: - ref_counter() : p_refcnt(new unsigned int(N)) {} - ref_counter(const ref_counter<N>& x) : p_refcnt(x.p_refcnt) { - ++*p_refcnt; - } - ref_counter& operator=(const ref_counter<N>& rhs) { - ++*rhs.p_refcnt; - decrement(); - p_refcnt = rhs.p_refcnt; - return *this; - } - ~ref_counter() {decrement();} - - bool unique() const {return *p_refcnt == N;} - -private: - unsigned int* p_refcnt; - void decrement() { - if (unique()) delete p_refcnt; - else --*p_refcnt; - } -}; - -template<class T, unsigned int N> -class ref_pointer { -public: - - ref_pointer() : the_p(0) {} - ref_pointer(T* just_newed) : the_p(just_newed) {} - virtual ~ref_pointer() {if (unique()) delete the_p;} -protected: - ref_pointer(T* the_p_arg, ref_counter<N>& ref_count_arg) - : the_p(the_p_arg), ref_count(ref_count_arg) {} - -public: - - ref_pointer& operator=(const ref_pointer&); - ref_pointer& operator=(T*); - operator const T*() const {return the_p;} - T* operator()() {return the_p;} - T* operator()() const {return the_p;} - T& operator*() const {return *the_p;} - friend bool operator==(const ref_pointer<T, N>& lhs, - const ref_pointer<T, N>& rhs) { - return lhs.the_p == rhs.the_p; - } - friend bool operator!=(const ref_pointer<T, N>& lhs, - const ref_pointer<T, N>& rhs) { - return lhs.the_p != rhs.the_p; - } - - - bool unique() const {return ref_count.unique();} - bool isNull() const {return the_p==0;} - -protected: - ref_counter<N>& refCount() {return ref_count;} - -private: - - ref_counter<N> ref_count; - T* the_p; -}; - -template<class T, unsigned int N> -ref_pointer<T, N>& ref_pointer<T, N>::operator=(const ref_pointer<T, N>& rhs) { - if (the_p != rhs.the_p) { - if (unique()) delete the_p; - the_p = rhs.the_p; - ref_count = rhs.ref_count; - } - return *this; -} - - -template<class T, unsigned int N> -ref_pointer<T, N>& ref_pointer<T, N>::operator=(T* just_newed) { - if (unique()) delete the_p; - the_p = just_newed; - ref_count = ref_counter<N>(); - return *this; -} - - - -template<class T> -class CountedObjPtr : public ref_pointer<T, 1> { -public: - CountedObjPtr() {} - CountedObjPtr(T* just_newed) : ref_pointer<T, 1>(just_newed) {} - CountedObjPtr(T* the_p_arg, ref_counter<1>& ref_count_arg) - : ref_pointer<T, 1>(the_p_arg, ref_count_arg) {} - CountedObjPtr<T>& operator=(T* rhs) { - ref_pointer<T, 1>::operator=(rhs); - return *this; - } - CountedObjPtr<T>& operator=(const CountedObjPtr<T>& rhs) { - ref_pointer<T, 1>::operator=(rhs); - return *this; - } - T* operator->() const {return (*this)();} - -}; - - - - - -//instantiating type - -class TSObservable; - -class TSObserver { -public: - - enum TSType { NormalTS, UpYldCrvTS, DownYldCrvTS, ZeroVolTS }; - - virtual ~TSObserver() {} - - virtual void update(TSObservable* theChangedObservable) = 0; - virtual TSType key() const { return myKey; } - virtual TSType& key() { return myKey; } -protected: - TSObserver(TSType myKeyArg) : myKey(myKeyArg) {} - TSType myKey; -}; - - - -//now try to instantiate -template class CountedObjPtr<TSObserver>; diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/tem02.C b/gcc/testsuite/g++.old-deja/g++.benjamin/tem02.C deleted file mode 100755 index 38a8f1d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/tem02.C +++ /dev/null @@ -1,54 +0,0 @@ -// Build don't link: -//980519 bad error from nathan -//$ egcs -fhonor-std -nostdinc -c redef.C -//redef.C:56: redefinition of default argument for `class _Traits' - -template<class _CharT> struct char_traits; -template<class _CharT> struct char_traits { }; -template<> struct char_traits<char>; -template<> struct char_traits<char> { }; - -template<class _CharT, class _Traits = char_traits<_CharT> > class istreambuf_iterator; - - -template<class _CharT, class _Traits> - class istreambuf_iterator -{ - public: - typedef _Traits traits_type; - class _Proxy; - public: - inline istreambuf_iterator() throw(); - inline istreambuf_iterator(const _Proxy& __p) throw(); -}; - - -template <class _CharT, class _Traits> - class istreambuf_iterator<_CharT,_Traits>::_Proxy -{ - public: - _CharT operator*(); - - //bug -g++ w/ decl "redef", no decl no prob. - //ok -edg: no warnings - friend class istreambuf_iterator; // XXX OK? - - //bug -g++ w/ decl "redef", no decl no prob. - //ok -edg: no warnings - //friend class istreambuf_iterator<_CharT,_Traits>; - - //bug -g++ w/ decl "redef", no decl no prob. - //ok -edg: declaration of "_CharT" and "_Traits" hides template parameter - //template <class _CharT, class _Traits> friend class istreambuf_iterator; - - //ok -g++ - //ok -edg - //friend class istreambuf_iterator<_CharT>; - -}; - - - -//explicit instantiation of a nested class -template class istreambuf_iterator<char, char_traits<char> >::_Proxy; - diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/tem03.C b/gcc/testsuite/g++.old-deja/g++.benjamin/tem03.C deleted file mode 100755 index abb956f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/tem03.C +++ /dev/null @@ -1,209 +0,0 @@ -// Build don't link: -// 980808-980824 bkoz -// template parameter redeclaration bugs - -// 14.1 Template parameters -// p 13 -// The scope of a template-parameter extens from its point of -// declartion until the end of its template. In particular, a -// template-parameter can be used in the declaration of subsequent -// template-parameters and their default arguments. - -// 14.6.1 Locally declared names -// p 4 -// A template-parameter shall not be redeclared within its scope -// (including nested scopes). A template-parameter shall not have the -// sname name as the template name. - - -// 01 -// declared friend template -template <class T4>// ERROR - .* -class Xone { -protected: - T4* next; - T4* prev; - T4 value; -public: - Xone(): next(0), prev(0), value(1999){} - Xone(T4 init): value(init) {} - - // these are ok: - // can also do template-decl and then can ditch the foward-declaration - // template <class T5> friend bool isequal (Xone<T5>& lhs, Xone<T5>& rhs); - // this is not ok: - template <class T4> friend bool isequal (Xone<T4>& lhs, Xone<T4>& rhs);// ERROR - .* -}; - - -// 02 -// nested template class -template <class T6>// ERROR - .* -class Xtwo { -protected: - T6* next; - T6* prev; - T6 value; -public: - Xtwo(): next(0), prev(0), value(1999){} - Xtwo(T6 init): value(init) {} - - template <class T6> class nested {// ERROR - .* - T6 value; - public: - nested(): value( T6(0)) {} - }; -}; - - -// 03 -// member templates -template <class T8>// ERROR - .* -class Xthree { -protected: - T8* next; - T8* prev; - T8 value; -public: - Xthree(): next(0), prev(0), value(1999){} - Xthree(T8 init): value(init) {} - - template <class T8> T8 comp_ge(T8 test) {// ERROR - .* - T8 local_value; - if (local_value > value) - return local_value; - else - return value; - } -}; - - -// 04 -// local names (14.6.1 p 4) -template <class T10, int i> struct Xfour {// ERROR - .* - int T10; // ERROR - .* - void f(){ - char T10; - } -}; - - -// 05 -// using different tempate-parms for out-of-line defs -template <class T12, int i> struct Xfive { - void f(); -}; - -template <class T13, int i> void Xfive<T13,i>::f() {// ERROR - .* - int T13; // ERROR - .* - int T12; //should be ok -} - - -// 06 -// multiple names at the same level -template <class T14, class T14> class Xsix { // ERROR - .* -private: -public: - void f(); -}; - - -// 07 -// multiple names, one in template parameter one in class-name -template <class T12> class T12; // ERROR - .* - - -// 08 -// with multiple template params, and second (third) one is redeclared -template <class T16, int i, class T161> class Xseven { // ERROR - .* -private: - char T161; // ERROR - .* -public: - template <class U> - friend bool fooy(U u); - - template <class T161> // ERROR - .* - friend bool foo(T161 u) - { - Xseven<T161, 5, int> obj; - return (obj.inst == u.inst); - } - -}; - - -// 09 -// check for correct scoping of member templates -template <class T> -struct S1 -{ - template <class U> - void f(U u) - { - S1<U> s2u(u); - s2u.g(); - } - - template <class U> //ok - void f2(U u) - { - S1<U> s2u(u); - s2u.g(); - } - -}; - - -// 10 -// check for non-type parameters, should still be able to redeclare? -// local names (14.6.1 p 4) -template <class T18, int i> class Xten {// ERROR - .* - float i; // ERROR - .* -}; - - -// 11 -// declared friend template, non-type parameters -template <long l>// ERROR - .* -class Xeleven { -public: - template <long l> friend bool isequal (Xeleven<5> lhs, Xeleven<5> rhs); // ERROR - .* -}; - - - -// 12 -// nested template class, non-type parameters -template <long l>// ERROR - .* -class Xtwelve { -public: - template <long l> class nested {// ERROR - . - long value; - public: - nested(): value(0) {} - }; -}; - - -// 13 -// member templates, non-type parameters -template <long l>// ERROR - .* -struct Xthirteen { - template <long l> long comp_ge(long test) {// ERROR - . - long local_value; - if (local_value > value) - return local_value; - else - return value; - } -}; - - - - - - - - - diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/tem04.C b/gcc/testsuite/g++.old-deja/g++.benjamin/tem04.C deleted file mode 100755 index 0330d0b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/tem04.C +++ /dev/null @@ -1,182 +0,0 @@ -// Build don't link: -// 980827 bkoz -// template parameter redeclaration bugs, part two: -// template template params and expanded template non-type parms - -// 14.1 Template parameters -// p 13 -// The scope of a template-parameter extens from its point of -// declartion until the end of its template. In particular, a -// template-parameter can be used in the declaration of subsequent -// template-parameters and their default arguments. - -// 14.6.1 Locally declared names -// p 4 -// A template-parameter shall not be redeclared within its scope -// (including nested scopes). A template-parameter shall not have the -// same name as the template name. - -// 14 -// declared friend template (v3, template type parameters) -template <class T4>// ERROR - .* -class Xfourteen { -protected: - T4 value; -public: - Xfourteen(T4 init): value(init) {} - template <template <typename T4> class T5> // ERROR - .* - friend bool isequal (Xfourteen<int>& lhs, Xfourteen<int>& rhs); -}; - - -// 15 -// nested template class (v3, template type parameters) -template <class T6>// ERROR - .* -class Xfifteen { -protected: - T6 value; -public: - Xfifteen(T6 init): value(init) {} - - template <template <typename T6> class T7> class nested {// ERROR - .* - int value; - public: - nested(): value( int(0)) {} - }; -}; - - -// 16 -// member templates (v3, template type parameters) -template <class T8>// ERROR - .* -class Xsixteen { -protected: - T8 value; -public: - Xsixteen(T8 init): value(init) {} - - template <template <typename T8> class T9> int comp_ge(int test) {// ERROR - .* - int local_value; - if (local_value > value) - return local_value; - else - return value; - } -}; - - -// 17 -// declared friend template (v4, template type parameters on the class) -template <typename T9> class tem_base { -public: - T9 value; -}; - -template <typename T10, template <typename T12> class C10> -class Xseventeen { -protected: - C10<T10> value; -public: - Xseventeen(){} - template <typename T12> // ok?? - friend bool isequal (Xseventeen<T10, tem_base>& lhs, - Xseventeen<T10, tem_base>& rhs); -}; - -//template class Xseventeen<int, tem_base>; - - -// 18 -// more template template redecl tests -template <typename T14, template <typename T15> class C12>// ERROR - .* -class Xeighteen { -protected: - C12<T14> value; - int C12; // ERROR - .* -}; - - -// 19 -// more template template redecl tests -template <typename T16, template <typename T17> class C14>// ERROR - .* -class Xnineteen{ -protected: - C14<T16> value; - template <class C14> class nested {// ERROR - .* - T16 value; - public: - nested(): value( T16(0)) {} - }; -}; - - -// 20 -// local names (14.6.1 p 4) part two, variable names as template param -template <class T17, int i> struct Xtwenty { - void f(){ - T17 my_type; //ok - for (int j = 0; j < 5; ++l) - { - T17 my_type; //ok - ++my_type; - } - } -}; - - -// 14.1 Template parameters -// p 4 -// A non-type templat- parameter shall have one of the following -// (optionally cv-qualified) types: -// integral or enumeration type -// pointer to object or pointer to function -// referenct to object or referece to function -// pointer to member - -// 21 -// non-type template parameters v1: enum -enum my_enum {my_A = 45, my_B, my_C}; - -template <my_enum T18> class Xtwentyone {// ERROR - .* - float T18; // ERROR - .* -}; - - -// 22 -// non-type template parameters v1: pointer to object -struct base { - int gcount; - int ret_gcount() {return gcount;} -}; - -template <class T20, base* b> class Xtwentytwo {// ERROR - .* - float b; // ERROR - .* -}; - - -// 23 -// non-type template parameters v2: reference to object -template <class T20, base& b2> class Xtwentythree {// ERROR - .* - float b2; // ERROR - .* -}; - - -// 24 -// non-type template parameters v3: pointer to member -template <class T20, int base::* b3> class Xtwentyfour {// ERROR - .* - float b3; // ERROR - .* -}; - - -// 25 -// non-type template parms that use push_class_level -template <class T22> void f1() {// ERROR - .* - struct foo { - enum T22 { un, du, toi }; // ERROR - .* - }; -} - - - - - diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/tem05.C b/gcc/testsuite/g++.old-deja/g++.benjamin/tem05.C deleted file mode 100755 index 92ad739..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/tem05.C +++ /dev/null @@ -1,58 +0,0 @@ -// 980924 bkoz -// just a quick test for export, to make sure we are warning for it. -// CHANGE ME when it's supported -// Build don't link: - - -// 14 Templates -//p 6 -// A namespace-scope declaration or definintion of a non-line function -// template, a non-inline member function template, a non-inline -// member function of a class template or a static data member of a -// class template may be preceeded by the export keyword. If such a -// template is defined in the same translation unit in which it is -// declared as exported, the definition is considered to be -// exported. The first declaration of the template containing the -// export keyword must not follow the definition. (meaning that export -// can't beredeclared as non-export??) - -// 1 -// template definition -export template <class T> // WARNING - -bool templ_one(T a) { - if (a > 0) - return true; - else - return false; -} - - -// 2 -// static data, mf, mf template -template <class T> -class X_one { - unsigned short id; - T type; -public: - static const bool is_specialized ; - - X_one(const unsigned short& us = 5): id(us), type(T(0)) {} - unsigned short ret_id (); - template <class T2> bool compare_ge(T2 test); -}; - -export template <class T> // WARNING - -const bool X_one<T>::is_specialized = false; - -export template <class T> // WARNING - -unsigned short X_one<T>::ret_id() { - return id; -} - -export template <class T> template <class T2> // WARNING - -bool compare_ge(T2 test) { - if (test > type) - return true; - return false; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/tem06.C b/gcc/testsuite/g++.old-deja/g++.benjamin/tem06.C deleted file mode 100755 index e55ee6a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/tem06.C +++ /dev/null @@ -1,49 +0,0 @@ -// 980945 bkoz -// test for correct operators at link time - -/* -/tmp/cca211431.o: In function `void blah<foo<int> >(foo<int> const &)': -/tmp/cca211431.o(.void gnu.linkonce.t.blah<foo<int> >(foo<int> const &)+0x1e): undefined reference to `void x<int>(int const &)' -*/ - -template<class T> -class foo { -public: - foo () {} - friend void x (const T &) { } -}; - -template<class T> -void blah (const T &) { - T y; - x (4); -}; - -int main () { - const foo<int> v; - blah (v); -} - -/* -fno-exceptions -fno-rtti - -1.98r1.o: -00000000 W __t3foo1Zi -00000000 W blah__H1Zt3foo1Zi_RCX01_v -00000000 t gcc2_compiled. -00000000 T main - U x__H1Zi_RCX01_v - -1.egcs.o: -00000000 W __t3foo1Zi -00000000 W blah__H1Zt3foo1Zi_RCX01_v -00000000 t gcc2_compiled. -00000000 T main -00000000 W x__FRCi - - -the reason this goes away at -O is because the U or W function is -elided completely. - -*/ - diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/tem07.C b/gcc/testsuite/g++.old-deja/g++.benjamin/tem07.C deleted file mode 100755 index 953ed90..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/tem07.C +++ /dev/null @@ -1,37 +0,0 @@ - -template <class T> -class Foo -{ -public: - Foo(const T&); - Foo(const T&, const T&); -}; - -template <class T> -Foo<T>::Foo(const T& t0) -{ -} - -template <class T> -Foo<T>::Foo(const T& t0, const T& t1) -{ -} - -template Foo<int>::Foo(const int& t0); - - -int main (void) { - return 0; -} - - - - - - - - - - - - diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/typedef01.C b/gcc/testsuite/g++.old-deja/g++.benjamin/typedef01.C deleted file mode 100755 index ba6af18..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/typedef01.C +++ /dev/null @@ -1,46 +0,0 @@ -// Build don't link: -//980205 bkoz - -//7.1.3 the typedef specifier - - -//p1 -typedef int MILES, *KLICKSP; -MILES distance; -extern KLICKSP metricp; - -//p2--can redefine to same type -typedef struct s { /* ... */ } s; -typedef int I; -typedef int I; -typedef I I; - -//p3--cannot redefine to a different type in a given scope -class complex2 { /* ... */ };// ERROR - .* -typedef int complex2;// ERROR - .* -typedef int complex3;// ERROR - .* -class complex3 { /* ... */ };// ERROR - .* - - -//p4 -/* -4 A typedef-name that names a class is a class-name (_class.name_). If - a typedef-name is used - 1) following the class-key in an elaborated-type-specifier - 2) or in the class-head of a class declaration - 3) or is used as the identifier in the declarator for a - constructor or destructor declaration - the program is ill-formed. [Example: -*/ -struct S { - S(); - ~S(); -}; - -typedef struct S T; - -S a = T(); // OK -struct T * p; // ERROR - using typedef after struct - -//case01 -typedef bool short;// ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/typedef03.C b/gcc/testsuite/g++.old-deja/g++.benjamin/typedef03.C deleted file mode 100755 index cf09ccb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/typedef03.C +++ /dev/null @@ -1,44 +0,0 @@ -// Build don't link: -//980526 bkoz -// reduced testcase for 980511 brendan qt bug - - -class QTextStream -{ -public: - QTextStream(); - virtual ~QTextStream(); - - enum { - skipws = 0x0001, - left = 0x0002, - right = 0x0004, - internal = 0x0008, - bin = 0x0010, - oct = 0x0020, - dec = 0x0040, - hex = 0x0080, - showbase = 0x0100, - showpoint = 0x0200, - uppercase = 0x0400, - showpos = 0x0800, - scientific= 0x1000, - fixed = 0x2000 - }; - - static const int basefield; - static const int adjustfield; -}; - -typedef QTextStream QTS; -const int QTS::basefield = (QTS::bin | QTS::dec | QTS::hex) ; -const int QTS::adjustfield = QTS::left | QTS::right | QTS::internal; -#if 0 -#define QTS QTextStream -const int QTS::basefield = (QTS::bin | QTS::dec | QTS::hex) ; -const int QTS::adjustfield = QTS::left | QTS::right | QTS::internal; -#endif - - - - diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/typeid01.C b/gcc/testsuite/g++.old-deja/g++.benjamin/typeid01.C deleted file mode 100755 index c75c65b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/typeid01.C +++ /dev/null @@ -1,71 +0,0 @@ -// 980617 bkoz -// typeid for local types -// typeid bool vs int and enum vs int - -#include <typeinfo> -#ifdef DEBUG_ASSERT -#include <assert.h> -#endif - -// 4: local class in non-main function - -void test1 (void) { - bool class_p = false; - class X2 { - private: - unsigned int counter; - public: - X2 (unsigned int i = 35): counter(i) {} - ~X2(){} - unsigned int ret_counter() {return counter;} - }; - X2 obj_1; - class_p = typeid(X2) == typeid(obj_1); -} - -int main () -{ - // 1: simple -#if 1 - bool enum_p = false; - enum E { A, B, C }; - enum_p = typeid(A) == typeid(E); -#ifdef DEBUG_ASSERT - assert (enum_p); -#endif -#endif - - // 2: complex -#if 0 - bool enum2_p = false; - bool int_p = false; - bool bool_p = false; - enum E2 { A2, B2}; - enum2_p = typeid(A2) == typeid(E2); - int_p = typeid(int) == typeid(E2); - bool_p = typeid(bool) == typeid(E2); -#ifdef DEBUG_ASSERT - assert (enum2_p); - assert (!int_p); - assert (!bool_p); -#endif -#endif - - // 3: local class - bool class_p = false; - class X { - private: - unsigned int counter; - public: - X (unsigned int i = 35): counter(i) {} - ~X(){} - unsigned int ret_counter() {return counter;} - }; - X obj_1; - class_p = typeid(X) == typeid(obj_1); - - // 4: local class in function - test1(); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/warn01.C b/gcc/testsuite/g++.old-deja/g++.benjamin/warn01.C deleted file mode 100755 index d0cf0d0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/warn01.C +++ /dev/null @@ -1,98 +0,0 @@ -// Build don't link: -// Special g++ Options: -Wall -Weffc++ - -//1 g++/12952 un-named variables in a catch block -//Wall or Wunused should not give warnings here -template <class T> -void f (void) { - try - { - } - - catch( int) - { - } -}; - -// -//2 g++/12923 __attribute__((__unused__)) not working for objects -//Weffc++ or Wunused should not report the object as an error -class C { - public: - C(); -}; - -void f (void){ - C x __attribute__ ((__unused__)); - int y __attribute__ ((__unused__)); -} - -// -//3 g++/12982 lock should not give error here, as above -void setLock (); -void clearLock (); - -template <class T> -class test { -public: - class lock - { - public: - lock () { setLock(); } - ~lock () { clearLock(); } - }; - - static void f (void) - { - lock local __attribute__ ((__unused__)); - } - -}; - - -// -//4 g++/12988 neither Mutex nor AutoMutex varibles should give warnings here -//compile with -Weffc++ or -Wunused depending on post or pre 97r1 -class Mutex { -private: - long counter; -public: - virtual long retcntr() {return counter;}; - Mutex(int i = 0): counter(i) {}; - virtual ~Mutex() {}; -} __attribute__ ((__unused__)); - -class AutoMutex: public Mutex{ -private: - long counter2; -public: - long retcntr() {return counter2;}; - AutoMutex(int i = 0): counter2(i) {}; - virtual ~AutoMutex() {}; -} __attribute__ ((__unused__)); - - -template <class T> -int foofunc(T x){ - Mutex sm(2); - AutoMutex m(&sm); - return 0; -}; - - -//5 sanity check to make sure other attributes cannot be used -class Mutex2 { -private: - long counter; -public: - virtual long retcntr() {return counter;}; - Mutex2(int i = 0): counter(i) {}; - virtual ~Mutex2() {}; -} __attribute__ ((warn)); // WARNING - - - - - - - - diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/warn02.C b/gcc/testsuite/g++.old-deja/g++.benjamin/warn02.C deleted file mode 100755 index e63d43c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/warn02.C +++ /dev/null @@ -1,54 +0,0 @@ -// 980413 bkoz -// from g++/15307, tests for -Wredundant-decls -// for friend functions and functions -// Build don't link: -//Special g++ Options: -Wredundant-decls - - -extern int foo(const char *); - -class A -{ - friend int foo(const char *); - int a; -}; - -class B -{ - friend int foo(const char *); - int foo2() {return b;} - int b; -}; - -class C -{ - friend int foo(const char *); - friend int foo(const char *); // WARNING - - int foo2() {return b;} - int b; -}; - -class D -{ -public: - int foo2() {return b;} - int foo2() {return b;} // ERROR - - int b; -}; - -class E -{ -public: - int foo2(); - int foo2(); // ERROR - - int b; -}; - -extern int foo3(const char *); // WARNING - -extern int foo3(const char *); // WARNING - - - - - - - diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/warn03.C b/gcc/testsuite/g++.old-deja/g++.benjamin/warn03.C deleted file mode 100755 index b3bd3af..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/warn03.C +++ /dev/null @@ -1,10 +0,0 @@ -// 980420 bkoz -// from g++/15307, tests for -Wredundant-decls for decls -// Build don't link: -// Special g++ Options: -Wredundant-decls - -//shouldn't crash -extern unsigned char *foo5[]; -extern unsigned char *foo5[]; - - diff --git a/gcc/testsuite/g++.old-deja/g++.benjamin/warn04.C b/gcc/testsuite/g++.old-deja/g++.benjamin/warn04.C deleted file mode 100755 index cb96ac6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.benjamin/warn04.C +++ /dev/null @@ -1,9 +0,0 @@ -// 980903 bkoz -// make sure this option works -// Build don't link: -// Special g++ Options: -Wno-non-template-friend - - -template<class T> class task { - friend void next_time(); //shouldn't give a warning -}; diff --git a/gcc/testsuite/g++.old-deja/g++.bob/array1.C b/gcc/testsuite/g++.old-deja/g++.bob/array1.C deleted file mode 100755 index 2e86f6f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bob/array1.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -char *stuff() { - char array[10]; // WARNING - - - return array; -} diff --git a/gcc/testsuite/g++.old-deja/g++.bob/array2.C b/gcc/testsuite/g++.old-deja/g++.bob/array2.C deleted file mode 100755 index 8ddeba8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bob/array2.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -extern const int a[]; -extern const int a[]; -extern const int a[]; diff --git a/gcc/testsuite/g++.old-deja/g++.bob/case1.C b/gcc/testsuite/g++.old-deja/g++.bob/case1.C deleted file mode 100755 index a8e5f7b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bob/case1.C +++ /dev/null @@ -1,13 +0,0 @@ -// prms-id: 9028 -class Foo; - -int main() -{ - int i=0; - switch (i) - { - case ((Foo *)0): // ERROR - - case ((Foo *)1): // ERROR - - break; - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.bob/cond1.C b/gcc/testsuite/g++.old-deja/g++.bob/cond1.C deleted file mode 100755 index d6f1165..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bob/cond1.C +++ /dev/null @@ -1,31 +0,0 @@ -// Build don't link: -// prms-id: 9866 -class TChar - { -public: - explicit inline TChar(unsigned int aChar); - inline operator unsigned int() const; -private: - unsigned int iChar; - }; -inline TChar::TChar(unsigned int aChar) - : iChar(aChar) - {} -inline TChar::operator unsigned int() const - {return(iChar);} - -class TDes8 - { -public: - inline const unsigned char &operator[](int anIndex) const; - const unsigned char &AtC(int anIndex) const; - }; - -inline const unsigned char &TDes8::operator[](int anIndex) const - {return(AtC(anIndex));} - - -void doExponent(TDes8 &aDigBuf) - { - 2 ? TChar(aDigBuf[2]) : '0'; - } diff --git a/gcc/testsuite/g++.old-deja/g++.bob/delete1.C b/gcc/testsuite/g++.old-deja/g++.bob/delete1.C deleted file mode 100755 index d4fc321..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bob/delete1.C +++ /dev/null @@ -1,22 +0,0 @@ -// prms-id: 7330 -#include <stddef.h> -int size = 0; - -struct X { - int x; - void *operator new[](size_t sz) { - size = sz; - return 0; - } - void operator delete[] (void *vp) { ::delete[] vp; } -}; -int main() -{ - X (*px) [10]; - - px = new X[5][10]; - - delete [] px; - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.bob/extern_C.C b/gcc/testsuite/g++.old-deja/g++.bob/extern_C.C deleted file mode 100755 index 6b91adc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bob/extern_C.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -extern "C" { - class A { - public: - void a(); - }; -}; - -void A::a() {} diff --git a/gcc/testsuite/g++.old-deja/g++.bob/friend1.C b/gcc/testsuite/g++.old-deja/g++.bob/friend1.C deleted file mode 100755 index 1782f08..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bob/friend1.C +++ /dev/null @@ -1,4 +0,0 @@ -class C { -public: - static friend int f(); // ERROR - -}; diff --git a/gcc/testsuite/g++.old-deja/g++.bob/incomplete-cast1.C b/gcc/testsuite/g++.old-deja/g++.bob/incomplete-cast1.C deleted file mode 100755 index fb08c63..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bob/incomplete-cast1.C +++ /dev/null @@ -1,16 +0,0 @@ -// prms-id: 5274 -class VHDLIdentifier; - -class VHDLPackageProtoRep { -public: - int thing(); -private: - virtual VHDLIdentifier &actual_name() ; -}; -extern void form(const char *format, ... ); -int -VHDLPackageProtoRep::thing() -{ - form("package `%s'", (char *)actual_name()); // ERROR - can't convert from incomplete type - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.bob/inherit1.C b/gcc/testsuite/g++.old-deja/g++.bob/inherit1.C deleted file mode 100755 index 4d62e38..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bob/inherit1.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: -class A { -char str[10]; -public: - char* m1 () { return str;}; -}; - -class C : public A { -public: -}; - -class B : public A { -public: - char* m1 () { C::m1(); return ""; } // ERROR - -}; - -int main () { -A a; -B b; -C c; - -a.m1(); -c.m1(); -b.m1(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.bob/inherit2.C b/gcc/testsuite/g++.old-deja/g++.bob/inherit2.C deleted file mode 100755 index 52d35b0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bob/inherit2.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: -class A { -public: - void z(); - A(void) {} -private: - A(const A &) { abort(); } // ERROR - - const A& operator =(const A &) { abort(); } -}; - -class B : public A { -public: - B(void) {} -}; - -void f(B b) { -}; - -void g() { - B h; - f(h); // ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.bob/nested1.C b/gcc/testsuite/g++.old-deja/g++.bob/nested1.C deleted file mode 100755 index b5b7a76..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bob/nested1.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: - class A { - class B { - typedef long T; - int i; - }; - }; - class C { - class B { - typedef float T; - int i; - }; - }; - -C::B::T a; diff --git a/gcc/testsuite/g++.old-deja/g++.bob/packed1.C b/gcc/testsuite/g++.old-deja/g++.bob/packed1.C deleted file mode 100755 index 86a946f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bob/packed1.C +++ /dev/null @@ -1,17 +0,0 @@ -int -main() { - struct s - { - int a; - short b; - } __attribute__((packed)) t; - - if (sizeof (t) != (sizeof(int)+sizeof(short))) - { - return 1; - } - else - { - return 0; - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.bob/protected1.C b/gcc/testsuite/g++.old-deja/g++.bob/protected1.C deleted file mode 100755 index 95a400e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bob/protected1.C +++ /dev/null @@ -1,42 +0,0 @@ -// Build don't link: -class A { -public: - int i; - A(int j) : i(j){} -}; - -class B : protected A { -public: - B(int j) : A(j){} - void f(){ - A k(*this); - } -}; - -class C : protected B { -public: - C(int j) : B(j){} - void f(); - - void g(){ - A k(i); - } -}; - - -class D : public C { -public: - D(int w) : C(i) {} - void j() { A k(*this); } - void h() { i=3; } -}; - -void C::f() { - A k(*this); -} - -B b(3); -int -main() { - A *z = &b; // ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.bob/static1.C b/gcc/testsuite/g++.old-deja/g++.bob/static1.C deleted file mode 100755 index a8e6b88..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bob/static1.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -class A { - public: - static int a; -}; - -class B : public A { - public: - static int b; -}; - -int B::a; // ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.bob/template1.C b/gcc/testsuite/g++.old-deja/g++.bob/template1.C deleted file mode 100755 index 4a22f08..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bob/template1.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't link: -// prms-id: 10038 -template < class Referencee > -class Referencer -{ -public: - Referencer (Referencee const * pReferencee); -}; - -template <class T> -class Array -{ -public: - int addElement (T const & e); - int addElement (); -}; - -class ScenarioGroup; - -class ScenarioSet : public Array< Referencer<ScenarioGroup> > -{ - typedef Array< Referencer<ScenarioGroup> > arrayBase; - void addElement(ScenarioGroup *group) - { - arrayBase::addElement(group); - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.bob/template2.C b/gcc/testsuite/g++.old-deja/g++.bob/template2.C deleted file mode 100755 index 5663da8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bob/template2.C +++ /dev/null @@ -1,49 +0,0 @@ -// Build don't link: -// prms-id: 10046 -template <class T> -class Array -{ -public: - T const & operator[] (int i) const; -}; - -class Referenceable {}; - -template < class Referencee > -class Referencer -{ -public: - operator Referencee *() const { return i_referencee; } - -protected: - Referencee* i_referencee; -}; - -class ScenarioGroup {}; - -class ScenarioSpace; - -class ScenarioSet : public Referenceable, - public Array< Referencer<ScenarioGroup> > -{ -public: - ScenarioSet& operator=(ScenarioSet const & s); -}; - -class ScenarioSpace : public Referenceable, - public Array< Referencer<ScenarioSet> > -{ -}; - -class ScenarioSetNameSelector -{ -public: - bool operator () (ScenarioSpace &space) - { - int idx; - i_set = space[idx]; - return false; - } -private: - ScenarioSet *i_set; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.bob/template3.C b/gcc/testsuite/g++.old-deja/g++.bob/template3.C deleted file mode 100755 index 7aca6ed..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bob/template3.C +++ /dev/null @@ -1,49 +0,0 @@ -// Build don't link: -// prms-id: 9979 - -template < class Referencee > -class Referencer -{ -public: - Referencer() {} -}; - -template <class T> -class List -{ -public: - List() {} -}; - -template<class T, class KEY> -class Dictionary -{ -public: - Dictionary() : i_buckets (new List<T>[1234]) {} - ~Dictionary() { delete [] i_buckets; } - - List<T> * i_buckets; -}; - -class Exchangeable {}; -class ExchangeableHandle {}; - -class ExchangeableList - : public Dictionary<Referencer<Exchangeable>, ExchangeableHandle> -{ -public: - ExchangeableList(int size=0); -}; - -class ObjectExchange -{ -public: - ObjectExchange() {}; - - ExchangeableList i_theWatchList; // Instruments being monitored -}; - -int -main() -{ -} diff --git a/gcc/testsuite/g++.old-deja/g++.bob/template4.C b/gcc/testsuite/g++.old-deja/g++.bob/template4.C deleted file mode 100755 index 1ef2057..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bob/template4.C +++ /dev/null @@ -1,21 +0,0 @@ -// prms-id: 10166 - -template <class A> -class B { - public: - int f() { - for(int x=0;x<10;x++) { - continue; - return 1; - } - return 0; - } - private: - A w; -}; - -int -main() { - B<int> c; - return c.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/README b/gcc/testsuite/g++.old-deja/g++.brendan/README deleted file mode 100755 index ce760b1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/README +++ /dev/null @@ -1,40 +0,0 @@ - -abstract - abstract functions -alignof - gcc alignof builtin -ambiguity - diagnosing ambiguities -arm - ARM cases -array-refs - arrays of references -bit-fields - bit fields -chainon - deaths cuz we call chainon() incorrectly -copy - copy constructors -crash - old compiler crashes/aborts -cvt - user-defined conversions -def-fns - default function generation (in add'n to copy) -enum-clash - int vs enum -enum - enumerated types -err-msg - error messages -friend - dealing with friend functions and classes -groff - crashes derived from groff code -init - initialization bugs -label - handling labels -line - line numbers in error messages -misc - miscellaneous tests that didn't fit another category -nest - nested types -new-array - doing new of an array -new - generic operator new bugs -operators - tests for various overloaded operators -parse - parser bugs -prepost - prefix/postfix operator ++/-- -ptolemy - bugs derived from ptolemy -recurse - infinite recursion in the compiler -redecl - handling redeclarations -scope - managing scopes -shadow - shadowing of params, etc -sizeof - ARM compliance w/ sizeof operator -sorry - old "sorry, not implemented" messages -static - handling static data -template - template bugs -union - handling unions -visibility - access control and visibility checking -warnings - warning messages - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/abstract1.C b/gcc/testsuite/g++.old-deja/g++.brendan/abstract1.C deleted file mode 100755 index b9cd9c5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/abstract1.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: -// GROUPS passed abstract-functions -class O -{ -public: - virtual int c()=0; -}; - -class I: public O -{ -}; - -class S: public virtual I -{ -public: - int c(); - virtual int v()=0; -}; - -class D: public S -{ - int v(); -}; - -D *p=new D(); diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/access1.C b/gcc/testsuite/g++.old-deja/g++.brendan/access1.C deleted file mode 100755 index 0272c7a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/access1.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: -// GROUPS passed access-control -class Base -{ -protected: - virtual void DoSomething() = 0; -}; - -class Fibber : public Base -{ -public: - void DoBP() { - DoSomething(); - } -}; - -class Flat : public virtual Fibber -{ -public: - void DoIt() { - DoSomething(); - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/alignof.C b/gcc/testsuite/g++.old-deja/g++.brendan/alignof.C deleted file mode 100755 index 1449ade..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/alignof.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// GROUPS passed extensions -struct bar { int bit : 1; }; - -void foo (int *r, bar t) -{ - // doing alignof on a bit-field should be illegal - __alignof__ (t.bit);// ERROR - .* - - // both of these (a regular ref and an INDIRECT_REF) should work - __alignof__ (r); - __alignof__ (*r); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/ambiguity1.C b/gcc/testsuite/g++.old-deja/g++.brendan/ambiguity1.C deleted file mode 100755 index c6d6fcb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/ambiguity1.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: -// GROUPS passed ambiguity -struct A { - A (int); -}; - -struct B { - B (int); -}; - -void myfunc (const A& t0); // ERROR - -void myfunc (const B& t0); // ERROR - - -int main () -{ - myfunc(1); // ERROR - ambiguous call -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/anon-union1.C b/gcc/testsuite/g++.old-deja/g++.brendan/anon-union1.C deleted file mode 100755 index 86b7ce3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/anon-union1.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// GROUPS passed anonymous-unions -static union { - char* uC; -private: - int uI;// ERROR - .*private member.* -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/arm1.C b/gcc/testsuite/g++.old-deja/g++.brendan/arm1.C deleted file mode 100755 index e415632..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/arm1.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// Special g++ Options: -pedantic-errors -// GROUPS passed ARM-compliance -// ARM $5.7, it's illegal to do math on a `void*'. - -int -main() -{ - void *p; - ++p;// ERROR - .* -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/arm2.C b/gcc/testsuite/g++.old-deja/g++.brendan/arm2.C deleted file mode 100755 index 62bdc3d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/arm2.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// GROUPS passed ARM-compliance -// ARM 9.4 ``There cannot be a static and a nonstatic member function -// with the same name and the same argument types.'' -// -// The trick is to make sure it's caught with both orders (static, -// then normal, and vice-versa. - -class X { -public: - int foo(); - static int foo(); // error: redeclaration// ERROR - .* -}; - -class Y { -public: - static int foo(); - int foo(); // error: redeclaration// ERROR - .* -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/arm3.C b/gcc/testsuite/g++.old-deja/g++.brendan/arm3.C deleted file mode 100755 index c352bfa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/arm3.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// GROUPS passed initialization -// ARM $11.4: A function first declared in a friend decl is equivalent -// to an extern decl, so the below is illegal. - -class X { - friend g(); // ERROR - previous declaration -}; -static g() { return 1; }// ERROR - previously declared diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/array-refs.C b/gcc/testsuite/g++.old-deja/g++.brendan/array-refs.C deleted file mode 100755 index 0eaa45c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/array-refs.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// GROUPS passed arm -int a, b; - -// declaring an array of references should be illegal -int & v[ 2] = { a, b};// ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/array1.C b/gcc/testsuite/g++.old-deja/g++.brendan/array1.C deleted file mode 100755 index 1812958..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/array1.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// Special g++ Options: -fconserve-space -fcommon -// GROUPS passed array-bindings - -extern "C" void printf (char *, ...); -char array[~(~0ul>>1)|~(0ul>>3)]; // ERROR - overflow in array dimension.* -int main () { printf ("PASS\n"); return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/asm-extn1.C b/gcc/testsuite/g++.old-deja/g++.brendan/asm-extn1.C deleted file mode 100755 index fecd092..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/asm-extn1.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// Special g++ Options: -S -// GROUPS passed asm-extension -// Skip if not target: sparc-sun-* -// This used to crash because c_expand_asm_keyword didn't know what to -// do with this. The parser rules were changed to accept an expr, instead -// of a stmt. - -extern void traptable(void); - -main() -{ - asm("wr %0,%%tbr" : : "r" (traptable)); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/bit-fields1.C b/gcc/testsuite/g++.old-deja/g++.brendan/bit-fields1.C deleted file mode 100755 index 76f4ac3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/bit-fields1.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: -// GROUPS passed bit-fields -struct bar { - int : 2 = 1;// ERROR - .* -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/bit-fields2.C b/gcc/testsuite/g++.old-deja/g++.brendan/bit-fields2.C deleted file mode 100755 index c77ce86..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/bit-fields2.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// GROUPS passed bit-fields - struct { - char c; - int i:8; - } s; - - int main() - { - int &ir = s.i; // ERROR - address of bitfield - int *ip = &s.i; // ERROR - address of bitfield - ir = 10; - } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/bool1.C b/gcc/testsuite/g++.old-deja/g++.brendan/bool1.C deleted file mode 100755 index 1e7b343..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/bool1.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// GROUPS passed boolean -int -main() -{ - typedef char Boolean; // Instrinsic.h - Boolean c = false; - bool b = true; - - if (!c != !b) - ; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/code-gen1.C b/gcc/testsuite/g++.old-deja/g++.brendan/code-gen1.C deleted file mode 100755 index 84dd634..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/code-gen1.C +++ /dev/null @@ -1,40 +0,0 @@ -// GROUPS passed code-generation -// Check that sub-word sized structs/classes are passed correctly -// if the struct/class has a constructor (i.e. ANY constructor). - -extern "C" void printf (char *, ...); - -struct base { - unsigned int f1 : 8; - unsigned int f2 : 8; - - base (int ii) - { - } -}; - -base global_base (7); - -int test2 (base formal_base); - -int main () -{ - global_base.f1 = 0x55; - global_base.f2 = 0xee; - - if (test2 (global_base) == 0) - printf ("PASS\n"); - else - printf ("FAIL\n"); - - return 0; -} - -int test2 (base formal_base) -{ - if (formal_base.f1 != global_base.f1) - return -1; - if (formal_base.f2 != global_base.f2) - return -1; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/code-gen2.C b/gcc/testsuite/g++.old-deja/g++.brendan/code-gen2.C deleted file mode 100755 index 133755e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/code-gen2.C +++ /dev/null @@ -1,18 +0,0 @@ -// GROUPS passed code-generation -// Check that declarations with initializations are executed -// correctly. - -extern "C" void printf (char *, ...); - -int main () -{ - char buff[40] ; - char *tmp = &buff[0]; // also fails for char *tmp = buff; - - if ((unsigned int) tmp != (unsigned int) &buff[0]) - printf ("FAIL\n"); - else - printf ("PASS\n"); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/code-gen3.C b/gcc/testsuite/g++.old-deja/g++.brendan/code-gen3.C deleted file mode 100755 index 6d73bd2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/code-gen3.C +++ /dev/null @@ -1,34 +0,0 @@ -// GROUPS passed code-generation -// Check that passing things which are not a multiple of -// 4 bytes in size doesn't mess up other subsequent parameters. - -extern "C" void printf (char *, ...); - -struct base { - int f1 : 8; - int f2 : 8; -}; - -base global_base; - -int val1; - -int test2 (struct base formal_base, int v1); - -int main () -{ - val1 = 0x5e5e; - return test2 (global_base, val1); -} - -int test2 (struct base formal_base, int v1) -{ - formal_base.f1 = formal_base.f2; // prevent warnings - - if (v1 != 0x5e5e) - printf ("FAIL\n"); - else - printf ("PASS\n"); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/code-gen4.C b/gcc/testsuite/g++.old-deja/g++.brendan/code-gen4.C deleted file mode 100755 index e29b16a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/code-gen4.C +++ /dev/null @@ -1,31 +0,0 @@ -// Special g++ Options: -O -// GROUPS passed code-generation -// Options: -O -// -// Check that when an int value is assigned to a short int, the proper -// half of the int (i.e. the low order half) ends up in the short. -// -// This fails with 1.32.0 with -O and f1() is inline. -// -// Workaround - declare "f1_arg" as type "short int". - -extern "C" void printf (char *, ...); - -short int v2; - -long v1 = 0x11117777; - -inline void f1 (long f1_arg) -{ - v2 = f1_arg; -} - -int main () -{ - f1 (v1); - - if (v2 != 0x00007777) - printf ("FAIL\n"); - else - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/code-gen5.C b/gcc/testsuite/g++.old-deja/g++.brendan/code-gen5.C deleted file mode 100755 index 0d59b56..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/code-gen5.C +++ /dev/null @@ -1,57 +0,0 @@ -// Special g++ Options: -fthis-is-variable -// GROUPS passed code-generation -// Check that the "this" pointer is zero when a method is -// called for an object pointed to by a null pointer. - -// Normally, the "__builtin_new" operation which actually -// allocates objects in heap space is *not* called at the -// actual point of the "new" keyword. Rather, a check is -// made within each constructor and if the "this" pointer -// value passed in is zero, then the actual allocation of -// memory (via __builtin_new) is done at that point (i.e. -// at the very beginning of the constructor). - -// A special trick allows one to subvert this mechanism. -// Specifically, if a given constructor contains a statement -// like: "this = this", then no attempt will be made to -// implicitly call __builtin_new within that constructor. - -extern "C" void printf (char *, ...); - -struct base { - int member; - - base (); - void member_function (); -}; - -base *base_pointer_1 = 0; -base *base_pointer_2 = 0; - -int errors = 0; - -int main () -{ - //base_pointer_2 = new base(); - base_pointer_1->member_function (); - - if (errors) - printf ("FAIL\n"); - else - printf ("PASS\n"); - - return 0; -} - -base::base () -{ - this = this; - if ((int) this != 0) - errors++; -} - -void base::member_function () -{ - if ((int) this != 0) - errors++; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/code-gen6.C b/gcc/testsuite/g++.old-deja/g++.brendan/code-gen6.C deleted file mode 100755 index ea5d730..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/code-gen6.C +++ /dev/null @@ -1,54 +0,0 @@ -// GROUPS passed code-generation -// Check that type float parameters can be correctly passed to -// methods. - -extern "C" void printf (char *, ...); - -class tres_floats { - float ff1; - float ff2; - float ff3; -public: - tres_floats (float f1, float f2, float f3); - float get_f1 (); - float get_f2 (); - float get_f3 (); -}; - -float v1 = 1.2345; -float v2 = 3.14159; -float v3 = 0.707; - -int main () -{ - tres_floats tf (v1, v2, v3); - - if ((tf.get_f1() != v1) || (tf.get_f2() != v2) || (tf.get_f3() != v3)) - printf ("FAIL\n"); - else - printf ("PASS\n"); - - return 0; -} - -tres_floats::tres_floats (float f1, float f2, float f3) -{ - ff1 = f1; - ff2 = f2; - ff3 = f3; -} - -float tres_floats::get_f1 () -{ - return ff1; -} - -float tres_floats::get_f2 () -{ - return ff2; -} - -float tres_floats::get_f3 () -{ - return ff3; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/complex1.C b/gcc/testsuite/g++.old-deja/g++.brendan/complex1.C deleted file mode 100755 index 908b4ca..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/complex1.C +++ /dev/null @@ -1,22 +0,0 @@ -// Special g++ Options: - -// This test makes sure that the stuff in lex.c (real_yylex) is -// set up to handle real and imag numbers correctly. This test is against -// a bug where the compiler was not converting the integer `90' to a -// complex number, unless you did `90.0'. Fixed 10/1/1997. - -extern "C" void printf (char *, ...); - -__complex__ double cd; - -int -main(int argc, char *argv[]) -{ - cd = 1.0+90i; - cd *= argc; - - if (__real__ cd != 1 || __imag__ cd != 90) - exit (1); - - exit (0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/copy1.C b/gcc/testsuite/g++.old-deja/g++.brendan/copy1.C deleted file mode 100755 index 27d959f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/copy1.C +++ /dev/null @@ -1,21 +0,0 @@ -// GROUPS passed copy-ctors -extern "C" void printf (char *, ...); -int count = 0; - -class C { -public: - C (int) { count++; } - operator int () { return 0; } -}; - -int -main () -{ - C c1 (1); - C c2 (c1); - - if (count != 1) - printf ("FAIL\n"); - else - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/copy2.C b/gcc/testsuite/g++.old-deja/g++.brendan/copy2.C deleted file mode 100755 index 0ecc1e9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/copy2.C +++ /dev/null @@ -1,79 +0,0 @@ -// GROUPS passed copy-ctors -/* -The old g++ output is - -Item() -Compound() -Pre foo -foo -~Compound() -~Item() -Post foo -~Compound() -~Item() - -The output should be something like (produced from ATT 2.1) - -Item() -Compound() -Pre foo -Item(const Item& i) <------ missing above -foo -~Compound() -~Item() -Post foo -~Compound() -~Item() - -*/ - -extern "C" void printf (char *, ...); -extern "C" void exit (int); - -int count = 0; - -void -die (int x) -{ - if (x != ++count) - { - printf ("FAIL\n"); - exit (1); - } -} - - -class Item { - public: - Item() { die (1); } - Item(const Item& i) { die (4); } - ~Item() { count++; if (count != 7 && count != 10) die (-1); } -}; - - -class Compound { - Item i; - public: - Compound() { die (2); } - ~Compound() { count++; if (count != 6 && count != 9) die (-1); } -}; - - -void foo(Compound a) -{ - die (5); -} - -int -main() -{ - Compound a; - - die (3); - foo(a); - - die (8); - - printf ("PASS\n"); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/copy3.C b/gcc/testsuite/g++.old-deja/g++.brendan/copy3.C deleted file mode 100755 index 3b1edd5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/copy3.C +++ /dev/null @@ -1,58 +0,0 @@ -// GROUPS passed copy-ctors -/* - -If I compile it with cfront (AT&T C++ Translator 2.00.02 08/25/89) and run it -I get: - - A::A() - A::A(const A&) - B::Bar() - A::~A() - A::~A() - -If I compile it with g++ (gcc version 2.2.2) and run it I get: - - A::A() - B::Bar() - A::~A() - A::~A() - -*/ -extern "C" void printf (char *, ...); -extern "C" void exit (int); - -int count = 0; - -void -die (int x) -{ - if (x != ++count) - { - printf ("FAIL\n"); - exit (1); - } -} - - -class A { -public: - A() { die (1); } - A(const A&) { die (2); } - ~A() { count++; if (count != 4 && count != 5) die (-1); } -}; - -class B : public A { -public: - void Bar() { die (3); } -}; - -void Foo(B b) { b.Bar(); } - -int -main() -{ - B b; - Foo(b); - - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/copy4.C b/gcc/testsuite/g++.old-deja/g++.brendan/copy4.C deleted file mode 100755 index 35b5393..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/copy4.C +++ /dev/null @@ -1,58 +0,0 @@ -// GROUPS passed copy-ctors -// Using Cfront 3.0.1 the programm below prints -// -// A() -// A(const A& a) -// ~A() -// A(A& a) <---- !!! -// ~A() -// ~A() -// -// the g++ 2.2.2 (sparc-sun-sunos4.1) generated code prints -// -// A() -// A(const A& a) -// ~A() -// A(const A& a) <---- !!! -// ~A() -// ~A() - -extern "C" void printf (char *, ...); -extern "C" void exit (int); - -int count = 0; - -void -die (int x) -{ - if (x != ++count) - { - printf ("FAIL\n"); - exit (1); - } -} - -class A { -public: - A() { die (1); } - A(const A& a) { die (2); } - A(A& a) { die (4); } - ~A() { count++; if (count != 3 && count != 5 && count != 6) die (-1); } -}; - -void foo1(const A& a) { - A b = a; -} - -void foo2( A& a) { - A b = a; -} - -int main() { - A a; - - foo1(a); - foo2(a); - - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/copy5.C b/gcc/testsuite/g++.old-deja/g++.brendan/copy5.C deleted file mode 100755 index 277940b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/copy5.C +++ /dev/null @@ -1,85 +0,0 @@ -// GROUPS passed copy-ctors -/* -bad: -sibelius402> a.out -a=5 a.virtMember()=30 -BaseClass::Increm --> {i=5, virtMember()=30} -a=7 a.virtMember()=30 -b=7 b.virtMember()=30 -BaseClass::Increm --> {i=7, virtMember()=999} -b=9 b.virtMember()=30 -sibelius403> - - good: - -sibelius406> a.out -a=5 a.virtMember()=30 -BaseClass::Increm --> {i=5, virtMember()=30} -a=7 a.virtMember()=30 -b=7 b.virtMember()=30 -BaseClass::Increm --> {i=7, virtMember()=30} -b=9 b.virtMember()=30 -*/ - -extern "C" void printf (char *, ...); -extern "C" void exit (int); - -void die () { printf ("FAIL\n"); exit (1); } - -class BaseClass { - - friend int operator != (const BaseClass irv, int x); - - int i; - -public: - - BaseClass( const BaseClass& ir ) : i(ir.i) {}; - BaseClass() : i(5) {}; - - virtual int virtMember() { return( 999 ); }; - - void Increm( int r ); -}; - -void BaseClass::Increm( int r ) -{ - if ((i == 5 && virtMember () == 30) - || (i == 7 && virtMember () == 30)) - i += r; - else - die (); -}; - -class DerivedClass : public BaseClass { -public: - int virtMember() { return( 30 ); }; -}; - -int operator != (const BaseClass irv, int x) { return irv.i != x; } - -int -main () -{ - DerivedClass a; - - if (a != 5 || a.virtMember () != 30) - die (); - - a.Increm(2); - - if (a != 7 || a.virtMember () != 30) - die (); - - DerivedClass b = a; - - if (b != 7 || a.virtMember () != 30) - die (); - - b.Increm(2); - - if (b != 9 || a.virtMember () != 30) - die (); - - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/copy6.C b/gcc/testsuite/g++.old-deja/g++.brendan/copy6.C deleted file mode 100755 index d15a4be..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/copy6.C +++ /dev/null @@ -1,55 +0,0 @@ -// GROUPS passed copy-ctors -/* -g++ 2.3.3 will prefer using type conversions over the -implicitly generated copy constructor. This is wrong. -If you explicitly define a copy constructor, it will -use it. However, the implicit copy constructor MUST be -called whenever an explicit one would have been called -also. See below: g++ converts from and back into -unsigned, instead of using the implicit copy constructor: -here is the version: -Reading specs from /usr/lib/gcc-lib/i386-linux/2.3.3/specs -gcc version 2.3.3 - /usr/lib/gcc-lib/i386-linux/2.3.3/cpp -lang-c++ -v -undef -D__GNUC__=2 -D__GNUG__=2 -D__cplusplus -Dunix -Di386 -Dlinux -D__unix__ -D__i386__ -D__linux__ -D__unix -D__i386 -D__linux bug2.cc /usr/tmp/cca02008.i -GNU CPP version 2.3.3 (80386, BSD syntax) - /usr/lib/gcc-lib/i386-linux/2.3.3/cc1plus /usr/tmp/cca02008.i -quiet -dumpbase bug2.cc -version -o /usr/tmp/cca02008.s -GNU C++ version 2.3.3 (80386, BSD syntax) compiled by GNU C version 2.3.3. - as -o /usr/tmp/cca020081.o /usr/tmp/cca02008.s - ld /usr/lib/crt0.o -nojump -L/usr/lib/gcc-lib/i386-linux/2.3.3 /usr/tmp/cca020081.o -lg++ -lgcc -lc -lgcc - -Ok, and here is the output: -test k: constructing from scratch -test l=k: type conversion into unsigned -constructing from unsigned - -*/ - -extern "C" void printf (char *, ...); -extern "C" void exit (int); - -int count = 0; - -void die () { printf ("FAIL\n"); exit (1); } - -struct test { - test() { if (count != 0) die (); } - - test(unsigned) { - die (); - } - operator unsigned() { - die (); - return 0; - } -}; - -int -main() { - test k; - test l=k; - - printf ("PASS\n"); - - return 0; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/copy7.C b/gcc/testsuite/g++.old-deja/g++.brendan/copy7.C deleted file mode 100755 index e2f4e7a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/copy7.C +++ /dev/null @@ -1,30 +0,0 @@ -// GROUPS passed copy-ctors -extern "C" void printf (char *, ...); -extern "C" void exit (int); - -void die () { printf ("FAIL\n"); exit (1); } - -class B { -public: - B() {} - B(const B &) { printf ("PASS\n"); exit (0); }; -private: - int x; -}; - -class A : public B { -public: - A() {} - - A(const B &) { printf ("FAIL\n"); exit (1); } -}; - -int -main() -{ - A a; - A b(a); - - printf ("FAIL\n"); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/copy8.C b/gcc/testsuite/g++.old-deja/g++.brendan/copy8.C deleted file mode 100755 index fe248ba..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/copy8.C +++ /dev/null @@ -1,67 +0,0 @@ -// GROUPS passed copy-ctors -/* -This report is for GCC 2.3.3 running on a Sun/4. The bug is that when -a class instance is passed-by-value, GCC does not correctly copy the value. -At the end of this report is an example program that demonstrates the bug. -It should print: - - construct A('x') - copy A('x') - destruct A('x') - destruct A('x') - -and in fact does for IBM's xlC C++. However, for GCC 2.3.3, it fails -to print the second line ["copy A('x')"], which indicates that it failed -to call the copy-constructor for class A when it should have. Below is a -typescript that lists the program, shows how I compiled it, and shows the -incorrect output. -*/ - -extern "C" void printf (char *, ...); -extern "C" void exit (int); - -int count = 0; - -void -die (int x) -{ - if (x != ++count) - { - printf ("FAIL\n"); - exit (1); - } -} - -class A { // Class with explicit & instrumented copy-constructor and destructor. -public: - const char * id; - A( const char * id1 ) : id(id1) { die (1); } - - // Copy constructor - A( const A& a ) : id(a.id) { die (2); } - - // Destructor - ~A() { count++; if (count != 3 && count != 4) die (-1); } -}; - -class X { // Class without explicit copy-constructor -private: - A a; -public: - X( const char * id ) : a(id) {} -}; - -void Func( X x ) { // Function with call-by-value argument -} - -int -main() { - X x("x"); // Construct instance of x. - - // The next line should call the copy-constructor for X since x is - // being passed by value. For GCC 2.3.3 on a Sun/4, it does not. - Func(x); - - printf ("PASS\n"); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/copy9.C b/gcc/testsuite/g++.old-deja/g++.brendan/copy9.C deleted file mode 100755 index 59fd228..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/copy9.C +++ /dev/null @@ -1,41 +0,0 @@ -// GROUPS passed copy-ctors -#include <iostream.h> - -// token types: from state parser -const int T_EOF = 257; -const int T_ERROR = 258; -const int T_Float = 259; -const int T_Int = 260; -const int T_ID = 261; -const int T_STRING = 262; - -class Complex; -class State; - -// token, from state parser. -class ParseToken { -public: - int tok; - union { - char cval; - const char *sval; - int intval; - double doubleval; - Complex* Complexval; - const State* s; - }; - ParseToken () { tok = 0; intval = 0;} -}; - -int -main () { - ParseToken a; - a.tok = T_Float; - a.doubleval = 23.2; - ParseToken b(a); - - if (b.doubleval == 23.2) - cout << "PASS\n"; - else - cout << "FAIL\n"; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash1.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash1.C deleted file mode 100755 index 66de235..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash1.C +++ /dev/null @@ -1,44 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -class D_Interval; - -class Date -{ - public: - Date(const D_Interval*,const Date&); -private: - const D_Interval* interval; -}; - -class Time_Interval -{ - public: - Time_Interval(const Date& start,const Date& stop); - const Date& Start() const { return start; } - const Date& Stop() const { return stop; } - private: - Date start; - Date stop; -}; - -class Dated_Data -{ - public: - Dated_Data(const Time_Interval& dates); - virtual ~Dated_Data(); - Time_Interval Dates() const { return dates; } - private: - Time_Interval dates; -}; - -class Raw_Data : public Dated_Data -{ - public: - Raw_Data(const Dated_Data *source,const D_Interval& period); -}; - -Raw_Data::Raw_Data(const Dated_Data *source,const D_Interval& period) - : Dated_Data(Time_Interval(Date(&period,source->Dates().Start()), - Date(&period,source->Dates().Stop()))) -{ -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash10.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash10.C deleted file mode 100755 index 6680718..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash10.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -class word -{ - unsigned char b1, b2; -public: - word (unsigned int i = 0) { b1 = i & 0xff; b2 = (i & 0xff00) >> 8; } - operator unsigned int () { return (b2 << 8) + b1; } -}; - -class just_another -{ - int foo; - char bar[23]; -}; - -int mumble(word w) -{ - just_another *jap; - unsigned bar; - - bar = w; - - jap = new just_another [w]; - - return 0; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash11.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash11.C deleted file mode 100755 index a6c9226..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash11.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -extern "C" void printf (char *, ...); - -class A { - int i; - int j; - public: - int h; - A() { i=10; j=20; } - virtual void f1() { printf("i=%d j=%d\n",i,j); } - friend virtual void f2() { printf("i=%d j=%d\n",i,j); }// ERROR - virtual.* -}; - -class B : public A { - public: - virtual void f1() { printf("i=%d j=%d\n",i,j); }// ERROR - member.*// ERROR - member.* - friend virtual void f2() { printf("i=%d j=%d\n",i,j); }// ERROR - virtual.*// ERROR - member.*// ERROR - member.* -}; - -int -main() { - A * a = new A; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash12.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash12.C deleted file mode 100755 index 0671c7b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash12.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -class X -{ - int i; -public: - X(int j); -} - -X *x = new X[10]();// ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash13.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash13.C deleted file mode 100755 index c375e9b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash13.C +++ /dev/null @@ -1,36 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -class gen_op -{ -public: - gen_op ( ); - gen_op (const gen_op &Op1); - ~gen_op ( ); - void operator = (const gen_op &Op1); -}; - - - - -class spin_op -{ -public: - spin_op(); - spin_op(const spin_op& SOp); - ~spin_op(); - void operator= (const spin_op& SOp); - operator gen_op(); -}; - - -spin_op Fe(); - - -gen_op Spul_U_axis() -{ - gen_op U1; - U1 = Fe(); -}; // ERROR - reaches end of non-void function - -int -main () {}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash14.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash14.C deleted file mode 100755 index dc28121..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash14.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -extern "C" void printf (char *, ...); - - -class cl -{ - int i; -public: - cl(int j = 0) {i = j;} - int get_i() {return i;} - }; - -int -main() -{ - cl ob[3] = {1, 2, 3}; - int i; - - for(i=0; i<3; i++) - printf("%d\n", ob[i].get_i()); - - return 0; - } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash15.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash15.C deleted file mode 100755 index 56a7e75..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash15.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -#include <iostream.h> - -class A { - public: - virtual ~A() {cout << "executed ~A()\n";}; -}; - -class B : public A { - public: - virtual ~B() {cout << "executed ~B()\n";}; -}; - -int -main() { - cout << "starting\n"; - B b; - b.~A();// ERROR - destructor - cout << "done\n"; -}; - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash16.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash16.C deleted file mode 100755 index 5030b29..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash16.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -class Graph { -public: - unsigned char N; - Graph(void) {}; // ERROR - previously defined here -} - -Graph::Graph(void) -{ N = 10;// ERROR - return type.* -} - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash17.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash17.C deleted file mode 100755 index 7072eab..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash17.C +++ /dev/null @@ -1,35 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -// -// This one creates -// -// gcc2: Internal compiler error: program cc1plus got fatal signal 11 -// -// when compiled with g++. -// The error goes away, if -// 1) int ClassInvariant() is not virtual or -// 2) GnObject has a virtual destructor or -// 3) GnWidget has no virtual destructor or -// 4) GnContracts has a virtual destructor -// - - -class GnContracts { - public: - virtual int ClassInvariant(); -// virtual ~GnContracts(); -}; - -class GnObject : public GnContracts { - public: -// virtual ~GnObject(); -}; - -class GnWidget : public GnObject { - public: - virtual ~GnWidget(); -}; - -class GnOptionGroup : public GnObject, public GnWidget { -};// ERROR - warning - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash18.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash18.C deleted file mode 100755 index d4a4c60..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash18.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -typedef int element; -class Pix { -public: - Pix(); - Pix(const Pix&); - - // Friend functions so that v == x works as does x == v works - friend int operator==(void *v, const Pix& x) - { return v == index; }// ERROR - .* - friend int operator==(void *v, const Pix& x) - { return v != index; }// ERROR - .* -private: -// friend class List<T>; - element *index; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash19.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash19.C deleted file mode 100755 index 1b8527d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash19.C +++ /dev/null @@ -1,1704 +0,0 @@ -// Special g++ Options: -// Build don't link: -// GROUPS passed old-abort -typedef unsigned long _G_clock_t; -typedef long _G_dev_t; -typedef long int _G_fpos_t; -typedef long _G_gid_t; -typedef unsigned long _G_ino_t; -typedef unsigned short _G_mode_t; -typedef short _G_nlink_t; -typedef long _G_off_t; -typedef long _G_pid_t; -typedef int _G_ptrdiff_t; -typedef int _G_sigset_t; -typedef unsigned int _G_size_t; -typedef long _G_time_t; -typedef long _G_uid_t; -typedef unsigned int _G_wchar_t; -typedef int _G_ssize_t; -typedef double * _G_va_list; -class ostream; class streambuf; class backupbuf; -extern "C" int __underflow(streambuf*); -extern "C" int __overflow(streambuf*, int); -typedef _G_off_t streamoff; -typedef _G_off_t streampos; -typedef unsigned long __fmtflags; -typedef unsigned char __iostate; -struct _ios_fields { - streambuf *_strbuf; - ostream* _tie; - int _width; - __fmtflags _flags; - _G_wchar_t _fill; - __iostate _state; - __iostate _exceptions; - int _precision; -}; -enum state_value { - _good = 0 , - _eof = 1 , - _fail = 2 , - _bad = 4 }; -enum open_mode { - input = 1 , - output = 2 , - atend = 4 , - append = 8 }; -class ios : public _ios_fields { - public: - typedef __fmtflags fmtflags; - typedef int iostate; - typedef int openmode; - enum io_state { - goodbit = 0 , - eofbit = 1 , - failbit = 2 , - badbit = 4 }; - enum open_mode { - in = 1 , - out = 2 , - ate = 4 , - app = 8 , - trunc = 16 , - nocreate = 32 , - noreplace = 64 , - bin = 128 }; - enum seek_dir { beg, cur, end}; - enum { skipws=01, left=02, right=04, internal=010, - dec=020, oct=040, hex=0100, - showbase=0200, showpoint=0400, uppercase=01000, showpos=02000, - scientific=04000, fixed=010000, unitbuf=020000, stdio=040000, - dont_close=0x80000000 - }; - enum { - basefield=dec+oct+hex, - floatfield = scientific+fixed, - adjustfield = left+right+internal - }; - ostream* tie() const { return _tie; } - ostream* tie(ostream* val) { ostream* save=_tie; _tie=val; return save; } - _G_wchar_t fill() const { return (_G_wchar_t)_fill; } - _G_wchar_t fill(_G_wchar_t newf) - {_G_wchar_t oldf = (_G_wchar_t)_fill; _fill = (char)newf; return oldf;} - fmtflags flags() const { return _flags; } - fmtflags flags(fmtflags new_val) { - fmtflags old_val = _flags; _flags = new_val; return old_val; } - int precision() const { return _precision; } - int precision(int newp) { - unsigned short oldp = _precision; _precision = (unsigned short)newp; - return oldp; } - fmtflags setf(fmtflags val) { - fmtflags oldbits = _flags; - _flags |= val; return oldbits; } - fmtflags setf(fmtflags val, fmtflags mask) { - fmtflags oldbits = _flags; - _flags = (_flags & ~mask) | (val & mask); return oldbits; } - fmtflags unsetf(fmtflags mask) { - fmtflags oldbits = _flags & mask; - _flags &= ~mask; return oldbits; } - int width() const { return _width; } - int width(int val) { int save = _width; _width = val; return save; } - void _throw_failure() { } - streambuf* rdbuf() const { return _strbuf; } - void clear(iostate state = 0) { - _state = _strbuf ? state : state|badbit; - if (_state & _exceptions) _throw_failure(); } - void set(iostate flag) { _state |= flag; - if (_state & _exceptions) _throw_failure(); } - int good() const { return _state == 0; } - int eof() const { return _state & ios::eofbit; } - int fail() const { return _state & (ios::badbit|ios::failbit); } - int bad() const { return _state & ios::badbit; } - iostate rdstate() const { return _state; } - operator void*() const { return fail() ? (void*)0 : (void*)(-1); } - int operator!() const { return fail(); } - iostate exception(iostate enable) { - iostate old = _exceptions; _exceptions = enable; - if (_state & _exceptions) _throw_failure(); - return old; } - static int sync_with_stdio(int on); - static void sync_with_stdio() { sync_with_stdio(1); } - void unset(state_value flag) { _state &= ~flag; } - void close(); - int is_open(); - int readable(); - int writable(); - protected: - ios(streambuf* sb = 0, ostream* tie = 0); - virtual ~ios(); - void init(streambuf* sb) { _state=0; _strbuf=sb; } -}; -typedef ios::seek_dir _seek_dir; -class streammarker { - friend class streambuf; - friend int __underflow(streambuf*); - struct streammarker *_next; - streambuf *_sbuf; - streampos _spos; - void set_streampos(streampos sp) { _spos = sp; } - void set_offset(int offset) { _pos = offset; _spos = (streampos)(-2); } - int _pos; - public: - streammarker(streambuf *sb); - ~streammarker(); - int saving() { return _spos == -2; } - int delta(streammarker&); - int delta(); -}; -struct __streambuf { - int _flags; - char* _gptr; - char* _egptr; - char* _eback; - char* _pbase; - char* _pptr; - char* _epptr; - char* _base; - char* _ebuf; - struct streambuf *_chain; - friend class streammarker; - char *_other_gbase; - char *_aux_limit; - char *_other_egptr; - streammarker *_markers; - unsigned short _cur_column; - char _unused; - char _shortbuf[1]; -}; -extern unsigned __adjust_column(unsigned start, const char *line, int count); -struct streambuf : private __streambuf { - friend class ios; - friend class istream; - friend class ostream; - friend class streammarker; - friend int __underflow(streambuf*); - protected: - static streambuf* _list_all; - streambuf*& xchain() { return _chain; } - void _un_link(); - void _link_in(); - char* gptr() const { return _gptr; } - char* pptr() const { return _pptr; } - char* egptr() const { return _egptr; } - char* epptr() const { return _epptr; } - char* pbase() const { return _pbase; } - char* eback() const { return _eback; } - char* base() const { return _base; } - char* ebuf() const { return _ebuf; } - int blen() const { return _ebuf - _base; } - void xput_char(char c) { *_pptr++ = c; } - int xflags() { return _flags; } - int xflags(int f) { int fl = _flags; _flags = f; return fl; } - void xsetflags(int f) { _flags |= f; } - void xsetflags(int f, int mask) { _flags = (_flags & ~mask) | (f & mask); } - void gbump(int n) { _gptr += n; } - void pbump(int n) { _pptr += n; } - void setb(char* b, char* eb, int a=0); - void setp(char* p, char* ep) { _pbase=_pptr=p; _epptr=ep; } - void setg(char* eb, char* g, char *eg) { _eback=eb; _gptr=g; _egptr=eg; } - char *shortbuf() { return _shortbuf; } - int in_backup() { return _flags & 0x100 ; } - char *Gbase() { return in_backup() ? _other_gbase : _eback; } - char *eGptr() { return in_backup() ? _other_egptr : _egptr; } - char *Bbase() { return in_backup() ? _eback : _other_gbase; } - char *Bptr() { return _aux_limit; } - char *eBptr() { return in_backup() ? _egptr : _other_egptr; } - char *Nbase() { return _other_gbase; } - char *eNptr() { return _other_egptr; } - int have_backup() { return _other_gbase != __null ; } - int have_markers() { return _markers != __null ; } - int _least_marker(); - void switch_to_main_get_area(); - void switch_to_backup_area(); - void free_backup_area(); - void unsave_markers(); - int put_mode() { return _flags & 0x800 ; } - int switch_to_get_mode(); - streambuf(int flags=0); - public: - static int flush_all(); - static void flush_all_linebuffered(); - virtual int underflow() = 0; - virtual int overflow(int c = (-1) ) = 0; - virtual int doallocate(); - virtual streampos seekoff(streamoff, _seek_dir, int mode=ios::in|ios::out); - virtual streampos seekpos(streampos pos, int mode = ios::in|ios::out); - int seekmark(streammarker& mark, int delta = 0); - int sputbackc(char c); - int sungetc(); - virtual ~streambuf(); - int unbuffered() { return _flags & 2 ? 1 : 0; } - int linebuffered() { return _flags & 0x200 ? 1 : 0; } - void unbuffered(int i) - { if (i) _flags |= 2 ; else _flags &= ~2 ; } - void linebuffered(int i) - { if (i) _flags |= 0x200 ; else _flags &= ~0x200 ; } - int allocate() { - if (base() || unbuffered()) return 0; - else return doallocate(); } - void allocbuf() { if (base() == __null ) doallocbuf(); } - void doallocbuf(); - virtual int sync(); - virtual int pbackfail(int c); - virtual streambuf* setbuf(char* p, int len); - int in_avail() { return _egptr - _gptr; } - int out_waiting() { return _pptr - _pbase; } - virtual int xsputn(const char* s, int n); - int sputn(const char* s, int n) { return xsputn(s, n); } - int padn(char pad, int n); - virtual int xsgetn(char* s, int n); - int sgetn(char* s, int n) { return xsgetn(s, n); } - int ignore(int); - virtual int get_column(); - virtual int set_column(int); - long sgetline(char* buf, _G_size_t n, char delim, int putback_delim); - int sbumpc() { - if (_gptr >= _egptr && __underflow(this) == (-1) ) return (-1) ; - else return *(unsigned char*)_gptr++; } - int sgetc() { - if (_gptr >= _egptr && __underflow(this) == (-1) ) return (-1) ; - else return *(unsigned char*)_gptr; } - int snextc() { - if (_gptr >= _egptr && __underflow(this) == (-1) ) return (-1) ; - return _gptr++, sgetc(); } - int sputc(int c) { - if (_pptr >= _epptr) return __overflow(this, (unsigned char)c); - else return *_pptr++ = c, (unsigned char)c; } - void stossc() { if (_gptr < _egptr) _gptr++; } - int vscan(char const *fmt0, _G_va_list ap, ios* stream = __null ); - int scan(char const *fmt0 ...); - int vform(char const *fmt0, _G_va_list ap); - int form(char const *fmt0 ...); -}; -class backupbuf : public streambuf { - friend class streammarker; - protected: - backupbuf(int flags=0) : streambuf(flags| 0x4000 ) { } - public: - virtual int pbackfail(int c); - virtual int underflow(); - virtual int overflow(int c = (-1) ); -}; -struct __file_fields { - short _fileno; - int _blksize; - _G_fpos_t _offset; -}; -class filebuf : public backupbuf { - protected: - struct __file_fields _fb; - void init(); - public: - static const int openprot; - filebuf(); - filebuf(int fd); - filebuf(int fd, char* p, int len); - ~filebuf(); - filebuf* attach(int fd); - filebuf* open(const char *filename, const char *mode); - filebuf* open(const char *filename, ios::openmode mode, int prot = 0664); - virtual int underflow(); - virtual int overflow(int c = (-1) ); - int is_open() const { return _fb._fileno >= 0; } - int fd() const { return is_open() ? _fb._fileno : (-1) ; } - filebuf* close(); - virtual int doallocate(); - virtual streampos seekoff(streamoff, _seek_dir, int mode=ios::in|ios::out); - virtual streambuf* setbuf(char* p, int len); - int xsputn(const char* s, int n); - int xsgetn(char* s, int n); - virtual int sync(); - protected: - int is_reading() { return eback() != egptr(); } - char* cur_ptr() { return is_reading() ? gptr() : pptr(); } - char* file_ptr() { return eGptr(); } - int do_write(const char *data, int to_do); - int do_flush() { return do_write(_pbase, _pptr-_pbase); }// ERROR - - virtual _G_ssize_t sys_read(char* buf, _G_size_t size); - virtual _G_fpos_t sys_seek(_G_fpos_t, _seek_dir); - virtual _G_ssize_t sys_write(const void*, long); - virtual int sys_stat(void*); - virtual int sys_close(); -}; -inline ios::ios(streambuf* sb , ostream* tie ) { - _state = sb ? ios::goodbit : ios::badbit; _exceptions=0; - _strbuf=sb; _tie = tie; _width=0; _fill=' '; - _flags=ios::skipws|ios::dec; _precision=6; } -inline ios::~ios() { - if (!(_flags & (unsigned int)ios::dont_close)) delete _strbuf; } -class istream; class ostream; -typedef ios& (*__manip)(ios&); -typedef istream& (*__imanip)(istream&); -typedef ostream& (*__omanip)(ostream&); -extern istream& ws(istream& ins); -extern ostream& flush(ostream& outs); -extern ostream& endl(ostream& outs); -extern ostream& ends(ostream& outs); -class ostream : virtual public ios -{ - void do_osfx(); - public: - ostream() { } - ostream(streambuf* sb, ostream* tied=__null ); - int opfx() { - if (!good()) return 0; else { if (_tie) _tie->flush(); return 1;} } - void osfx() { if (flags() & (ios::unitbuf|ios::stdio)) - do_osfx(); } - streambuf* ostreambuf() const { return _strbuf; } - ostream& flush(); - ostream& put(char c) { _strbuf->sputc(c); return *this; } - ostream& put(unsigned char c) { return put((char)c); } - ostream& write(const char *s, int n); - ostream& write(const unsigned char *s, int n) { return write((const char*)s, n);} - ostream& put(signed char c) { return put((char)c); } - ostream& write(const signed char *s, int n) { return write((const char*)s, n);} - ostream& write(const void *s, int n) { return write((const char*)s, n);} - ostream& seekp(streampos); - ostream& seekp(streamoff, _seek_dir); - streampos tellp(); - ostream& form(const char *format ...); - ostream& vform(const char *format, _G_va_list args); - ostream& operator<<(char c); - ostream& operator<<(unsigned char c) { return (*this) << (char)c; } - ostream& operator<<(signed char c) { return (*this) << (char)c; } - ostream& operator<<(const char *s); - ostream& operator<<(const unsigned char *s) - { return (*this) << (const char*)s; } - ostream& operator<<(const signed char *s) - { return (*this) << (const char*)s; } - ostream& operator<<(void *p); - ostream& operator<<(int n); - ostream& operator<<(unsigned int n); - ostream& operator<<(long n); - ostream& operator<<(unsigned long n); - ostream& operator<<(long long n); - ostream& operator<<(unsigned long long n); - ostream& operator<<(short n) {return operator<<((int)n);} - ostream& operator<<(unsigned short n) {return operator<<((unsigned int)n);} - ostream& operator<<(double n); - ostream& operator<<(float n) { return operator<<((double)n); } - ostream& operator<<(__omanip func) { return (*func)(*this); } - ostream& operator<<(__manip func) {(*func)(*this); return *this;} - ostream& operator<<(streambuf*); -}; -class istream : virtual public ios -{ - _G_ssize_t _gcount; - int _skip_ws(); - public: - istream() { _gcount = 0; } - istream(streambuf* sb, ostream*tied=__null ); - streambuf* istreambuf() const { return _strbuf; } - istream& get(char* ptr, int len, char delim = '\n'); - istream& get(unsigned char* ptr, int len, char delim = '\n') - { return get((char*)ptr, len, delim); } - istream& get(char& c); - istream& get(unsigned char& c) { return get((char&)c); } - istream& getline(char* ptr, int len, char delim = '\n'); - istream& getline(unsigned char* ptr, int len, char delim = '\n') - { return getline((char*)ptr, len, delim); } - istream& get(signed char& c) { return get((char&)c); } - istream& get(signed char* ptr, int len, char delim = '\n') - { return get((char*)ptr, len, delim); } - istream& getline(signed char* ptr, int len, char delim = '\n') - { return getline((char*)ptr, len, delim); } - istream& read(char *ptr, int n); - istream& read(unsigned char *ptr, int n) { return read((char*)ptr, n); } - istream& read(signed char *ptr, int n) { return read((char*)ptr, n); } - istream& read(void *ptr, int n) { return read((char*)ptr, n); } - istream& get(streambuf& sb, char delim = '\n'); - istream& gets(char **s, char delim = '\n'); - int ipfx(int need) { - if (!good()) { set(ios::failbit); return 0; } - if (_tie && (need == 0 || rdbuf()->in_avail() < need)) _tie->flush(); - if (!need && (flags() & ios::skipws)) return _skip_ws(); - return 1; - } - int ipfx0() { - if (!good()) { set(ios::failbit); return 0; } - if (_tie) _tie->flush(); - if (flags() & ios::skipws) return _skip_ws(); - return 1; - } - int ipfx1() { - if (!good()) { set(ios::failbit); return 0; } - if (_tie && rdbuf()->in_avail() == 0) _tie->flush(); - return 1; - } - int get() { if (!ipfx1()) return (-1) ; - int ch = _strbuf->sbumpc(); - if (ch == (-1) ) set(ios::eofbit); - return ch; } - int peek() { if (!ipfx1()) return (-1) ; - int ch = _strbuf->sgetc(); - if (ch == (-1) ) set(ios::eofbit); - return ch; } - _G_ssize_t gcount() { return _gcount; } - istream& ignore(int n=1, int delim = (-1) ); - istream& seekg(streampos); - istream& seekg(streamoff, _seek_dir); - streampos tellg(); - istream& putback(char ch) { - if (good() && _strbuf->sputbackc(ch) == (-1) ) clear(ios::badbit); - return *this;} - istream& unget() { - if (good() && _strbuf->sungetc() == (-1) ) clear(ios::badbit); - return *this;} - istream& scan(const char *format ...); - istream& vscan(const char *format, _G_va_list args); - istream& unget(char ch) { return putback(ch); } - int skip(int i); - istream& operator>>(char*); - istream& operator>>(unsigned char* p) { return operator>>((char*)p); } - istream& operator>>(signed char*p) { return operator>>((char*)p); } - istream& operator>>(char& c); - istream& operator>>(unsigned char& c) {return operator>>((char&)c);} - istream& operator>>(signed char& c) {return operator>>((char&)c);} - istream& operator>>(int&); - istream& operator>>(long&); - istream& operator>>(long long&); - istream& operator>>(short&); - istream& operator>>(unsigned int&); - istream& operator>>(unsigned long&); - istream& operator>>(unsigned long long&); - istream& operator>>(unsigned short&); - istream& operator>>(float&); - istream& operator>>(double&); - istream& operator>>( __manip func) {(*func)(*this); return *this;} - istream& operator>>(__imanip func) { return (*func)(*this); } - istream& operator>>(streambuf*); -}; -class iostream : public istream, public ostream -{ - _G_ssize_t _gcount; - public: - iostream() { _gcount = 0; } - iostream(streambuf* sb, ostream*tied=__null ); -}; -extern istream cin; -extern ostream cout, cerr, clog; -struct Iostream_init { } ; -inline ios& dec(ios& i) -{ i.setf(ios::dec, ios::dec|ios::hex|ios::oct); return i; } -inline ios& hex(ios& i) -{ i.setf(ios::hex, ios::dec|ios::hex|ios::oct); return i; } -inline ios& oct(ios& i) -{ i.setf(ios::oct, ios::dec|ios::hex|ios::oct); return i; } -extern char* form(const char*, ...); -extern char* dec(long, int=0); -extern char* dec(int, int=0); -extern char* dec(unsigned long, int=0); -extern char* dec(unsigned int, int=0); -extern char* hex(long, int=0); -extern char* hex(int, int=0); -extern char* hex(unsigned long, int=0); -extern char* hex(unsigned int, int=0); -extern char* oct(long, int=0); -extern char* oct(int, int=0); -extern char* oct(unsigned long, int=0); -extern char* oct(unsigned int, int=0); -inline istream& WS(istream& str) { return ws(str); } -typedef double *__gnuc_va_list; -extern "C" { - typedef struct { - int __cnt; - unsigned char *__ptr; - unsigned char *__base; - unsigned short __flag; - unsigned char __fileL; - unsigned char __fileH; - } FILE; - typedef struct { - int __cnt; - unsigned char *__ptr; - unsigned char *__base; - unsigned short __flag; - unsigned char __fileL; - unsigned char __fileH; - unsigned char *__bufendp; - unsigned char __smbuf[8 ]; - } _FILEX; - typedef unsigned int size_t; - typedef long int fpos_t; - typedef double *__va_list; - extern FILE __iob[]; - extern int remove(const char *); - extern int rename(const char *, const char *); - extern FILE *tmpfile(void); - extern char *tmpnam(char *); - extern int fclose(FILE *); - extern int fflush(FILE *); - extern FILE *fopen(const char *, const char *); - extern FILE *freopen(const char *, const char *, FILE *); - extern void setbuf(FILE *, char *); - extern int setvbuf(FILE *, char *, int, size_t); - extern int fprintf(FILE *, const char *, ...); - extern int fscanf(FILE *, const char *,...); - extern int printf(const char *,...); - extern int scanf(const char *,...); - extern int sprintf(char *, const char *,...); - extern int sscanf(const char *, const char *,...); - extern int vprintf(const char *, __va_list); - extern int vfprintf(FILE *, const char *, __va_list); - extern int vsprintf(char *, const char *, __va_list); - extern int fgetc(FILE *); - extern char *fgets(char *, int, FILE *); - extern int fputc(int, FILE *); - extern int fputs(const char *, FILE *); - extern int getc(FILE *); - extern int getchar(void); - extern char *gets(char *); - extern int putc(int, FILE *); - extern int putchar(int); - extern int puts(const char *); - extern int ungetc(int, FILE *); - extern int fgetpos(FILE *, fpos_t *); - extern int fseek(FILE *, long int, int); - extern int fsetpos(FILE *, const fpos_t *); - extern long int ftell(FILE *); - extern void rewind(FILE *); - extern void clearerr(FILE *); - extern int feof(FILE *); - extern int ferror(FILE *); - extern void perror(const char *); - extern size_t fread(void *, size_t, size_t, FILE *); - extern size_t fwrite(const void *, size_t, size_t, FILE *); - extern int __flsbuf(unsigned char, FILE *); - extern int __filbuf(FILE *); - extern int fileno(FILE *); - extern FILE *fdopen(int, const char *); - extern int getw(FILE *); - extern int putw(int, FILE *); - extern int pclose(FILE *); - extern FILE *popen(const char *, const char *); - extern char *tempnam(const char *, const char *); - extern char *ctermid(char *); - extern char *cuserid(char *); - extern int nl_fprintf(FILE *, const char * ,...); - extern int nl_fscanf(FILE *, const char * ,...); - extern int nl_printf(const char * ,...); - extern int nl_scanf(const char * ,...); - extern int nl_sprintf(char *, const char * ,...); - extern int nl_sscanf(const char *, const char * ,...); - extern unsigned char *__bufendtab[]; -} -extern "C" { - extern int __nl_char_size; - typedef struct { - int quot; - int rem; - } div_t; - typedef struct { - long int quot; - long int rem; - } ldiv_t; - typedef unsigned int wchar_t; - extern double atof(const char *); - extern int atoi(const char *); - extern long int atol(const char *); - extern double strtod(const char *, char **); - extern long int strtol(const char *, char **, int); - extern unsigned long int strtoul(const char *, char **, int); - extern int rand(void); - extern void srand(unsigned int); - extern int atexit(void (*) (void)); - extern void exit(int); - extern char *getenv(const char *); - extern int system(const char *); - inline int abs(int d) { return (d>0)?d:-d; } - extern div_t div(int, int); - extern ldiv_t ldiv(long int, long int); - extern long int labs(long int); - extern int mblen(const char *, size_t); - extern int mbtowc(wchar_t *, const char *, size_t); - extern int wctomb(char *, wchar_t); - extern size_t mbstowcs(wchar_t *, const char *, size_t); - extern size_t wcstombs(char *, const wchar_t *, size_t); - extern void free(void *); - extern void qsort(void *, size_t, size_t, int (*)(const void *, const void *)); - extern void abort(void); - extern void *bsearch(const void *, const void *, size_t, size_t, int (*) (const void *, const void *)); - extern void *calloc(size_t, size_t); - extern void *malloc(size_t); - extern void *realloc(void *, size_t); - extern void setkey(const char *); - extern void lcong48( unsigned short [] ); - extern double wcstod( const wchar_t *, wchar_t ** ); - extern long wcstol( const wchar_t *, wchar_t **, int ); - extern unsigned long wcstoul( const wchar_t *, wchar_t **, int ); - extern double drand48(void); - extern double erand48(unsigned short []); - extern long jrand48(unsigned short []); - extern long lrand48(void); - extern long mrand48(void); - extern long nrand48(unsigned short []); - extern void srand48(long); - extern unsigned short *seed48(unsigned short []); - extern int putenv(const char *); - extern int clearenv(void); - extern int getopt(int, char * const [], const char *); - extern char *getpass(const char *); - extern char *optarg; - extern int optind; - extern int opterr; - struct mallinfo { - int arena; - int ordblks; - int smblks; - int hblks; - int hblkhd; - int usmblks; - int fsmblks; - int uordblks; - int fordblks; - int keepcost; - }; - typedef struct { - unsigned int word1, word2, word3, word4; - } long_double; -extern "C" { - typedef long gid_t; - typedef long uid_t; - struct passwd { - char *pw_name; - char *pw_passwd; - uid_t pw_uid; - gid_t pw_gid; - char *pw_age; - char *pw_comment; - char *pw_gecos; - char *pw_dir; - char *pw_shell; - long pw_audid; - int pw_audflg; - }; - extern struct passwd *getpwuid(uid_t); - extern struct passwd *getpwnam(const char *); - struct s_passwd { - char *pw_name; - char *pw_passwd; - char *pw_age; - long pw_audid; - int pw_audflg; - }; - struct comment { - char *c_dept; - char *c_name; - char *c_acct; - char *c_bin; - }; - extern void setpwent(void); - extern void endpwent(void); - extern struct passwd *getpwent(void); - extern struct passwd *fgetpwent(FILE *); - extern struct s_passwd *getspwent(void); - extern struct s_passwd *getspwuid(int); - extern struct s_passwd *getspwaid(int); - extern struct s_passwd *getspwnam(char *); - extern struct s_passwd *fgetspwent(FILE *); -} -extern int errno; - extern "C" { - extern int errno; - } -extern "C" { - extern void perror(const char*); - extern int sys_nerr; - extern char *sys_errlist[]; - extern char *strerror (int); -} - extern const char *fcvt(double, size_t, int *, int *); - extern char *gcvt(double, size_t, char *); - extern char *ecvt(double, size_t, int *, int *); - extern char *nl_gcvt(double, size_t, char *, int); - extern char *_ldecvt(long_double, size_t, int *, int *); - extern char *_ldfcvt(long_double, size_t, int *, int *); - extern char *_ldgcvt(long_double, size_t, char *); - extern int getpw(int, char *); - extern long a64l(const char *); - extern char *l64a(long); - extern void l3tol(long *, const char *, int); - extern void ltol3(char *, const long *, int); - extern char *getmsg(int, int, int, char *, int); - extern double nl_atof(const char *, int); - extern double nl_strtod(const char *, char **, int); - extern char *ltostr(long, int); - extern char *ultostr(unsigned long, int); - extern char *ltoa(long); - extern char *ultoa(unsigned long); - extern void memorymap(int); - extern struct mallinfo mallinfo(void); - extern int mallopt(int, int); -} -typedef void * POINTER; -typedef FILE * FILE_PTR; -typedef void (*DISPLAYER) (POINTER obj, FILE_PTR fp, FILE_PTR errorFile) ; -typedef void (*DESTROYER) (POINTER obj, FILE_PTR errorFile) ; -typedef void (*RCOUNT_INC) (POINTER obj, FILE_PTR errorFile) ; -typedef int (*COMPARE) (POINTER obj1, POINTER obj2) ; -typedef unsigned long (*HASH_ADDR) (POINTER obj, FILE_PTR errorFile) ; -typedef unsigned long (*HASH_SKIP) (POINTER obj, FILE_PTR errorFile) ; -typedef POINTER - (*ACCESS_FCT) (POINTER target, POINTER sample, FILE_PTR errorFile) ; -typedef POINTER DATA_PTR; - typedef long dev_t; - typedef unsigned long ino_t; - typedef unsigned short mode_t; - typedef short nlink_t; - typedef long off_t; - typedef long pid_t; - typedef long time_t; - typedef int ssize_t; - typedef unsigned short __site_t; - typedef unsigned short __cnode_t; - typedef unsigned long clock_t; - typedef long key_t; - typedef unsigned short __ushort; - typedef long __daddr_t; - typedef char *__caddr_t; - typedef long __swblk_t; - typedef unsigned char u_char; - typedef unsigned short u_short; - typedef unsigned int u_int; - typedef unsigned long u_long; - typedef unsigned int uint; - typedef unsigned short ushort; - typedef __swblk_t swblk_t; - typedef __daddr_t daddr_t; - typedef __site_t site_t; - typedef __cnode_t cnode_t; - typedef __caddr_t caddr_t; - typedef long paddr_t; - typedef short cnt_t; - typedef unsigned int space_t; - typedef unsigned int prot_t; - typedef unsigned long cdno_t; - typedef unsigned short use_t; - typedef struct _physadr { int r[1]; } *physadr; - typedef struct _quad { long val[2]; } quad; - typedef short cpu_t; - typedef struct label_t { - int lbl_rp; - int lbl_sp; - int lbl_s[17]; - int lbl_ss[1]; - double lbl_sf[4]; - } label_t; - typedef char *dm_message; - typedef long aid_t; - typedef pid_t sid_t; - typedef long fd_mask; - typedef struct fd_set { - fd_mask fds_bits[ ((( 2048 )+(( (sizeof(fd_mask) * 8) )-1))/( (sizeof(fd_mask) * 8) )) ]; - } fd_set; -POINTER malloc (size_t size ) ; -POINTER calloc (size_t n , size_t size ) ; -void free (POINTER c ) ; -void mem_report (void ) ; -typedef int BOOLEAN; -typedef enum -{ - eNoErrors = -1, - eUnknownProcessingError = 0, - eAlgorithmFailure = 100, - eAlreadyLocked = 200, - eAttCount = 300, - eAttRedefinition = 400, - eBasicMatrixError = 500, - eBadAddress = 600, - eBadAttribute = 700, - eBadFileNumber = 800, - eBadMode = 900, - eBadVersion = 1000, - eColumnError = 1100, - eConstraintError = 1200, - eLBConstraintError = 1300, - eUBConstraintError = 1400, - eDatabaseError = 1500, - eDataExists = 1600, - eDataNotFound = 1700, - eDictError = 1800, - eDiffAtt = 1900, - eDomain = 2000, - eDuplicateAtt = 2100, - eDuplicateKey = 2200, - eElementMismatch = 2300, - eEmptyAtt = 2400, - eEmptyDict = 2450, - eEmptyLink = 2500, - eEmptyQueue = 2600, - eEmptyStack = 2700, - eEntityExists = 2800, - eEntityNotFound = 2900, - eEtaComputeError = 3000, - eEtaFileError = 3100, - eEtaInverseConsistency = 3200, - eFileExists = 3300, - eFileNotFound = 3400, - eFunctionMismatch = 3500, - eFunctionNotAvailable = 3600, - eFunctionNotFound = 3700, - eFunctionTypeConflict = 3800, - eGraphError = 3900, - eIllegalBMatrixOp = 4000, - eIllegalData = 4100, - eIllegalDeletion = 4200, - eIllegalDictOp = 4300, - eIllegalEtaFileOp = 4400, - eIllegalFunctionRequest = 4500, - eIllegalFunctionType = 4600, - eIllegalGraphOp = 4700, - eIllegalGraphType = 4800, - eIllegalIndex = 4900, - eIllegalInsertion = 5000, - eIllegalListOp = 5100, - eIllegalLPTokenOp = 5200, - eIllegalLPTokenType = 5300, - eIllegalMatrixOp = 5400, - eIllegalMatrixSize = 5500, - eIllegalMatrixState = 5600, - eIllegalMatrixType = 5700, - eIllegalNBMatrixOp = 5800, - eIllegalOperation = 5900, - eIllegalOption = 6000, - eIllegalOverload = 6100, - eIllegalSeek = 6200, - eIllegalType = 6300, - eIllegalVectorOp = 6400, - eIllegalVectorType = 6500, - eIllFormedADT = 6600, - eInconsistentData = 6700, - eInternalError = 6800, - eInUse = 6900, - eInvalidArgument = 7000, - eInvalidAtt = 7100, - eInvalidData = 7200, - eInvalidIndex = 7300, - eInvalidMatrixOp = 7400, - eInvalidOperation = 7500, - eInvalidOption = 7600, - eInvalidParam = 7700, - eInvalidVectorOp = 7800, - eKeyNotFound = 7900, - eLinkNotEmpty = 8000, - eListError = 8100, - eLockAccess = 8200, - eLockExists = 8300, - eLockNotFound = 8400, - eLockReadOnly = 8500, - eLockTrunc = 8600, - eLPTokenError = 8700, - eLPTokenMisuse = 8800, - eMatrixError = 8900, - eMatrixMismatch = 9000, - eMatrixMultiplicationError = 9100, - eMissingData = 9200, - eMysteryError = 9300, - eNameTooLong = 9400, - eNeverLocked = 9500, - eNoAccess = 9600, - eNoLockReq = 9800, - eNoMoreAtt = 9900, - eNoMoreElements = 10000, - eNonBasicMatrixError = 10100, - eNonInvertibleMatrix = 10200, - eNonsenseData = 10300, - eNoSuchKey = 10400, - eNotEnoughSpace = 10500, - eNotFetched = 10600, - eNotLocked = 10700, - eNotSupported = 10800, - eNullPointer = 10900, - eNullInternalPointer = 11000, - eNullCompare = 11050, - eNullData = 11070, - eNullDestroyer = 11100, - eNullDisplayer = 11200, - eNullFunction = 11300, - eRemove = 11400, - eRoundoff = 11500, - eQueueNotEmpty = 11600, - eSparseGraphError = 11700, - eStackError = 11800, - eStackNotEmpty = 11900, - eTLRSProceduralError = 12000, - eTooManyAtt = 12100, - eTooManyLocks = 12200, - eTypeConflict = 12300, - eUnexpectedType = 12400, - eUnixError = 12500, - eVectorMismatch = 12600, - eProcessingError = 15000, - eActionKludge = 15100, - eNotImplemented = 15200, - eNotStable = 15300, - eNotReleased = 15400, - eBeingWorkedOn = 15500 -} eErrorState; -extern "C" { -extern eErrorState spider_errno; -extern char err_string[]; -POINTER mallocate (size_t n ) ; -size_t pagesize (void ) ; -POINTER page_mallocate (void ) ; -POINTER make_memory_token (int size , int page_cnt, const char *name) ; -POINTER mem_malloc (POINTER mptr ) ; -void mem_free (POINTER mptr , POINTER obj ) ; -const char *get_double_string (char *buffer , double num ) ; -int spider_strcat (const char *proc , char *str1 , const char *str2 , int maxlen ) ; -void init_errors (void ) ; -void append_abort (const char *proc ) ; -void append_message (const char *proc , const char *msg ) ; -void set_errno (eErrorState err ) ; -void spider_perror (const char *proc , FILE_PTR errorFile ) ; -void append_not_implemented (const char *proc , int *target_errno ) ; -const char *GetBooleanString (BOOLEAN bool ) ;// ERROR - use of bool as identifier -double truncate_value (double x , double epsilon ) ; -double log2 (double x ) ; -int ceil_log2 (double x ) ; -int floor_log2 (double x ) ; -} -extern "C" { -extern char char80[], char128[], char160[], char512[]; -extern char char1000[], char2000[]; -extern char char320[]; -BOOLEAN Get_EM_StderrFlag (void ) ; -void Set_EM_StderrFlag (BOOLEAN printToStderr ) ; -void CheckReleaseState (eErrorState releaseState , const char *procName, FILE_PTR errorFile ) ; -void PrintErrorString (const char *errorString , FILE_PTR errorFile ) ; -const char *get_error_header (eErrorState errorState ) ; -void print_error_header (eErrorState errorState , FILE_PTR errorFile ) ; -void PrintErrorMessage (eErrorState errorState , const char *message , FILE_PTR errorFile ) ; -} -extern "C" { -extern short show_increment_rcount; -extern int errno; -extern int bmk_errno; -extern int ck_errno; -extern int db_errno; -extern int dict_errno; -extern int glh_errno; -extern int graph_errno; -extern int hash_errno; -extern int link_errno; -extern int lp_errno; -extern int matrix_errno; -extern int nbmk_errno; -extern int network_errno; -extern int queue_errno; -extern int set_kernel_errno; -extern int stack_errno; -} -extern "C" { -const char *spider_version_string (void ) ; -int spider_version (void ) ; -const char *spider_errstring (void ) ; -void append_perror (const char *s ) ; -void unix_perror (const char *s ) ; -} -typedef struct node a_dict_node, * DICT_NODE; -struct node { - POINTER info; - DICT_NODE left; - DICT_NODE right; - DICT_NODE prev; - DICT_NODE next; -}; -typedef struct tree a_dict, * DICT; -struct tree { - int size; - COMPARE comp; - DICT_NODE header; - DICT_NODE last_accessed; - DICT_NODE list_head; - DICT_NODE list_tail; -}; -typedef enum { PREORDER = -1, INORDER, POSTORDER } traversal_t; -extern "C" { -void dict_set_nopages (int desired_nopages ) ; -void dict_err (void ) ; -const char *traversal_string (traversal_t tr ) ; -DICT make_dictionary (COMPARE cmp ) ; -int dict_insert (POINTER item , DICT dict ) ; -int dict_delete (POINTER item , DICT dict ) ; -POINTER dict_access (POINTER item , DICT dict ) ; -POINTER dict_low (DICT dict ) ; -POINTER dict_nlow (DICT dict ) ; -POINTER dict_big (DICT dict ) ; -POINTER dict_nbig (DICT dict ) ; -POINTER dict_first (DICT dict ) ; -POINTER dict_next (DICT dict ) ; -POINTER dict_last (DICT dict ) ; -POINTER dict_prev (DICT dict ) ; -int clear_dictionary (DICT dict , DESTROYER destroy , FILE *errorFile ) ; -int dict_size (const a_dict *dict ) ; -POINTER dict_elem (int index , DICT dict ) ; -int dict_compare (DICT d1 , DICT d2 ) ; -DICT dict_copy (DICT di , COMPARE cmp ) ; -int dict_change_compare (DICT di , COMPARE cmp ) ; -int dict_height (DICT di ) ; -void dict_print_stats (FILE *fp , DICT di ) ; -void dict_print (FILE *fp , DICT di , traversal_t tr , DISPLAYER display ) ; -const char *dict_version (void ) ; -void init_dict_errors (void ) ; -const char *dict_errstring (void ) ; -void dict_append_perror (const char *s ) ; -void dict_perror (const char *s ) ; -extern int dict_errno; -} -typedef struct q_item { - struct q_item *next; - POINTER data; -} a_q_item, *Q_ITEM; -typedef struct { - int rcount; - Q_ITEM first; - Q_ITEM last; - int count; -} a_queue, *QUEUE; -extern "C" { -void queue_err (void) ; -void queue_set_nopages (int desired_nopages) ; -QUEUE make_queue (void ) ; -POINTER queue_look (const a_queue * Q ) ; -POINTER queue_last (const a_queue * Q ) ; -POINTER queue_remove (QUEUE Q ) ; -int queue_append (QUEUE Q , POINTER data ) ; -int queue_size (const a_queue * Q ) ; -void queue_destroy (POINTER ptr , FILE_PTR errorFile ) ; -void IncrementQRCount (POINTER ptr , FILE_PTR errorFile ) ; -const char *queue_version (void ) ; -void init_queue_errors (void ) ; -const char *queue_errstring (void ) ; -void queue_append_perror (const char *s ) ; -void queue_perror (const char *s ) ; -extern int queue_errno; -} -typedef struct s_item { - struct s_item *next; - POINTER data; -} a_s_item, *S_ITEM; -typedef struct stack { - int rcount; - S_ITEM top; - int count; -} a_stack, *STACK; -extern "C" { -void stack_err (void) ; -void stack_set_nopages (int desired_nopages) ; -STACK make_stack (void ) ; -POINTER stack_look (const a_stack * S ) ; -POINTER stack_pop (STACK S ) ; -int stack_push (STACK S , POINTER data ) ; -int stack_size (const a_stack * S ) ; -void stack_destroy (POINTER ptr , FILE_PTR errorFile ) ; -void IncrementSRCount (POINTER ptr , FILE_PTR errorFile ) ; -const char *stack_version (void ) ; -void init_stack_errors (void ) ; -const char *stack_errstring (void ) ; -void stack_append_perror (const char *s ) ; -void stack_perror (const char *s ) ; -extern int stack_errno; -} -typedef const char *(*STRINGER)(const void *ptr); -int default_compare(const void *p1, const void *p2); -void default_displayer(const void *ptr, FILE *fp, FILE *errorFile); -const char *default_stringer(const void *ptr); -const char *object_stringer(const void *ptr); -class object { - static long current_id; - static long next_id(); -protected: - void display2(ostream &fp = cout) const; - long id; -public: - object() { id = next_id(); } - object(const object &obj) { id = next_id(); } - virtual ~object() - { - if (799 >= 999 ) cout << "~object() executing..." << '\n'; ; - } - object & operator = (const object & obj) - { - return( *this ); - } - virtual int compare(const void *p2) const; - virtual void display(ostream & fp = cout) const - { - display2(fp); - } - operator char *() const; -}; -ostream & operator << (ostream & fp, object & obj); -int operator < (object & obj1, object & obj2); -int operator <= (object & obj1, object & obj2); -int operator > (object & obj1, object & obj2); -int operator >= (object & obj1, object & obj2); -int operator == (object & obj1, object & obj2); -int operator != (object & obj1, object & obj2); -void null_destroy(void *p, FILE *errorFile); -void object_destroy(void *p, FILE *errorFile); -int object_compare(const void *p1, const void *p2); -void object_display(const void *p, FILE *fp, FILE *errorFile); -class dict : public object { - class internal { - public: - DICT di; - int errno; - COMPARE compare_f; - DISPLAYER display_f; - DESTROYER destroy_f; - STRINGER string_f; - int count; - void append_error(int expr, const char *proc) - { - if (expr) dict_append_perror(proc); - errno = dict_errno; - } - void obj_error(int expr, const char *proc, const void *obj) - { - if (expr) { - dict_append_perror((*string_f)(obj)); - dict_append_perror(proc); - } - errno = dict_errno; - } - internal(COMPARE cmp, DESTROYER destroyer, - DISPLAYER displayer, STRINGER str_f) - {// ERROR - candidate for bad call - if (799 >= 800 ) cout << "Creating new dictionary..." << '\n'; ; - if (cmp == __null ) cmp = &default_compare; - if (displayer == __null ) displayer = &default_displayer; - if (str_f == __null ) str_f = &default_stringer; - compare_f = cmp; - display_f = displayer; - destroy_f = destroyer; - string_f = str_f; - di = make_dictionary(compare_f); - append_error(di == __null , "dict internal"); - if (di == __null ) { - dict_perror("build dictionary"); - exit(errno); - } - count = 1; - } - ~internal() - { - if (799 >= 800 ) cout << "dict ~internal executing" << '\n'; ; - int err = clear_dictionary(di, destroy_f, (&__iob[2]) ); - append_error(err, "clear dictionary"); - if (err) dict_perror("dict ~internal"); - free((void *)di); - } - };// ERROR - candidate list for bad call - internal *rep; -protected: - int & errno() { return( rep->errno ); } - COMPARE compare_f() { return( rep->compare_f ); } - DISPLAYER display_f() { return( rep->display_f ); } - DESTROYER destroy_f() { return( rep->destroy_f ); } - STRINGER string_f() { return( rep->string_f ); } - void append_error(int expr, const char *proc) - { - rep->append_error(expr, proc); - } - void obj_error(int expr, const char *proc, const void *obj) - { - rep->obj_error(expr, proc, obj); - } -public: - static int err; - static int val; - static void *p; - dict() - { - if (799 >= 800 ) cout << "Default constructor executing..." << '\n'; ; - rep = new internal( &default_compare, &null_destroy, - &default_displayer, &default_stringer);// ERROR - no matching fn call - } - dict(COMPARE cmp, - DESTROYER destroyer = __null , - DISPLAYER displayer = &default_displayer, - STRINGER str_f = &default_stringer) - {// ERROR - invalid type for default argument -- not expecting const - rep = new internal(cmp, destroyer, displayer, str_f); - } - dict(const dict &di2) - { - rep = di2.rep; - rep->count ++; - if (799 >= 800 ) cout << "Incrementing count to " << rep->count << '\n'; ; - } - dict & operator = (const dict &di2) - { - di2.rep->count ++; - if (799 >= 800 ) cout << "Incrementing di2 count to " << di2.rep->count << '\n'; ; - if (799 >= 800 ) cout << "Decrementing lvalue count to " << rep->count-1 << '\n'; ; - if (--rep->count <= 0) { - delete rep; - } - rep = di2.rep; - return( *this ); - } - ~dict() - { - if (799 >= 800 ) cout << "~dict executing..." << '\n'; ; - if (799 >= 800 ) cout << "Decrementing dict::internal count to " << rep->count-1 << '\n'; ; - if (--rep->count <= 0) delete rep; - } - int insert(POINTER item) - { - err = dict_insert(item, rep->di); - obj_error(err, "insert", item); - return errno(); - } - int remove(POINTER item) - { - err = dict_delete(item, rep->di); - obj_error(err, "remove", item); - return errno(); - } - POINTER access(POINTER item) - { - p = dict_access(item, rep->di); - obj_error(p == __null , "access", item); - return(p); - } - POINTER low() - { - p = dict_low(rep->di); - append_error(p == __null , "low"); - return(p); - } - POINTER nlow() - { - p = dict_nlow(rep->di); - append_error(p == __null , "nlow"); - return(p); - } - POINTER big() - { - p = dict_big(rep->di); - append_error(p == __null , "big"); - return(p); - } - POINTER nbig() - { - p = dict_nbig(rep->di); - append_error(p == __null , "nbig"); - return(p); - } - POINTER first() - { - p = dict_first(rep->di); - append_error(p == __null , "first"); - return(p); - } - POINTER last() - { - p = dict_last(rep->di); - append_error(p == __null , "last"); - return(p); - } - POINTER next() - { - p = dict_next(rep->di); - append_error(p == __null , "next"); - return(p); - } - POINTER prev() - { - p = dict_prev(rep->di); - append_error(p == __null , "prev"); - return(p); - } - int clear(DESTROYER destroy, FILE *fp = (&__iob[2]) ) - { - err = clear_dictionary(rep->di, destroy, fp); - append_error(err, "clear"); - return errno(); - } - int clear(FILE *fp = (&__iob[2]) ) - { - err = clear_dictionary(rep->di, rep->destroy_f, fp); - append_error(err, "clear"); - return errno(); - } - int size() - { - val = dict_size(rep->di); - append_error(val < 0, "size"); - return(val); - } - POINTER elem(int index) - { - p = dict_elem(index, rep->di); - append_error(p == __null , "elem"); - return(p); - } - int compare(dict &di2) - { - val = dict_compare(rep->di, di2.rep->di); - return(val); - } - int height() - { - val = dict_height(rep->di); - append_error(val < 0, "height"); - return(val); - } - const char * version() - { - return( dict_version() ); - } - void display(FILE *fp = (&__iob[1]) ) - { - dict_print_stats(fp, rep->di); - } - void print(FILE *fp = (&__iob[1]) , traversal_t tr = INORDER) - { - fprintf(fp, "====== DICTIONARY (count=%d) ======\n", - rep->count); - dict_print(fp, rep->di, tr, rep->display_f); - } - void print(traversal_t tr, FILE *fp = (&__iob[1]) ) - { - fprintf(fp, "====== DICTIONARY (count=%d) ======\n", - rep->count); - dict_print(fp, rep->di, tr, rep->display_f); - } - void error(const char *s = "class dict") - { - dict_errno = errno(); - dict_perror(s); - errno() = 0; - } - void error_append(const char *s = "class dict") - { - dict_append_perror(s); - } - const char * errstring() - { - return( dict_errstring() ); - } -}; -ostream & operator << (ostream & fp, traversal_t tr); -class queue : public object { - class internal { - public: - QUEUE Q; - QUEUE Q2; - int errno; - DISPLAYER display_f; - DESTROYER destroy_f; - STRINGER string_f; - int count; - int swap() - { - QUEUE tmp = Q; - Q = Q2; - Q2 = tmp; - } - void append_error(int expr, const char *proc) - { - if (expr) queue_append_perror(proc); - errno = queue_errno; - } - void obj_error(int expr, const char *proc, const void *obj) - { - if (expr) { - queue_append_perror((*string_f)(obj)); - queue_append_perror(proc); - } - errno = queue_errno; - } - internal(DESTROYER destroyer, - DISPLAYER displayer, STRINGER str_f) - {// ERROR - candidate for bad call - if (799 >= 800 ) cout << "Creating new queue..." << '\n'; ; - if (displayer == __null ) displayer = &default_displayer; - if (str_f == __null ) str_f = &default_stringer; - display_f = displayer; - destroy_f = destroyer; - string_f = str_f; - Q = make_queue(); - append_error(Q == __null , "queue internal"); - errno = queue_errno; - if (Q == __null ) { - queue_perror("build queue"); - exit(errno); - } - Q2 = make_queue(); - append_error(Q2 == __null , "queue internal"); - if (Q2 == __null ) { - queue_perror("build second queue"); - exit(errno); - } - count = 1; - } - ~internal() - { - if (799 >= 800 ) cout << "queue ~internal executing" << '\n'; ; - while ((p = queue_remove(Q)) != __null ) { - if (destroy_f != __null ) { - (*destroy_f)((POINTER)&p, (&__iob[2]) ); - } - } - queue_errno = 0; - queue_destroy((POINTER)&Q, (&__iob[2]) ); - if (queue_errno) { - append_error(queue_errno, - "queue_destroy(Q)"); - queue_perror("queue ~internal"); - } - queue_errno = 0; - queue_destroy((POINTER)&Q2, (&__iob[2]) ); - if (queue_errno) { - append_error(queue_errno, - "queue_destroy(Q2)"); - queue_perror("queue ~internal"); - } - } - };// ERROR - list of candidates for bad call - internal *rep; -protected: - int & errno() { return( rep->errno ); } - DISPLAYER display_f() { return( rep->display_f ); } - DESTROYER destroy_f() { return( rep->destroy_f ); } - STRINGER string_f() { return( rep->string_f ); } - void append_error(int expr, const char *proc) - { - rep->append_error(expr, proc); - } - void obj_error(int expr, const char *proc, const void *obj) - { - rep->obj_error(expr, proc, obj); - } -public: - static int err; - static int val; - static void *p; - queue() - { - if (799 >= 800 ) cout << "Default constructor executing..." << '\n'; ; - rep = new internal( &null_destroy, - &default_displayer, &default_stringer);// ERROR - no matching fn for call - } - queue(DESTROYER destroyer = __null , - DISPLAYER displayer = &default_displayer, - STRINGER str_f = &default_stringer) - {// ERROR - invalid type for default argument -- not expecting const - rep = new internal(destroyer, displayer, str_f); - } - queue(const queue &Q2) - { - rep = Q2.rep; - rep->count ++; - if (799 >= 800 ) cout << "Incrementing count to " << rep->count << '\n'; ; - } - queue & operator = (const queue &Q2) - { - Q2.rep->count ++; - if (799 >= 800 ) cout << "Incrementing Q2 count to " << Q2.rep->count << '\n'; ; - if (799 >= 800 ) cout << "Decrementing lvalue count to " << rep->count-1 << '\n'; ; - if (--rep->count <= 0) { - delete rep; - } - rep = Q2.rep; - return( *this ); - } - ~queue() - { - if (799 >= 800 ) cout << "~queue executing..." << '\n'; ; - if (799 >= 800 ) cout << "Decrementing queue::internal count to " << rep->count-1 << '\n'; ; - if (--rep->count <= 0) delete rep; - } - void error(const char *s = "class queue") - { - queue_errno = errno(); - queue_perror(s); - errno() = 0; - } - void error_append(const char *s = "class queue") - { - queue_append_perror(s); - } - const char * errstring() - { - return( queue_errstring() ); - } - int append(POINTER item) - { - err = queue_append(rep->Q, (POINTER)item); - obj_error(err, "append", item); - return errno(); - } - POINTER remove() - { - p = queue_remove(rep->Q); - append_error(p == __null , "remove"); - return(p); - } - POINTER look(POINTER item) - { - p = queue_look(rep->Q); - append_error(p == __null , "look"); - return(p); - } - POINTER last(POINTER item) - { - p = queue_last(rep->Q); - append_error(p == __null , "last"); - return(p); - } - int size() - { - val = queue_size(rep->Q); - append_error(val < 0, "size"); - return(val); - } - const char * version() - { - return( queue_version() ); - } - void display(FILE *fp = (&__iob[1]) ) - { - int i = 1; - POINTER ptr; - fprintf(fp, "====== QUEUE DISPLAY (size %d) ======\n", - size()); - while (ptr = remove()) { - err = queue_append(rep->Q2, ptr); - if (err) { - obj_error(err, "append", ptr); - error("queue_append(rep->Q2)"); - } - fprintf(fp, "[%d] ", i++); - (*rep->display_f)(ptr, fp, (&__iob[2]) ); - } - rep->swap(); - } -}; -long object::current_id = 0; -long object::next_id() -{ - return( ++current_id ); -} -void object::display2(ostream & fp) const -{ - fp << "object #" << id; -} -ostream & operator << (ostream & fp, object & obj) -{ - obj.display(fp); - return(fp); -} -int object::compare(const void *p2) const -{ - const object & z2 = *(const object *) p2; - if (799 >= 1000 ) cout << "*** object::compare " << *this << " with " << z2 << '\n'; ; - return( id - z2.id ); -} -int operator < (object & obj1, object & obj2) -{ - if (obj1.compare( &obj2 ) < 0) return(1); - else return(0); -} -int operator <= (object & obj1, object & obj2) -{ - if (obj1.compare( &obj2 ) <= 0) return(1); - else return(0); -} -int operator > (object & obj1, object & obj2) -{ - if (obj1.compare( &obj2 ) > 0) return(1); - else return(0); -} -int operator >= (object & obj1, object & obj2) -{ - if (obj1.compare( &obj2 ) >= 0) return(1); - else return(0); -} -int operator == (object & obj1, object & obj2) -{ - if (obj1.compare( &obj2 ) == 0) return(1); - else return(0); -} -int operator != (object & obj1, object & obj2) -{ - if (obj1.compare( &obj2 ) != 0) return(1); - else return(0); -} -void null_destroy(void *p, FILE *errorFile) -{ -} -int object_compare(const void *p1, const void *p2) -{ - const object *obj1 = (const object *) p1; - if (799 >= 1000 ) cout << "*** Comparing " << *obj1 << " to address " << long(p2) << '\n'; ; - return( obj1->compare(p2) ); -} -void object_display(const void *p, FILE *fp, FILE *errorFile) -{ - cout << *(object *)p << '\n'; -} -void object_destroy(void *p, FILE *errorFile) -{ - object **pObj = (object **)p; - object *obj = *pObj; - if (obj == __null ) { - if (799 >= 10 ) cout << "+ object_destroy: NIL object passed in" << '\n'; ; - return; - } - if (799 >= 998 ) cout << "+ object_destroy: delete obj:" << '\n'; ; - if (799 >= 998 ) cout << *obj << '\n'; ; - if (799 >= 998 ) cout << "====================================================" << '\n'; ; - delete obj; - *pObj = __null ; -} -int default_compare(const void *p1, const void *p2) -{ - long L1 = long(p1); - long L2 = long(p2); - if (799 >= 1000 ) cout << "+ default_compare " << long(p1) << ',' << long(p2) << '\n'; ; - if (L1 < L2) return(-1); - else if (L1 > L2) return(1); - else return(0); -} -const char * default_stringer(const void *ptr) -{ - static char buf[100]; - sprintf(buf, "ADDRESS %lu", (unsigned long)ptr); - return(buf); -} -void default_displayer(const void *ptr, FILE *fp, FILE *errorFile) -{ - fprintf(fp, "%s\n", default_stringer(ptr)); -} -object::operator char *() const -{ - const int max = 10; - const int maxChar = 16; - static char buf[max][maxChar]; - static int index = 0; - char *s = buf[index++ % max]; - sprintf(s, "object #%d", id); - return(s); -} -const char * object_stringer(const void *ptr) -{ - object & obj = *(object *)ptr; - return((char *)obj); -} -int dict::err; -int dict::val; -POINTER dict::p; -ostream & operator << (ostream & fp, traversal_t tr) -{ - fp << traversal_string(tr); - return(fp); -} -int queue::err; -int queue::val; -POINTER queue::p; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash2.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash2.C deleted file mode 100755 index ad6e040..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash2.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -// The compiler used to crash on this example. - -class x { -public: - x(); - static const x y[23]; -}; -const x x::y[23]; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash20.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash20.C deleted file mode 100755 index 7704b98..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash20.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -#include <complex> -typedef complex<double> Complex; - -Complex ComputeVVself() -{ -Complex temp1; -Complex self[3][3]; - - self[1][2] = 100.0; - return self[1][2]; - -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash22.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash22.C deleted file mode 100755 index f7db97d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash22.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -struct A { - void a1(); - void a2(); -}; - -struct B { - void A::a1(); // this used to die in chainon(), now grokdeclarator should// ERROR - cannot declare.* - void A::a2(); // should be fixed by the 930629 change.// ERROR - cannot declare.* -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash23.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash23.C deleted file mode 100755 index 03ffee6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash23.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -// This used to die in chainon; it shouldn't any more. - -class A -{ -public: - class B { - public: - void f (); - void g (int); - }; - void B::f () {}// ERROR - .* - void B::g (int val) {}// ERROR - .* -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash24.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash24.C deleted file mode 100755 index af1c301..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash24.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// Special g++ Options: -O -// GROUPS passed old-abort -// gcc puts the array into a register, and then the store_bit_field () code -// in expmed.c gets confused when it tries to store zero past the end of the -// register (because the index is past the array bounds). It ends up calling -// store_split_bit_field, which then aborts, because we don't have a split bit -// field. -// -// Seems easiest to detect this case in the front end, i.e. access outside the -// array bounds, and then force the array to be allocated on the stack instead -// of a register. - -main() -{ - char i[1]; - - i[1] = 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash25.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash25.C deleted file mode 100755 index 625eaf8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash25.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -class memo{ -public: - static int rep; -}; - -class port_head : public memo { -public: - static int rep; - unsigned cap(); -}; - -class buff_head : private port_head { -public: - static int rep; - port_head::cap; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash26.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash26.C deleted file mode 100755 index 9b6643d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash26.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -struct B { - B(); -}; - -class C : virtual public B -{ - public: - C() { } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash27.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash27.C deleted file mode 100755 index 62acbe0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash27.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -class First { -public: - First(const First& a); -}; - -class Second { - int i; - First f; -public: - ~Second() {} - Second func(); -}; - -void foo() -{ - extern Second x; - x = x.func(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash28.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash28.C deleted file mode 100755 index 08adee9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash28.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort - class abc - { - public: - void F() { return; } - - private: - typedef int myint; - typedef struct { int b; } mystruct; - typedef union { int c; } myunion; - }; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash29.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash29.C deleted file mode 100755 index 72bbdc7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash29.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort - -union Value -{ - Value(){} -}; - -struct GlobalAddress -{ - GlobalAddress(Value *nvar){}// ERROR - .* -};// ERROR - candidates .* - -int -main() -{ - new GlobalAddress(Value()); // internal error occured here// ERROR - no matching function .* - //new GlobalAddress(new Value()); // This line is correct code -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash3.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash3.C deleted file mode 100755 index b3b8354..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash3.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -int strcmp(); - -extern "C" { - // dies in common_type, cuz the TREE_TYPE of t2 is 0, so it can't get its - // TYPE_MAIN_VARIANT value. - // <void_type 184510 void permanent VOID - // size <integer_cst 1844e0 type <integer_type 182548 int> constant permanent 0 - // align 1 symtab 0 - // pointer_to_this <pointer_type 1845e0> - -int strcmp(const char*, const char*); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash30.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash30.C deleted file mode 100755 index 707e898..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash30.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -#include <string> - -int -main(void) { - - string a[] = {"Hello"}; - -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash31.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash31.C deleted file mode 100755 index d5b7e54..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash31.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -struct mbuf { - struct mbuf *next; -}; - -void* malloc(int); -struct mbuf * -mbuf_allocate(int size) -{ - struct mbuf *bp; - - bp = (struct mbuf *) malloc( 10 /*(unsigned) (size + sizeof(struct mbuf))*/); - return bp; - -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash32.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash32.C deleted file mode 100755 index ebca5a4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash32.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: -// Special g++ Options: -fshort-enums -// GROUPS passed old-abort -enum Bool { FALSE, TRUE }; -Bool foo () { return TRUE; } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash33.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash33.C deleted file mode 100755 index d89fa7b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash33.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -extern void foo(void *); -int -main() { - foo((struct bar *)0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash34.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash34.C deleted file mode 100755 index a147b62..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash34.C +++ /dev/null @@ -1,3 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -operator int () {}// ERROR - .*// ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash35.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash35.C deleted file mode 100755 index e32b7c1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash35.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -const unsigned int ENET_INTERRUPT_MID = 5; - -extern "C" void ENET_RxP(); - -class EnetReceiver - { - public: - friend void ENET_RxP(); - void receiveMessage(); - int *messagePointer; - }; - -void EnetReceiver::receiveMessage() - { - if (*((unsigned int*) messagePointer) == ENET_INTERRUPT_MID) - { - } - } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash36.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash36.C deleted file mode 100755 index 1053453..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash36.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -struct wait { int w_status; }; -int wait(); -extern "C" int wait(int*); - - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash37.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash37.C deleted file mode 100755 index 18eb64a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash37.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -typedef int _sigset_t; -extern "C" { - extern int sigaction(int signo, const struct sigaction *action_spec_p, struct sigaction *old_action_p); -} -extern "C" { - extern void foo(); -}; -class SS { - friend void foo(); -protected: - void goo(); -}; -inline void -SS::goo() { } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash38.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash38.C deleted file mode 100755 index eeb70e1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash38.C +++ /dev/null @@ -1,43 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -/* - I received the following message when using g++ (version 2.3.3): - - main.cc: In method 'Implicit<implicit<INTEGER,2>,3>::Implicit()': - main.cc: Internal compiler error 241. - main.cc: Please report this to 'bug-g++@prep.ai.mit.edu' - */ - -#include <stream.h> - -class INTEGER { -int x; -public: - typedef int BASE; - INTEGER(int y) : x(y) {} - INTEGER() {} - void encode() { cout << "Integer encoder";} - int operator=(int y) { x=y; return x; } - operator int() {return x; } -}; - -template< class T, int n> class Implicit : public T { - public: - typedef typename T::BASE BASE; - Implicit(BASE value ): T(value) {}; - Implicit() : T() {}; - int myTag() { return n; } - void encode() { T::encode(); } - BASE operator=(BASE t) { return T::operator=(t); } -}; - -int -main() -{ - Implicit<Implicit<INTEGER, 2> , 3> y; - - y = 10; -}; - - - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash39.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash39.C deleted file mode 100755 index a191872..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash39.C +++ /dev/null @@ -1,33 +0,0 @@ -// Build don't link: -// Special g++ Options: -w -// GROUPS passed old-abort -//#include <GetOpt.h> -#include <stdio.h> - -class GetOpt -{ -private: - static char *nextchar; - enum OrderingEnum { REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER }; - OrderingEnum ordering; - static int first_nonopt; - static int last_nonopt; - void exchange (char **argv); -public: - char *optarg; - int optind; - int opterr; - - int nargc; - char **nargv; - const char *noptstring; - - GetOpt (int argc, char **argv, const char *optstring); - int operator () (void); -}; -//end <GetOpt.h> -#include <string> - -class foo {public: foo () {}}; -class bar {public: bar (const foo& dflt);}; -class baz: public bar {public: baz (): bar (foo ()) {}}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash4.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash4.C deleted file mode 100755 index 1f8a3ff..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash4.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -typedef struct Thing { - Thing(); - int x; -} Thing; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash40.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash40.C deleted file mode 100755 index dcebfbe..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash40.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -class foo { - -public: - - virtual foo &operator <<(foo &(foo::*)(foo &)); -}; - - -foo &foo::operator<<(foo &(foo::*manip)(foo &)) -{ - - (this->*manip)(*this); - - return *this; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash41.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash41.C deleted file mode 100755 index 5d533b8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash41.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -typedef void (**ppfn)(void); - -int main() { - ppfn fn; - - fn = new (void(*)(void)); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash42.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash42.C deleted file mode 100755 index 1b92f5d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash42.C +++ /dev/null @@ -1,6 +0,0 @@ -// GROUPS passed old-abort -// Build don't link: -int fn();// ERROR - ambiguates.* -int x; -int& fn() {// ERROR - new decl.* -return x;} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash43.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash43.C deleted file mode 100755 index 5fe5423..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash43.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: -// Special g++ Options: -g -fno-strict-prototype -// GROUPS passed old-abort -// excess errors test - XFAIL sparc64-*-elf -extern "C" { typedef int jmp_buf[12]; } - -enum Error { NO_ERROR }; -class ErrorHandler -{ - ErrorHandler *previous; - static ErrorHandler *error_stack; - jmp_buf error_buffer; -protected: - static void pop() - { - error_stack = error_stack->previous; - } -public: - jmp_buf *push() - { - previous = error_stack; - error_stack = this; - return &error_buffer; - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash44.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash44.C deleted file mode 100755 index 00a4df4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash44.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -template <class T> class bug { - -public: - void Foo(const int = 0); - void NotRedeclared(const int); - -private: - T TheItem; -}; - -template <class T> void bug<T>::NotRedeclared(const int) -{ -} - -template <class T> void bug<T>::Foo(const int) -{ -} - -int -main() -{ - bug<char> InstantiatedBug; - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash45.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash45.C deleted file mode 100755 index 269a519..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash45.C +++ /dev/null @@ -1,3 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -void foo() { static const char *const v[] = { 0 }; } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash46.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash46.C deleted file mode 100755 index 64d8d59..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash46.C +++ /dev/null @@ -1,26 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -class Rational { -public: - Rational(int v): value(v) - { } - - int value; -}; -typedef Rational __Rational; - -extern int operator>(const Rational&, const Rational&); - -class V { -public: - class Rational { - public: - static int x(const __Rational& value); - }; -}; - -int -V::Rational::x(const __Rational& value) -{ - return value > 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash47.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash47.C deleted file mode 100755 index 9bdbb11..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash47.C +++ /dev/null @@ -1,94 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -const int TRUE = 1; -const int FALSE = 0; - -class Rep { -protected: - Rep(): count(0) - { } - Rep(const Rep& other): count(0) - { } - - Rep& operator=(const Rep& other) - { /* DO NOT copy over other.count */ - return *this; } - -public: // TODO - for now - // Because it is to hard to restrict these operations to the descendants - // of Rep<REP> that we haven't named yet. So we just make them public. - void inc() - { count++; } - void dec() - { if (0 == --count) delete this; } -private: - unsigned count; -}; - -template<class REP> -class Ref { -public: - Ref(): rep(0) - { } - Ref(const Ref<REP>& other): rep(other.rep) - { if (rep) rep->inc(); } - ~Ref() - { if (rep) rep->dec(); - rep = 0; } - - Ref<REP>& operator=(const Ref<REP>& other) - { if (rep != other.rep) { - if (rep) rep->dec(); - rep = other.rep; - if (rep) rep->inc(); } - return *this; } - - bool null() const - { return 0 == rep ? TRUE: FALSE; } - bool valid() const - { return 0 != rep ? TRUE: FALSE; } - - REP* operator->() const // should be a valid() reference - { return rep; } - operator REP*() const; // should be a valid() reference - -protected: - REP *rep; - - Ref(REP *r): rep(r) - { if (rep) rep->inc(); } - - Ref<REP>& operator=(REP *r) - { if (rep != r) { - if (rep) rep->dec(); - rep = r; - if (rep) rep->inc(); } - return *this; } -}; - -template<class REP> -Ref<REP>::operator REP*() const // should be a valid() reference -{ return rep; } - -template<class REP> -inline int -operator==(const Ref<REP>& a, const Ref<REP>& b) -{ return (REP *) a == (REP *) b; } - -template<class REP> -inline int -operator!=(const Ref<REP>& a, const Ref<REP>& b) -{ return (REP *) a != (REP *) b; } - -class XRep: public Rep { -public: - int i; -}; - -int -main() -{ - Ref<XRep> y; - - return y != y; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash48.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash48.C deleted file mode 100755 index 6dc9da0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash48.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -class internal { - int field; - int anotherfield; -}; // ERROR - candidates are - -class bug { - internal* numbers; - bug(int size); -}; // ERROR - several errors - -bug::bug(int size) -{ // ERROR - candidates - numbers = new internal(size * size);// ERROR - no match.* -} - -int -main() -{ - bug test;// ERROR - no match -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash49.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash49.C deleted file mode 100755 index 98a580d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash49.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -#include<iostream.h> - -const int keys = 10; -const int key[keys] = {6, key[1], 2, keys, 1, 7, 6, key[2], key[8]}; - -void main() -{ // ERROR - return type for main - for(int i = 0; i < keys;) cout << key[i++] << " "; - endl(cout); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash5.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash5.C deleted file mode 100755 index 0e82e16..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash5.C +++ /dev/null @@ -1,107 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -// Should have been fixed by: -// -// Sun Jun 13 12:55:22 1993 Brendan Kehoe (brendan@lisa.cygnus.com) -// -// * cp-cvt.c (build_default_binary_type_conversion): Look deeper into -// what ARG1 and ARG2 are if they're POINTER_TYPEs. - -volatile void exit(int); - -class CountableSet -{ - public: - virtual ~CountableSet() { } -}; - -template<class T> -class FixedSet : virtual public CountableSet -{ - public: - virtual int Get(int, T&) = 0; - virtual ~FixedSet() { } -}; - -class ShrinkableSet -{ - public: - virtual int Remove(int) = 0; -}; - -template<class T> -class PVSet : virtual public FixedSet<T>, virtual public ShrinkableSet -{ - public: - virtual void Append(const T&) = 0; - virtual void operator+=(const T& a) { Append(a); } - virtual ~PVSet() { } -}; - -template<class T> -class MutSet : virtual public FixedSet<T>, virtual public FixedSet<T *> -{ - protected: - typedef T *Tp; - - public: - void Append(const Tp& tp) { Append(*tp); } - - T& Access(int p) - { - Tp tp; - Get(p, tp); - return *tp; - } - virtual ~MutSet() { } -}; - -template <class T> -class SimpleSet : virtual public MutSet<T> -{ - protected: - T *array; - int size; - - virtual void Allocate(int s) - { - array = new T[s]; - } - public: - SimpleSet() - { - size = 0; - array = ((void*)0) ; // ERROR - implicit conversion - } - int Get(int p, T& t) - { - t = array[p-1]; - return 1; - } - int Get(int p, T *& t) - { - t = &array[p-1]; - return 1; - } - inline void Append(const T& a) - { - array[size-1] = a; - } - inline int Remove(int n) { return 0; } -}; - -class Dummy -{ - public: - Dummy() {} -}; - -int -main() -{ - SimpleSet<Dummy *> bs1; - int i, j; - Dummy foo; - - bs1+=&foo;// ERROR - no .* -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash50.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash50.C deleted file mode 100755 index fd87d75..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash50.C +++ /dev/null @@ -1,29 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -class B - { -public: - int i; - }; -int operator & (const B &s) { return ( s.i );}; - - - - - -class C - { -public: - C &operator = (const C &x) - { - return *this; - }; - }; - -C &(C::*DD)(const C &x) = &C::operator=; - -int main() -{ - ⅅ - -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash51.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash51.C deleted file mode 100755 index 3586eb4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash51.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -class obj; - -typedef obj *obj_t; - -class obj { -public: - obj( const obj& o ); -}; - -extern obj nowhere; - -class set: public obj { - unsigned bit_vector; -public: - set( const obj& o ); - set& operator|=( const int q ); -}; - -enum pin_enum { E_F, O_C, O_D, O_S, P_D, P_U, R, T, A, C }; - -set t_q = ( ( ( ( ( ( set( nowhere ) |= E_F ) |= O_C ) |= O_D ) |= O_S ) - |= P_U ) |= P_D ) |= T; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash52.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash52.C deleted file mode 100755 index d10afdc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash52.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -#include <iostream.h> - -class A { -public: - friend A f(A &a);// ERROR - ambiguates.* -}; - -A &f(A &a) {// ERROR - new decl.* - cout << "Blah\n"; -} // ERROR - non-void function - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash53.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash53.C deleted file mode 100755 index 163f8e6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash53.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -class A -{ - public: - class B - { - public: - virtual ~B(); - }; -}; - -template<int I> -class C -{ - public: - class B - : public A::B - { - }; // bug2.cc:18: Internal compiler error 233. - // bug2.cc:18: Please submit a full bug report to `bug-g++@prep.ai.mit.edu'. -}; - -C<0> c; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash54.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash54.C deleted file mode 100755 index 7d2a8a0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash54.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -int main() -{ - int a[100], **p; - - p = &a[50];// ERROR - assignment to.* - -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash55.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash55.C deleted file mode 100755 index 47a7424..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash55.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort - extern f(int);// ERROR - ambiguates.* - - int& f(int x) - {// ERROR - new declaration.* - int local;// ERROR - warning - - local = x+2; - - return local; - } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash56.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash56.C deleted file mode 100755 index b5e997c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash56.C +++ /dev/null @@ -1,385 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -// Special g++ Options: - -const bool FALSE = 0; -const bool TRUE = 1; -class ListDProto { -public: - ListDProto(); - ListDProto(const ListDProto&); - virtual ~ListDProto(); - void operator=(const ListDProto&); - unsigned length() const; - bool empty() const; - void clear(); - void remove_head(); - void remove_tail(); - class link; - class Vix { - public: - Vix(); - friend int operator==(void *v, const Vix& x) - { return v == x.item; }// ERROR - list of candidates - friend int operator==(const Vix& x, void *v) - { return v == x.item; }// ERROR - candidate for call - friend int operator!=(void *v, const Vix& x) - { return v != x.item; } - friend int operator!=(const Vix& x, void *v) - { return v != x.item; } - friend int operator==(const Vix& x1, const Vix& x2) - { return x1.owner == x2.owner && x1.item == x2.item; }// ERROR - candidate for call - friend int operator!=(const Vix& x1, const Vix& x2) - { return x1.owner != x2.owner || x1.item != x2.item; } - bool first; - bool last; - protected: - friend class ListDProto; - Vix(const ListDProto *o, link *i); - const ListDProto *owner; - private: - link *item; - }; - enum Action { NORMAL, REMOVE_CURRENT }; - Vix first() const; - void first(Vix& x) const; - void next(Vix& x) const; - void next(Vix& x, Action a = NORMAL); - Vix last() const; - void last(Vix& x) const; - void prev(Vix& x) const; - void prev(Vix& x, Action a = NORMAL); -protected: - struct link { - link *next; - link *prev; - link(link *n = 0, link *p = 0); - virtual ~link(); - private: - link(const link&); - void operator=(const link&); - }; - unsigned count; - link *list_head; - link *list_tail; - virtual link *copy_item(link *old_item) const = 0; - void prepend(link *item); - void append(link *item); - void prepend(const ListDProto& proto); - void append(const ListDProto& proto); - void remove(link *item); - link *ref(const Vix&) const; -}; -template<class T> -class ListD: public ListDProto { -public: - void prepend(const T& item); - void append(const T& item); - const T& head() const; - T& head(); - void head(T& fill) const; - void remove_head() - { ListDProto::remove_head(); } - void remove_head(T& fill); - const T& tail() const; - T& tail(); - void tail(T& fill) const; - void remove_tail() - { ListDProto::remove_tail(); } - void remove_tail(T& fill); - class Vix: public ListDProto::Vix { - public: - Vix(): ListDProto::Vix() - { } - protected: - friend class ListD<T>; - Vix(const ListDProto::Vix& x): ListDProto::Vix(x) - { } - }; - Vix first() const - { return ListDProto::first(); }; - void first(Vix& x) const - { ListDProto::first(x); }; - void next(Vix& x, ListDProto::Action a = NORMAL) const - { ListDProto::next(x, a); }// ERROR - .*// ERROR - .* - Vix last() const - { return ListDProto::last(); } - void last(Vix& x) const - { return ListDProto::last(x); } - void prev(Vix& x, ListDProto::Action a = NORMAL) const - { return ListDProto::prev(x, a); } -protected: - struct link_item: public ListDProto::link { - T item; - link_item(const T& i): link(0, 0), item(i) - { } - private: - link_item(const link_item&); - void operator=(const link_item&); - }; -public: - T& operator()(const Vix& x) - { link_item *li = (link_item *) ref(x); - return li->item; } - const T& operator()(const Vix& x) const - { link_item *li = (link_item *) ref(x); - return li->item; } -private: - ListDProto::link *copy_item(ListDProto::link *old_item) const; -}; -template<class T> -class SetLD: private ListD<T> { -public: - SetLD(); - SetLD(const ListD<T>&); - void add(const T& item); - void add(const ListD<T>& other); - void add(const SetLD<T>& other); - void remove(const T& item); - bool contains(const T& item) const; - ListD<T>::length; - ListD<T>::empty; - ListD<T>::clear; - typedef ListD<T>::Vix Vix; - ListD<T>::first; - ListD<T>::next; - ListD<T>::operator(); -}; -extern "C" { -extern void __eprintf (const char *, const char *, unsigned, const char *); -} -extern "C" { -extern void __eprintf (const char *, const char *, unsigned, const char *); -} -template<class T> -void -ListD<T>::prepend(const T& item) -{ - link *newl = new link_item(item); - ListDProto::prepend(newl); -} -template<class T> -void -ListD<T>::append(const T& item) -{ - link *newl = new link_item(item); - ListDProto::append(newl); -} -template<class T> -const T& -ListD<T>::head() const -{ - ((void) (( 0 != list_head ) ? 0 : (__eprintf ("%s:%u: failed assertion `%s'\n", "/home/wbaker/work/include/templates/ListD.body.h" , 50 , "0 != list_head" ), 0) )) ; - link_item *h = (link_item *) list_head; - return h->item; -} -template<class T> -T& -ListD<T>::head() -{ - ((void) (( 0 != list_head ) ? 0 : (__eprintf ("%s:%u: failed assertion `%s'\n", "/home/wbaker/work/include/templates/ListD.body.h" , 59 , "0 != list_head" ), 0) )) ; - link_item *h = (link_item *) list_head; - return h->item; -} -template<class T> -void -ListD<T>::head(T& fill) const -{ - ((void) (( 0 != list_head ) ? 0 : (__eprintf ("%s:%u: failed assertion `%s'\n", "/home/wbaker/work/include/templates/ListD.body.h" , 68 , "0 != list_head" ), 0) )) ; - link_item *h = (link_item *) list_head; - fill = h->item; -} -template<class T> -void -ListD<T>::remove_head(T& fill) -{ - head(fill); - remove_head(); -} -template<class T> -const T& -ListD<T>::tail() const -{ - ((void) (( 0 != list_tail ) ? 0 : (__eprintf ("%s:%u: failed assertion `%s'\n", "/home/wbaker/work/include/templates/ListD.body.h" , 85 , "0 != list_tail" ), 0) )) ; - link_item *h = (link_item *) list_tail; - return h->item; -} -template<class T> -T& -ListD<T>::tail() -{ - ((void) (( 0 != list_tail ) ? 0 : (__eprintf ("%s:%u: failed assertion `%s'\n", "/home/wbaker/work/include/templates/ListD.body.h" , 94 , "0 != list_tail" ), 0) )) ; - link_item *h = (link_item *) list_tail; - return h->item; -} -template<class T> -void -ListD<T>::tail(T& fill) const -{ - ((void) (( 0 != list_tail ) ? 0 : (__eprintf ("%s:%u: failed assertion `%s'\n", "/home/wbaker/work/include/templates/ListD.body.h" , 103 , "0 != list_tail" ), 0) )) ; - link_item *h = (link_item *) list_tail; - fill = h->item; -} -template<class T> -void -ListD<T>::remove_tail(T& fill) -{ - ((void) (( 0 != list_tail ) ? 0 : (__eprintf ("%s:%u: failed assertion `%s'\n", "/home/wbaker/work/include/templates/ListD.body.h" , 112 , "0 != list_tail" ), 0) )) ; - link_item *h = (link_item *) list_tail; - fill = h->item; -} -template<class T> -ListDProto::link * -ListD<T>::copy_item(ListDProto::link *old) const -{ - link_item *old_item = (link_item *) old; - link_item *new_item = new link_item(old_item->item); - return new_item; -} -template<class T> -SetLD<T>::SetLD(): -ListD<T>() -{ } -template<class T> -SetLD<T>::SetLD(const ListD<T>& other): -ListD<T>(other) -{ } -template<class T> -void -SetLD<T>::add(const T& item) -{ - if ( ! contains(item) ) - append(item); -} -template<class T> -void -SetLD<T>::add(const ListD<T>& other) -{ - ListD<T>::Vix x; - for (first(x); 0 != x; next(x)) - add(other(x)); -} -template<class T> -void -SetLD<T>::add(const SetLD<T>& other) -{ - const ListD<T>& lother = other; - add(lother); -} -template<class T> -void -SetLD<T>::remove(const T& item) -{ - Action a = NORMAL; - Vix x; - for (first(x); 0 != x && REMOVE_CURRENT != a; next(x, a)) - a = operator()(x) == item ? REMOVE_CURRENT: NORMAL;// ERROR - .* -} -template<class T> -bool -SetLD<T>::contains(const T& item) const -{ - Vix x; - for (first(x); 0 != x; next(x)) { - if (operator()(x) == item)// ERROR - .* - return TRUE; - } - return FALSE; -} -template<class T> -int -operator==(const SetLD<T>& a, const SetLD<T>& b) -{ - if (a.length() != b.length()) - return FALSE; - SetLD<T>::Vix x; - for (a.first(x); 0 != x; a.next(x)) { - if ( ! b.contains(a(x)) ) - return FALSE; - } - for (b.first(x); 0 != x; b.next(x)) { - if ( ! a.contains(b(x)) ) - return FALSE; - } - return TRUE; -} -template<class T> -int -operator!=(const SetLD<T>& a, const SetLD<T>& b) -{ return ! (a == b); } -template<class T> -int -operator<=(const SetLD<T>& a, const SetLD<T>& b) -{ - if (a.length() > b.length()) - return FALSE; - SetLD<T>::Vix x; - for (x=a.first(); 0 != x; a.next(x)) { - if ( ! b.contains(a(x)) ) - return FALSE; - } - return TRUE; -} -template<class T> -int -operator<(const SetLD<T>& a, const SetLD<T>& b) -{ - if (a.length() >= b.length()) - return FALSE; - return a <= b; -} -template<class T> -int -operator>(const SetLD<T>& a, const SetLD<T>& b) -{ return ! (a <= b); } -template<class T> -int -operator>=(const SetLD<T>& a, const SetLD<T>& b) -{ return ! (a < b); } -class String { }; -class IcaseString: public String { }; -class SetLD< IcaseString >: public SetLD< String > { public: SetLD (): SetLD< String >() { }; SetLD (const ListD< IcaseString >& other): SetLD< String >() { ListD< IcaseString >::Vix x; for (other.first(x); 0 != x; other.next(x)) add(other(x)); }; SetLD (const SetLD & other): SetLD< String >(other) { }; const IcaseString & operator()(const Vix& x) const { return ( IcaseString &) SetLD< String >::operator()(x); } }; typedef SetLD< String > SetLD_String_IcaseString_old_tmp99; typedef SetLD< IcaseString > SetLD_String_IcaseString_new_tmp99; -inline int operator== (const SetLD_String_IcaseString_new_tmp99& a, const SetLD_String_IcaseString_new_tmp99& b) -{// ERROR - candidate for call -const SetLD_String_IcaseString_old_tmp99& oa = a; -const SetLD_String_IcaseString_old_tmp99& ob = b; -return operator== (oa, ob); } -inline int operator!= (const SetLD_String_IcaseString_new_tmp99& a, const SetLD_String_IcaseString_new_tmp99& b) -{ -const SetLD_String_IcaseString_old_tmp99& oa = a; -const SetLD_String_IcaseString_old_tmp99& ob = b; -return operator!= (oa, ob); } -inline int operator< (const SetLD_String_IcaseString_new_tmp99& a, const SetLD_String_IcaseString_new_tmp99& b) -{ -const SetLD_String_IcaseString_old_tmp99& oa = a; -const SetLD_String_IcaseString_old_tmp99& ob = b; -return operator< (oa, ob); } -inline int operator<= (const SetLD_String_IcaseString_new_tmp99& a, const SetLD_String_IcaseString_new_tmp99& b) -{ -const SetLD_String_IcaseString_old_tmp99& oa = a; -const SetLD_String_IcaseString_old_tmp99& ob = b; -return operator<= (oa, ob); } -inline int operator> (const SetLD_String_IcaseString_new_tmp99& a, const SetLD_String_IcaseString_new_tmp99& b) -{ -const SetLD_String_IcaseString_old_tmp99& oa = a; -const SetLD_String_IcaseString_old_tmp99& ob = b; -return operator> (oa, ob); } -inline int operator>= (const SetLD_String_IcaseString_new_tmp99& a, const SetLD_String_IcaseString_new_tmp99& b) -{ -const SetLD_String_IcaseString_old_tmp99& oa = a; -const SetLD_String_IcaseString_old_tmp99& ob = b; -return operator>= (oa, ob); } ; -typedef SetLD<IcaseString> SLDiS; -static void -nop(int i) -{ - SetLD<IcaseString> x, y; - nop(x == y); - nop(x != y); -nop(x < y); -nop(x <= y); -nop(x > y); -nop(x >= y); -} - -template class SetLD<String>; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash57.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash57.C deleted file mode 100755 index 5032b3f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash57.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -class foo { -private: - char buffer[1024]; -public: - foo(); -}; - -int main() -{ - static foo& a = *(new foo); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash58.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash58.C deleted file mode 100755 index 922290f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash58.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -class X { -public: -void doit(); -}; - -X::::doit()// ERROR - (syntax|parse) error.* -{ -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash59.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash59.C deleted file mode 100755 index ab6e559..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash59.C +++ /dev/null @@ -1,1374 +0,0 @@ -// Build don't link: -// Special g++ Options: -w -// GROUPS passed old-abort -typedef char * __gnuc_va_list; -void va_end (__gnuc_va_list); -enum __va_type_classes { - __no_type_class = -1, - __void_type_class, - __integer_type_class, - __char_type_class, - __enumeral_type_class, - __boolean_type_class, - __pointer_type_class, - __reference_type_class, - __offset_type_class, - __real_type_class, - __complex_type_class, - __function_type_class, - __method_type_class, - __record_type_class, - __union_type_class, - __array_type_class, - __string_type_class, - __set_type_class, - __file_type_class, - __lang_type_class -}; -typedef __gnuc_va_list va_list; -typedef int jmp_buf[9 ]; -typedef int sigjmp_buf[9 +1]; -int setjmp (jmp_buf) ; -int _setjmp (jmp_buf) ; -int sigsetjmp (sigjmp_buf, int) ; -void longjmp (jmp_buf, int) ; -void _longjmp (jmp_buf, int) ; -void siglongjmp (sigjmp_buf, int) ; -const int BOR_C_DIR = 0; -const int BOR_C_REV = 1; -const int BOR_C = 0x1; -const int BOR_BD_DIR = (0<<1); -const int BOR_BD_REV = (1<<1); -const int BOR_BD = 0x2; -const int SERVICE_DATA = (1<<( 0 )) ; -const int SERVICE_CLASS1 = (1<<( 1 )) ; -const int SERVICE_CLASS2 = (1<<( 2 )) ; -const int SERVICE_CLASS20 = (1<<( 3 )) ; -const int SERVICE_VOICE = (1<<( 8 )) ; -const int SERVICE_ALL = (1<<( 9 )) -1; -const int VR_NORMAL = 0; -const int VR_FINE = 1; -const int VR_ALL = (1<<( VR_FINE+1 )) -1; -const int BR_2400 = 0; -const int BR_4800 = 1; -const int BR_7200 = 2; -const int BR_9600 = 3; -const int BR_12000 = 4; -const int BR_14400 = 5; -const int BR_ALL = (1<<( BR_14400+1 )) -1; -const int WD_1728 = 0; -const int WD_2048 = 1; -const int WD_2432 = 2; -const int WD_1216 = 3; -const int WD_864 = 4; -const int WD_ALL = (1<<( WD_864+1 )) -1; -const int LN_A4 = 0; -const int LN_B4 = 1; -const int LN_INF = 2; -const int LN_ALL = (1<<( LN_INF+1 )) -1; -const int DF_1DMR = 0; -const int DF_2DMR = 1; -const int DF_2DMRUNCOMP = 2; -const int DF_2DMMR = 3; -const int DF_ALL = (1<<( DF_2DMMR+1 )) -1; -const int EC_DISABLE = 0; -const int EC_ENABLE = 1; -const int EC_ALL = 0x3; -const int BF_DISABLE = 0; -const int BF_ENABLE = 1; -const int BF_ALL = 0x3; -const int ST_0MS = 0; -const int ST_5MS = 1; -const int ST_10MS2 = 2; -const int ST_10MS = 3; -const int ST_20MS2 = 4; -const int ST_20MS = 5; -const int ST_40MS2 = 6; -const int ST_40MS = 7; -const int ST_ALL = (1<<( ST_40MS+1 )) -1; -const int PPM_MPS = 0; -const int PPM_EOM = 1; -const int PPM_EOP = 2; -const int PPM_PRI_MPS = 4; -const int PPM_PRI_EOM = 5; -const int PPM_PRI_EOP = 6; -const int PPR_MCF = 1; -const int PPR_RTN = 2; -const int PPR_RTP = 3; -const int PPR_PIN = 4; -const int PPR_PIP = 5; -const int DLE = 16; -const int SUB = 26; -const int ETX = 3; -const int DC1 = 17; -const int DC2 = 18; -const int CAN = 24; -typedef int sigset_t; -typedef unsigned int speed_t; -typedef unsigned long tcflag_t; -typedef unsigned char cc_t; -typedef int pid_t; -typedef unsigned short mode_t; -typedef short nlink_t; -typedef long clock_t; -typedef long time_t; -typedef __SIZE_TYPE__ size_t; -typedef int ptrdiff_t; -typedef __wchar_t wchar_t; -extern unsigned int _mb_cur_max; -extern void abort( ); -extern int abs (int) ; -extern double atof (const char *) ; -extern int atoi (const char *) ; -extern long int atol (const char *) ; -extern char * bsearch (const void *, const void *, long unsigned int , long unsigned int , int (*) (const void *, const void *)) ; -extern void * calloc (long unsigned int , long unsigned int ) ; -extern void exit (int) ; -extern void free (void *) ; -extern char * getenv (const char *) ; -extern void * malloc (long unsigned int ) ; -extern int qsort (void *, long unsigned int , long unsigned int , int (*) (const void *, const void *)) ; -extern int rand( ); -extern void * realloc (void *, long unsigned int ) ; -extern int srand (unsigned int) ; -extern int mbtowc (__wchar_t *, const char *, long unsigned int ) ; -extern int wctomb (char *, __wchar_t ) ; -extern size_t mbstowcs (__wchar_t *, const char *, long unsigned int ) ; -extern size_t wcstombs (char *, const __wchar_t *, long unsigned int ) ; -extern int atexit (void (*) (void)); -extern long int labs (long int); -extern int putenv (char *); -extern double strtod (const char *, char **); -extern long int strtol (const char *, char **, int); -extern long unsigned int strtoul (const char *, char **, int); -extern int system (const char *); -extern char * strcat (char *, const char *) ; -extern char * strchr (const char *, int) ; -extern int strcmp (const char *, const char *) ; -extern char * strcpy (char *, const char *) ; -extern size_t strcspn (const char *, const char *) ; -extern char * strdup (const char *) ; -extern size_t strlen (const char *) ; -extern char * strncat (char *, const char *, long unsigned int ) ; -extern int strncmp (const char *, const char *, long unsigned int ) ; -extern char * strncpy (char *, const char *, long unsigned int ) ; -extern char * strpbrk (const char *, const char *) ; -extern char * strrchr (const char *, int) ; -extern size_t strspn (const char *, const char *) ; -extern char * strstr (const char *, const char *) ; -extern char * strtok (char *, const char *) ; -extern void * memchr (const void *, int, long unsigned int ); -extern int memcmp (const void *, const void *, long unsigned int ); -extern void * memcpy (void *, const void *, long unsigned int ); -extern void * memmove (void *, const void *, long unsigned int ); -extern void * memset (void *, int, long unsigned int ); -extern int strcoll (const char *, const char *); -extern char * strerror (int); -extern long unsigned int strxfrm (char *, const char *, long unsigned int ); -extern "C" { -extern void __eprintf (const char *, const char *, unsigned, const char *); -} -extern struct _iobuf { - int _cnt; - unsigned char *_ptr; - unsigned char *_base; - int _bufsiz; - short _flag; - char _file; -} _iob[]; -extern struct _iobuf *fopen (const char *, const char *) ; -extern struct _iobuf *fdopen (int, const char *) ; -extern struct _iobuf *freopen (const char *, const char *, struct _iobuf *) ; -extern struct _iobuf *popen (const char *, const char *) ; -extern struct _iobuf *tmpfile(); -extern long ftell (struct _iobuf *) ; -extern char *fgets (char *, int, struct _iobuf *) ; -extern char *gets (char *) ; -extern char *sprintf (char *, const char *, ...) ; -extern char *ctermid (char *) ; -extern char *cuserid (char *) ; -extern char *tempnam (const char *, const char *) ; -extern char *tmpnam (char *) ; -extern int fclose (struct _iobuf *); -extern int fflush (struct _iobuf *); -extern int fgetc (struct _iobuf *); -extern int fgetpos (struct _iobuf *, long *); -extern int fprintf (struct _iobuf *, const char *, ...); -extern int fputc (int, struct _iobuf *); -extern int fputs (const char *, struct _iobuf *); -extern long unsigned int fread (void *, long unsigned int , long unsigned int , struct _iobuf *); -extern int fscanf (struct _iobuf *, const char *, ...); -extern int fseek (struct _iobuf *, long int, int); -extern int fsetpos (struct _iobuf *, const long *); -extern long unsigned int fwrite (const void *, long unsigned int , long unsigned int , struct _iobuf *); -extern int pclose (struct _iobuf *); -extern void perror (const char *); -extern int printf (const char *, ...); -extern int puts (const char *); -extern int remove (const char *); -extern int rename (const char *, const char *); -extern void rewind (struct _iobuf *); -extern int scanf (const char *, ...); -extern void setbuf (struct _iobuf *, char *); -extern int setvbuf (struct _iobuf *, char *, int, long unsigned int ); -extern int sscanf (const char *, const char *, ...); -extern int vprintf (const char *, __gnuc_va_list); -extern int vsprintf (char *, const char *, __gnuc_va_list); -extern int vfprintf (struct _iobuf *, const char *, __gnuc_va_list); -extern int ungetc (int, struct _iobuf *); -extern int _flsbuf (unsigned int, struct _iobuf *); -extern int _filbuf (struct _iobuf *); -typedef long _G_clock_t; -typedef short _G_dev_t; -typedef long _G_fpos_t; -typedef unsigned short _G_gid_t; -typedef unsigned long _G_ino_t; -typedef unsigned short _G_mode_t; -typedef short _G_nlink_t; -typedef long _G_off_t; -typedef int _G_pid_t; -typedef int _G_ptrdiff_t; -typedef int _G_sigset_t; -typedef long unsigned int _G_size_t; -typedef long _G_time_t; -typedef unsigned short _G_uid_t; -typedef __wchar_t _G_wchar_t; -typedef int _G_ssize_t; -typedef int _G_wint_t; -typedef char * _G_va_list; -typedef signed char _G_int8_t; -typedef unsigned char _G_uint8_t; -typedef short _G_int16_t; -typedef unsigned short _G_uint16_t; -typedef long _G_int32_t; -typedef unsigned long _G_uint32_t; -const size_t NPOS = (size_t)(-1); -typedef void fvoid_t(); -typedef _G_wint_t wint_t; -enum capacity { default_size, reserve }; -extern "C" fvoid_t *set_new_handler(fvoid_t *); -extern fvoid_t *__new_handler; -extern "C" void __default_new_handler(); -inline void *operator new(size_t, void *place) { return place; } -inline void *operator new[](size_t, void *place) { return place; } -typedef unsigned char u_char; -typedef unsigned short u_short; -typedef unsigned int u_int; -typedef unsigned long u_long; -typedef unsigned short ushort; -typedef unsigned int uint; -typedef struct _physadr_t { int r[1]; } *physadr_t; -typedef struct label_t { - int val[2]; -} label_t; -typedef struct _quad_t { long val[2]; } quad_t; -typedef long daddr_t; -typedef char * caddr_t; -typedef unsigned long ino_t; -typedef short dev_t; -typedef long off_t; -typedef unsigned short uid_t; -typedef unsigned short gid_t; -typedef long key_t; -typedef char * addr_t; -typedef long fd_mask; -typedef struct fd_set { - fd_mask fds_bits[((( 256 )+(( (sizeof (fd_mask) * 8 ) )-1))/( (sizeof (fd_mask) * 8 ) )) ]; -} fd_set; -extern "C" { -extern int mkstemp(char *); -extern int strncasecmp(const char*, const char*, size_t); -extern int strcasecmp(const char*, const char*); -extern long random(void); -extern int seteuid(uid_t); -extern int setegid(gid_t); -extern int ftruncate(int, off_t); -extern int getdtablesize(void); -struct fd_set; -struct timeval; -extern int select(int,struct fd_set*,struct fd_set*,struct fd_set*,struct timeval*); -extern int ioctl(int, int, ...); -extern int fchown(int, uid_t, gid_t); -extern int gethostname(char*, int); -extern char* optarg; -extern int opterr; -extern int optind; -extern char* mktemp(char*); -extern void syslog(int, const char*, ...); -extern void vsyslog(int, const char*, va_list); -extern void closelog(void); -extern void openlog(const char*, int, int); -extern int fchmod(int, mode_t); -struct timezone; -struct timeval; -extern int gettimeofday(struct timeval*, struct timezone*); -extern void endpwent(void); -extern int getpeername(int,void*,int*); -extern int getsockname(int,void*,int*); -extern int socket(int, int, int); -extern int connect(int, const void*, int); -extern int flock(int, int); -} -typedef unsigned char fxBool; -inline int fxmin(int a, int b) { return (a < b) ? a : b; } -inline u_long fxmin(u_long a, u_long b) { return (a < b) ? a : b; } -inline u_int fxmin(u_int a, u_int b) { return (a < b) ? a : b; } -inline int fxmax(int a, int b) { return (a > b) ? a : b; } -inline u_long fxmax(u_long a, u_long b) { return (a > b) ? a : b; } -inline u_int fxmax(u_int a, u_int b) { return (a > b) ? a : b; } -extern "C" void _fxassert(const char*, const char*, int); -class fxObj { -public: - fxObj(); - virtual ~fxObj(); - void inc(); - void dec(); - u_long getReferenceCount(); - virtual const char* className() const; - int compare(const fxObj *) const; - virtual void subClassMustDefine(const char* method) const; -protected: - u_long referenceCount; -}; -inline fxObj::fxObj() { referenceCount = 0; } -inline void fxObj::inc() { ++referenceCount; } -inline void fxObj::dec() { - if ( referenceCount>0 ); else _fxassert( "Bogus object reference count" ,"../util/Obj.h",54); ; - if (0 >= --referenceCount) delete this; -} -inline u_long fxObj::getReferenceCount() { return referenceCount; } -class fxStr; -class fxTempStr { -public: - fxTempStr(fxTempStr const &other); - ~fxTempStr(); - friend fxTempStr operator|(fxStr const&, fxStr const&); - friend fxTempStr operator|(fxStr const&, char const*); - friend fxTempStr operator|(char const*, fxStr const&); - friend fxTempStr& operator|(const fxTempStr&, fxStr const& b); - friend fxTempStr& operator|(const fxTempStr&, char const* b); - operator char*() const; - operator int() const; - operator float() const; - operator double() const; - u_int length() const; -protected: - char indata[100]; - char* data; - u_int slength; - friend class fxStr; - fxTempStr(char const *, u_int, char const *, u_int); - fxTempStr& concat(char const* b, u_int bl); -}; -inline fxTempStr::operator char*() const { return data; } -inline fxTempStr::operator int() const { return atoi(data); } -inline fxTempStr::operator float() const { return float(atof(data)); } -inline fxTempStr::operator double() const { return double(atof(data)); } -inline u_int fxTempStr::length() const { return slength - 1; } -class fxStr { - friend class fxTempStr; -public: - fxStr(u_int l=0); - fxStr(char const *s); - fxStr(char const *s, u_int len); - fxStr(fxStr const&); - fxStr(int, char const* format); - fxStr(long, char const* format); - fxStr(float, char const* format); - fxStr(double, char const* format); - fxStr(const fxTempStr&); - ~fxStr(); - u_long hash() const; - operator char*() const - { return data; } - operator int() const - { return atoi(data); } - operator float() const - { return float(atof(data)); } - operator double() const - { return double(atof(data)); } - u_int length() const { return slength-1; } - char& operator[](u_int i) const - { if ( i<slength-1 ); else _fxassert( "Invalid Str[] index" ,"../util/Str.h",109); ; - return data[i]; } - void operator=(const fxTempStr& s); - void operator=(fxStr const& s); - void operator=(char const *s); - friend fxBool operator==(fxStr const&, fxStr const&); - friend fxBool operator==(fxStr const&, char const*); - friend fxBool operator==(fxStr const&, char *); - friend fxBool operator==(char const*, fxStr const&); - friend fxBool operator!=(fxStr const&, fxStr const&); - friend fxBool operator!=(fxStr const&, char const*); - friend fxBool operator!=(char const*, fxStr const&); - friend fxBool operator>=(fxStr const&, fxStr const&); - friend fxBool operator>=(fxStr const&, char const*); - friend fxBool operator>=(char const*, fxStr const&); - friend fxBool operator<=(fxStr const&, fxStr const&); - friend fxBool operator<=(fxStr const&, char const*); - friend fxBool operator<=(char const*, fxStr const&); - friend fxBool operator>(fxStr const&, fxStr const&); - friend fxBool operator>(fxStr const&, char const*); - friend fxBool operator>(char const*, fxStr const&); - friend fxBool operator<(fxStr const&, fxStr const&); - friend fxBool operator<(fxStr const&, char const*); - friend fxBool operator<(char const*, fxStr const&); - int compare(fxStr const *a) const { return ::compare(*this, *a); } - friend int compare(fxStr const&, fxStr const&); - friend int compare(fxStr const&, char const*); - friend int compare(char const*, fxStr const&); - friend fxTempStr& operator|(const fxTempStr&, fxStr const&); - friend fxTempStr& operator|(const fxTempStr&, char const*); - friend fxTempStr operator|(fxStr const&, fxStr const&); - friend fxTempStr operator|(fxStr const&, char const*); - friend fxTempStr operator|(char const*, fxStr const&); - fxStr copy() const; - fxStr extract(u_int start,u_int len) const; - fxStr cut(u_int start,u_int len); - fxStr head(u_int) const; - fxStr tail(u_int) const; - void lowercase(u_int posn=0, u_int len=0); - void raisecase(u_int posn=0, u_int len=0); - void remove(u_int posn,u_int len=1); - void resize(u_int len, fxBool reallocate = ((fxBool)0) ); - void setMaxLength(u_int maxlen); - void append(char a); - void append(char const *s, u_int len=0); - void append(const fxTempStr& s) - { append((char*)s, s.slength-1); } - void append(fxStr const& s) - { append((char*)s, s.slength-1); } - void insert(char a, u_int posn=0); - void insert(char const *, u_int posn=0, u_int len=0); - void insert(const fxTempStr& s, u_int posn=0) - { insert((char*)s, posn, s.slength-1); } - void insert(fxStr const& s, u_int posn=0) - { insert((char*)s, posn, s.slength-1); } - u_int next(u_int posn, char delimiter) const; - u_int next(u_int posn, char const *delimiters, u_int len=0) const; - u_int next(u_int posn, fxStr const& delimiters) const - { return next(posn, (char*)delimiters, delimiters.slength-1); } - u_int nextR(u_int posn, char delimiter) const; - u_int nextR(u_int posn, char const*, u_int len=0) const; - u_int nextR(u_int posn, fxStr const& delimiters) const - { return nextR(posn, (char*)delimiters, delimiters.slength-1); } - u_int skip(u_int posn, char a) const; - u_int skip(u_int posn, char const *, u_int len=0) const; - u_int skip(u_int posn, fxStr const& delimiters) const - { return skip(posn, (char*)delimiters, delimiters.slength-1); } - u_int skipR(u_int posn, char a) const; - u_int skipR(u_int posn, char const *, u_int len=0) const; - u_int skipR(u_int posn, fxStr const& delimiters) const - { return skipR(posn, (char*)delimiters, delimiters.slength-1); } - fxStr token(u_int & posn, char delimiter) const; - fxStr token(u_int & posn, char const * delimiters, - u_int delimiters_len = 0) const; - fxStr token(u_int & posn, fxStr const & delimiters) const - { return token(posn, delimiters.data, delimiters.slength-1); } - fxStr tokenR(u_int & posn, char delimiter) const; - fxStr tokenR(u_int & posn, char const * delimiters, - u_int delimiters_len = 0) const; - fxStr tokenR(u_int & posn, fxStr const & delimiters) const - { return tokenR(posn, delimiters.data, delimiters.slength-1); } -protected: - u_int slength; - char * data; - static char emptyString; - void fxStr::resizeInternal(u_int); - int findEndBuffer(const char *, u_int buflen) const; - int findBuffer(const char *buf, u_int buflen) const; - void bracketBuffer(const char *, u_int buflen, int &, int &) const; -}; -struct Class2Params { - u_int vr; - u_int br; - u_int wd; - u_int ln; - u_int df; - u_int ec; - u_int bf; - u_int st; - static u_int vrDISTab[2]; - static u_int dfDISTab[4]; - static u_int wdDISTab[8]; - static u_int lnDISTab[3]; - static u_int stDISTab[8]; - static u_int stDCSTab[8]; - static u_int brDISTab[8]; - static u_int brDCSTab[8]; - static u_int DISvrTab[2]; - static u_int DISdfTab[2]; - static u_int DISwdTab[4]; - static u_int DISlnTab[4]; - static u_int DISstTab[8]; - static u_int DISbrTab[16]; - static u_int DCSbrTab[16]; - static const char* bitRateNames[8]; - static const char* dataFormatNames[4]; - static const char* vresNames[2]; - static const char* pageWidthNames[8]; - static const char* pageLengthNames[4]; - static const char* scanlineTimeNames[8]; - Class2Params(); - int operator==(const Class2Params&) const; - int operator!=(const Class2Params&) const; - fxStr cmd() const; - void setFromDIS(u_int dis, u_int xinfo = 0); - void setFromDCS(u_int dcs, u_int xinfo = 0); - u_int getDCS() const; - fxBool is2D() const; - u_int pageWidth() const; - u_int transferSize(u_int ms) const; - u_int minScanlineSize() const; - fxStr encode() const; - void decode(const fxStr&); -}; -typedef struct { - unsigned short tiff_magic; - unsigned short tiff_version; - unsigned long tiff_diroff; -} TIFFHeader; -typedef struct { - unsigned short tdir_tag; - unsigned short tdir_type; - unsigned long tdir_count; - unsigned long tdir_offset; -} TIFFDirEntry; -typedef enum { - TIFF_NOTYPE = 0, - TIFF_BYTE = 1, - TIFF_ASCII = 2, - TIFF_SHORT = 3, - TIFF_LONG = 4, - TIFF_RATIONAL = 5, - TIFF_SBYTE = 6, - TIFF_UNDEFINED = 7, - TIFF_SSHORT = 8, - TIFF_SLONG = 9, - TIFF_SRATIONAL = 10, - TIFF_FLOAT = 11, - TIFF_DOUBLE = 12 -} TIFFDataType; -typedef struct tiff TIFF; -extern int fclose (struct _iobuf *); -extern int fflush (struct _iobuf *); -extern int fgetc (struct _iobuf *); -extern int fgetpos (struct _iobuf *, long *); -extern int fprintf (struct _iobuf *, const char *, ...); -extern int fputc (int, struct _iobuf *); -extern int fputs (const char *, struct _iobuf *); -extern long unsigned int fread (void *, long unsigned int , long unsigned int , struct _iobuf *); -extern int fscanf (struct _iobuf *, const char *, ...); -extern int fseek (struct _iobuf *, long int, int); -extern int fsetpos (struct _iobuf *, const long *); -extern long unsigned int fwrite (const void *, long unsigned int , long unsigned int , struct _iobuf *); -extern int pclose (struct _iobuf *); -extern void perror (const char *); -extern int printf (const char *, ...); -extern int puts (const char *); -extern int remove (const char *); -extern int rename (const char *, const char *); -extern void rewind (struct _iobuf *); -extern int scanf (const char *, ...); -extern void setbuf (struct _iobuf *, char *); -extern int setvbuf (struct _iobuf *, char *, int, long unsigned int ); -extern int sscanf (const char *, const char *, ...); -extern int vprintf (const char *, __gnuc_va_list); -extern int vsprintf (char *, const char *, __gnuc_va_list); -extern int vfprintf (struct _iobuf *, const char *, __gnuc_va_list); -extern int ungetc (int, struct _iobuf *); -extern int _flsbuf (unsigned int, struct _iobuf *); -extern int _filbuf (struct _iobuf *); -typedef void (*TIFFErrorHandler)(const char* module, const char* fmt, va_list); -typedef int (*TIFFReadWriteProc)(void*, char*, unsigned long); -typedef long (*TIFFSeekProc)(void*, long, int); -typedef int (*TIFFCloseProc)(void*); -typedef long (*TIFFSizeProc)(void*); -typedef int (*TIFFMapFileProc)(void*, char**, long*); -typedef void (*TIFFUnmapFileProc)(void*, char*, long); -extern "C" { -extern const char* TIFFGetVersion(); -extern void TIFFClose(TIFF*); -extern int TIFFFlush(TIFF*); -extern int TIFFFlushData(TIFF*); -extern int TIFFGetField(TIFF*, unsigned int, ...); -extern int TIFFVGetField(TIFF*, unsigned int, va_list); -extern int TIFFGetFieldDefaulted(TIFF*, unsigned int, ...); -extern int TIFFVGetFieldDefaulted(TIFF*, unsigned int, va_list); -extern int TIFFReadDirectory(TIFF*); -extern unsigned long TIFFScanlineSize(TIFF*); -extern unsigned long TIFFStripSize(TIFF*); -extern unsigned long TIFFVStripSize(TIFF*, unsigned long); -extern unsigned long TIFFTileRowSize(TIFF*); -extern unsigned long TIFFTileSize(TIFF*); -extern unsigned long TIFFVTileSize(TIFF*, unsigned long); -extern int TIFFFileno(TIFF*); -extern int TIFFGetMode(TIFF*); -extern int TIFFIsTiled(TIFF*); -extern long TIFFCurrentRow(TIFF*); -extern int TIFFCurrentDirectory(TIFF*); -extern int TIFFCurrentStrip(TIFF*); -extern int TIFFCurrentTile(TIFF*); -extern int TIFFReadBufferSetup(TIFF*, char*, unsigned long); -extern int TIFFLastDirectory(TIFF*); -extern int TIFFSetDirectory(TIFF*, int); -extern int TIFFSetField(TIFF*, unsigned int, ...); -extern int TIFFVSetField(TIFF*, unsigned int, va_list); -extern int TIFFWriteDirectory(TIFF *); -extern void TIFFPrintDirectory(TIFF*, struct _iobuf *, long = 0); -extern int TIFFReadScanline(TIFF*, unsigned char*, unsigned, unsigned = 0); -extern int TIFFWriteScanline(TIFF*, unsigned char*, unsigned, unsigned = 0); -extern int TIFFReadRGBAImage(TIFF*, - unsigned long, unsigned long, unsigned long*, int stop = 0); -extern TIFF* TIFFOpen(const char*, const char*); -extern TIFF* TIFFFdOpen(int, const char*, const char*); -extern TIFF* TIFFClientOpen(const char* name, const char* mode, - void* clientdata, - TIFFReadWriteProc readproc, TIFFReadWriteProc writeproc, - TIFFSeekProc seekproc, TIFFCloseProc closeproc, - TIFFSizeProc sizeproc, - TIFFMapFileProc mapproc, TIFFUnmapFileProc unmapproc); -extern const char* TIFFFileName(TIFF*); -extern void TIFFError(const char*, const char*, ...); -extern void TIFFWarning(const char*, const char*, ...); -extern TIFFErrorHandler TIFFSetErrorHandler(TIFFErrorHandler handler); -extern TIFFErrorHandler TIFFSetWarningHandler(TIFFErrorHandler handler); -extern unsigned int TIFFComputeTile(TIFF*, - unsigned long, unsigned long, unsigned long, unsigned int); -extern int TIFFCheckTile(TIFF*, - unsigned long, unsigned long, unsigned long, unsigned); -extern unsigned int TIFFNumberOfTiles(TIFF*); -extern int TIFFReadTile(TIFF*, - unsigned char*, - unsigned long, unsigned long, unsigned long, - unsigned int); -extern int TIFFWriteTile(TIFF*, - unsigned char*, - unsigned long, unsigned long, unsigned long, - unsigned int); -extern unsigned int TIFFComputeStrip(TIFF*, unsigned long, unsigned int); -extern unsigned int TIFFNumberOfStrips(TIFF*); -extern int TIFFReadEncodedStrip(TIFF*, unsigned, unsigned char*, unsigned long); -extern int TIFFReadRawStrip(TIFF*, unsigned, unsigned char*, unsigned long); -extern int TIFFReadEncodedTile(TIFF*, unsigned, unsigned char*, unsigned long); -extern int TIFFReadRawTile(TIFF*, unsigned, unsigned char*, unsigned long); -extern int TIFFWriteEncodedStrip(TIFF*, unsigned, unsigned char*, unsigned long); -extern int TIFFWriteRawStrip(TIFF*, unsigned, unsigned char*, unsigned long); -extern int TIFFWriteEncodedTile(TIFF*, unsigned, unsigned char*, unsigned long); -extern int TIFFWriteRawTile(TIFF*, unsigned, unsigned char*, unsigned long); -extern void TIFFSetWriteOffset(TIFF*, unsigned long); -extern void TIFFSwabShort(unsigned short *); -extern void TIFFSwabLong(unsigned long *); -extern void TIFFSwabArrayOfShort(unsigned short *, unsigned long); -extern void TIFFSwabArrayOfLong(unsigned long *, unsigned long); -extern void TIFFReverseBits(unsigned char *, unsigned long); -extern const unsigned char* TIFFGetBitRevTable(int); -} -struct G3Base { - short data; - short bit; - fxBool is2D; - enum { G3_1D, G3_2D } tag; - const u_char* bitmap; - static const u_char zeroruns[256]; - static const u_char oneruns[256]; - static int findspan(const u_char**, int, int, const u_char*); - static int finddiff(const u_char*, int, int); - static void fillspan(u_char* cp, int x, int count); - void setup(const u_char*, fxBool is2d); -}; -class fxStackBuffer; -class G3Decoder : private G3Base { -private: - short bytePending; - short prevByte; - u_char* refline; - fxStackBuffer* recvBuf; - fxBool decode1DRow(u_char*, u_int); - fxBool decode2DRow(u_char*, u_int); - int nextBit(); - void ungetBit(); - int nextByte(); - int decodeWhiteRun(); - int decodeBlackRun(); - int decodeUncompCode(); - void skipToEOL(int len); -protected: - G3Decoder(); - void raiseEOF(); - void raiseRTC(); - void setPendingByte(u_char); - virtual int decodeNextByte() = 0; - void setRefLine(u_char*); - u_char* getRefLine(); - virtual void invalidCode(const char* type, int x); - virtual void prematureEOL(const char* type, int x); - virtual void badPixelCount(const char* type, int x); - virtual void badDecodingState(const char* type, int x); -public: - sigjmp_buf jmpEOF; - sigjmp_buf jmpRTC; - virtual ~G3Decoder(); - void setupDecoder(u_int, fxBool is2D); - void decode(void* raster, u_int w, u_int h); - void skip(u_int h); - void skipLeader(); - fxBool decodeRow(void* scanline, u_int w); - void skipRow(); - fxBool isLastRow1D(); - fxBool isNextRow1D(); - fxBool isByteAligned(); - void setRecvBuf(fxStackBuffer&); - fxStackBuffer* getRecvBuf(); - void flushRecvBuf(); -}; -inline void G3Decoder::setRecvBuf(fxStackBuffer& b){ recvBuf = &b; } -inline fxStackBuffer* G3Decoder::getRecvBuf() { return recvBuf; } -inline void G3Decoder::setRefLine(u_char* b) { refline = b; } -inline u_char* G3Decoder::getRefLine() { return refline; } -inline fxBool G3Decoder::isLastRow1D() { return tag == G3_1D; } -enum FaxSendStatus { - send_retry, - send_failed, - send_done, - send_reformat, -}; -class FaxServer; -class FaxMachineInfo; -class ModemConfig; -class fxStackBuffer; -class FaxFont; -class FaxRequest; -typedef unsigned int CallStatus; -typedef unsigned int CallType; -typedef unsigned int AnswerType; -typedef unsigned int SpeakerVolume; -typedef unsigned int ATResponse; -typedef unsigned int BaudRate; -typedef unsigned int FlowControl; -typedef unsigned int SetAction; -typedef struct { - const char* msg; - u_short len; - ATResponse expect; - CallStatus status; - CallType type; -} AnswerMsg; -class FaxModem : public G3Decoder { -public: - static FaxModem* deduceModem(FaxServer&, const ModemConfig& config); - enum { - OK = 0, - BUSY = 1, - NOCARRIER = 2, - NOANSWER = 3, - NODIALTONE = 4, - ERROR = 5, - FAILURE = 6, - NOFCON = 7, - DATACONN = 8, - }; - enum { - CALLTYPE_ERROR = 0, - CALLTYPE_DATA = 1, - CALLTYPE_FAX = 2, - CALLTYPE_VOICE = 3, - CALLTYPE_UNKNOWN = 4, - }; - enum { - OFF = 0, - QUIET = 1, - LOW = 2, - MEDIUM = 3, - HIGH = 4, - }; - enum { - BR0 = 0, - BR300 = 1, - BR1200 = 2, - BR2400 = 3, - BR4800 = 4, - BR9600 = 5, - BR19200 = 6, - BR38400 = 7, - BR57600 = 8, - BR76800 = 9, - }; - enum { - FLOW_NONE = 0, - FLOW_XONXOFF = 1, - FLOW_RTSCTS = 2 - }; - enum { - ACT_NOW = 0, - ACT_DRAIN = 1, - ACT_FLUSH = 2, - }; - enum { - ANSTYPE_ANY = 0, - ANSTYPE_DATA = 1, - ANSTYPE_FAX = 2, - ANSTYPE_VOICE = 3, - }; - enum { - AT_NOTHING = 0, - AT_OK = 1, - AT_CONNECT = 2, - AT_NOANSWER = 3, - AT_NOCARRIER = 4, - AT_NODIALTONE = 5, - AT_BUSY = 6, - AT_OFFHOOK = 7, - AT_RING = 8, - AT_ERROR = 9, - AT_EMPTYLINE = 10, - AT_TIMEOUT = 11, - AT_OTHER = 12, - }; -private: - FaxServer& server; - fxStr resetCmds; - long dataTimeout; - BaudRate rate; - FlowControl iFlow; - FlowControl oFlow; - u_int pageNumber; - FaxFont* tagLineFont; - u_int tagLineSlop; - fxStr tagLine; - u_int tagLineFields; - void setupTagLine(const FaxRequest&); - u_int cblc; - fxBool lastRowBad; - u_long recvEOLCount; - u_long recvBadLineCount; - u_long recvConsecutiveBadLineCount; - u_int recvCC; - fxStackBuffer* recvBuf; - u_long savedWriteOff; - void recvRow(TIFF* tif, fxStackBuffer& row, u_char* buf); - void invalidCode(const char* type, int x); - void prematureEOL(const char* type, int x); - void badPixelCount(const char* type, int x); - void badDecodingState(const char* type, int x); -protected: - const ModemConfig& conf; - FlowControl flowControl; - u_int modemServices; - fxStr modemMfr; - fxStr modemModel; - fxStr modemRevision; - Class2Params modemParams; - char rbuf[1024]; - ATResponse lastResponse; - fxStr mfrQueryCmd; - fxStr modelQueryCmd; - fxStr revQueryCmd; - static const char* serviceNames[9]; - static const u_char digitMap[12*2+1]; - static const char* callStatus[9]; - FaxModem(FaxServer&, const ModemConfig&); - virtual fxBool selectBaudRate(BaudRate max, FlowControl i, FlowControl o); - virtual fxBool setupModem() = 0; - virtual fxBool setupManufacturer(fxStr& mfr); - virtual fxBool setupModel(fxStr& model); - virtual fxBool setupRevision(fxStr& rev); - fxBool doQuery(const fxStr& queryCmd, fxStr& result, long ms = 30*1000); - virtual const AnswerMsg* findAnswer(const char* s); - virtual CallType answerResponse(fxStr& emsg); - virtual CallStatus dialResponse(fxStr& emsg) = 0; - void setDataTimeout(long secs, u_int br); - long getDataTimeout() const; - void pause(u_int ms); - void countPage(); - void modemTrace(const char* fmt, ...); - void modemSupports(const char* fmt, ...); - void modemCapability(const char* fmt, ...); - void protoTrace(const char* fmt, ...); - void recvTrace(const char* fmt, ...); - void copyQualityTrace(const char* fmt, ...); - void serverTrace(const char* fmt, ...); - void traceBits(u_int bits, const char* bitNames[]); - void traceModemParams(); - void tracePPR(const char* dir, u_int ppr); - void tracePPM(const char* dir, u_int ppm); - void trimModemLine(char buf[], int& cc); - int getModemLine(char buf[], u_int bufSize, long ms = 0); - void beginTimedTransfer(); - void endTimedTransfer(); - fxBool wasTimeout(); - void setTimeout(fxBool); - void flushModemInput(); - fxBool putModem(void* data, int n, long ms = 0); - fxBool putModemData(void* data, int n); - fxBool putModemDLEData(const u_char* data, u_int, - const u_char* brev, long ms); - fxBool putModemLine(const char* cp); - int getModemChar(long ms = 0); - int getModemDataChar(); - void startTimeout(long ms); - void stopTimeout(const char* whichdir); - static const char* ATresponses[13]; - virtual ATResponse atResponse(char* buf, long ms = 30*1000); - virtual fxBool waitFor(ATResponse wanted, long ms = 30*1000); - fxBool atCmd(const fxStr& cmd, ATResponse = AT_OK, long ms = 30*1000); - fxBool atQuery(const char* what, u_int& v, long ms = 30*1000); - fxBool atQuery(const char* what, fxStr& v, long ms = 30*1000); - u_int fromHex(const char*, int = -1); - fxStr toHex(int, int ndigits); - fxBool parseRange(const char*, u_int&); - fxBool vparseRange(const char*, int nargs ...); - fxBool vatFaxCmd(ATResponse resp, const char* cmd ... ); - fxBool sendBreak(fxBool pause); - fxBool setBaudRate(BaudRate rate); - fxBool setBaudRate(BaudRate rate, FlowControl i, FlowControl o); - fxBool setXONXOFF(FlowControl i, FlowControl o, SetAction); - fxBool setDTR(fxBool on); - fxBool setInputBuffering(fxBool on); - fxBool modemStopOutput(); - FlowControl getInputFlow(); - FlowControl getOutputFlow(); - fxBool getProtocolTracing(); - fxBool getHDLCTracing(); - FaxSendStatus sendSetupParams(TIFF*, Class2Params&, - FaxMachineInfo&, fxStr&); - fxBool recvCheckTSI(const fxStr&); - void recvCSI(fxStr&); - void recvDCS(Class2Params&); - void recvNSF(u_int nsf); - void recvSetupPage(TIFF* tif, long group3opts, int fillOrder); - void recvResetPage(TIFF* tif); - fxBool abortRequested(); - fxBool decodePPM(const fxStr& pph, u_int& ppm, fxStr& emsg); - fxBool recvPageDLEData(TIFF* tif, fxBool checkQuality, - const Class2Params& params, fxStr& emsg); - virtual void abortPageRecv() = 0; - virtual int decodeNextByte(); - fxBool checkQuality(); - fxBool isQualityOK(const Class2Params&); - u_long getRecvEOLCount() const; - u_long getRecvBadLineCount() const; - u_long getRecvConsecutiveBadLineCount() const; - fxBool setupTagLineSlop(const Class2Params&); - u_int getTagLineSlop() const; - u_char* imageTagLine(u_char* buf, u_int fillorder, const Class2Params&); -public: - virtual ~FaxModem(); - virtual fxBool dataService(); - virtual fxBool voiceService(); - virtual fxBool sync(long ms = 0); - virtual fxBool reset(long ms = 5*1000); - virtual void hangup(); - virtual void setSpeakerVolume(SpeakerVolume); - virtual void setLID(const fxStr& number) = 0; - const fxStr& getModel() const; - const fxStr& getManufacturer() const; - const fxStr& getRevision() const; - virtual fxBool supports2D() const; - virtual fxBool supportsEOLPadding() const; - virtual fxBool supportsVRes(float res) const; - virtual fxBool supportsPageWidth(u_int w) const; - virtual fxBool supportsPageLength(u_int l) const; - virtual fxBool supportsPolling() const; - virtual int selectSignallingRate(int br) const; - u_int getBestSignallingRate() const; - u_int getBestScanlineTime() const; - virtual int selectScanlineTime(int st) const; - u_int getBestVRes() const; - u_int getBestDataFormat() const; - u_int getBestPageWidth() const; - u_int getBestPageLength() const; - u_int modemDIS() const; - virtual CallStatus dial(const char* number, - const Class2Params& dis, fxStr& emsg); - virtual void sendBegin(const FaxRequest&); - virtual fxBool getPrologue(Class2Params&, - u_int& nsf, fxStr& csi, fxBool& hasDoc) = 0; - virtual void sendSetupPhaseB(); - virtual FaxSendStatus sendPhaseB(TIFF*, Class2Params&, FaxMachineInfo&, - fxStr& pph, fxStr& emsg) = 0; - virtual void sendEnd(); - virtual void sendAbort() = 0; - virtual fxBool waitForRings(u_int rings); - virtual CallType answerCall(AnswerType, fxStr& emsg); - virtual fxBool recvBegin(fxStr& emsg) = 0; - virtual fxBool recvPage(TIFF*, int& ppm, fxStr& em) = 0; - virtual fxBool recvEnd(fxStr& emsg) = 0; - virtual void recvAbort() = 0; - virtual fxBool requestToPoll() = 0; - virtual fxBool pollBegin(const fxStr& pollID, fxStr& emsg) = 0; -}; -inline long FaxModem::getDataTimeout() const { return dataTimeout; } -inline const fxStr& FaxModem::getModel() const { return modemModel; } -inline const fxStr& FaxModem::getManufacturer() const { return modemMfr; } -inline const fxStr& FaxModem::getRevision() const { return modemRevision; } -inline FlowControl FaxModem::getInputFlow() { return iFlow; } -inline FlowControl FaxModem::getOutputFlow() { return oFlow; } -inline u_int FaxModem::getTagLineSlop() const { return tagLineSlop; } -struct ModemConfig { - fxStr type; - fxStr resetCmds; - fxStr dialCmd; - fxStr answerAnyCmd; - fxStr answerDataCmd; - fxStr answerFaxCmd; - fxStr answerVoiceCmd; - fxStr flowControlCmd; - fxStr setupDTRCmd; - fxStr setupDCDCmd; - fxStr setupAACmd; - fxStr noAutoAnswerCmd; - fxStr setVolumeCmd[5]; - fxStr echoOffCmd; - fxStr verboseResultsCmd; - fxStr resultCodesCmd; - fxStr onHookCmd; - fxStr softResetCmd; - fxStr waitTimeCmd; - fxStr pauseTimeCmd; - fxStr mfrQueryCmd; - fxStr modelQueryCmd; - fxStr revQueryCmd; - fxStr answerAnyBeginCmd; - fxStr answerDataBeginCmd; - fxStr answerFaxBeginCmd; - fxStr answerVoiceBeginCmd; - fxStr sendBeginCmd; - u_int t1Timer; - u_int t2Timer; - u_int t4Timer; - u_int dialResponseTimeout; - u_int answerResponseTimeout; - u_int pageStartTimeout; - u_int pageDoneTimeout; - fxStr class1Cmd; - u_int class1TCFResponseDelay; - u_int class1SendPPMDelay; - u_int class1SendTCFDelay; - u_int class1TrainingRecovery; - u_int class1RecvAbortOK; - u_int class1FrameOverhead; - u_int class1RecvIdentTimer; - u_int class1TCFMaxNonZero; - u_int class1TCFMinRun; - fxStr class2Cmd; - fxStr class2DCCQueryCmd; - fxStr class2CQQueryCmd; - fxStr class2BORCmd; - fxStr class2RELCmd; - fxStr class2CQCmd; - fxStr class2AbortCmd; - fxStr class2TBCCmd; - fxStr class2CRCmd; - fxStr class2PHCTOCmd; - fxStr class2BUGCmd; - fxStr class2LIDCmd; - fxStr class2DCCCmd; - fxStr class2DISCmd; - fxStr class2DDISCmd; - fxStr class2CIGCmd; - fxStr class2SPLCmd; - fxStr class2PTSCmd; - fxStr class2RecvDataTrigger; - fxBool class2XmitWaitForXON; - fxStr class2PIECmd; - fxStr class2NRCmd; - FlowControl flowControl; - BaudRate maxRate; - u_int recvFillOrder; - u_int sendFillOrder; - u_int frameFillOrder; - u_int resetDelay; - u_int baudRateDelay; - u_int maxPacketSize; - u_int interPacketDelay; - u_int percentGoodLines; - u_int maxConsecutiveBadLines; - fxBool waitForConnect; - fxStr tagLineFmt; - fxStr tagLineFontFile; - ModemConfig(); - ~ModemConfig(); - fxBool parseItem(const char* tag, const char* value); - void setVolumeCmds(const fxStr& value); - fxStr parseATCmd(const char*); -}; -ModemConfig::ModemConfig() - : type("unknown") - , dialCmd("DT%s") - , noAutoAnswerCmd("S0=0") - , echoOffCmd("E0") - , verboseResultsCmd("V1") - , resultCodesCmd("Q0") - , onHookCmd("H0") - , softResetCmd("Z") - , waitTimeCmd("S7=30") - , pauseTimeCmd("S8=2") - , class1Cmd("+FCLASS=1") - , class2CQQueryCmd("+FCQ=?") - , tagLineFmt("From %%n|%c|Page %%p of %%t") -{ - class2XmitWaitForXON = ((fxBool)1) ; - setVolumeCmds("M0 L0M1 L1M1 L2M1 L3M1"); - answerAnyCmd = "A"; - flowControl = FaxModem::FLOW_NONE; - maxRate = FaxModem::BR19200; - sendFillOrder = 2 ; - recvFillOrder = 2 ; - frameFillOrder = 2 ; - resetDelay = 2600; - baudRateDelay = 0; - t1Timer = ((35+5)*1000) ; - t2Timer = ((6+1)*1000) ; - t4Timer = 3100 ; - dialResponseTimeout = 3*60*1000; - answerResponseTimeout = 3*60*1000; - pageStartTimeout = 3*60*1000; - pageDoneTimeout = 3*60*1000; - class1TCFResponseDelay = 75; - class1SendPPMDelay = 75; - class1SendTCFDelay = 75; - class1TrainingRecovery = 1500; - class1RecvAbortOK = 200; - class1FrameOverhead = 4; - class1RecvIdentTimer = t1Timer; - class1TCFMinRun = (2*1500 )/3; - class1TCFMaxNonZero = 10; - maxPacketSize = 16*1024; - interPacketDelay = 0; - waitForConnect = ((fxBool)0) ; - percentGoodLines = 95; - maxConsecutiveBadLines = 5; -} -ModemConfig::~ModemConfig() -{ -} -static fxBool getBoolean(const char* cp) - { return ((strcasecmp( cp , "on" )==0) || (strcasecmp( cp , "yes" )==0) ); } -static BaudRate -findRate(const char* cp) -{ - static const struct { - const char* name; - BaudRate br; - } rates[] = { - { "300", FaxModem::BR300 }, - { "1200", FaxModem::BR1200 }, - { "2400", FaxModem::BR2400 }, - { "4800", FaxModem::BR4800 }, - { "9600", FaxModem::BR9600 }, - { "19200", FaxModem::BR19200 }, - { "38400", FaxModem::BR38400 }, - { "57600", FaxModem::BR57600 }, - { "76800", FaxModem::BR76800 }, - }; - for (int i = (sizeof ( rates ) / sizeof ( rates [0])) -1; i >= 0; i--) - if ((strcasecmp( cp , rates[i].name )==0) ) - return (rates[i].br); - return (FaxModem::BR0); -} -static BaudRate -getRate(const char* cp) -{ - BaudRate br = findRate(cp); - if (br == FaxModem::BR0) { - syslog(3 , "Unknown baud rate \"%s\", using 19200", cp); - br = FaxModem::BR19200; - } - return (br); -} -static u_int -getFill(const char* cp) -{ - if ((strcasecmp( cp , "LSB2MSB" )==0) ) - return (2 ); - else if ((strcasecmp( cp , "MSB2LSB" )==0) ) - return (1 ); - else { - syslog(3 , "Unknown fill order \"%s\"", cp); - return ((u_int) -1); - } -} -static FlowControl -getFlow(const char* cp) -{ - if ((strcasecmp( cp , "xonxoff" )==0) ) - return (FaxModem::FLOW_XONXOFF); - else if ((strcasecmp( cp , "rtscts" )==0) ) - return (FaxModem::FLOW_RTSCTS); - else if ((strcasecmp( cp , "none" )==0) ) - return (FaxModem::FLOW_NONE); - else { - syslog(3 , "Unknown flow control \"%s\", using xonxoff", cp); - return (FaxModem::FLOW_XONXOFF); - } -} -void -ModemConfig::setVolumeCmds(const fxStr& tag) -{ - u_int l = 0; - for (int i = FaxModem::OFF; i <= FaxModem::HIGH; i++) { - fxStr tmp = tag.token(l, " \t"); - setVolumeCmd[i] = parseATCmd(tmp); - } -} -fxStr -ModemConfig::parseATCmd(const char* cp) -{ - fxStr cmd(cp); - u_int pos = 0; - while ((pos = cmd.next(pos, '<')) != cmd.length()) { - u_int epos = pos+1; - fxStr esc = cmd.token(epos, '>'); - esc.lowercase(); - char ecode; - if (esc == "xon") - ecode = (0x80|0xf) ; - else if (esc == "rts") - ecode = (0x80|0xe) ; - else if (esc == "none") - ecode = (0x80|0xd) ; - else if (esc == "") - ecode = '<'; - else { - BaudRate br = findRate(esc); - if (br == FaxModem::BR0) { - syslog(3 , "Unknown AT escape code \"%s\"", (char*) esc); - pos = epos; - continue; - } - ecode = 0x80| ((int)( br )) ; - } - cmd.remove(pos, epos-pos); - cmd.insert(ecode, pos); - } - return (cmd); -} -static const struct { - const char* name; - fxStr ModemConfig::* p; -} atcmds[] = { - { "ModemAnswerCmd", &ModemConfig::answerAnyCmd }, - { "ModemAnswerAnyCmd", &ModemConfig::answerAnyCmd }, - { "ModemAnswerFaxCmd", &ModemConfig::answerFaxCmd }, - { "ModemAnswerDataCmd", &ModemConfig::answerDataCmd }, - { "ModemAnswerVoiceCmd", &ModemConfig::answerVoiceCmd }, - { "ModemAnswerFaxBeginCmd", &ModemConfig::answerFaxBeginCmd }, - { "ModemAnswerDataBeginCmd", &ModemConfig::answerDataBeginCmd }, - { "ModemAnswerVoiceBeginCmd", &ModemConfig::answerVoiceBeginCmd }, - { "ModemResetCmds", &ModemConfig::resetCmds }, - { "ModemResetCmd", &ModemConfig::resetCmds }, - { "ModemDialCmd", &ModemConfig::dialCmd }, - { "ModemFlowControlCmd", &ModemConfig::flowControlCmd }, - { "ModemSetupAACmd", &ModemConfig::setupAACmd }, - { "ModemSetupDTRCmd", &ModemConfig::setupDTRCmd }, - { "ModemSetupDCDCmd", &ModemConfig::setupDCDCmd }, - { "ModemNoAutoAnswerCmd", &ModemConfig::noAutoAnswerCmd }, - { "ModemEchoOffCmd", &ModemConfig::echoOffCmd }, - { "ModemVerboseResultsCmd", &ModemConfig::verboseResultsCmd }, - { "ModemResultCodesCmd", &ModemConfig::resultCodesCmd }, - { "ModemOnHookCmd", &ModemConfig::onHookCmd }, - { "ModemSoftResetCmd", &ModemConfig::softResetCmd }, - { "ModemWaitTimeCmd", &ModemConfig::waitTimeCmd }, - { "ModemCommaPauseTimeCmd", &ModemConfig::pauseTimeCmd }, - { "ModemMfrQueryCmd", &ModemConfig::mfrQueryCmd }, - { "ModemModelQueryCmd", &ModemConfig::modelQueryCmd }, - { "ModemRevQueryCmd", &ModemConfig::revQueryCmd }, - { "ModemSendBeginCmd", &ModemConfig::sendBeginCmd }, - { "Class1Cmd", &ModemConfig::class1Cmd }, - { "Class2Cmd", &ModemConfig::class2Cmd }, - { "Class2BORCmd", &ModemConfig::class2BORCmd }, - { "Class2RELCmd", &ModemConfig::class2RELCmd }, - { "Class2CQCmd", &ModemConfig::class2CQCmd }, - { "Class2AbortCmd", &ModemConfig::class2AbortCmd }, - { "Class2CQQueryCmd", &ModemConfig::class2CQQueryCmd }, - { "Class2DCCQueryCmd", &ModemConfig::class2DCCQueryCmd }, - { "Class2TBCCmd", &ModemConfig::class2TBCCmd }, - { "Class2CRCmd", &ModemConfig::class2CRCmd }, - { "Class2PHCTOCmd", &ModemConfig::class2PHCTOCmd }, - { "Class2BUGCmd", &ModemConfig::class2BUGCmd }, - { "Class2LIDCmd", &ModemConfig::class2LIDCmd }, - { "Class2DCCCmd", &ModemConfig::class2DCCCmd }, - { "Class2DISCmd", &ModemConfig::class2DISCmd }, - { "Class2DDISCmd", &ModemConfig::class2DDISCmd }, - { "Class2CIGCmd", &ModemConfig::class2CIGCmd }, - { "Class2PTSCmd", &ModemConfig::class2PTSCmd }, - { "Class2SPLCmd", &ModemConfig::class2SPLCmd }, - { "Class2PIECmd", &ModemConfig::class2PIECmd }, - { "Class2NRCmd", &ModemConfig::class2NRCmd }, - { "TagLineFont", &ModemConfig::tagLineFontFile }, - { "TagLineFormat", &ModemConfig::tagLineFmt }, -}; -static const struct { - const char* name; - u_int ModemConfig::* p; -} fillorders[] = { - { "ModemRecvFillOrder", &ModemConfig::recvFillOrder }, - { "ModemSendFillOrder", &ModemConfig::sendFillOrder }, - { "ModemFrameFillOrder", &ModemConfig::frameFillOrder }, -}; -static const struct { - const char* name; - u_int ModemConfig::* p; -} numbers[] = { - { "ModemResetDelay", &ModemConfig::resetDelay }, - { "ModemBaudRateDelay", &ModemConfig::baudRateDelay }, - { "ModemMaxPacketSize", &ModemConfig::maxPacketSize }, - { "ModemInterPacketDelay", &ModemConfig::interPacketDelay }, - { "FaxT1Timer", &ModemConfig::t1Timer }, - { "FaxT2Timer", &ModemConfig::t2Timer }, - { "FaxT4Timer", &ModemConfig::t4Timer }, - { "ModemDialResponseTimeout", &ModemConfig::dialResponseTimeout }, - { "ModemAnswerResponseTimeout", &ModemConfig::answerResponseTimeout }, - { "ModemPageStartTimeout", &ModemConfig::pageStartTimeout }, - { "ModemPageDoneTimeout", &ModemConfig::pageDoneTimeout }, - { "Class1TCFResponseDelay", &ModemConfig::class1TCFResponseDelay }, - { "Class1SendPPMDelay", &ModemConfig::class1SendPPMDelay }, - { "Class1SendTCFDelay", &ModemConfig::class1SendTCFDelay }, - { "Class1TrainingRecovery", &ModemConfig::class1TrainingRecovery }, - { "Class1RecvAbortOK", &ModemConfig::class1RecvAbortOK }, - { "Class1FrameOverhead", &ModemConfig::class1FrameOverhead }, - { "Class1RecvIdentTimer", &ModemConfig::class1RecvIdentTimer }, - { "Class1TCFMaxNonZero", &ModemConfig::class1TCFMaxNonZero }, - { "Class1TCFMinRun", &ModemConfig::class1TCFMinRun }, - { "PercentGoodLines", &ModemConfig::percentGoodLines }, - { "MaxConsecutiveBadLines", &ModemConfig::maxConsecutiveBadLines }, -}; -fxBool -ModemConfig::parseItem(const char* tag, const char* value) -{ - int i; - for (i = (sizeof ( atcmds ) / sizeof ( atcmds [0])) -1; i >= 0; i--) - if ((strcasecmp( tag , atcmds[i].name )==0) ) { - (*this).*atcmds[i].p = parseATCmd(value); - return (((fxBool)1) ); - } - for (i = (sizeof ( fillorders ) / sizeof ( fillorders [0])) -1; i >= 0 ; i--) - if ((strcasecmp( tag , fillorders[i].name )==0) ) { - (*this).*fillorders[i].p = getFill(value); - return (((fxBool)1) ); - } - for (i = (sizeof ( numbers ) / sizeof ( numbers [0])) -1; i >= 0 ; i--) - if ((strcasecmp( tag , numbers[i].name )==0) ) { - (*this).*numbers[i].p = atoi(value); - return (((fxBool)1) ); - } - fxBool recognized = ((fxBool)1) ; - if ((strcasecmp( tag , "ModemType" )==0) ) - type = value; - else if ((strcasecmp( tag , "ModemSetVolumeCmd" )==0) ) - setVolumeCmds(value); - else if ((strcasecmp( tag , "ModemFlowControl" )==0) ) - flowControl = getFlow(value); - else if ((strcasecmp( tag , "ModemMaxRate" )==0) || (strcasecmp( tag , "ModemRate" )==0) ) - maxRate = getRate(value); - else if ((strcasecmp( tag , "ModemWaitForConnect" )==0) ) - waitForConnect = getBoolean(value); - else if ((strcasecmp( tag , "Class2RecvDataTrigger" )==0) ) - class2RecvDataTrigger = value; - else if ((strcasecmp( tag , "Class2XmitWaitForXON" )==0) ) - class2XmitWaitForXON = getBoolean(value); - else - recognized = ((fxBool)0) ; - return (recognized); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash6.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash6.C deleted file mode 100755 index a6527a5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash6.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -// Should be fixed by: -// Sun Jun 13 12:55:22 1993 Brendan Kehoe (brendan@lisa.cygnus.com) -// -// * cp-decl.c (start_function): Avoid a null-reference on CTYPE. - -template<int> -class Program { -} ; - -class Program<0> { -public: - inline friend float EvalNextArg() - { return 1.0 ; } -} ; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash60.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash60.C deleted file mode 100755 index b2af431..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash60.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -class X -{ -public: - X (); - int f[4]; -}; - -// Note that we mistakenly initialize the array data member as if it -// was scalar -X::X () : f (0) {}// ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash61.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash61.C deleted file mode 100755 index 4d3bbc4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash61.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort - template <class TP> class sapp { }; - class foo {}; - extern foo& __iomanip_setw (foo&, TP);// ERROR - type spec.* diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash62.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash62.C deleted file mode 100755 index 77b9fc8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash62.C +++ /dev/null @@ -1,32 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -#include <iostream.h> - - void - fubar(ostream* out, const char* string) - { - (*out) << string << endl; - return; - } - - int - main() - { - // Declare a ref and a pointer to the same ostream. - // - ostream* out = &cerr; - ostream& die = cerr; - - // Valid call to fubar. - // - fubar(out, "First line."); - - // Invalid call to fubar. (1st arg is an ostream&. fubar expects - // ostream*.)This should be a syntax error, but g++ does not catch it. - // Call to this function results in a bus error in fubar when the 1st - // arg is dereferenced. - // - fubar(die, "Second line.");// ERROR - cannot convert .die.* - - return 1; - } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash63.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash63.C deleted file mode 100755 index 84f8fc5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash63.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -class String - { - public: - String (const char *str); - }; - -class UnitList - { - public: - UnitList (...); - }; - -UnitList unit_list (String("keV")); diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash64.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash64.C deleted file mode 100755 index 3102418..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash64.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -typedef long unsigned int size_t; -typedef void (*RF_Ptr)(void *); - -struct _im_pers_mem_spec { - inline _im_pers_mem_spec(void ); - inline _im_pers_mem_spec(auto int of, auto int n); -}; - -struct _type_desc { - _type_desc(char *, int , RF_Ptr , int , int ,...); -}; - -struct metatype { int base_list; }; - -static _type_desc _type_metatype("metatype", sizeof(metatype), - (RF_Ptr)0, 0, 1, 1, - _im_pers_mem_spec( ((size_t)&((( metatype *)0)-> base_list )) , 1)); diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash65.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash65.C deleted file mode 100755 index 132651e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash65.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -class X { -public: - virtual const char* XY(const void* val) const = 0; -}; - - -class Y : public X { -public: - using X::xy;// ERROR - no memb.* - - using X::z;// ERROR - no memb.* -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash66.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash66.C deleted file mode 100755 index 878957b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash66.C +++ /dev/null @@ -1,137 +0,0 @@ -// Build don't link: -// Special g++ Options: -O -// GROUPS passed old-abort -typedef unsigned char uchar; -typedef unsigned short ushort; -typedef unsigned long ulong; -extern int swap_endian; -inline ushort -swapshort(ushort value) -{ - value &= 0xffff; - return ((value << 8) | (value >> 8)); -} -struct eshort -{ - ushort data; - operator ushort() { return swap_endian ? swapshort(data) : data;} - eshort(ushort t) { data = swap_endian ? swapshort(t) : t;} - eshort() {} -}; -inline ulong -swaplong(ulong value) -{ - ulong v = (value << 16) | (value >> 16); - return ((v >> 8) & 0x00ff00ff) | ((v << 8) & 0xff00ff00); -}; -struct elong -{ - ulong data; - operator ulong() { return swap_endian ? swaplong(data) : data;} - elong(ulong t) { data = swap_endian ? swaplong(t) : t; } - elong() {} -}; -struct digiheader -{ - uchar type[2]; - eshort soft_version; - eshort lo_boot_rev; - eshort hi_boot_rev; - eshort load_segment; - eshort length; - eshort exec_start; - eshort image_offset; - elong startup_code[2]; - elong checksum; -}; -extern void uncompress(uchar* buf, ulong len); -extern ulong compress(char* filename, uchar* buffer, ulong); -struct filehdr -{ - eshort f_magic; - eshort f_nscns; - elong f_timdat; - elong f_symptr; - elong f_nsyms; - eshort f_opthdr; - eshort f_flags; -}; -struct aouthdr -{ - eshort magic; - eshort vstamp; - elong tsize; - elong dsize; - elong bsize; - elong entry; - elong text_start; - elong data_start; - elong bss_start; - elong gprmask; - elong cprmask[4]; - elong gp_value; -}; -struct scnhdr -{ - char s_name[8]; - elong s_paddr; - elong s_vaddr; - elong s_size; - elong s_scnptr; - elong s_relptr; - elong s_lnnoptr; - eshort s_nreloc; - eshort s_nlnno; - elong s_flags; -}; -int file_little_endian; -int host_little_endian; -int swap_endian; -int docheck; -int expand; -ulong memsize; -ulong compression_quality; -char *compressfile; -int debug_level; -extern "C" int getopt (int, char**, char*); -int -main(int argc, char** argv) -{ - uchar checksum; - uchar docrc; - ulong len; - ulong maxlen; - int i; - int c; - int magic; - int tsize; - int dsize; - int quality; - char dummy; - uchar* code; - uchar* buf; - char* ap; - digiheader *dh; - compression_quality = 10000; - docheck = 0; - while ((c = getopt(argc, argv, "Ccdf:k:q:x:")) != -1) - { - switch (c) - { - default: - goto usage; - } - } - if ((expand && (docheck || compressfile || quality)) || - (quality && !compressfile)) - { - usage: - return(2); - } - if (compressfile) - { - dh->image_offset = len; - - len += compress(compressfile, code + len, maxlen - len); - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash67.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash67.C deleted file mode 100755 index f63ba5d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash67.C +++ /dev/null @@ -1,3 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -#pragma comment(exestr, "@(#) errno.h 10.2 92/03/26 ") diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash68.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash68.C deleted file mode 100755 index b209bd8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash68.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't link: -// Special g++ Options: -w -O -// GROUPS passed old-abort -class RWDlist -{ -public: - RWDlist& operator=(const RWDlist&); -}; -class DataItemRWGDlist : public RWDlist {}; - -class Base {}; -class DataItemList : public Base -{ - private: - DataItemRWGDlist m_diList; -}; - -class StatementGroup -{ - public: - DataItemList dataItemList; - StatementGroup(const StatementGroup&); -}; - -StatementGroup::StatementGroup(const StatementGroup& sg) -{ - dataItemList = sg.dataItemList; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash7.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash7.C deleted file mode 100755 index 19476fc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash7.C +++ /dev/null @@ -1,48 +0,0 @@ -// Build don't link: -// GROUPS passed templates - -template<class T> -class Vector -{ - int sz; - T *v; -public: - Vector (int s) : sz (s) { v = new T[sz]; } - ~Vector () { delete[] v; } - T &operator[] (int i) { return v[i]; } - int size () { return sz; } -}; - -template<class T>// ERROR - previous definition of T -struct Comparator -{ - typedef T T;// ERROR - use of template type T in typedef to T - static int lessthan (T &a, T &b) { return a < b; } -}; - -template<class Comp> -struct Sort -{ - static void sort (Vector<Comp::T> &);// ERROR - use of bad T -}; - -template<class Comp> -void Sort<Comp>::sort (Vector<Comp::T> &v)// ERROR - use of bad T -{ - int n = v.size (); - - for (int i = 0; i < n - 1; i++) - for (int j = n - 1; i < j; j--) - if (Comp::lessthan (v[j], v[j - 1])) - { - typename Comp::T temp = v[j]; - v[j] = v[j - 1]; - v[j - 1] = temp; - } -} - -void -f (Vector<int> &vi) -{ - Sort<Comparator<int> >::sort (vi); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash8.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash8.C deleted file mode 100755 index 8990c46..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash8.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -template<int a, int b> -class Elvis -{// ERROR - in template.* -} ; - -template<int a> -class Elvis<0> -{ // ERROR - incorrect number of parameters - int geta() { return a ; } -} ; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/crash9.C b/gcc/testsuite/g++.old-deja/g++.brendan/crash9.C deleted file mode 100755 index a4155ef..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/crash9.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -class A {}; - -class SimQuery -{ -public: - SimQuery(); - ~SimQuery(); - int SetMeshFile(char name[]); -protected: - A& scaling; - A* mesh; -}; - -SimQuery::SimQuery():scaling(A) {}// ERROR - .* - -SimQuery::~SimQuery() {}// ERROR - - -int SimQuery::SetMeshFile(char name[]) -{// ERROR - - mesh = new C;// ERROR - .* - return 0; // needed to avoid warning of reaching end of non-void fn -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/ctors1.C b/gcc/testsuite/g++.old-deja/g++.brendan/ctors1.C deleted file mode 100755 index eaf4871..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/ctors1.C +++ /dev/null @@ -1,27 +0,0 @@ -// GROUPS passed constructors -// Check that global level object constructors get called. - -extern "C" void printf (char *, ...); - -struct base { - int f1; - int f2; - base (int arg1, int arg2); -}; - - -base global_base(0x55, 0xff); - -int main () -{ - if ((global_base.f1 != 0x55) || (global_base.f2 != 0xff)) - printf ("FAIL\n"); - else - printf ("PASS\n"); -} - -base::base(int arg1, int arg2) -{ - f1 = arg1; - f2 = arg2; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/ctors2.C b/gcc/testsuite/g++.old-deja/g++.brendan/ctors2.C deleted file mode 100755 index 2f83ce1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/ctors2.C +++ /dev/null @@ -1,28 +0,0 @@ -// GROUPS passed constructors -// Check that sub-words sized class members are correctly set -// by constructors. - -extern "C" void printf (char *, ...); - -struct base { - int f1 : 8; - int f2 : 8; - base (int arg1, int arg2); -}; - - -base global_base(0x55, 0x7e); - -int main () -{ - if ((global_base.f1 != 0x55) || (global_base.f2 != 0x7e)) - printf ("FAIL\n"); - else - printf ("PASS\n"); -} - -base::base(int arg1, int arg2) -{ - f1 = arg1; - f2 = arg2; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/ctors3.C b/gcc/testsuite/g++.old-deja/g++.brendan/ctors3.C deleted file mode 100755 index 755d547..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/ctors3.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: -// GROUPS passed constructors -class A; - -class B { -public: - B(); -static A sa; -}; - -class A { -public: - A(int i); -}; - -A B::sa(1); - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/cvt1.C b/gcc/testsuite/g++.old-deja/g++.brendan/cvt1.C deleted file mode 100755 index 57f3b42..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/cvt1.C +++ /dev/null @@ -1,44 +0,0 @@ -// Build don't link: -// GROUPS passed conversions -#include <iostream.h> - -class Thing -{ -public: - typedef enum { GOOD_THING, BAD_THING, } ThingType ; // ERROR - comma - Thing (ThingType type) : thingType (type) { } - ~Thing () { } -private: - ThingType thingType ; -} ; - -class Group -{ -public: - typedef enum { THIS_GROUP, THAT_GROUP, } GroupType ; // ERROR - comma - Group (GroupType type) : groupType (type), groupCount (0) { } - ~Group () { } - void append (Thing* const &entry) { groupCount ++ ; } - operator GroupType () const { return groupType ; } - operator int () const { return groupCount ; } // remove this and problem gone - -private: - int groupCount ; - GroupType groupType ; -} ; - -inline Group& operator += (Group& g, Thing* const t) -{ - g.append (t) ; - return g ; // complaint is here -} - -int -main (int argc, char** argv) -{ - Group g (Group::THIS_GROUP) ; - - g += new Thing (Thing::GOOD_THING) ; - cout << "Group type is " << (Group::GroupType) g << endl ; - return 0 ; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/cvt2.C b/gcc/testsuite/g++.old-deja/g++.brendan/cvt2.C deleted file mode 100755 index 76ae156..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/cvt2.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// GROUPS passed conversions -void f(const short & s) { } - - int -main() { - f(0); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C b/gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C deleted file mode 100755 index 6ab8465..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/cvt3.C +++ /dev/null @@ -1,48 +0,0 @@ -// Build don't link: -// GROUPS passed conversions -class GttObject {}; -class GctObject: virtual public GttObject {}; -class NDAMObject: virtual public GttObject, virtual public GctObject {}; -class GctHashObject: virtual public GctObject {}; - -class GctRef: virtual public GctHashObject -{ public: operator void*() const; }; - -class NDAMAssemblerObject: virtual public NDAMObject {}; -class GctReferenceObject: virtual public GctHashObject {}; -class NDAMValue: virtual public NDAMAssemblerObject, public GctReferenceObject {}; - -class nnyacc; -class NDAMValueRef : virtual public NDAMObject, public GctRef -{ - NDAMValue *operator->() const; - operator NDAMValue *() const; -friend class nnyacc; -}; - -typedef void* Pix; -class NDAMValueRefSLList -{ -public: - NDAMValueRefSLList(); - NDAMValueRefSLList(const NDAMValueRefSLList& a); - ~NDAMValueRefSLList(); - NDAMValueRef& operator () (Pix p) const; -}; - -struct bar -{ - NDAMValueRefSLList *valueList; -}; - -class nnyacc -{ -public: - static void assign(void*& lval, void*& rval); // ERROR - candidates -}; - -void -foo (bar yylval, bar *yyvsp) -{ - nnyacc::assign(yylval.valueList, yyvsp[0].valueList);// ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/cvt4.C b/gcc/testsuite/g++.old-deja/g++.brendan/cvt4.C deleted file mode 100755 index 3d9f475..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/cvt4.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't link: -// GROUPS passed conversions -class A {}; - -template <class TP> -class B -{ - A &(*_f) (A &, TP); - TP _a; -public: - B (A &(*f) (A &, TP), TP a) : _f (f), _a (a) {} - friend A &operator<< (A &o, const B<TP> &m) - { (*m._f) (o, m._a); return o; } -}; - -A &setw (A &, int); -B<int> setw (int n) -{ - return B<int> (setw, n); -} - -A x; - -void f () -{ - x << setw (2); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/cvt5.C b/gcc/testsuite/g++.old-deja/g++.brendan/cvt5.C deleted file mode 100755 index 5eeea6e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/cvt5.C +++ /dev/null @@ -1,27 +0,0 @@ -// GROUPS passed conversions -// Build don't link: -typedef unsigned long Array[3]; - -void sample(const unsigned long (&an_array)[3]); - -class Sample - { - public: - void simple(const Array &an_array); - static void sample(const Array &an_array); - }; - -class A - { - public: - Array array; - }; - - Sample s; - - void simple(const A &a) - { - s.simple(a.array); - sample(a.array); - Sample::sample(a.array); - } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/def-args1.C b/gcc/testsuite/g++.old-deja/g++.brendan/def-args1.C deleted file mode 100755 index 55efc52..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/def-args1.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// PRMS Id: 10860 -class Beige -{ -public: - static int yellow(); - void white(int green = yellow()); - void aqua(int green = Beige::yellow()); -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/def-fns1.C b/gcc/testsuite/g++.old-deja/g++.brendan/def-fns1.C deleted file mode 100755 index af97526..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/def-fns1.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: -// GROUPS passed default-functions -class dictionary { -public: - dictionary (int); -}; - -class symbol { -public: - symbol (); -}; - -// a default ctor should not be generated for hyphenation_language, -// since a ctor has already been declared; if one is generated, there -// will be an error about not enough args to the ctor for dictionary, -// since dictionary only defines a ctor taking an int (it ALSO should -// not get a default ctor) -struct hyphenation_language { - symbol name; - dictionary exceptions; - hyphenation_language(symbol nm) : name(nm), exceptions(501) {} -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/delete1.C b/gcc/testsuite/g++.old-deja/g++.brendan/delete1.C deleted file mode 100755 index 816c300..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/delete1.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// Special g++ Options: -pedantic-errors -// GROUPS passed operator-delete -/* ARM $5.3.4 */ -void f(char *p, char *q[], const char *r, const char *s[]) -{ - delete 0; /* illegal: non-pointer */// ERROR - .*expected pointer.* - delete (char*)0; /* no effect */ - delete p; - delete[] q; - delete[4] q; /* ANSI forbids size arg */// ERROR - anachronistic .* - delete r; /* no longer illegal: const */ - delete[] s; - delete[4] s; /* ANSI forbids size arg */// ERROR - anachronistic.* -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/delete2.C b/gcc/testsuite/g++.old-deja/g++.brendan/delete2.C deleted file mode 100755 index f2bacde..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/delete2.C +++ /dev/null @@ -1,25 +0,0 @@ -// GROUPS passed operator-delete -// Check that using the delete operator with a null pointer -// is allowed (as called for by The Book, pg. 259) - -extern "C" void printf (char *, ...); - -struct base { - int member; -}; - -base* bp; - -void test () -{ - delete bp; -} - -int main () -{ - bp = (base *) 0; - test (); - - printf ("PASS\n"); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/dtors1.C b/gcc/testsuite/g++.old-deja/g++.brendan/dtors1.C deleted file mode 100755 index dbbfa80..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/dtors1.C +++ /dev/null @@ -1,56 +0,0 @@ -// GROUPS passed destructors -// Check that when an object of a derived class is (implicitly) -// destructed (on exit from the block in which it is declared) -// that the destructor for the base class also gets executed. -// -// (also check that this execution doesn't seg-fault) - -extern "C" void printf (char *, ...); - -int derived_destructed; -int base_destructed; - -struct base { - int base_data_member; - - base() - { - base_data_member = 0x5e5e; - } - ~base() - { - base_destructed = 0x781f; - } -}; - -struct derived : public base { - int derived_data_member; - - derived() - { - derived_data_member = 0xe5e5; - } - ~derived() - { - derived_destructed = 0xf178; - } -}; - - -void test2 (); - -int main () -{ - test2 (); - if ((base_destructed != 0x781f) || (derived_destructed != 0xf178)) - printf ("FAIL\n"); - else - printf ("PASS\n"); -} - -void test2 () -{ - derived derived_object; - - derived_object.derived_data_member = 99; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/dtors2.C b/gcc/testsuite/g++.old-deja/g++.brendan/dtors2.C deleted file mode 100755 index 511ab7f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/dtors2.C +++ /dev/null @@ -1,74 +0,0 @@ -// GROUPS passed destructors -// Check that virtual destructors work correctly. Specifically, -// check that when you destruct an object of a derived class for -// which the base class had an explicitly declared virtual destructor -// no infinite recursion occurs. -// -// Bug description: -// The generated g++ code apparently calls the base class destructor via -// the virtual table, rather than directly. This, of course, results in the -// infinite recursion. - -extern "C" void printf (char *, ...); - -int errors = 0; - -struct base { - int member; - base(); - virtual ~base(); -}; - -base::base() -{ -} - -base::~base() -{ -} - -struct derived : public base -{ - int member; - derived(); - ~derived(); -}; - -derived::derived() : base() -{ -} - -int derived_destructor_calls = 0; - -extern void exit (int); - -derived::~derived() -{ - if (++derived_destructor_calls > 2) - errors++; -} - -void test (); - -int main () -{ - test (); - - if (errors) - printf ("FAIL\n"); - else - printf ("PASS\n"); - - return 0; -} - -base* bp; - -void test() -{ - derived a; - - a.member = 99; - bp = new derived; - delete bp; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/dtors3.C b/gcc/testsuite/g++.old-deja/g++.brendan/dtors3.C deleted file mode 100755 index a1ca853..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/dtors3.C +++ /dev/null @@ -1,66 +0,0 @@ -// GROUPS passed destructors -// Check that member and base classes get properly destructed -// when an object of a derived class is destructed via a pointer -// to it which only has a "compile-time" type of "pointer-to-base". -// -// Note that in order for this test to work properly, the destructor -// for the base class should be explicitly declared to be virtual. - -extern "C" void printf (char *, ...); - -int member_destructor_calls = 0; -int middle_destructor_calls = 0; - -struct member_type { - int data_member; - member_type () {} - ~member_type (); -}; - -struct base { - int data_member; - base () {} - virtual ~base (); -}; - -struct middle : public base { - member_type member1; - member_type member2; - middle () {} - ~middle (); // should be implicitly virtual -}; - -struct derived : public middle { - member_type member1; - member_type member2; - //~derived () {} -}; - -int main () -{ - base* bp = new derived; - delete bp; - derived *dp = new derived; - delete dp; - - if ((member_destructor_calls != 8) || (middle_destructor_calls != 2)) - printf ("FAIL\n"); - else - printf ("PASS\n"); - - return 0; -} - -member_type::~member_type () -{ - member_destructor_calls++; -} - -base::~base () -{ -} - -middle::~middle () -{ - middle_destructor_calls++; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/eh1.C b/gcc/testsuite/g++.old-deja/g++.brendan/eh1.C deleted file mode 100755 index a668306..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/eh1.C +++ /dev/null @@ -1,62 +0,0 @@ -// Special g++ Options: -O -// PRMS Id: 10776 - -extern "C" void printf (char *, ...); - -class Foo -{ - public: - Foo(int n) : n_(n) { } - int f() { return n_; } - - int badTest(); - int goodTest(); - - private: - - int n_; -}; - -int Foo::badTest() -{ - try { - throw int(99); - } - - catch (int &i) { - n_ = 16; - } - - return n_; - // On the sparc, the return will use a ld [%l0],%i0 instruction. - // However %l0 was clobbered at the end of the catch block. It was - // used to do an indirect call. -} - - -int Foo::goodTest() -{ - int n; - - try { - throw int(99); - } - - catch (int &i) { - n = 16; - } - - return n_; - // The return will use a ld [%l2],%i0 instruction. Since %l2 - // contains the "this" pointer this works. -} - -int main() -{ - Foo foo(5); - foo.goodTest(); - foo.badTest(); - - // the badTest will have failed - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/enum-clash.C b/gcc/testsuite/g++.old-deja/g++.brendan/enum-clash.C deleted file mode 100755 index 68639a1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/enum-clash.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// Special g++ Options: -pedantic-errors -// GROUPS passed arm -enum color {red, yellow, green=20, blue}; -color c = 1; // this should be an error// ERROR - .* -int i = yellow; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/enum1.C b/gcc/testsuite/g++.old-deja/g++.brendan/enum1.C deleted file mode 100755 index 9cc3ed8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/enum1.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed enums -class foo { -public: - enum bar { baz = 1, bat = 7 }; -}; - -class derv : public foo { }; - -int main() -{ - foo::bar x = foo::baz; - derv::bar y = derv::bat; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/enum10.C b/gcc/testsuite/g++.old-deja/g++.brendan/enum10.C deleted file mode 100755 index 5c955d3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/enum10.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// GROUPS passed enums -class Type -{ - public: - - enum name - { - A - }; -}; - -class A -{ -}; - -class B: public A -{ - public: - B(); -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/enum11.C b/gcc/testsuite/g++.old-deja/g++.brendan/enum11.C deleted file mode 100755 index 7705aa3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/enum11.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed enums -class X -{ - enum - { - oneMask = 0x0000FFFF, - twoMask = 0x000F0000, - thiMask = 0xFFF00000, - }; // ERROR - comma - unsigned int foo; - -public: - X (int) : foo (oneMask | twoMask ) {} // No warning - X () : foo (oneMask | twoMask | thiMask) {} // Warning -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/enum12.C b/gcc/testsuite/g++.old-deja/g++.brendan/enum12.C deleted file mode 100755 index 7d4eb7d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/enum12.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// GROUPS passed enums -enum Bool { False, True }; - -enum Bool object; - -struct S -{ - Bool field:1; - - void copy_enum_bit_field () const { object = field; } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/enum13.C b/gcc/testsuite/g++.old-deja/g++.brendan/enum13.C deleted file mode 100755 index ea6dfa7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/enum13.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed enums -enum COLOR { red, green, blue }; - -struct S { - COLOR color:2; -}; - -COLOR color; -S object; - -void fubar () -{ - color = object.color; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/enum14.C b/gcc/testsuite/g++.old-deja/g++.brendan/enum14.C deleted file mode 100755 index 192a2b4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/enum14.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// Special g++ Options: -fshort-enums -// GROUPS passed enums - enum E { A = 0x80000000 }; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/enum2.C b/gcc/testsuite/g++.old-deja/g++.brendan/enum2.C deleted file mode 100755 index 1c5c50b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/enum2.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// GROUPS passed enums -class foo { -public: - enum bar { baz = 1, bat = 7 }; -}; - -class foo2 { -public: - enum bar2 { baz2 = 1, bat2 = 7 }; -}; - -class derv : public foo, public foo2 { }; - -int main() -{ - foo::bar x = foo::baz; - derv::bar2 y = derv::bat2; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/enum3.C b/gcc/testsuite/g++.old-deja/g++.brendan/enum3.C deleted file mode 100755 index 38b7d3c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/enum3.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed enums -enum foo -{ - x = 0 -}; - -enum bar -{ - // this used to say `x' wasn't a constant, because build_enumerator - // was getting the value of x wrapped around a NOP_EXPR. It now - // strips them off before working on it, so we shouldn't get any - // errors for this. - y = (x + 0x0000) -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/enum4.C b/gcc/testsuite/g++.old-deja/g++.brendan/enum4.C deleted file mode 100755 index 826ccd3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/enum4.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed enums -class X { -public: - enum { a }; -}; - -enum { b = 1 }; -enum ok { y = b }; -enum notok { z = X::a }; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/enum5.C b/gcc/testsuite/g++.old-deja/g++.brendan/enum5.C deleted file mode 100755 index 32134ef..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/enum5.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// Special g++ Options: -pedantic-errors -// GROUPS passed enums -enum Thing { FIRST, SECOND } ; - -int main() -{ - Thing x = FIRST ; - x = 27 ; // this line should be a type error.// ERROR - .* -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/enum6.C b/gcc/testsuite/g++.old-deja/g++.brendan/enum6.C deleted file mode 100755 index de82148..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/enum6.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed enums -class X { - private: - enum E1 {a1, b1}; - public: - enum E2 {a2, b2}; - }; - -void h(X* p) { - X::E2 e2; - int x2 = X::a2; - - X::E1 e1; - int x1 = X::a1; // Should be rejected, and is.// ERROR - .* - } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/enum7.C b/gcc/testsuite/g++.old-deja/g++.brendan/enum7.C deleted file mode 100755 index 5a397d7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/enum7.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// GROUPS passed enums -enum color { red, green, blue, orange, brown }; - -struct s { - enum color field:2; // ERROR - too small -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/enum8.C b/gcc/testsuite/g++.old-deja/g++.brendan/enum8.C deleted file mode 100755 index d9380ad..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/enum8.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: -// GROUPS passed enums -class foo1 -{ - public: - enum foo1_enum - { - ENUM1, - ENUM2, - }; // ERROR - comma -}; - - -class foo2 -{ - private: - enum foo1::foo1_enum Enum; -}; - - -class foo3 -{ - private: - foo1::foo1_enum Enum; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/enum9.C b/gcc/testsuite/g++.old-deja/g++.brendan/enum9.C deleted file mode 100755 index f04deb1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/enum9.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed enums -enum fig { - figgy, - pudding, -}; // ERROR - comma - -class X { -public: - static fig (*open)(void *thing, const char *filename); - static fig (*parse)(void *thing); -}; - -enum fig (*X::open)(void *thing, const char *filename) = 0; -fig (*X::parse)(void *thing) = 0; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg1.C b/gcc/testsuite/g++.old-deja/g++.brendan/err-msg1.C deleted file mode 100755 index 9450d76..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg1.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// GROUPS passed error-messages -class A { }; - -int i = A::_ter;// ERROR - ._ter.* -int j = A::term;// ERROR - .term.* diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg10.C b/gcc/testsuite/g++.old-deja/g++.brendan/err-msg10.C deleted file mode 100755 index 24ddcaa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg10.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// GROUPS passed error-messages -class foo { -public: - virtual static int f () = 0;// ERROR - member `f' cannot be declared both virtual and static.* -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg11.C b/gcc/testsuite/g++.old-deja/g++.brendan/err-msg11.C deleted file mode 100755 index de5ed8a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg11.C +++ /dev/null @@ -1,3 +0,0 @@ -// Build don't link: -// GROUPS passed error-messages -void foo (mutable int x);// ERROR - non-member `x' cannot be declared `mutable'.* diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg12.C b/gcc/testsuite/g++.old-deja/g++.brendan/err-msg12.C deleted file mode 100755 index 0b59ba0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg12.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// GROUPS passed error-messages -class foo { -public: - friend mutable int x ();// ERROR - non-object member `x' cannot be declared `mutable' -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg2.C b/gcc/testsuite/g++.old-deja/g++.brendan/err-msg2.C deleted file mode 100755 index 0bfb4c2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg2.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// GROUPS passed error-messages -typedef void (*pfv)(double, double); -extern "C" typedef void (*pfv)(double, double);// ERROR - multiple.* diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg3.C b/gcc/testsuite/g++.old-deja/g++.brendan/err-msg3.C deleted file mode 100755 index 1d115e6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg3.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed error-messages -#include <fstream.h> -#include <iomanip.h> - -// This error should not appear: -// bug.C: In method `test::test(const class test &)': -// bug.C:8: field `' not in immediate context - -class test{ -public: - int flags; - test() {}; - }; - -int main() - -{ -return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg4.C b/gcc/testsuite/g++.old-deja/g++.brendan/err-msg4.C deleted file mode 100755 index 72f6150..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg4.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed error-messages -class X { -public: - static int x;// ERROR - previous.* - static int y;// ERROR - previous.* -}; - -unsigned X::x;// ERROR - conflict.* -unsigned X::y;// ERROR - conflict.* diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg5.C b/gcc/testsuite/g++.old-deja/g++.brendan/err-msg5.C deleted file mode 100755 index 37b956c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg5.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// GROUPS passed error-messages -class foo {}; -~foo () {}// ERROR - destructors must be member functions.* diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg6.C b/gcc/testsuite/g++.old-deja/g++.brendan/err-msg6.C deleted file mode 100755 index ce60f0d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg6.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// GROUPS passed error-messages -class foo { -public: - ~bar () {}// ERROR - destructor `bar' must match class name `foo'.* -}; - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg7.C b/gcc/testsuite/g++.old-deja/g++.brendan/err-msg7.C deleted file mode 100755 index 5971806..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg7.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// GROUPS passed error-messages -class foo { -public: - volatile int () {}// ERROR - -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg8.C b/gcc/testsuite/g++.old-deja/g++.brendan/err-msg8.C deleted file mode 100755 index a2ad4df..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg8.C +++ /dev/null @@ -1,3 +0,0 @@ -// Build don't link: -// GROUPS passed error-messages -operator int ;// ERROR - declaration of `operator int' as non-function.* diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg9.C b/gcc/testsuite/g++.old-deja/g++.brendan/err-msg9.C deleted file mode 100755 index 0714de6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/err-msg9.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// GROUPS passed error-messages -class foo { -public: - int ~foo ();// ERROR - return type specification for destructor invalid.* -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/explicit1.C b/gcc/testsuite/g++.old-deja/g++.brendan/explicit1.C deleted file mode 100755 index 148155e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/explicit1.C +++ /dev/null @@ -1,4 +0,0 @@ -// $7.1.2 disallows explicit on anything but declarations of -// constructors ... including friends. -class foo { public: foo(); }; -class bar { public: friend explicit foo::foo(); }; // ERROR - explicit friend diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/friend1.C b/gcc/testsuite/g++.old-deja/g++.brendan/friend1.C deleted file mode 100755 index 9aea460..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/friend1.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// GROUPS passed friends -class A -{ -private: - A () {} - -friend struct B; -}; - -class B -{ -public: - A a; -}; - -B b; - -int main () {} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/friend2.C b/gcc/testsuite/g++.old-deja/g++.brendan/friend2.C deleted file mode 100755 index 5b1333f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/friend2.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed friends -class X { - int a; -friend void friend_set (X*, int); -}; - -void friend_set (X *p, int i) { p->a = i; } - -void f() -{ - X obj; - friend_set (&obj, 10); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/friend3.C b/gcc/testsuite/g++.old-deja/g++.brendan/friend3.C deleted file mode 100755 index 1fa48a8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/friend3.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't link: -// GROUPS passed friends -class B { - - friend class A; - - enum { - bEnum = 1, - }; // ERROR - comma - - int bArray[ bEnum ]; - -public: - void bFunction(int arg[ bEnum ]); -}; - - -class A { - int aMember; - -public: - void aFunction(int a[B::bEnum]) - { - B b; - b.bArray[ B::bEnum ] = aMember; - } -}; - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/friend4.C b/gcc/testsuite/g++.old-deja/g++.brendan/friend4.C deleted file mode 100755 index f19d81a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/friend4.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// GROUPS passed friends -// do_friend should complain that foo was declared as a friend of -// A before A was defined -struct A; -struct B { friend A::foo (); };// ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/groff1.C b/gcc/testsuite/g++.old-deja/g++.brendan/groff1.C deleted file mode 100755 index 179ef30..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/groff1.C +++ /dev/null @@ -1,33 +0,0 @@ -// GROUPS passed groff -/* This should compile properly with the new overloading scheme. */ - -extern "C" void printf (const char *, ...); -extern "C" void exit (int); - -int win = 0; - -class symbol -{ -public: - symbol(const char *p, int how = 0) {} - symbol() {} -}; - -class dictionary -{ -public: - void *lookup(symbol s, void *v=0) { win = 1; } - void *lookup(const char *) {} -}; - -int main() -{ - char buf[2048]; - dictionary exceptions; - unsigned char *tem = new unsigned char[19 + 1]; - - exceptions.lookup (symbol (buf), tem); - - printf (win ? "PASS\n" : "FAIL\n"); - exit (! win); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/init1.C b/gcc/testsuite/g++.old-deja/g++.brendan/init1.C deleted file mode 100755 index 4396906..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/init1.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS passed initialization - class Thing{ - private: - int x,y; - public: - Thing (int v, int q) { x = v; q = y; } - void doit(int); - }; - - Thing t(18,19); diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/init10.C b/gcc/testsuite/g++.old-deja/g++.brendan/init10.C deleted file mode 100755 index 45b2985..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/init10.C +++ /dev/null @@ -1,3 +0,0 @@ -// Build don't link: -// GROUPS passed initialization -struct { int :0; } a; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/init11.C b/gcc/testsuite/g++.old-deja/g++.brendan/init11.C deleted file mode 100755 index 69fd77c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/init11.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// GROUPS passed initialization -struct String { - char * string; - String(const char* st); -}; - -extern char array []; -static String sub = array; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/init12.C b/gcc/testsuite/g++.old-deja/g++.brendan/init12.C deleted file mode 100755 index 7d7c13a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/init12.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// GROUPS passed array-bindings -char * bob(); - -int main() -{ - char a[1][2]; - a[0] = bob();// ERROR - .* -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/init13.C b/gcc/testsuite/g++.old-deja/g++.brendan/init13.C deleted file mode 100755 index 41f0fcf..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/init13.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// GROUPS passed initialization -struct A { - operator int (); -}; - -int i = A(); diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/init2.C b/gcc/testsuite/g++.old-deja/g++.brendan/init2.C deleted file mode 100755 index a9ec6f3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/init2.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: -// GROUPS passed initialization -// this should give an error in require_instantiated_type about not -// being allowed to have an initializer list in an argument list. -int f(int a = {1});// ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/init3.C b/gcc/testsuite/g++.old-deja/g++.brendan/init3.C deleted file mode 100755 index b86c2c7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/init3.C +++ /dev/null @@ -1,38 +0,0 @@ -// GROUPS passed initialization -// p2766: Make sure that members are initialized in order of declaration -// in the class, not in order of specification in the mem-initializer list. - -extern "C" void printf (char *, ...); -extern "C" void exit (int); - -int count = 0; - -void die () { printf ("FAIL\n"); exit (1); } - -class bar1 { -public: - bar1 (int) { if (count != 0) die (); count = 1; } -}; - -class bar2 -{ -public: - bar2 (int) { if (count != 1) die (); count = 2; } -}; - -class foo -{ -public: - bar1 a; - bar2 b; - foo (int, int); -}; - -// bar1 should get built before bar2 -foo::foo (int x, int y) : b(x), a(y) {} - -int main() -{ - foo f (1, 2); - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/init4.C b/gcc/testsuite/g++.old-deja/g++.brendan/init4.C deleted file mode 100755 index c1d3592..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/init4.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: -// GROUPS passed initialization -struct CharList { int i; }; - -const CharList& terminals = { 1 };// ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/init5.C b/gcc/testsuite/g++.old-deja/g++.brendan/init5.C deleted file mode 100755 index 112dcac..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/init5.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// GROUPS passed initialization -int main( int argc, char**argv, char** envp ){ - char* domain = argv[1]; - domain = domain? (char*)"component" : domain; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/init6.C b/gcc/testsuite/g++.old-deja/g++.brendan/init6.C deleted file mode 100755 index e49758a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/init6.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed initialization -class Tag { -public: - Tag(int i):value(i){} - int value; -}; - -extern const Tag myTag; -extern const Tag myTag=9; - -// The compiler should not issue an error on this line; expand_static_init -// should be checking that there's no initializer for this line, and thus -// doesn't need to produce an error. -extern const Tag myTag; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/init7.C b/gcc/testsuite/g++.old-deja/g++.brendan/init7.C deleted file mode 100755 index 033da8f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/init7.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed initialization -struct myChoiceList -{ - int bla; - int blubb; - int brummbrumm; -}; - -extern const myChoiceList foo; - -extern const myChoiceList foo = {1,1,1}; - -// finish_decl should have an exclusion so an error is not produced -// for this line. -extern const myChoiceList foo; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/init8.C b/gcc/testsuite/g++.old-deja/g++.brendan/init8.C deleted file mode 100755 index 4818a41..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/init8.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed initialization -class A -{ -public: - A(const A & a) : i_member(a.i_member) - { - } - A(const int & i) : i_member(i) - { - } - union - { - int i_member; - }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/init9.C b/gcc/testsuite/g++.old-deja/g++.brendan/init9.C deleted file mode 100755 index bad6416..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/init9.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS passed initialization -int FALSE = 0; -class X { -public: - static int FALSE; -}; - -// The compiler should NOT complain about redeclaration of the global -// `FALSE' with this declaration...grokvardecl shouldn't be doing that. -int X::FALSE = 0; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/label1.C b/gcc/testsuite/g++.old-deja/g++.brendan/label1.C deleted file mode 100755 index ff0b87c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/label1.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// GROUPS passed labels -// it should only give 1 error, about using an undefined label -int main(void) { goto dummy; }// ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/label2.C b/gcc/testsuite/g++.old-deja/g++.brendan/label2.C deleted file mode 100755 index bce2112..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/label2.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS passed labels -class X { -public: - X(); -}; -void foo () -{ -X: ::abort(); - goto X; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/line1.C b/gcc/testsuite/g++.old-deja/g++.brendan/line1.C deleted file mode 100755 index d76832e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/line1.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// GROUPS passed error-messages -typedef struct s S;// ERROR - previous.* -struct S { int member:1; }; // the lineno for this should be 2, not 0// ERROR - conflicting types.* diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/misc1.C b/gcc/testsuite/g++.old-deja/g++.brendan/misc1.C deleted file mode 100755 index 666ec25..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/misc1.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// GROUPS passed miscellaneous-bugs -int main( int argc, char**argv, char** envp ){ - char* domain = argv[1]; - domain = domain? (char*)"component" : domain; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/misc10.C b/gcc/testsuite/g++.old-deja/g++.brendan/misc10.C deleted file mode 100755 index 4d96926..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/misc10.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// GROUPS passed miscellaneous -// The compiler shouldn't give a `invalid operands to binary +' for this -// case. -enum flag { OFF, ON }; -enum BOOL { FALSE = (enum flag) 0, TRUE }; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/misc11.C b/gcc/testsuite/g++.old-deja/g++.brendan/misc11.C deleted file mode 100755 index 043f6a5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/misc11.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed miscellaneous -// This should not complain about A::f being abstract. -struct A -{ - virtual int f() = 0; -}; - -struct B : virtual A -{ - virtual int f() { return 1; } - virtual int g() = 0; -}; - -struct C: B -{ - int g() { return 2; } -}; - -C c; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/misc12.C b/gcc/testsuite/g++.old-deja/g++.brendan/misc12.C deleted file mode 100755 index 73db9bf..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/misc12.C +++ /dev/null @@ -1,16 +0,0 @@ -// GROUPS passed miscellaneous -extern "C" void exit (int); -extern "C" int printf (char *, ...); - -/* Make sure cp-lex.c handles these properly--if this links, that means - it emitted the strings instead of __FUNCTION__.0, etc. */ - -int -main() -{ - char *a = __FUNCTION__; - char *b = __PRETTY_FUNCTION__; - - printf ("PASS\n"); - exit (0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/misc13.C b/gcc/testsuite/g++.old-deja/g++.brendan/misc13.C deleted file mode 100755 index 57292a2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/misc13.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// GROUPS passed miscellaneous-bugs -// This should only give warnings from duplicate_decls; it should not get -// errors from push_overloaded_decl as well. - -extern "C" -{ - long unsigned int strlen(char*);// ERROR - warning// ERROR - warning.* -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/misc14.C b/gcc/testsuite/g++.old-deja/g++.brendan/misc14.C deleted file mode 100755 index 024566f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/misc14.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// GROUPS passed miscellaneous-bugs -class X { -public: - enum e { - New,// ERROR - conflicts with other.* - }; // ERROR - comma - - static int New(int);// ERROR - declaration.* -}; - -int main() {} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/misc15.C b/gcc/testsuite/g++.old-deja/g++.brendan/misc15.C deleted file mode 100755 index e4dd53e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/misc15.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// GROUPS passed miscellaneous-bugs -// we shouldn't get any warnings or errors for this code -struct A { - int aa; -}; -struct B : public A { -}; -struct C : public A { -}; -struct D : public C, public B { - void fun() { C::aa = 10; } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/misc16.C b/gcc/testsuite/g++.old-deja/g++.brendan/misc16.C deleted file mode 100755 index 15e3946..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/misc16.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// GROUPS passed miscellaneous-bugs -// Using a typedef causes a compiler error -typedef unsigned int Uint32; - -// Using a define so that there isn't a typedef works OK. -//#define Uint32 unsigned int - -Uint32 func0(Uint32, Uint32) -{ - return 0; -} - -Uint32 func1(Uint32, Uint32) -{ - return 1; -} - -Uint32 (*mf[])(Uint32, Uint32) = {func0, func1}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/misc17.C b/gcc/testsuite/g++.old-deja/g++.brendan/misc17.C deleted file mode 100755 index 987618f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/misc17.C +++ /dev/null @@ -1,36 +0,0 @@ -// Build don't link: -// GROUPS passed miscellaneous-bugs -typedef int va_list; -class ostream; -class String { -public: -operator const char *() const; -}; -class FwtErrorManager { -public: - FwtErrorManager(ostream& err, const char *program); -public: - void form(const char *format, ...); -protected: - const String _program; -private: - FwtErrorManager(const FwtErrorManager&); - void operator=(const FwtErrorManager&); -}; -class FwtProgram: public FwtErrorManager { -public: - FwtProgram(); -}; -class FwtArgOptions { }; -class FwtStdProgram: public FwtProgram, public FwtArgOptions { -public: - FwtStdProgram(); - void usage_if_not_complete(); -}; -void -FwtStdProgram::usage_if_not_complete() -{ - FwtStdProgram& thisp = *this; - thisp.form("%s: error, there were unrecognized options", - (char *) FwtErrorManager::_program);// ERROR - .* -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/misc2.C b/gcc/testsuite/g++.old-deja/g++.brendan/misc2.C deleted file mode 100755 index d9aa99b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/misc2.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS passed miscellaneous-bugs -// Should be fixed by: -// Sun Jun 13 12:55:22 1993 Brendan Kehoe (brendan@lisa.cygnus.com) -// -// * cp-decl.c (grokvardecl): Don't complain about duplicate -// definitions of `extern "C"' declarations (parallelize it with how -// regular `extern' decls are handled). - -extern "C" double _MaXdOuB, _MiNdOuB; -extern "C" double _MaXdOuB, _MiNdOuB; // no error should be emitted for this diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/misc3.C b/gcc/testsuite/g++.old-deja/g++.brendan/misc3.C deleted file mode 100755 index d632cb7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/misc3.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// GROUPS passed miscellaneous-bugs -// The compiler should not error about taking the addr of main in this example. -class fred { -private: - void main () { - } -public: - fred ( ) { - &fred::main; - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/misc4.C b/gcc/testsuite/g++.old-deja/g++.brendan/misc4.C deleted file mode 100755 index 93aea92..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/misc4.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed miscellaneous -// This should not emit an error about A::~A() being redefined; we -// should check that it is a pure virtual. -class A { -public: - virtual ~A() = 0; -}; - -A::~A() {} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/misc5.C b/gcc/testsuite/g++.old-deja/g++.brendan/misc5.C deleted file mode 100755 index 05eeed6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/misc5.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// GROUPS passed miscellaneous -class A { - static A aa[2]; -}; - -A A::aa[2]; // should be completely legal diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/misc6.C b/gcc/testsuite/g++.old-deja/g++.brendan/misc6.C deleted file mode 100755 index b05c1f1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/misc6.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// GROUPS passed miscellaneous -// test that use of `inline' is forbidden when it should be -inline int i;// ERROR - .* -struct c { inline int i; };// ERROR - .* -int foo (inline int i);// ERROR - .* -inline class c; // ERROR - inline -inline typedef int t; // ERROR - inline -class d { inline friend class c; }; // ERROR - inline diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/misc7.C b/gcc/testsuite/g++.old-deja/g++.brendan/misc7.C deleted file mode 100755 index af07d6f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/misc7.C +++ /dev/null @@ -1,15 +0,0 @@ -// GROUPS passed miscellaneous -extern "C" void printf (char *, ...); - -int main() -{ - int i = 0; - // Make sure build_unary_op correctly computes this. - int *pi = &(++i); - *pi = 4; - - if (i != 4) - printf ("FAIL\n"); - else - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/misc8.C b/gcc/testsuite/g++.old-deja/g++.brendan/misc8.C deleted file mode 100755 index b2aa92f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/misc8.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -// GROUPS passed miscellaneous -// used to say invalid lvalue in `&\' -class foo { - int a; - public: - foo(int a); -}; - -foo::foo(int a) -{ - foo::a=a; -} - -int main() -{ -foo obj(4); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/misc9.C b/gcc/testsuite/g++.old-deja/g++.brendan/misc9.C deleted file mode 100755 index 88071c6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/misc9.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't link: -// GROUPS passed miscellaneous -//The program listed below produces the following error during compilation: -// % g++ bug17.cc -// bug17.cc: In method `class Y& Y::operator = (const class Y&)': -// bug17.cc:18: invalid use of non-lvalue array - -class X { -public: - X& operator=(const X&) { return *this; } -}; - -struct S { - char c[10]; - X x; -}; - -class Y { - S s; -public: - const S& f() const { return s; } - - Y& operator=(const Y& _Y) { - s = _Y.s; // this line compiles - s = _Y.f(); // this line does not compile - return *this; - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/mutable1.C b/gcc/testsuite/g++.old-deja/g++.brendan/mutable1.C deleted file mode 100755 index 79157b7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/mutable1.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// GROUPS passed mutable -class foo; -class bar { - mutable foo const *foobar; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/nest1.C b/gcc/testsuite/g++.old-deja/g++.brendan/nest1.C deleted file mode 100755 index 32aab3e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/nest1.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed nested-classes -int x; -class enclose { -public: - int x; - - class inner { - public: - void f (int i) { - x = i;// ERROR - .* - } - }; -}; - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/nest10.C b/gcc/testsuite/g++.old-deja/g++.brendan/nest10.C deleted file mode 100755 index d22e307..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/nest10.C +++ /dev/null @@ -1,30 +0,0 @@ -// Build don't link: -// GROUPS passed nested-classes -class A - { - public: - class B - { - public: - int f (); - void g (int); - private: - int b; - }; - }; - -int A::B::f () - { - int val=b; - return val; - } - -void A::B::g (int val) - { - b = val; - } - - -int main () - { - } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/nest11.C b/gcc/testsuite/g++.old-deja/g++.brendan/nest11.C deleted file mode 100755 index 4a57b38..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/nest11.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// GROUPS passed nested-classes -class A { - int x; - - struct B { - int x; - }; - struct C { - int bug (A::B &y); - }; -}; - -int -A::C::bug (A::B &y) -{ - return y.x; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/nest12.C b/gcc/testsuite/g++.old-deja/g++.brendan/nest12.C deleted file mode 100755 index 19286db..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/nest12.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// GROUPS passed nested-classes -struct enclose { - class nested; - nested *nptr; - class nested { - int x; - }; - void f(); -}; - -void enclose::f() -{ - nptr = new enclose::nested; -} - -void g() -{ - enclose obj; - obj.nptr = new enclose::nested; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/nest13.C b/gcc/testsuite/g++.old-deja/g++.brendan/nest13.C deleted file mode 100755 index 354e7bc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/nest13.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed nested-classes -// The bug here is that wer'e getting a message about inner not -// being a basetype itself. I think it's because it's being -// compared as the "inner" we knew about when it was forward-declared, -// versus the "inner" we know about when it *has* been defined. - -class temp -{ -public: - struct inner; - inner *trump() - { - return (tt); - } - struct inner - { - int ll; - }*tt; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/nest15.C b/gcc/testsuite/g++.old-deja/g++.brendan/nest15.C deleted file mode 100755 index 4a696af..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/nest15.C +++ /dev/null @@ -1,37 +0,0 @@ -// Build don't link: -// GROUPS passed nested-classes -class BDDHeap { -public: - BDDHeap(); - BDDHeap(const BDDHeap&); - - class Page { - public: - int i; - }; - struct Pointer { - Page *page; - unsigned index; - - Pointer(); - Pointer(const BDDHeap& heap); - }; - - struct Half { - struct { - Page *top; - Page **tail; - } inuse; - - Half(); - }; - - Half half[2]; - unsigned halfspace; -}; - -inline -BDDHeap::Pointer::Pointer(const BDDHeap& heap): -page(heap.half[heap.halfspace].inuse.top), -index(0) -{ } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/nest16.C b/gcc/testsuite/g++.old-deja/g++.brendan/nest16.C deleted file mode 100755 index 920ea0b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/nest16.C +++ /dev/null @@ -1,41 +0,0 @@ -// Build don't link: -// GROUPS passed nested-classes -class BDDHeap { -public: - BDDHeap(); - BDDHeap(const BDDHeap&); - - class Page { - public: - int i; - }; - struct Pointer { - Page *page; - unsigned index; - - Pointer(); - Pointer(const BDDHeap& heap); - }; - - struct Half { - struct { - Page *top; - Page **tail; - } inuse; - - Half(); - }; - - Half half[2]; - unsigned halfspace; -}; - -inline -BDDHeap::Pointer::Pointer(const BDDHeap& heap): -page(0), -index(0) -{ - Page *x = heap.half[heap.halfspace].inuse.top; - page = x; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/nest17.C b/gcc/testsuite/g++.old-deja/g++.brendan/nest17.C deleted file mode 100755 index f61c49e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/nest17.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// GROUPS passed nested-classes -class T { -public: - typedef int I; - class Y {int y;}; - typedef Y Z; -}; - -T::I i; -T::Y y; -T::Z z; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/nest18.C b/gcc/testsuite/g++.old-deja/g++.brendan/nest18.C deleted file mode 100755 index e41def4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/nest18.C +++ /dev/null @@ -1,31 +0,0 @@ -// Build don't link: -// GROUPS passed nested-classes -// This is the first line of file ||t2.C||. - -// This code demonstrates what appears to be a bug with nested types. -// In C++, nested typedefs are not supposed to be visible outside -// their class scopes but they apparently are in gcc 2.4.5. This code -// compiles fine in AT&T cfront 3.0.1, but will not compile with gcc. - -// If this class does not precede String, then the code will compile. - -class Another { -public: - typedef int Length; -}; - -// If String does not define typedef int Length, then the code will -// compile. - -class String { -public: - typedef int Length; // remove this and it will compile fine - - int foo(Length length) const; -}; - -int String::foo(Length length) const { - return length; -} - -// File ||t2.C|| ends here. diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/nest19.C b/gcc/testsuite/g++.old-deja/g++.brendan/nest19.C deleted file mode 100755 index efa7ac5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/nest19.C +++ /dev/null @@ -1,40 +0,0 @@ -// Build don't link: -// GROUPS passed nested-classes -// This is the first line of file ||t3.C||. - -// This code demonstrates a variation of the same problem with nested -// types. In C++, nested typedefs are not supposed to be visible -// outside their class scopes but they apparently are in gcc 2.4.5. -// This code compiles fine in AT&T cfront 3.0.1, but gcc rejects it -// with the messages given below. - -// If this class does not precede Expr, then the code will compile. - -class Another { -public: - typedef int Boolean; - enum { FALSE, TRUE }; -}; - -// If Expr does not define typedef int Boolean, then the code will -// compile. - -class Expr { -public: - typedef int Boolean; - enum { FALSE, TRUE }; - void foo(); - void call_something_with(Boolean); -}; - -// t3.C: In method `void Expr::foo ()': -// t3.C:36: uninitialized const `Boolean' -// t3.C:36: parse error before `=' -// t3.C:37: `argument' undeclared (first use this function) -// t3.C:37: (Each undeclared identifier is reported only once -// t3.C:37: for each function it appears in.) - -void Expr::foo() { - const Boolean argument = TRUE; - call_something_with(argument); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/nest2.C b/gcc/testsuite/g++.old-deja/g++.brendan/nest2.C deleted file mode 100755 index 4b55245..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/nest2.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -// GROUPS passed nested-classes -class A { -protected: - class B { - public: - ~B(); - private: - float _datum; - }; -private: - B *_b; -}; - -A::B::~B() -{ - _datum = 8.0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/nest20.C b/gcc/testsuite/g++.old-deja/g++.brendan/nest20.C deleted file mode 100755 index 297b08a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/nest20.C +++ /dev/null @@ -1,30 +0,0 @@ -// Build don't link: -// GROUPS passed nested-classes -// This is the first line of file ||t5.C||. - -// This code initializing an unnamed union inside a class appears to -// be legal C++ input and compiles fine with AT&T cfront 3.0.1, but -// gcc 2.4.5 complains about multiple initializations of the same -// member. - -class Expr { -public: - enum Type { undefined, slong, ulong, ldouble }; - Expr(); - Expr(Type type, const Expr* initializer); -private: - Type type_; - union { - long slong_; - unsigned long ulong_; - long double ldouble_; - }; -}; - -// Construct an undefined expression. - -Expr::Expr() - : - type_(undefined), - slong_(-1) -{} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/nest21.C b/gcc/testsuite/g++.old-deja/g++.brendan/nest21.C deleted file mode 100755 index f32166d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/nest21.C +++ /dev/null @@ -1,95 +0,0 @@ -// GROUPS passed nested-classes -#include <iostream.h> -#include <stdio.h> - -static char output[1024]; - -class BDDRetrace { -public: - class Dump { - public: - virtual Dump& operator<<(char c) = 0; - virtual Dump& operator<<(int i) = 0; - virtual Dump& operator<<(double r) = 0; - }; - - class Dump1: public Dump { - public: - Dump& operator<<(char c); - Dump& operator<<(int i); - Dump& operator<<(double r); - }; -}; - -class Dump2: public BDDRetrace::Dump { -public: - BDDRetrace::Dump& operator<<(char c); - BDDRetrace::Dump& operator<<(int i); - BDDRetrace::Dump& operator<<(double r); -}; - -BDDRetrace::Dump& -BDDRetrace::Dump1::operator<<(char c) -{ char tempout[1024]; - sprintf (tempout, "%s%s%c", output, "1-", c); - strcpy (output, tempout); - return *this; -} - -BDDRetrace::Dump& -BDDRetrace::Dump1::operator<<(int i) -{ char tempout[1024]; - sprintf (tempout, "%s%s%d", output, "1-", i); - strcpy (output, tempout); - return *this; } - -BDDRetrace::Dump& -BDDRetrace::Dump1::operator<<(double r) -{ char tempout[1024]; - sprintf (tempout, "%s%s%1.0f", output, "1-", r); - strcpy (output, tempout); - return *this; } - -BDDRetrace::Dump& -Dump2::operator<<(char c) -{ char tempout[1024]; - sprintf (tempout, "%s%s%c", output, "2-", c); - strcpy (output, tempout); - return *this; } - -BDDRetrace::Dump& -Dump2::operator<<(int i) -{ char tempout[1024]; - sprintf (tempout, "%s%s%d", output, "2-", i); - strcpy (output, tempout); - return *this; } - -BDDRetrace::Dump& -Dump2::operator<<(double r) -{ char tempout[1024]; - sprintf (tempout, "%s%s%1.0f", output, "2-", r); - strcpy (output, tempout); - return *this; } - -int main() -{ - BDDRetrace::Dump1 d1; - Dump2 d2; - - sprintf (output, " "); - - d1 << 'a'; - d1 << 1; - d1 << 1.0; - - d2 << 'a'; - d2 << 1; - d2 << 1.0; - - if (strcmp (output, " 1-a1-11-12-a2-12-1") == 0) - printf ("PASS\n"); - else - printf ("FAIL\n"); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/nest22.C b/gcc/testsuite/g++.old-deja/g++.brendan/nest22.C deleted file mode 100755 index cd26c34..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/nest22.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// GROUPS passed nested-classes -class foo { -public: - typedef int bar; - foo::bar fb; // this line causes a syntax error! -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/nest23.C b/gcc/testsuite/g++.old-deja/g++.brendan/nest23.C deleted file mode 100755 index e18398b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/nest23.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed nested-classes -class CS { -public: - class PS { - }; -}; - -class NCS: public CS { -public: - class S: public PS { - }; -}; - -int i; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/nest24.C b/gcc/testsuite/g++.old-deja/g++.brendan/nest24.C deleted file mode 100755 index 4fcc02c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/nest24.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed nested-classes -struct A { - A (){} -}; - -void foo () -{ - struct B {}; - - struct S : B { - A a; - }; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/nest3.C b/gcc/testsuite/g++.old-deja/g++.brendan/nest3.C deleted file mode 100755 index bedd519..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/nest3.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// GROUPS passed nested-classes -class X { -public: - struct M2 { int m; }; - M2 g(int); -}; - - -X::M2 X::g(int i) { X::M2 m2; return m2; } - -int main() { } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/nest4.C b/gcc/testsuite/g++.old-deja/g++.brendan/nest4.C deleted file mode 100755 index 34631f4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/nest4.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// Special g++ Options: -pedantic-errors -// GROUPS passed nested-classes -class vec { - class blah { }; - - ::vec::blah satan( 0);// ERROR - .* - blah herman( 0);// ERROR - .* -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/new-array.C b/gcc/testsuite/g++.old-deja/g++.brendan/new-array.C deleted file mode 100755 index 3080a58..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/new-array.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -// GROUPS passed operator-new -typedef struct { - int a; -} AStruct; - -void MakeBug() { - AStruct *job; - - // This used to crash, it should now give error(s). - job = new AStruct[];// ERROR - .* - - job = new AStruct; -} - -int main () { - MakeBug(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/new1.C b/gcc/testsuite/g++.old-deja/g++.brendan/new1.C deleted file mode 100755 index 09326d2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/new1.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: -// GROUPS passed operator-new -typedef __SIZE_TYPE__ size_t; -struct x { int a; void * operator new (size_t, void *); }; -struct x * f(void *p) { return new (p) x; } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/new2.C b/gcc/testsuite/g++.old-deja/g++.brendan/new2.C deleted file mode 100755 index 64b3d51..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/new2.C +++ /dev/null @@ -1,67 +0,0 @@ -// GROUPS passed operator-new -// Check that if there is a user defined class-specific operator -// new for a given class, that operator is invoked when a new -// object of the class is requested, regardless of whether or not -// there is also a constructor for the given class, and regardless -// of whether or not the constructor for the given class is defined -// before or after the new operator is even declared. - -extern "C" void printf (char *, ...); - -typedef __SIZE_TYPE__ size_t; - -struct base { - int i; - - base () - { - i = 7; - } - - void * operator new (size_t size); - void operator delete (void*); -}; - -class derived : public base { - int j; -}; - -int new_call_count = 0; -int expected_size = 0; -int errors = 0; - -int main () -{ - base* base_ptr; - derived* derived_ptr; - - expected_size = 4; - base_ptr = new base; - expected_size = 8; - derived_ptr = new derived (); - - if ((new_call_count != 2) || (errors != 0)) - printf ("FAIL\n"); - else - printf ("PASS\n"); - - return 0; -} - -char allocation_space[1000]; -char* allocation_ptr = allocation_space; - -void base::operator delete (void* p) -{ -} - -void *base::operator new (size_t size) -{ - char* return_value = allocation_ptr; - - new_call_count++; - if (size != expected_size) - errors++; - allocation_ptr = allocation_ptr + size; - return (void*) return_value; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/new3.C b/gcc/testsuite/g++.old-deja/g++.brendan/new3.C deleted file mode 100755 index 5f5c988..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/new3.C +++ /dev/null @@ -1,36 +0,0 @@ -// GROUPS passed operator-new -#include <stdio.h> -#include <stdlib.h> -#include <new> - -int pass = 0; - -void *operator new(size_t sz) throw (std::bad_alloc) { - - void *p; - - pass = 1; - p = malloc(sz); - return p; -} - -class A { -public: - A() {} - ~A() {} - - int a; - int b; -}; - - -int main() -{ - A *bb = new A[10]; - delete [] bb; - - if (pass) - printf ("PASS\n"); - else - printf ("FAIL\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/ns1.C b/gcc/testsuite/g++.old-deja/g++.brendan/ns1.C deleted file mode 100755 index d20a9d9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/ns1.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -// GROUPS passed old-abort -struct B -{ - void f(char); - void g(char); -}; - -class C -{ - int g(); -};// ERROR - warning - -class D2 : public B -{ - using B::f; // ok: B is a base of D - using C::g; // error: C isn't a base of D2 -}; // ERROR - type C is not a base type for type D2 diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/operators1.C b/gcc/testsuite/g++.old-deja/g++.brendan/operators1.C deleted file mode 100755 index 89453f9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/operators1.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed operators -struct A { - int x; -}; - -int operator()(A x,float y) { // MUST be a member function// ERROR - .* - return 1; -} - -int main() { - A x; - x(1.0); // ERROR - no match for call -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/operators2.C b/gcc/testsuite/g++.old-deja/g++.brendan/operators2.C deleted file mode 100755 index ece06ef..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/operators2.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// GROUPS passed operators -class X { }; -void operator[](X& a, X& b) {} // MUST be a member function// ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/operators3.C b/gcc/testsuite/g++.old-deja/g++.brendan/operators3.C deleted file mode 100755 index e068de3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/operators3.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// GROUPS passed operators -class X { }; -void operator->(X& a, X& b) {} // MUST be a member function// ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/operators4.C b/gcc/testsuite/g++.old-deja/g++.brendan/operators4.C deleted file mode 100755 index b56d26c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/operators4.C +++ /dev/null @@ -1,121 +0,0 @@ -// GROUPS passed operators -// Check that the & operator, when applied to a global function -// or member function returns a proper value as long as the context -// in which the result of & is used requires a pointer to a specific -// unambigous (function-pointer) type. -// -// This test fails (in test5()) when compiled with g++ 1.34.1. - -extern "C" void printf (char *, ...); - -int function (char c); -int function (float f); - -class base { - int filler; -public: - int method (char); - int method (float); -}; - -void* vp; - -typedef int (*ptr_to_func_of_char)(char); -typedef int (*ptr_to_func_of_float)(float); -typedef int (base::*ptr_to_method_of_char)(char); -typedef int (base::*ptr_to_method_of_float)(float); - -int test2 (void*); -int test3 (void*); -int test4 (void*); -int test5 (void*); - -base* base_ptr; - -int fail () -{ - printf ("FAIL\n"); - return 1; -} - -int main () -{ - base_ptr = new base; - - ptr_to_func_of_char p0 = &function; - vp = (void*) p0; - if (test2 (vp)) - return fail (); - ptr_to_func_of_float p1 = &function; - vp = (void*) p1; - if (test3 (vp)) - return fail (); - ptr_to_method_of_char p2 = &base::method; - vp = (void*) p2; // ERROR - - if (test4 (vp)) - return fail (); - ptr_to_method_of_float p3 = &base::method; - vp = (void*) p3; // ERROR - - if (test5 (vp)) - return fail (); - - printf ("PASS\n"); - return 0; -} - -int test2 (void* vp) -{ - char ch = 'x'; - - return (((ptr_to_func_of_char)vp)(ch) != 9901); -} - -int test3 (void* vp) -{ - float flt = 9.9; - - return (((ptr_to_func_of_float)vp)(flt) != 9902); -} - -int test4 (void* vp) -{ - char ch = 'x'; - ptr_to_method_of_char p = (ptr_to_method_of_char) vp; // ERROR - bad type conversion - - return ((base_ptr->*p)(ch) != 9904); -} - -int test5 (void* vp) -{ - float flt = 9.9; - ptr_to_method_of_float p = (ptr_to_method_of_float) vp; // ERROR - bad type conversion - - if ((base_ptr->*p)(flt) != 9905) { - return 1; - } else - return 0; -} - -int function (char c) -{ - c = c; - return 9901; -} - -int function (float f) -{ - f = f; - return 9902; -} - -int base::method (char c) -{ - c = c; - return 9904; -} - -int base::method (float f) -{ - f = f; - return 9905; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/operators5.C b/gcc/testsuite/g++.old-deja/g++.brendan/operators5.C deleted file mode 100755 index 84c09a2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/operators5.C +++ /dev/null @@ -1,52 +0,0 @@ -// GROUPS passed operators -// Check that operators may be (directly) recursive. - -extern "C" void printf (char *, ...); - -struct base { - int i; -}; - -base base_variable; - -base operator+ (const base& left, const base& right) -{ - base ret_val; - - ret_val.i = left.i + right.i; - return ret_val; -} - -base operator- (const base& left, int right) -{ - base ret_val; - - ret_val.i = left.i - right; - return ret_val; -} - -// Define the unary ! operator for class base to be the fibonachi -// operator. - -base operator! (const base& right) -{ - if (right.i < 2) - return right; - else - return ((!(right-1)) + (!(right-2))); -} - -int main () -{ - base k; - - k.i = 15; - k = !k; // fib it! - - if (k.i != 610) - printf ("FAIL\n"); - else - printf ("PASS\n"); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/operators6.C b/gcc/testsuite/g++.old-deja/g++.brendan/operators6.C deleted file mode 100755 index c0c2318..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/operators6.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS passed operators -class a { -public: - a* operator->() { return this; } - void p(); -}; - -void a::p() { - operator->(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/operators7.C b/gcc/testsuite/g++.old-deja/g++.brendan/operators7.C deleted file mode 100755 index 7a95221..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/operators7.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// GROUPS passed operators -class A { - char *p; -public: - operator const char *() const { return p; } -}; - -int foo(const A &a) -{ - return (a != 0); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/operators8.C b/gcc/testsuite/g++.old-deja/g++.brendan/operators8.C deleted file mode 100755 index 390f749..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/operators8.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS passed operators -struct A { - char *p; - operator char *(); -}; - -char foo(A a) -{ - return a[0]; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/overload1.C b/gcc/testsuite/g++.old-deja/g++.brendan/overload1.C deleted file mode 100755 index e5040fd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/overload1.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// GROUPS passed overloading -class Foo -{ -public: - int f (void); -}; - -class Bar : public Foo -{ -public: - int f (int); // ERROR - candidates are -}; - -int main () -{ - Bar b; - - b.f ();// ERROR - - b.f (10); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/overload10.C b/gcc/testsuite/g++.old-deja/g++.brendan/overload10.C deleted file mode 100755 index e28d6ea..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/overload10.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: -// GROUPS passed overloading -class Bed { - public: - static void bed_func( - int (*f)(int &, int, int)); -}; -class g_func { -public: - static int save_status; - - // in compute_harshness, we should be using comptypes, not ==, to - // check if this is equivalent to the previous decl; the only - // difference is the default arg - static int rpt_func(int &status, int expand, - int restore_cursor=1 ); -}; - -int main (int argc, - char **argv, - char **envp) -{ - Bed::bed_func(g_func::rpt_func); - return(1); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/overload11.C b/gcc/testsuite/g++.old-deja/g++.brendan/overload11.C deleted file mode 100755 index cbced94..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/overload11.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS passed overloading -class foo_int -{ -public: - int & i; - - foo_int (int &j) : i(j) {}; - void inc () { i++; } - -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/overload2.C b/gcc/testsuite/g++.old-deja/g++.brendan/overload2.C deleted file mode 100755 index 75068da..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/overload2.C +++ /dev/null @@ -1,43 +0,0 @@ -// GROUPS passed overloading -// Check that calls to the correct overloaded virtual -// functions are generated even where the type of the formal -// arguments for the overloadings are similar or related. - -extern "C" void printf (char *, ...); - -int proper_method_called = 0; - -struct base { - int member; - virtual void method (char) - { - } - virtual void method (char *) - { - } -}; - -struct derived : public base { - int member; - virtual void method (char) - { - } - virtual void method (char *) - { - proper_method_called++; - } -}; - -char *message; - -int main () -{ - derived derived_object; - - derived_object.method (message); - - if (proper_method_called != 1) - printf ("FAIL\n"); - else - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/overload3.C b/gcc/testsuite/g++.old-deja/g++.brendan/overload3.C deleted file mode 100755 index baa90fb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/overload3.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't link: -// GROUPS passed overloading -typedef int rutBoolean; - -class rutBigIntRep -{ -public: - friend rutBoolean operator>(const rutBigIntRep& a, const rutBigIntRep& b); - operator rutBoolean() const; -protected: - enum Kluge {kluge}; - rutBigIntRep(Kluge) {} - rutBigIntRep(); - rutBigIntRep(const rutBigIntRep& value); - rutBigIntRep& operator=(const rutBigIntRep& value); -}; - -rutBoolean operator>(const rutBigIntRep& a, const rutBigIntRep& b) { - // This should not result in a warning. It used to warn about the - // conversion from int to enum while exploring the possibility of - // converting `a' via `operator rutBoolean', then using the - // rutBigIntRep(Kluge) constructor. It later realizes it shouldn't - // do this, but the call to build_type_conversion was ending up with - // a warning in convert. - rutBigIntRep diff(a); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/overload4.C b/gcc/testsuite/g++.old-deja/g++.brendan/overload4.C deleted file mode 100755 index 21c3dc8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/overload4.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: -// GROUPS passed overloading - typedef void * (*NewObject) (void); - - class B - { - public: - static void WantsNew (NewObject creator); // ERROR - candidates are - }; - - class A - { - public: - static A * NewOne (void); - - static void InitClass (void) - { - B::WantsNew ( (NewObject) A::NewOne ); - // This used to die in convert_harshness_{ansi,old} cuz it - // didn't know what to do about a void type. - B::WantsNew ( A::NewOne );// ERROR - - } - }; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/overload5.C b/gcc/testsuite/g++.old-deja/g++.brendan/overload5.C deleted file mode 100755 index d71f0c0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/overload5.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: -// GROUPS passed overloading -class Foo -{ -public: - int operator << (const signed char&); - int operator << (const unsigned char&); - int operator << (const short&); - int operator << (const unsigned short&); - int operator << (const long&); - int operator << (const unsigned long&); -}; - -int main () -{ - Foo fd; - - // We fixed convert_harshness_ansi so it considers the call to - // <<(const signed char&) to be a trivial conversion. It used - // to always make it a standard conversion, which made it conflict - // with <<(const unsigned char &), which is really a std conv. - fd << (signed char) 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/overload6.C b/gcc/testsuite/g++.old-deja/g++.brendan/overload6.C deleted file mode 100755 index 84903c1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/overload6.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: -// GROUPS passed overloading -struct temp_string { - temp_string (const unsigned char); -}; - -class String { - public: - String& operator = (temp_string); - String& operator = (const String&); -}; -class S { - public: - operator temp_string & () const; -}; - -S lbuf; - -static void e_r () -{ - String a; - a = lbuf; - return; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/overload7.C b/gcc/testsuite/g++.old-deja/g++.brendan/overload7.C deleted file mode 100755 index ec2685c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/overload7.C +++ /dev/null @@ -1,41 +0,0 @@ -// GROUPS passed overloading -extern "C" void printf (char *, ...); - -struct NoName { - - int first; - int second; -}; - -class Casted { - - public: - - NoName x; - double y; - - Casted ( int _x , double _y ): y(_y) - { - x.first = _x; - x.second = _x*2; - } - - operator NoName() const { return x; } - operator double() const { return y; } -}; - -int main() -{ - Casted c(10,12.34); - - NoName x; - double y; - - x = c; - y = c; - - if (x.first == 10 && x.second == 20 && y == 12.34) - printf ("PASS\n"); - else - printf ("FAIL\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/overload8.C b/gcc/testsuite/g++.old-deja/g++.brendan/overload8.C deleted file mode 100755 index 71d1689..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/overload8.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// GROUPS passed overloading -typedef struct{double re,im;} complex; -class Complex{public:double re,im; - inline void operator=(Complex&X){re=X.re; im=X.im;};}; -void zxcvbnm(int n,...){n=1;} -int main(){complex c; Complex C; -zxcvbnm(1,c); -zxcvbnm(1,C);} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/overload9.C b/gcc/testsuite/g++.old-deja/g++.brendan/overload9.C deleted file mode 100755 index 93a0cbf..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/overload9.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed overloading -class CLogger -{ -public: - void operator() (int,const char *) {}; // ERROR - candidates - void operator() (int,const char *, ...) {}; // ERROR - candidates -} Log; - -class CGLogger : public CLogger -{ -} GLog; - -int main() -{ - Log(1,"Test");// ERROR - call of.* - Log(1,"Test %d",3); - GLog(1,"Test");// ERROR - call of.* - GLog(1,"Test %d",3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/parse1.C b/gcc/testsuite/g++.old-deja/g++.brendan/parse1.C deleted file mode 100755 index 0c62c03..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/parse1.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: -// GROUPS passed parsing -class Try { -private: - char s; -public: - // an escaped double-quote should not call consume_string inside - // reinit_parse_for_block - void mf() { s='\"'; } -}; - -int main() -{ - Try x; - x.mf(); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/parse2.C b/gcc/testsuite/g++.old-deja/g++.brendan/parse2.C deleted file mode 100755 index cd588e1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/parse2.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed parsing -class BitString { -public: - int i; -}; - - -typedef BitString BS; -typedef ::BitString cBS; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/parse3.C b/gcc/testsuite/g++.old-deja/g++.brendan/parse3.C deleted file mode 100755 index 8be64a3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/parse3.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: - -// these are marked as expected errors because they evidence an -// ambiguity in the grammar between expressions and declarations. -// when the parser's been cleaned up or rewritten, these two error -// markers can go away, since they'll no longer occur. - -class A -{ - public: - int high; - unsigned int low; - A operator+(const A in); -}; - -A A::operator+(const A in) -{ - if (high==0) - return A(); // this works - else - return (A()); // this works not // gets bogus error - XFAIL *-*-* -} // gets bogus error - XFAIL *-*-* diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/parse4.C b/gcc/testsuite/g++.old-deja/g++.brendan/parse4.C deleted file mode 100755 index 6526c60..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/parse4.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: - -// this is marked as an expected error because it evidences an -// ambiguity in the grammar between expressions and declarations. -// when the parser's been cleaned up or rewritten, the error -// marker can go away, since it'll no longer occur. - -class B -{ -public: - B( int t ) {} - void f() {} -}; - -int g() { return 0; } // gets bogus error - referenced below XFAIL *-*-* - -int main() -{ - int try1; - B( try1 ).f(); // no syntax error - B b( g() ); // no syntax error - B( ::g() ).f(); // no syntax error - B( g() ).f(); // gets bogus error - treated as decl XFAIL *-*-* -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/parse5.C b/gcc/testsuite/g++.old-deja/g++.brendan/parse5.C deleted file mode 100755 index 81a5fe6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/parse5.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: - -// this is marked as an expected error because it evidences an -// ambiguity in the grammar between expressions and declarations. -// when the parser's been cleaned up or rewritten, the error -// marker can go away, since it'll no longer occur. - -class ptr8 - { -public: - ptr8(unsigned char *string,int len); - }; - -template <unsigned int S> -class buf - { -public: - buf(const ptr8& aRef); - }; - -int main() - { - unsigned char b[3]; - buf<3> b2(ptr8(&b[0],3)); // gets bogus error - XFAIL *-*-* - } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/parse6.C b/gcc/testsuite/g++.old-deja/g++.brendan/parse6.C deleted file mode 100755 index d5ece06..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/parse6.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: - -// this is marked as an expected error because it evidences an -// ambiguity in the grammar between expressions and declarations. -// when the parser's been cleaned up or rewritten, the error -// marker can go away, since it'll no longer occur. - -class A { }; - -int main() { - A a = a; - A b(b); // gets bogus error - XFAIL *-*-* -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/prepost1.C b/gcc/testsuite/g++.old-deja/g++.brendan/prepost1.C deleted file mode 100755 index e1b18bc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/prepost1.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed prefix-postfix -class foo { -public: - operator ++ (); // ERROR - no type or storage class -}; - -int main() -{ - foo x; - - // This should fall back to calling operator++(), and be an error with - // the -pedantic flag. - x++;// ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/prepost2.C b/gcc/testsuite/g++.old-deja/g++.brendan/prepost2.C deleted file mode 100755 index 1e34433..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/prepost2.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed initialization -class foo { -public: - operator ++ (); // ERROR - no type or storage class - operator ++ (int); // ERROR - no type or storage class - operator ++ (char); // illegal// ERROR - .* - operator ++ (short); // illegal// ERROR - .* - operator ++ (long); // illegal// ERROR - .* -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/prepost3.C b/gcc/testsuite/g++.old-deja/g++.brendan/prepost3.C deleted file mode 100755 index 4244e4f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/prepost3.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// GROUPS passed prefix-postfix -class Y { -public: - friend Y operator++ (Y&); - friend Y operator++ (Y&, char); // illegal// ERROR - .* -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/prepost4.C b/gcc/testsuite/g++.old-deja/g++.brendan/prepost4.C deleted file mode 100755 index ac31f91..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/prepost4.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed prefix-postfix -class Y { -public: - friend Y operator++ (Y&); - - // This is legal---it's a good test to make sure that grokfndecl's - // checking of the arguments is sane. - friend Y operator++ (Y&, int); -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/ptolemy1.C b/gcc/testsuite/g++.old-deja/g++.brendan/ptolemy1.C deleted file mode 100755 index 3e3b2df..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/ptolemy1.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: -// GROUPS passed ptolemy-bugs -class Tcl_Interp; - -class PTcl { -public: - PTcl(Tcl_Interp* interp = 0); - ~PTcl(); - int alias(int argc,char** argv); -}; - -typedef int (PTcl::*InterpFuncP)(int,char**); - -struct InterpTableEntry { - char* name; - InterpFuncP func; -}; - - -static InterpTableEntry funcTable[] = { - { "alias" , &PTcl::alias } , - 0, 0 -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/ptolemy2.C b/gcc/testsuite/g++.old-deja/g++.brendan/ptolemy2.C deleted file mode 100755 index 58a10dc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/ptolemy2.C +++ /dev/null @@ -1,69 +0,0 @@ -// GROUPS passed ptolemy-bugs -#include <iostream.h> - -class PTcl { -public: - int dispatcher(int which,int argc,char** argv); - // fns in the table - int one(int argc, char** argv); - int two(int argc, char** argv); - int three(int argc, char** argv); -}; - -// An InterpFuncP is a pointer to an PTcl function that takes an argc-argv -// argument list and returns TCL_OK or TCL_ERROR. - -typedef int (PTcl::*InterpFuncP)(int,char**); - -struct InterpTableEntry { - char* name; - InterpFuncP func; -}; - -// Here is the function table and dispatcher function. -// These macros define entries for the table - -#define quote(x) #x -#define ENTRY(verb) { quote(verb), &PTcl::verb } - -static InterpTableEntry funcTable[] = { - ENTRY(one), - ENTRY(two), - ENTRY(three), - {0, 0} -}; - -int PTcl::dispatcher(int which, int argc, char** argv) { - return (this->*(funcTable[which].func))(argc, argv); -} - -void printargs(char** argv) { -// while (*argv) { -// cout << " " << *argv++; -// } -// cout << "\n"; -} - -int PTcl::one(int, char** argv) { - cout << "FAIL\n"; - printargs(argv); - return 0; -} - -int PTcl::two(int, char** argv) { - cout << "PASS\n"; - printargs(argv); - return 0; -} - -int PTcl::three(int, char** argv) { - cout << "FAIL\n"; - printargs(argv); - return 0; -} - -int main (int argc, char** argv) { - PTcl obj; - obj.dispatcher(1,argc,argv); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/ptrmem1.C b/gcc/testsuite/g++.old-deja/g++.brendan/ptrmem1.C deleted file mode 100755 index 49c9f75..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/ptrmem1.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// GROUPS passed pointers-to-members -class my_class -{ -public: - typedef void func_type (int num); - my_class (int num, func_type* proc); - void dispatch (void); -private: - int _num; - func_type *_proc; -}; - -my_class::my_class (int num, func_type* proc) : _num(num), _proc(proc) -{ -} - -void my_class::dispatch (void) -{ - _proc(_num); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/ptrmem2.C b/gcc/testsuite/g++.old-deja/g++.brendan/ptrmem2.C deleted file mode 100755 index 2af19e0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/ptrmem2.C +++ /dev/null @@ -1,26 +0,0 @@ -// Build don't link: -// GROUPS passed pointers-to-members -struct C { - struct N { - int g1(int); - int g2(int); - }; - - typedef int (N::*pmfn)(int); - - int f1(int); - int f2(int); -}; - -int (C::*f)(int) = &C::f1; - -/* - The compiler should not crash on the line below; this change fixes it: - * cp-tree.c (list_hash_lookup_or_cons): Make sure the type doesn't - have TYPE_PTRMEMFUNC_P set before we try to build its - CLASSTYPE_ID_AS_LIST. -*/ - -C::pmfn h = &C::N::g1; - -int (C::N::*g)(int) = &C::N::g2; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/ptrmem3.C b/gcc/testsuite/g++.old-deja/g++.brendan/ptrmem3.C deleted file mode 100755 index 0f6bf0b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/ptrmem3.C +++ /dev/null @@ -1,32 +0,0 @@ -// Build don't link: -// GROUPS passed pointers-to-members -template<class T> class TemplA { - T t; -}; - - -template<class T> class TemplB { -public: - typedef void (T::*TClassMethod)(); - -private: -/* - This line should not crash cuz of the get_decl_list change in this: - * cp-tree.c (list_hash_lookup_or_cons): Make sure the type doesn't - have TYPE_PTRMEMFUNC_P set before we try to build its - CLASSTYPE_ID_AS_LIST. - (get_decl_list): Likewise, when trying to read it. -*/ - TemplA<TClassMethod> Tmethod; -}; - - -class C { - int a; -}; - -int main(int, char**) { - - TemplB<C> test; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/ptrmem4.C b/gcc/testsuite/g++.old-deja/g++.brendan/ptrmem4.C deleted file mode 100755 index a4f792e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/ptrmem4.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed pointers-to-members -class X { - private: - int i; - public: - X(int k) { i=k; } - int operator=(X &a) { return i = a.i; } - int operator=(int ii) { return i = ii; } -}; -int main(void) -{ - int (X::*op1_ptr)(X&); - op1_ptr = &X::operator=; // g++ gives error - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/recurse.C b/gcc/testsuite/g++.old-deja/g++.brendan/recurse.C deleted file mode 100755 index 639dfb3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/recurse.C +++ /dev/null @@ -1,80 +0,0 @@ -// Build don't link: -// GROUPS passed recursive-aborts -// types -typedef unsigned int DBflag; // for storing user flag value -typedef unsigned long DBoffset; // 32-bit unsigned integer -typedef DBoffset DBsize; // type for storing sizes of objects -typedef unsigned char DBbyte; // 8-bit unsigned char - -class DBlink -{ -protected: - DBbyte link[4]; // hold link in portable MSB first format -public: - DBlink(DBoffset = 0, DBflag = 0); - DBlink &operator=(const DBlink &); - DBlink &operator=(DBoffset); - operator DBoffset(); - operator const DBbyte *() { return link; } - void set_flag() { link[0] |= 0x80; } - void reset_flag() { link[0] &= 0x7f; } - int test_flag() const { return (link[0] & 0x80) != 0; } -}; - -typedef DBlink DBsizerec; // hold data record size in portable format - -// constants -const DBoffset DB_NULL = 0; - -class DBlinkrec -{ -protected: - // offsets are stored with MSB in link[0] - DBlink l; // offset into link file of right child - MSB = red bit - DBlink r; // offset into link file of left child - MSB = delete - DBlink d; // offset into parallel data file - MSB = user flag -public: - DBlinkrec():l(DB_NULL), r(DB_NULL), d(DB_NULL) {} - void make_red() // set link to red - { l.set_flag(); } - void make_black() // set link to black - { l.reset_flag(); } - int is_red() const // indicates whether this is a red link - { return l.test_flag(); } - void set_discard() // set discard flag - { r.set_flag(); } - void reset_discard() // reset discard flag - { r.reset_flag(); } - int is_discarded() const // check discard flag - { return r.test_flag(); } - void set_flag() // set user flag - { d.set_flag(); } - void reset_flag() // reset user flag - { d.reset_flag(); } - int is_flag() const // check user flag - { return d.test_flag(); } - - friend class DataBase; -}; - -class DBpathrec : public DBlinkrec -{ - DBoffset offset; // offset of link record in LNK file -public: - DBpathrec():offset(DB_NULL) { } - DBpathrec(DBoffset off, const DBlinkrec &lr):offset(off), DBlinkrec(lr) {} - operator DBoffset() { return offset; } - DBpathrec &operator=(DBoffset off) { offset = off; return *this; } - DBpathrec &operator=(const DBpathrec &pr) - { offset = pr.offset; (DBlinkrec)*this = (DBlinkrec)pr; return *this; } - - friend class DataBase; -}; - -int main() -{ - DBpathrec a(), b(); - - a = b;// ERROR - non-lvalue in assignment.* -} - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/redecl1.C b/gcc/testsuite/g++.old-deja/g++.brendan/redecl1.C deleted file mode 100755 index 39a432c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/redecl1.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: -// GROUPS passed redeclaration -inline int min(int x, int y) {return x < y ? x : y;} /* 235 */// ERROR - .* -int min(int a, int b); -inline int min(int a, int b) {return (a < b)?a:b;}// ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/redecl2.C b/gcc/testsuite/g++.old-deja/g++.brendan/redecl2.C deleted file mode 100755 index 5894219..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/redecl2.C +++ /dev/null @@ -1,51 +0,0 @@ -// GROUPS passed redeclaration -// Check that if multiple declarations of the same single -// function are present in different places in the same file, -// and if these declarations differ (as allowed) in the number -// of argument defaults provided, that correct values are -// passed at all call points anyway. - -extern "C" void printf (char *, ...); - -void receiver (int ii, int jj); - -void sender_1 () -{ - receiver (3,7); -} - -void receiver (int ii, int jj = 9); - -void sender_2 () -{ - receiver (5); -} - -int ii_sum = 0; -int jj_sum = 0; - -void sender_3 (); - -int main () -{ - sender_1 (); - sender_2 (); - sender_3 (); - if (ii_sum != 13 || jj_sum != 25) - printf ("FAIL\n"); - else - printf ("PASS\n"); - - return 0; -} - -void receiver (int ii, int jj) -{ - ii_sum += ii; - jj_sum += jj; -} - -void sender_3 () -{ - receiver (5); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/redecl3.C b/gcc/testsuite/g++.old-deja/g++.brendan/redecl3.C deleted file mode 100755 index 5987e0e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/redecl3.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: -// GROUPS passed redeclaration -class foo -{ -public: - int bar(int a); -}; - - -void bar(int &a); - -int foo::bar(int a) { - int a = 0; // Should this be an error ?// ERROR - declaration.* - - bar(a); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/reference1.C b/gcc/testsuite/g++.old-deja/g++.brendan/reference1.C deleted file mode 100755 index 84ad6f4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/reference1.C +++ /dev/null @@ -1,53 +0,0 @@ -// Special g++ Options: -w -// GROUPS passed references -// Check that if a reference is initialized to refer to a value -// which is returned from a function call, the actual call to -// the function is only invoked for the original initialization -// of the reference, and not for each subsequent use of the -// reference. -// -// This test fails with G++ 1.35.0- (pre-release). -// Reported 4/4/89 by Kim Smith - -extern "C" void printf (char *, ...); - -struct base { - mutable int data_member; - - base () {} - void function_member () const; -}; - -base base_object; - -base base_returning_function (); - -int call_count = 0; - -int main () -{ - const base& base_ref = base_returning_function (); - - base_ref.function_member (); - base_ref.function_member (); - base_ref.data_member = 99; - - if (call_count == 1) - printf ("PASS\n"); - else - printf ("FAIL\n"); - - return 0; -} - -base base_returning_function () -{ - base local_base_object; - - call_count++; - return local_base_object; -} - -void base::function_member () const -{ -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/rtti1.C b/gcc/testsuite/g++.old-deja/g++.brendan/rtti1.C deleted file mode 100755 index 6dcdff3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/rtti1.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: -// GROUPS passed RTTI -#include <typeinfo> - -struct B { virtual ~B(){} }; -struct D0 : public virtual B { virtual ~D0(){} }; -struct D1 : public virtual D0 { virtual ~D1(){} }; -struct C : public virtual B, public D1 { virtual ~C() { } }; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/scope1.C b/gcc/testsuite/g++.old-deja/g++.brendan/scope1.C deleted file mode 100755 index babbb01..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/scope1.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: -// GROUPS passed scoping -int f (int i) { - if (i) - for (int j = i; j; j--) - ; - return j; // error: j should only be in scope inside the body of `for'// ERROR - .* -} // ERROR - non-void diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/scope2.C b/gcc/testsuite/g++.old-deja/g++.brendan/scope2.C deleted file mode 100755 index fccd1d6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/scope2.C +++ /dev/null @@ -1,29 +0,0 @@ -// Build don't link: -// GROUPS passed scoping -class A -{ - public: - A() {} - ~A() {} - virtual void f() {} -}; - -class B : public A -{ - public: - B() {} - ~B() {} - virtual void f() {} -}; - - -B GLOBAL_B; - -B& foo() {return GLOBAL_B;} - -int main() -{ - // build_scoped_method_call and build_scoped_ref should know how - // to deal with a reference for this - foo().A::f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/scope3.C b/gcc/testsuite/g++.old-deja/g++.brendan/scope3.C deleted file mode 100755 index cf78430..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/scope3.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: -// GROUPS passed scoping -// This is fixed when NEW_CLASS_SCOPING is on. - -template<class T> -class ArrayG { -public: - ArrayG(); -protected: - const unsigned INITIAL; - T* array; -}; - -template<class T> -ArrayG<T>::ArrayG(): -array(new T[INITIAL]) -{ } - -struct X { - struct Correspondence { - int i; - }; - - void fill(ArrayG<Correspondence>& a); -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/scope4.C b/gcc/testsuite/g++.old-deja/g++.brendan/scope4.C deleted file mode 100755 index a6781ab..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/scope4.C +++ /dev/null @@ -1,31 +0,0 @@ -// Build don't link: -// GROUPS passed scoping -class BitString { -public: - int i; - int length() const; -}; - -typedef BitString BS; - -class V { -public: - class BitString { - public: - static int x(const ::BitString& value); - static int y(const class ::BitString& value); // should be parsed ok - static int z(const BS& value); - }; -}; - -int -V::BitString::x(const ::BitString& value) -{ return value.length(); } - -int -V::BitString::y(const class ::BitString& value) // should be parsed ok -{ return value.length(); } - -int -V::BitString::z(const BS& value) -{ return value.length(); } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/scope5.C b/gcc/testsuite/g++.old-deja/g++.brendan/scope5.C deleted file mode 100755 index 7532369..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/scope5.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// GROUPS passed scoping -class Integer { -public: - int i; -}; - -class Type { - enum Class { ENUM, INTEGER }; - - class Description { - public: - - }; - - class Integer: public Description { - public: - ::Integer low; - ::Integer high; - }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/shadow1.C b/gcc/testsuite/g++.old-deja/g++.brendan/shadow1.C deleted file mode 100755 index 6a1d9d1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/shadow1.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: -// GROUPS passed errors -void f( int a) { - int a; // this should be an error now// ERROR - .* - { - int a; - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/sizeof1.C b/gcc/testsuite/g++.old-deja/g++.brendan/sizeof1.C deleted file mode 100755 index c8242eb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/sizeof1.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// Special g++ Options: -pedantic-errors -// GROUPS passed sizeof -// ARM $5.3.2 - -void f() { } - -int -main() -{ - // sizeof may not be applied to a function - int i = sizeof( f);// ERROR - .* - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/sizeof2.C b/gcc/testsuite/g++.old-deja/g++.brendan/sizeof2.C deleted file mode 100755 index ddac679..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/sizeof2.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -// Special g++ Options: -pedantic-errors -// GROUPS passed sizeof -// ARM $5.3.2 - -void f() { } - -struct foo { int bit : 1; }; - -int -main() -{ - // sizeof may not be applied to a bit-field - foo f; - int i = sizeof (f.bit);// ERROR - .* - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/sizeof3.C b/gcc/testsuite/g++.old-deja/g++.brendan/sizeof3.C deleted file mode 100755 index e6972ca..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/sizeof3.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// Special g++ Options: -pedantic-errors -// GROUPS passed sizeof -// ARM $5.3.2 - -class bar; - -int -main() -{ - // sizeof may not be applied to an undefined class - int k = sizeof (bar);// ERROR - .* - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/sizeof4.C b/gcc/testsuite/g++.old-deja/g++.brendan/sizeof4.C deleted file mode 100755 index 62d76c0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/sizeof4.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// Special g++ Options: -pedantic-errors -// GROUPS passed sizeof -// ARM $5.3.2 - -int -main() -{ - // sizeof may not be applied to the type void - int l = sizeof (void);// ERROR - .* - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/sizeof5.C b/gcc/testsuite/g++.old-deja/g++.brendan/sizeof5.C deleted file mode 100755 index 0ef9d9c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/sizeof5.C +++ /dev/null @@ -1,17 +0,0 @@ -// GROUPS passed sizeof -// ARM $5.3.2 - -extern "C" void printf (char *, ...); - -class foo {}; - -int -main () -{ - // The size of any class or class object is larger than zero. - int i = sizeof (foo); - if (i > 0) - printf ("PASS\n"); - else - printf ("FAIL\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/sorry1.C b/gcc/testsuite/g++.old-deja/g++.brendan/sorry1.C deleted file mode 100755 index caa9276..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/sorry1.C +++ /dev/null @@ -1,36 +0,0 @@ -// Build don't link: -// GROUPS passed old-sorry -class a { -public: - int* foo(); -}; - -a aa; -a* ap; - -class b { -public: - int ok(int* p =aa.foo()); - - // dump_init should know what to do with this NON_LVALUE_EXPR - int f(int* p =ap->foo()); -}; - - int -b::ok(int *p) -{ - return 0; -} - - int -b::f(int *p) -{ - return 0; -} - void -bar() -{ - b b; - b.ok(); - b.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/static1.C b/gcc/testsuite/g++.old-deja/g++.brendan/static1.C deleted file mode 100755 index b30c796..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/static1.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// GROUPS passed static -class A { public: int a; };// ERROR - .* -void foo7 () { A::a = 3; }// ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/static2.C b/gcc/testsuite/g++.old-deja/g++.brendan/static2.C deleted file mode 100755 index 8fd5ffc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/static2.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// GROUPS passed static -class A -{ - public: - void member(void) - { - } - - static void staticMember() - { - member (); // illegal, no object for calling non-static method// ERROR - .* - } -}; - -int main() -{ - A::staticMember(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/static3.C b/gcc/testsuite/g++.old-deja/g++.brendan/static3.C deleted file mode 100755 index 5c52f0e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/static3.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed static -class foo{ -public: - static void bar( int i ){ value = i; } - static int value;// ERROR - .* -}; - -const int foo::value = 0; // should be an error.// ERROR - .* - -int main(){ - foo::bar( 1 ); - return 0; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/synth1.C b/gcc/testsuite/g++.old-deja/g++.brendan/synth1.C deleted file mode 100755 index 5356796..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/synth1.C +++ /dev/null @@ -1,33 +0,0 @@ -// Build don't link: -// Special g++ Options: -pedantic-errors -g -Wall -// GROUPS passed synthetics -// excess errors test - XFAIL sparc64-*-elf -// Check to make sure that g++ doesn't get freaked out about the use -// of generated methods that it supposedly "can't see". - -class Char { -public: - Char(); - Char(char v); - - // synthetic copy-constructor and operator= -private: - char value; -}; - -class XChar: public Char { -public: - XChar(); - XChar(char v, int serial); - - void operator=(const XChar& other); -private: - int serial; -}; - -void -XChar::operator=(const XChar& other) -{ - Char::operator=(other); - // serial stays the same -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template1.C b/gcc/testsuite/g++.old-deja/g++.brendan/template1.C deleted file mode 100755 index e6609fd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template1.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: -// GROUPS passed templates -// g++-2.2.1: member functions returning a template type - - -template <class T> struct list { }; - -struct A -{ - list<int> L; - - list<int> get_list(); - -}; - - -list<int> A::get_list() { return L; } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template11.C b/gcc/testsuite/g++.old-deja/g++.brendan/template11.C deleted file mode 100755 index 4a953a3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template11.C +++ /dev/null @@ -1,47 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class Called> -class aCallback -{ -public: - aCallback(Called& obj, int (Called::*met)()); - - int callback(); - -protected: - -private: - // the object to call - Called& object; - - // the method to apply - int (Called::*method)(); - -}; - -template <class Called> -aCallback<Called>::aCallback(Called& obj, - int (Called::*met)()) : -object(obj), -method(met) -{}; - -template <class Called> -int aCallback<Called>::callback() -{ - return (object.*method)(); -} - -struct myStruct -{ - int action() {return 24;}; -}; - -int main() -{ - myStruct toto; - - aCallback<myStruct> cb(toto, &myStruct::action); - - return cb.callback(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template12.C b/gcc/testsuite/g++.old-deja/g++.brendan/template12.C deleted file mode 100755 index 2165ae2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template12.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: -// GROUPS passed templates -inline void foo (const int &x) {} - -template <class type> -inline void foo (const type &x) {x.eat_this_and_die();} - -int main (int argc, char **argv) {foo (argc);} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template13.C b/gcc/testsuite/g++.old-deja/g++.brendan/template13.C deleted file mode 100755 index 653ef21..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template13.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template<class T> -class ListS { -public: - class Vix { - public: - Vix(); - }; -}; - -template<class T> -ListS<T>::Vix::Vix() -{ } - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template15.C b/gcc/testsuite/g++.old-deja/g++.brendan/template15.C deleted file mode 100755 index b830505..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template15.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template<class T> class Stack { - public: - Stack (int s = 10); //Comment out "= 10" and it will compile - ~Stack(void); //Omitting "void" doesn't help -}; - -template<class T> Stack<T>::~Stack(void) -{ } - -//If this definition comes before the one for ~Stack, the error message -//about redeclaration of `void Stack<int>::~Stack()' will not occur. -template<class T> Stack<T>::Stack(int s) -{ } - -int main () { - Stack<int> stk(10); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template16.C b/gcc/testsuite/g++.old-deja/g++.brendan/template16.C deleted file mode 100755 index ec13a24..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template16.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template<class T> class TList { - typedef void (T::*TVOIDFUNT)(); - typedef T* (T::*TTPFUNT)(T*); -}; - -class A; -class B : TList<A> { }; - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template17.C b/gcc/testsuite/g++.old-deja/g++.brendan/template17.C deleted file mode 100755 index e6c2652..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template17.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// GROUPS passed templates -struct Regex { int i; Regex(char *, int); }; -template<class KEY> -class NDAMName { -public: - static const Regex pattern; - static unsigned sequence_number; -}; - -const Regex NDAMName<'L'>::pattern("^[Ll](.*)$", 1);// ERROR - type/value.* -unsigned NDAMName<'L'>::sequence_number = 0;// ERROR - type/value diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template18.C b/gcc/testsuite/g++.old-deja/g++.brendan/template18.C deleted file mode 100755 index 5c6479c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template18.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template<class T> class X; -typedef X<int> IX; - -template<class T> -class X { -public: - T x; -}; - -struct A { - IX c; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template19.C b/gcc/testsuite/g++.old-deja/g++.brendan/template19.C deleted file mode 100755 index a8b33c1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template19.C +++ /dev/null @@ -1,26 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class T> -class Base -{ -public: - Base() { } -}; - -template <class memberType, class keyType> -class Middle : public Base<memberType> -{ -public: - Middle (keyType const & (*ko) (memberType const &)) - { - } -}; - -// EXCHANGE the following lines for this code to work. -//template <class memberType, class keyType> class Middle; -template <class T, class keyType> class Middle; - -struct Test : public Middle <int, int> -{ - Test(); -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template2.C b/gcc/testsuite/g++.old-deja/g++.brendan/template2.C deleted file mode 100755 index ca60fa7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template2.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class Q> -class Conc { -public: - static int body(); -}; - -template <class Q> -int Conc<Q>::body() {return 0;} - -int main () { - Conc<int> s2; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template20.C b/gcc/testsuite/g++.old-deja/g++.brendan/template20.C deleted file mode 100755 index da26f9a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template20.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class A, class B> class Map; - -class Foo -{ -public: - static Map<int,int> bar; -}; - -template <class A, class B> -class Map -{ -public : - int find(); -}; - -int main() -{ - int z = Foo::bar.find(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template21.C b/gcc/testsuite/g++.old-deja/g++.brendan/template21.C deleted file mode 100755 index 9d61391..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template21.C +++ /dev/null @@ -1,43 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template<class T> -class L { -public: - L(); - - T x[30]; - int doit(int i) const; -}; - -#ifdef BUG -template<class T> -int -L<T>::doit(int i) const -{ - return x[i].z; -} -#endif - -class X { -public: - class Y { - public: - Y(); - Y(int); - - int z; - }; - - L<Y> ly; -}; - -#ifndef BUG -template<class T> -int -L<T>::doit(int i) const -{ - return x[i].z; -} -#endif - -static X x; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template22.C b/gcc/testsuite/g++.old-deja/g++.brendan/template22.C deleted file mode 100755 index 28c70b3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template22.C +++ /dev/null @@ -1,22 +0,0 @@ -// GROUPS passed templates -extern "C" int printf (const char *, ...); - -template <class T> -class Foo -{ -public: - void func (int const& i); -}; - -template <class T> -void Foo<T>:: -func (int const& i) -{} - - -int main () -{ - Foo<int const> foo; - printf ("PASS\n"); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template23.C b/gcc/testsuite/g++.old-deja/g++.brendan/template23.C deleted file mode 100755 index f38d420..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template23.C +++ /dev/null @@ -1,34 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class T> -class T_Base -{}; - -template <class T> -class T_Derived -: public T_Base<T> -{}; - - -class Base -{ -public: - Base (float name); -}; - -class Derived -: public Base -{ -private: - T_Base<int>* data_; // Fix (1): Change date_ from T_Base<int>* to T_Derived<int>* - -public: - Derived (float name); -}; - - -Derived:: -Derived (float name) -: Base(name), - data_(new T_Derived<int>()) -{} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template24.C b/gcc/testsuite/g++.old-deja/g++.brendan/template24.C deleted file mode 100755 index 34549a0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template24.C +++ /dev/null @@ -1,20 +0,0 @@ -// GROUPS passed templates -extern "C" void printf (char *, ...); - -template <class F> -class Temp -{ - F func_; -public: - Temp (F f) :func_(f) {} -}; - -int func (int h = 1, int z = 2) { return h+z; } - -int main () -{ - Temp<int(*)(int, int)> temp (func); - - printf ("PASS\n"); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template25.C b/gcc/testsuite/g++.old-deja/g++.brendan/template25.C deleted file mode 100755 index 5939fed..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template25.C +++ /dev/null @@ -1,36 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class T> -class Temp_Base -{}; - -template <class T> -class Temp_Derived -: public Temp_Base<T> -{ -public: - Temp_Derived (int i = 10) {} -}; - - -class Base -{ - float r_; -public: - Base (float r) : r_(r) {} -}; - -class Derived -: public Base -{ -private: - Temp_Base<int>* boo_; -public: - Derived (float); -}; - -Derived:: -Derived (float form) -: Base(form), - boo_(new Temp_Derived<int>) -{} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template26.C b/gcc/testsuite/g++.old-deja/g++.brendan/template26.C deleted file mode 100755 index 6dc1555..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template26.C +++ /dev/null @@ -1,31 +0,0 @@ -// Build don't link: -// GROUPS passed templates -class V { - public: - V(); - V(int); - }; - -template <int I> class AA: public virtual V { - public: - AA(); - AA(int); - }; - -template <int I> class BB : public virtual V { - public: - BB(); - BB(int); - }; - -template <int I> AA<I>::AA() {}; -template <int I> AA<I>::AA(int i): V(i) {}; -template <int I> BB<I>::BB() {}; -template <int I> BB<I>::BB(int i) {}; - -class CC : public AA<1>, public BB<2> { - public: - CC(); - CC(int); - }; - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template27.C b/gcc/testsuite/g++.old-deja/g++.brendan/template27.C deleted file mode 100755 index a2649d4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template27.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed templates - template<class K, class V> class MapLS { }; - class String {}; - class X1 { }; - class RefProto { }; - template<class REP> class Ref { }; - - class MapLS<String, Ref<X1> >: public MapLS<String, RefProto> { - public: - ~MapLS(); - }; - - MapLS<String, Ref<X1> >::~MapLS() { } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template28.C b/gcc/testsuite/g++.old-deja/g++.brendan/template28.C deleted file mode 100755 index 48ae7fb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template28.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// GROUPS passed templates -class X { - const char *fptr; -public: - X(const char *ptr) { fptr = ptr; } - operator const char*() { return fptr; } -}; - -int main(){ - X x1("1234"); - X x2(x1+1); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template29.C b/gcc/testsuite/g++.old-deja/g++.brendan/template29.C deleted file mode 100755 index 2c427d9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template29.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// GROUPS passed templates - template <class ElementType> class A - { public: - A(ElementType) {} - ElementType get() const ; - }; - - template <class ElementType> ElementType A<ElementType>::get() const - { return ElementType(0); } - -int main() { const A<short> a(3); } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template3.C b/gcc/testsuite/g++.old-deja/g++.brendan/template3.C deleted file mode 100755 index 3900421..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template3.C +++ /dev/null @@ -1,49 +0,0 @@ -// GROUPS passed templates -extern "C" void printf (char *, ...); -extern "C" void exit (int); - -int count = 0; - -void -die (int x) -{ - if (x != ++count) - { - printf ("FAIL\n"); - exit (1); - } -} - -class A { - public: - void f() const { die (-1); } -}; - - -template <class Item> -class B : public A { - public: - void f() const; -}; - -template <class Item> -inline void B<Item>::f() const { die (1); } - -template <class Item> -class C : public A { - public: - void f() const { die (2); } -}; - - -int main() -{ - B<int> b; - C<int> c; - - b.f(); //- bugged, (A::f() called instead of B::f()) - c.f(); //- works fine (C::f() called) - - printf ("PASS\n"); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template30.C b/gcc/testsuite/g++.old-deja/g++.brendan/template30.C deleted file mode 100755 index 97357d6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template30.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed templates - - template<class K, class V> class MapLS { }; - class String {}; - class X1 { }; - class RefProto { }; - template<class REP> class Ref { }; - - class MapLS<String, Ref<X1> >: public MapLS<String, RefProto> { - public: - ~MapLS(); - }; - - MapLS<String, Ref<X1> >::~MapLS() { } - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template31.C b/gcc/testsuite/g++.old-deja/g++.brendan/template31.C deleted file mode 100755 index 3a1b149..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template31.C +++ /dev/null @@ -1,38 +0,0 @@ -// Build don't link: -// GROUPS passed templates -// PRMS Id: 13218 - -struct C { - int x; - char y; - double z; -}; -C c02; - -template <int* ip> struct A { - int* p; - A() : p(ip) {} -}; - -template <C* cp> struct B { - C* p; - B() : p(cp) {} -}; - -int i00; - -int main(void) -{ - A<&i00> a00; - - extern int i01; - A<&i01> a01; - - B<&c02> b02; - - extern C c03; - B<&c03> b03; -} - -int i01; -C c03; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template4.C b/gcc/testsuite/g++.old-deja/g++.brendan/template4.C deleted file mode 100755 index 318cd2e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template4.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS passed templates -// This used to be a circularity in chainon. -template <class ARG> struct TMPL { - typedef int ARG::*ARG_data_member_ptr; - typedef void (ARG::*ARG_func_member_ptr) (); -}; - -struct S { }; - -TMPL<S> object; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template5.C b/gcc/testsuite/g++.old-deja/g++.brendan/template5.C deleted file mode 100755 index 39b74d6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template5.C +++ /dev/null @@ -1,48 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template<class T> -class Vector -{ -public: - Vector(int x); - ~Vector(); - T& operator [] (int i); - -private: - T* v; - int sz; -} ; - -template<class T> -Vector<T>::Vector(int x) -{ - sz = x; - v = new T (sz); -} ; - -template<class T> -Vector<T>::~Vector() - { delete [] v; } ; - -template<class T> -T & -Vector<T>::operator [] (int i) - { return v[i]; } ; - -int -main(int, char **) -{ - Vector<int> intvec(3); - - intvec[0] = 1; - intvec[1] = 2; - intvec[2] = 3; - - for (int i = 0; i < 3; i++) - intvec[i]; - - return 0; -} - - - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template6.C b/gcc/testsuite/g++.old-deja/g++.brendan/template6.C deleted file mode 100755 index 96459ca..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template6.C +++ /dev/null @@ -1,30 +0,0 @@ -// Build don't link: -// GROUPS passed templates -struct B { -}; - -struct X : B { - ~X (); -}; - -struct Request { - X s; -}; - -template <class ET> class TC { - ET data; -}; - -struct TMem { - - ~TMem() {} - - TC<Request> *req; -}; - -struct FIO { - - void init (); - - FIO () { init(); } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template7.C b/gcc/testsuite/g++.old-deja/g++.brendan/template7.C deleted file mode 100755 index 59dc483..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template7.C +++ /dev/null @@ -1,48 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class ET> -class ChainElem { -public: - - ET data; -}; - -template <class ET> -class Chain { -public: - - ChainElem<ET> *first; - - virtual ~Chain() {} - -}; - -struct B { -}; - -struct X : B { - ~X (); -}; - -struct TBNFexpression { -}; - -struct TCaseLabelPair { -}; - -struct TVariant { - Chain<TCaseLabelPair> CaseLabelList; -}; - -struct TCaseConstruct { - Chain<TBNFexpression> TagFieldPrefixes; - Chain<TVariant> Variants; -}; - -struct Production { - X TypeName; -}; - -struct SimpleSyntax { - Chain<Production> Productions; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template8.C b/gcc/testsuite/g++.old-deja/g++.brendan/template8.C deleted file mode 100755 index 80adbe1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template8.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed templates -#include <stdio.h> - -// make sure we accept unions for templates -template<int n> -union Double_alignt{ - double for_alignt; - char array[n]; - -}; - -int main(){ - - - Double_alignt<20000> heap; - - printf(" &heap.array[0] = %d, &heap.for_alignt = %d\n", &heap.array[0], &heap.for_alignt); - -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/template9.C b/gcc/testsuite/g++.old-deja/g++.brendan/template9.C deleted file mode 100755 index c4c9c83..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/template9.C +++ /dev/null @@ -1,20 +0,0 @@ -// GROUPS passed templates -// Test that the compiler will emit the definition of min given just -// the declaration. At one point in the past, it did not. -// Special g++ Options: -fguiding-decls -#include <iostream.h> - -template <class T> inline T min(T a, T b) { return (a < b) ? a : b;}; - -double min(double,double); // this should expand the template - -main () { - int a = 1, b = 2; - double aa = 2.0, bb = 1.2; - cout << min(a,b) << ", " << min(aa,bb) << "\n"; - if (min (a, aa) == a) - cout << "PASS" << endl; - else - cout << "FAIL" << endl; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/temporary1.C b/gcc/testsuite/g++.old-deja/g++.brendan/temporary1.C deleted file mode 100755 index 8c6d4c3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/temporary1.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// GROUPS passed temporaries -#include <stdio.h> - -int main () -{ - int a = 2; - - if (----a == 0) - printf ("a = 0\n"); - - printf ("a = %d\n", a); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/typedef1.C b/gcc/testsuite/g++.old-deja/g++.brendan/typedef1.C deleted file mode 100755 index 2f7aa87..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/typedef1.C +++ /dev/null @@ -1,29 +0,0 @@ -// Build don't link: - -class baseClassA -{ -public: -private: - class internalClassA - { - public: - private: - typedef int privateType; - - privateType memberA; - }; -}; - -class baseClassB -{ -public: -private: - class internalClassA - { - public: - private: - typedef unsigned int privateType; - - privateType memberB; - }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/union1.C b/gcc/testsuite/g++.old-deja/g++.brendan/union1.C deleted file mode 100755 index 7a4df26..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/union1.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed unions -// This is fixed by finish_anon_union doing a string_cst_equal check on -// the DECL_SIZE of the decls, instead of comparing the DECL_SIZE nodes. - unsigned - hash(const double d) - { - static union { - unsigned asint[2]; - double asdouble; - }; - asdouble = d; - return asint[0] ^ asint[1]; - } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/union2.C b/gcc/testsuite/g++.old-deja/g++.brendan/union2.C deleted file mode 100755 index d913ae8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/union2.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// GROUPS passed unions -class B; - -struct A { - A(B* x) : i(x) {} - A() : i(0) {} - - union { - B* i; - B* c; - }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/union3.C b/gcc/testsuite/g++.old-deja/g++.brendan/union3.C deleted file mode 100755 index ad8b840..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/union3.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed unions -union alan { -int a; -char *b; -alan(); -}; - -alan mary; - -alan::alan() -{ - a=0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/visibility1.C b/gcc/testsuite/g++.old-deja/g++.brendan/visibility1.C deleted file mode 100755 index 7d11f87..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/visibility1.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -class foo { -protected: - int i; -}; - -class bar : public foo { -public: - friend void baz (foo *); -}; - -void baz (foo *f) -{ - f->i = 1; // error: i is protected// ERROR - .* -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/visibility10.C b/gcc/testsuite/g++.old-deja/g++.brendan/visibility10.C deleted file mode 100755 index 4eb3cae..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/visibility10.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -struct base -{ - protected: - void base_func() {}// ERROR - .*is protected.* -}; - -struct derived : public base -{ - protected: - void derived_func(base *ptr) { ptr->base_func(); }// ERROR - within this context -}; - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/visibility2.C b/gcc/testsuite/g++.old-deja/g++.brendan/visibility2.C deleted file mode 100755 index 09e0f65..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/visibility2.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -class X { - void g (int); // ERROR - private -public: - void g (double); -}; - -class Y : public X { void f() { g (1); } }; // ERROR - private - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/visibility3.C b/gcc/testsuite/g++.old-deja/g++.brendan/visibility3.C deleted file mode 100755 index 6e84da5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/visibility3.C +++ /dev/null @@ -1,38 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// Used to say: -// manip.cc:17: member `_f' is a private member of class `B<int>' -// manip.cc:17: member `_a' is a private member of class `B<int>' - -class A {}; - -template <class TP> -class B -{ - A &(*_f) (A &, TP); - TP _a; -public: - B (A &(*f) (A &, TP), TP a) : _f (f), _a (a) {} - friend A &operator<< <>(A &o, const B<TP> &m); -}; - -template <class TP> -inline A & -operator<< (A &o, const B<TP> &m) -{ - (*m._f) (o, m._a); - return o; -} - -A &setw (A &, int); -B<int> setw (int n) -{ - return B<int> (setw, n); -} - -A x; - -void f () -{ - x << setw (2); -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/visibility4.C b/gcc/testsuite/g++.old-deja/g++.brendan/visibility4.C deleted file mode 100755 index 1e7aea1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/visibility4.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -template <class T> -class Feld { -public: - Feld(const Feld&) {} -}; - -class Polynom : private Feld<double> { - Polynom(); - friend Polynom f(const Polynom&); -}; - -Polynom f(const Polynom& p) { return p; } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/visibility5.C b/gcc/testsuite/g++.old-deja/g++.brendan/visibility5.C deleted file mode 100755 index a53881a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/visibility5.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -template<int K> class B; -template<int K> class A {int n; friend class B<K>;}; -template<int K> class B {public: void method(A<K>) const;}; -template<int K> void B<K>::method(A<K> X) const {X.n=0;} -typedef B<2> B2; - diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/visibility6.C b/gcc/testsuite/g++.old-deja/g++.brendan/visibility6.C deleted file mode 100755 index 5ca62c0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/visibility6.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -class bottom -{ -public: - int b; -}; -class middle : private bottom -{ -public: - void foo () { b; } -}; -class top : public middle -{ -public: - void bar () { b; }// ERROR - .* -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/visibility7.C b/gcc/testsuite/g++.old-deja/g++.brendan/visibility7.C deleted file mode 100755 index 670547d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/visibility7.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -class X -{ -public: - void fn ();// ERROR - .* -}; -class Y : private X -{}; - -class Unrelated -{ -public: - void foo () { Y y; y.fn (); }// ERROR - .* -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/visibility8.C b/gcc/testsuite/g++.old-deja/g++.brendan/visibility8.C deleted file mode 100755 index a3bb856..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/visibility8.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// Make sure private inheritance affects the visibility of -// static members used in an inherited context. -class foo -{ -public: - static int y; -}; -class foo1 : private foo -{ }; -class foo2 : public foo1 -{ public: - void bar () { y; }// ERROR - .* -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/visibility9.C b/gcc/testsuite/g++.old-deja/g++.brendan/visibility9.C deleted file mode 100755 index c259929..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/visibility9.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -class A { -public: - void aMethod(void) {};// ERROR - .* -}; - -class AA : A { }; - -class B { -public: - void thisMethod() { - AA ana; - ana.aMethod();// ERROR - .* - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/vtables1.C b/gcc/testsuite/g++.old-deja/g++.brendan/vtables1.C deleted file mode 100755 index 984ce18..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/vtables1.C +++ /dev/null @@ -1,42 +0,0 @@ -// GROUPS passed virtual-tables -// Check that virtual function tables are generated and used -// even for struct's/classes which have no explicit constructors. - -extern "C" void printf (char *, ...); - -int base_func_member_1_called = 0; -int derived_func_member_1_called = 0; - -struct base { - virtual void func_member_1 () - { - base_func_member_1_called++; - } -}; - -struct derived : public base { - virtual void func_member_1 () - { - derived_func_member_1_called++; - } - - virtual void func_member_2 () - { - } -}; - -base* bp1; -base* bp2; - -int main () -{ - bp1 = new base; - bp2 = new derived; - - bp1->func_member_1 (); - bp2->func_member_1 (); - - printf ("PASS\n"); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/warnings1.C b/gcc/testsuite/g++.old-deja/g++.brendan/warnings1.C deleted file mode 100755 index 0296362..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/warnings1.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// GROUPS passed warnings -// there should be a warning about foo only defining private methods -class foo { - int bar(); -};// ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/warnings10.C b/gcc/testsuite/g++.old-deja/g++.brendan/warnings10.C deleted file mode 100755 index 78ddf77..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/warnings10.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed warnings -void foo() -{ - int i; - if (1) { - for (int i = 0; i < 10; i++) - ; - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/warnings2.C b/gcc/testsuite/g++.old-deja/g++.brendan/warnings2.C deleted file mode 100755 index 49971d5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/warnings2.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// GROUPS passed warnings -class K { -public: - void f() { - }; // there should be no warning about this semicolon -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/warnings3.C b/gcc/testsuite/g++.old-deja/g++.brendan/warnings3.C deleted file mode 100755 index 14fe997..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/warnings3.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// Special g++ Options: -O2 -Wall -// GROUPS passed warnings -class A { -int i; -public: - void funcA(void) { - funcB(); - } - - // The compiler should not emit a warning about not being - // able to inline this function. - void funcB(void) { - i++; - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/warnings4.C b/gcc/testsuite/g++.old-deja/g++.brendan/warnings4.C deleted file mode 100755 index d733522..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/warnings4.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed warnings -int -main () -{ - register int x; - int * foo = &x; // in C++ it's perfectly legal to do this - - return 0; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/warnings5.C b/gcc/testsuite/g++.old-deja/g++.brendan/warnings5.C deleted file mode 100755 index 5a953fd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/warnings5.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed warnings -enum TypeKind { ATK, BTK } ; - -struct Type { - enum TypeKind kind : 8; - void setBTK(); -}; - -void Type::setBTK() { kind = BTK; } diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/warnings6.C b/gcc/testsuite/g++.old-deja/g++.brendan/warnings6.C deleted file mode 100755 index 785c083..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/warnings6.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// Special g++ Options: -O2 -Wall -ansi -pedantic -// GROUPS passed warnings -// should not emit this warning about func: -// x.C:2: warning: invalid storage class for function `func' -// -template <class T> inline void func(T) -{ -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/warnings7.C b/gcc/testsuite/g++.old-deja/g++.brendan/warnings7.C deleted file mode 100755 index 24e7a2c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/warnings7.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// Special g++ Options: -O2 -Wall -// GROUPS passed warnings -template<class T> -class X { -public: - void kill(unsigned i) - { vec[i].~T(); } - T *vec; -}; - -class Y { }; - -void -x() -{ - X<int> x; - x.kill(0); - X<Y> y; - y.kill(0); -}; diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/warnings8.C b/gcc/testsuite/g++.old-deja/g++.brendan/warnings8.C deleted file mode 100755 index 5599918..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/warnings8.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// Special g++ Options: -Wall -// GROUPS passed warnings -bool foo(unsigned char c) -{ - return (c & 17) != 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.brendan/warnings9.C b/gcc/testsuite/g++.old-deja/g++.brendan/warnings9.C deleted file mode 100755 index c46f2a1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.brendan/warnings9.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// Special g++ Options: -Wall -// GROUPS passed warnings -inline int foo() -{ - return 3; -} diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/891229_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/891229_02.C deleted file mode 100755 index 042096c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/891229_02.C +++ /dev/null @@ -1,24 +0,0 @@ -// g++ 1.36.1 bug 891229_02 - -// g++ limits the scope of names which are declared as typedef names within -// another type to that other type. - -// This conflicts with the (global) scope given to such names by cfront 2.0. - -// Cfront 2.0 passes this test. - -// Note 2/15/94: The standard has changed; this limiting of scope is correct -// behavior. See 9.9. --jason - -// keywords: typedef, nested types, scope - -struct foo { - foo (); - typedef void (*function_p) (void); -}; - -function_p fp; // ERROR - no such type in scope - -foo::foo () {} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/891230_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/891230_01.C deleted file mode 100755 index ac49e0b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/891230_01.C +++ /dev/null @@ -1,20 +0,0 @@ -// g++ 1.36.1 bug 891230_01 - -// g++ gives typedefs which are nested within class declarations a scope -// which is local to the class declaration itself. This causes examples -// like the following to get compile-time errors. - -// Cfront 2.0 passes this test. - -// keywords: typedef, nested types, scope - -struct foo { - - typedef foo* foo_p; - void member (foo_p); -}; - -void foo::member (foo_p p) { // gets bogus errors -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900107_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900107_01.C deleted file mode 100755 index 7271f1a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900107_01.C +++ /dev/null @@ -1,37 +0,0 @@ -// g++ 1.36.1 bug 900107_01 - -// Unlike GCC and Cfront 2.0, the g++ 1.36.1 compiler gives struct, union, -// and class declarations which are nested within blocks file scope. - -// Cfront 2.0 passes this test. - -// keywords: block scope, file scope, nested types, tagged types - -class c1 { int c1_member1; }; -struct s1 { int s1_member1; }; -union u1 { int u1_member1; }; -enum e1 { e1_val1 }; -typedef int t1; - -void foo () -{ - class c1 { // gets bogus error - int c1_member1; - } c1_local_object_0; - - struct s1 { // gets bogus error - int s1_member1; - } s1_local_object_0; - - union u1 { // gets bogus error - int u1_member1; - } u1_local_object_0; - - enum e1 { // OK using g++ or GCC, but mishandled by Cfront 2.0. - e1_value1 - } e1_local_object_0; - - typedef int t1; // OK -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900119_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900119_01.C deleted file mode 100755 index 3c93c52..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900119_01.C +++ /dev/null @@ -1,46 +0,0 @@ -// g++ 1.36.1 bug 900119_01 - -// g++ allows initializers to be included in the declaration of members -// of classes, structs, unions (even when -pedantic is used). - -// This is not allowed by the C++ 2.0 Reference Manual or by Cfront 2.0. - -// keywords: member declaration, member initialization - -int global_int; - -class class0 { -public: - int class0_member_0 = 99; /* ERROR - */ - static int class0_member_1 = 99; /* ERROR - */ - int &class0_member_2 = global_int; /* ERROR - */ - - class0 () : class0_member_2 (global_int) { } /* ERROR - */ -}; - - -struct struct0 { - int struct0_member_0 = 99; /* ERROR - */ - static int struct0_member_1 = 99; /* ERROR - */ - int &struct0_member_2 = global_int; /* ERROR - */ - - struct0 () : struct0_member_2 (global_int) { } /* ERROR - */ -}; - -// g++ does not allow unions to have more than one member with an initializer - -union union0 { - int union0_member_0 = 99; /* ERROR - */ -}; - -union union1 { - //static int union1_member_0 = 99; /* definitely illegal (9.5) */ -}; - -union union2 { - int &union2_member_0 = global_int; /* ERROR - */ - - union2 () : union2_member_0 (global_int) { } /* ERROR - */ -}; - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900121_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900121_01.C deleted file mode 100755 index 99ab8f6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900121_01.C +++ /dev/null @@ -1,16 +0,0 @@ -// g++ 1.36.1 bug 900121_01 - -// The following file causes g++ 1.36.1 (and 1.36.2) to abort. - -// Cfront 2.0 passes this test. - -// keywords: abort, incomplete types, reference types, formal parameters - -struct s0; - -void function (struct s0 &arg1, struct s0 &arg2) -{ - arg1 = arg2; // ERROR - causes abort -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900121_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900121_02.C deleted file mode 100755 index c90dfd9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900121_02.C +++ /dev/null @@ -1,49 +0,0 @@ -// g++ 1.36.1 bug 900121_02 - -// Assignment of structs is defined as memberwise assignment, -// however g++ (1.36.2) and Cfront 2.0 differ on the definition -// of assignment for unions. - -// (NOTE: Stroustrup now says that assignment of unions which contain either -// members or sub-members (base classes are not allowed for unions) which -// have non-default assignment operators defined for them will be illegal -// in future.) - -// g++ (1.36.2) on the other hand, accepts this program without errors. - -// keywords: unions, operator=, inheritance, members - -struct s0 { - - int i; - - void operator= (s0 & arg) - { - this->i = arg.i; - } -}; - -struct s1 { - - double d; - - void operator= (s1 & arg) - { - this->d = arg.d; - } -}; - -union u0 { - s0 u0_member_0; // ERROR - - s1 u0_member_1; // ERROR - -}; - -void function () -{ - u0 u0_object_0; - u0 u0_object_1; - - u0_object_0 = u0_object_1; -}; - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900121_05.C b/gcc/testsuite/g++.old-deja/g++.bugs/900121_05.C deleted file mode 100755 index 03155ab..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900121_05.C +++ /dev/null @@ -1,30 +0,0 @@ -// g++ 1.36.1 bug 900121_05 - -// g++ allows unions to have base types (i.e. to be "derived") and it allows -// other types to have unions as base types. Both cases are illegal. - -// g++ curently does not detect such errors. - -// Cfront 2.0 passes this test. - -// keywords: unions, inheritance - -struct s0 { - int s0_member; -}; - -union u0 : public s0 { /* ERROR - union has base class */ - int u0_member_0; - int u0_member_1; -}; - -union u1 { - int u1_member_0; - int u1_member_1; -}; - -struct s1 : public u1 { /* ERROR - base class is a union */ - int s1_member_0; -}; - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900127_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900127_01.C deleted file mode 100755 index 7c24d08..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900127_01.C +++ /dev/null @@ -1,25 +0,0 @@ -// g++ 1.36.1 bug 900127_01 - -// g++ often fails to detect (and issue errors for) ambiguous overload -// situations. In such cases, one of the possibilities is chosen -// (apparently arbitrarily). Errors should be issued instead. - -// Cfront 2.0 passes this test. - -// keywords: function overloading, ambiguity - -void foo (int); -int foo (void); - -typedef int (*f_ptr_t1) (void); -typedef void (*f_ptr_t2) (int); - -void bar (f_ptr_t1); // ERROR - -void bar (f_ptr_t2); // ERROR - - -void function () -{ - bar (foo); // ERROR - ambiguous -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900127_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900127_02.C deleted file mode 100755 index 61cd481..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900127_02.C +++ /dev/null @@ -1,46 +0,0 @@ -// g++ 1.36.1 bug 900127_02 - -// g++ (mostly) keeps separate name spaces for the declarations of data -// objects and functions. - -// This means that a single name may be declared as both a data object and -// a function within a given scope. - -// This fact allows programmers to write code which is not portable to the -// Cfront translator (which keeps a single namespace for these entities). - -// This can also lead to ambiguity when the & (address-of) operator is used. - -// Cfront 2.0 passes this test. - -// keywords: name spaces, overloading - -int global0; // ERROR - -int global0 (); // ERROR - - -int global1 (); // ERROR - xref for below -int global1; // ERROR - caught - -struct struct_0 { - int class_local (); // ERROR - - int class_local; // ERROR - -}; - -struct struct_1 { - int class_local; // ERROR - - int class_local (); // ERROR - -}; - -void function_0 () -{ - int function_0_local; // ERROR - - extern int function_0_local (); // ERROR - -} - -void function_1 () -{ - int function_1_local (); // ERROR - - extern int function_1_local; // ERROR - -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900205_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900205_02.C deleted file mode 100755 index 505792f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900205_02.C +++ /dev/null @@ -1,28 +0,0 @@ -// g++ 1.36.1 bug 900205_02 - -// g++ allows constructors to be defined which do not include -// initializations for reference members of their associated classes. - -// Cfront 2.0 does not allow this. - -// keywords: reference members, constructors, member initialization - -int i; - -class c0 { - int &int_ref; -public: - c0 () /* : int_ref(i) */ { // ERROR - reference needs initializer - } -}; - -class c1 { - int &int_ref; -public: - c1 (); -}; - -c1::c1() /* : int_ref(i) */ { // ERROR - reference needs initializer -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900205_03.C b/gcc/testsuite/g++.old-deja/g++.bugs/900205_03.C deleted file mode 100755 index 4c352c8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900205_03.C +++ /dev/null @@ -1,48 +0,0 @@ -// g++ 1.36.1 bug 900205_03 - -// Section 6.6.3 of the cfront 2.0 Reference Manual says "A return statement -// without an expression can be used only in functions that do not return -// a value, that is, a function with the return value type void..." - -// Also in 6.6.3: "Flowing off the end of a function is equivalent to a -// return with no value; this is illegal in a value returning function." - -// In contrast to the manual, g++ does not generate ERRORs for cases of -// "flowing off the end" of non-void functions. - -// keywords: return statements, return type, void return, implicit return - -// Special g++ Options: -Wreturn-type -pedantic-errors - -struct struct00 { }; - -int global_function_0 () { -} // ERROR - - -struct00 global_function_1 () { -} // ERROR - - -struct struct0 { - - int struct0_member_function_0 () { - } // ERROR - - - struct0 struct0_member_function_1 () { - } // ERROR - -}; - -struct struct1 { - - int struct1_member_function_0 (); - - struct1 struct1_member_function_1 (); - -}; - -int struct1_member_function_0 () { -} // ERROR - - -struct1 struct1::struct1_member_function_1 () { -} // ERROR - - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900205_04.C b/gcc/testsuite/g++.old-deja/g++.bugs/900205_04.C deleted file mode 100755 index f763480..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900205_04.C +++ /dev/null @@ -1,26 +0,0 @@ -// g++ 1.36.1 bug 900205_04 - -// g++ allows a class for which an implicit default X::X() constructor must -// be created (implicitly by the compiler) to be derived from another class -// which does not have its own default X::X() constructor. This is illegal. - -// Cfront 2.0 passes this test. - -// keywords: default constructor, inheritance - -struct struct0 { - int data_member; - - struct0 (int, void *); // suppresses implicit default constructor -}; - -struct0::struct0 (int, void *) -{ -} - -struct struct0_derived_struct_0 : public struct0 { -}; // ERROR - - -// struct0_derived_struct_0 object; // would give g++ error if compiled - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900207_03.C b/gcc/testsuite/g++.old-deja/g++.bugs/900207_03.C deleted file mode 100755 index 187c070..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900207_03.C +++ /dev/null @@ -1,49 +0,0 @@ -// g++ 1.36.1 bug 900207_03 - -// g++ fails to allow objects of class or struct types to be initialized -// using "constructor syntax" in cases where an implicitly generated copy -// constructor would be invoked for the initialization, and where there is -// no explicitly specified constructor associated with the type of the -// object being initialized. - -// Note that the type of the error changes depending upon whether or not the -// type being initialized has any virtual functions associated with it. - -// Cfront 2.0 passes this test. - -// keywords: implicit copy constructor, initialization - - -// Check construction for a type without virtual function members. - -struct struct0 { - int data_member; -}; - -struct0 struct0_gbl_object0; -struct0 struct0_gbl_object1 (struct0_gbl_object0); // gets bogus error - -void struct0_test () -{ - struct0 struct0_lcl_object1 (struct0_gbl_object0); // gets bogus error -} - -// Check construction for a type with virtual function members. - -struct struct1 { - int data_member; - - virtual void function_member (); -}; - -void struct1::function_member () { } - -struct1 struct1_gbl_object0; -struct1 struct1_gbl_object1 (struct1_gbl_object0); // gets bogus error - -void struct1_test () -{ - struct1 struct1_lcl_object1 (struct1_gbl_object0); // gets bogus error -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900208_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900208_02.C deleted file mode 100755 index 7e99abd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900208_02.C +++ /dev/null @@ -1,17 +0,0 @@ -// g++ 1.36.1 bug 900208_02 - -// g++ does not allow a static member of a class/struct/union to be -// declared as an array without an explicit upper bound. - -// Cfront 2.0 passes this test. - -// keywords: static data members, arrays, dimension, array bound - -class class0 { -public: - static int class0_data_member_0[]; // gets bogus error -}; - -int class0::class0_data_member_0[3] = { 1, 2, 3 }; // gets bogus error - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900208_03.C b/gcc/testsuite/g++.old-deja/g++.bugs/900208_03.C deleted file mode 100755 index 667a174..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900208_03.C +++ /dev/null @@ -1,18 +0,0 @@ -// g++ 1.36.1 bug 900208_03 - -// The Cfront 2.0 reference manual (5.3.3) says "This type must be an -// object type; functions cannot be allocated this way...". - -// g++ fails to detect (at compile time) cases where an attempt is made to -// allocate a function using new. - -// keywords: operator new, function types - -typedef void (func_type) (); - -void global_function_0 () -{ - new func_type; // ERROR - missed by both cfront 2.0 and g++ 1.36.1 -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900208_04.C b/gcc/testsuite/g++.old-deja/g++.bugs/900208_04.C deleted file mode 100755 index bcf0397..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900208_04.C +++ /dev/null @@ -1,20 +0,0 @@ -// g++ 1.36.1 bug 900208_04 - -// The Cfront 2.0 reference manual (5.3.3) says "This type must be an -// object type; functions cannot be allocated this way...". - -// g++ fails to detect (at compile time) cases where an attempt is made to -// deallocate a function using delete. - -// Cfront 2.0 passes this test. - -// keywords: operator delete, function types - -typedef void (func_type) (); - -void global_function_1 (func_type *p) -{ - delete p; // ERROR - caught by Cfront 2.0 but not by g++ 1.36.1 -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900209_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900209_01.C deleted file mode 100755 index 59871ab..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900209_01.C +++ /dev/null @@ -1,20 +0,0 @@ -// g++ 1.36.1 bug 900209_01 - -// g++ implicitly casts values whose types are "void*" to other pointer -// types (just as the language rules for C permit). Such implicit -// conversions are not allowed by the Cfront 2.0 Reference Manual -// however. - -// Cfront 2.0 passes this test. - -// keywords: void pointers, type conversions, pointer type conversions - -void * void_pointer_object; -char * char_pointer_object; - -void global_function_0 () -{ - char_pointer_object = void_pointer_object; // ERROR - -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900210_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900210_01.C deleted file mode 100755 index 0a98388..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900210_01.C +++ /dev/null @@ -1,112 +0,0 @@ -// g++ 1.36.1 bug 900210_01 - -// g++ allows pointer type values to be assigned to variables of integal -// types. According to the C++ Reference Manual, this is illegal. - -// Cfront 2.0 passes this test. - -// keywords: pointer types, integral types, implicit type conversions - -int i; -long l; -short s; -char c; -float f; -double d; -long double ld; -enum {enum_value_0} e; - -signed int si; -signed long sl; -signed short ss; -signed char sc; - -unsigned int ui; -unsigned long ul; -unsigned short us; -unsigned char uc; - -void* vp; -char* cp; -int* ip; -enum {enum_value_1} * ep; -struct { int member; } * sp; -void (*fp) (void); - -void global_function () -{ - i = vp; /* ERROR - */ - i = cp; /* ERROR - */ - i = ip; /* ERROR - */ - i = ep; /* ERROR - */ - i = sp; /* ERROR - */ - i = fp; /* ERROR - */ - l = vp; /* ERROR - */ - l = cp; /* ERROR - */ - l = ip; /* ERROR - */ - l = ep; /* ERROR - */ - l = sp; /* ERROR - */ - l = fp; /* ERROR - */ - s = vp; /* ERROR - */ - s = cp; /* ERROR - */ - s = ip; /* ERROR - */ - s = ep; /* ERROR - */ - s = sp; /* ERROR - */ - s = fp; /* ERROR - */ - c = vp; /* ERROR - */ - c = cp; /* ERROR - */ - c = ip; /* ERROR - */ - c = ep; /* ERROR - */ - c = sp; /* ERROR - */ - c = fp; /* ERROR - */ - si = vp; /* ERROR - */ - si = cp; /* ERROR - */ - si = ip; /* ERROR - */ - si = ep; /* ERROR - */ - si = sp; /* ERROR - */ - si = fp; /* ERROR - */ - sl = vp; /* ERROR - */ - sl = cp; /* ERROR - */ - sl = ip; /* ERROR - */ - sl = ep; /* ERROR - */ - sl = sp; /* ERROR - */ - sl = fp; /* ERROR - */ - ss = vp; /* ERROR - */ - ss = cp; /* ERROR - */ - ss = ip; /* ERROR - */ - ss = ep; /* ERROR - */ - ss = sp; /* ERROR - */ - ss = fp; /* ERROR - */ - sc = vp; /* ERROR - */ - sc = cp; /* ERROR - */ - sc = ip; /* ERROR - */ - sc = ep; /* ERROR - */ - sc = sp; /* ERROR - */ - sc = fp; /* ERROR - */ - ui = vp; /* ERROR - */ - ui = cp; /* ERROR - */ - ui = ip; /* ERROR - */ - ui = ep; /* ERROR - */ - ui = sp; /* ERROR - */ - ui = fp; /* ERROR - */ - ul = vp; /* ERROR - */ - ul = cp; /* ERROR - */ - ul = ip; /* ERROR - */ - ul = ep; /* ERROR - */ - ul = sp; /* ERROR - */ - ul = fp; /* ERROR - */ - us = vp; /* ERROR - */ - us = cp; /* ERROR - */ - us = ip; /* ERROR - */ - us = ep; /* ERROR - */ - us = sp; /* ERROR - */ - us = fp; /* ERROR - */ - uc = vp; /* ERROR - */ - uc = cp; /* ERROR - */ - uc = ip; /* ERROR - */ - uc = ep; /* ERROR - */ - uc = sp; /* ERROR - */ - uc = fp; /* ERROR - */ -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900210_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900210_02.C deleted file mode 100755 index f900a86..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900210_02.C +++ /dev/null @@ -1,112 +0,0 @@ -// g++ 1.36.1 bug 900210_02 - -// g++ allows integral type values to be assigned to variables of pointer -// types. According to the C++ Reference Manual, this is illegal. - -// Cfront 2.0 passes this test. - -// keywords: integral types, pointer types, implicit type conversions -// Special Options: -ansi -pedantic-errors -int i; -long l; -short s; -char c; -float f; -double d; -long double ld; -enum {enum_value_0} e; - -signed int si; -signed long sl; -signed short ss; -signed char sc; - -unsigned int ui; -unsigned long ul; -unsigned short us; -unsigned char uc; - -void* vp; -char* cp; -int* ip; -enum {enum_value_1} * ep; -struct { int member; } * sp; -void (*fp) (void); - -void global_function () -{ - vp = i; /* ERROR - */ - vp = l; /* ERROR - */ - vp = s; /* ERROR - */ - vp = c; /* ERROR - */ - vp = si; /* ERROR - */ - vp = sl; /* ERROR - */ - vp = ss; /* ERROR - */ - vp = sc; /* ERROR - */ - vp = ui; /* ERROR - */ - vp = ul; /* ERROR - */ - vp = us; /* ERROR - */ - vp = uc; /* ERROR - */ - cp = i; /* ERROR - */ - cp = l; /* ERROR - */ - cp = s; /* ERROR - */ - cp = c; /* ERROR - */ - cp = si; /* ERROR - */ - cp = sl; /* ERROR - */ - cp = ss; /* ERROR - */ - cp = sc; /* ERROR - */ - cp = ui; /* ERROR - */ - cp = ul; /* ERROR - */ - cp = us; /* ERROR - */ - cp = uc; /* ERROR - */ - ip = i; /* ERROR - */ - ip = l; /* ERROR - */ - ip = s; /* ERROR - */ - ip = c; /* ERROR - */ - ip = si; /* ERROR - */ - ip = sl; /* ERROR - */ - ip = ss; /* ERROR - */ - ip = sc; /* ERROR - */ - ip = ui; /* ERROR - */ - ip = ul; /* ERROR - */ - ip = us; /* ERROR - */ - ip = uc; /* ERROR - */ - ep = i; /* ERROR - */ - ep = l; /* ERROR - */ - ep = s; /* ERROR - */ - ep = c; /* ERROR - */ - ep = si; /* ERROR - */ - ep = sl; /* ERROR - */ - ep = ss; /* ERROR - */ - ep = sc; /* ERROR - */ - ep = ui; /* ERROR - */ - ep = ul; /* ERROR - */ - ep = us; /* ERROR - */ - ep = uc; /* ERROR - */ - sp = i; /* ERROR - */ - sp = l; /* ERROR - */ - sp = s; /* ERROR - */ - sp = c; /* ERROR - */ - sp = si; /* ERROR - */ - sp = sl; /* ERROR - */ - sp = ss; /* ERROR - */ - sp = sc; /* ERROR - */ - sp = ui; /* ERROR - */ - sp = ul; /* ERROR - */ - sp = us; /* ERROR - */ - sp = uc; /* ERROR - */ - fp = i; /* ERROR - */ - fp = l; /* ERROR - */ - fp = s; /* ERROR - */ - fp = c; /* ERROR - */ - fp = si; /* ERROR - */ - fp = sl; /* ERROR - */ - fp = ss; /* ERROR - */ - fp = sc; /* ERROR - */ - fp = ui; /* ERROR - */ - fp = ul; /* ERROR - */ - fp = us; /* ERROR - */ - fp = uc; /* ERROR - */ -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900210_03.C b/gcc/testsuite/g++.old-deja/g++.bugs/900210_03.C deleted file mode 100755 index 8711d86..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900210_03.C +++ /dev/null @@ -1,26 +0,0 @@ -// g++ 1.36.1 bug 900210_03 - -// g++ allows void* type values to be assigned to variables of other -// pointer types. According to the C++ Reference Manual, this is illegal. - -// Cfront 2.0 passes this test. - -// keywords: void pointers, pointer type conversions, implicit type conversions - -void* vp; -char* cp; -int* ip; -enum {enum_value_1} * ep; -struct { int member; } * sp; -void (*fp) (void); - -void global_function () -{ - cp = vp; /* ERROR - */ - ip = vp; /* ERROR - */ - ep = vp; /* ERROR - */ - sp = vp; /* ERROR - */ - fp = vp; /* ERROR - */ -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900210_05.C b/gcc/testsuite/g++.old-deja/g++.bugs/900210_05.C deleted file mode 100755 index fc0ead9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900210_05.C +++ /dev/null @@ -1,37 +0,0 @@ -// g++ 1.36.1 bug 900210_05 - -// Section 18.3 of the 2.0 Reference Manual says "An implementation -// providing { anachronistic features } should also provide a way for -// the user to ensure that they do not occur in a source file." - -// The *only* proper way to "ensure" an absence of anachronstic features -// is for C++ language processors to generate errors (rather than just -// warnings) when such features are used. These errors could perhaps be -// triggered by some set of command line options, or by the absence of -// certain command line options. (For g++, the -pedantic and -traditional -// options come to mind.) - -// The use of errors rather than warnings is important because errors -// usually result in non-zero exit status codes for language processors -// and these non-zero exit stati can be automatically checked during -// normal execution of a Makefile. - -// cfront 2.0 provides the +p option which causes errors to be generated for -// all cases of anachronistic usage. - -// g++ generates neither errors nor warnings for such usage, even when the -// -ansi and -pedantic options are used. - -// Cfront 2.0 passes this test. - -// keywords: anachronism, enum types, integral types, implicit type conversions - -enum enum0 { enum_value_0 } enum0_object; -int int0_object; - -void function () -{ - enum0_object = int0_object; /* ERROR - */ -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900210_06.C b/gcc/testsuite/g++.old-deja/g++.bugs/900210_06.C deleted file mode 100755 index d52f511..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900210_06.C +++ /dev/null @@ -1,25 +0,0 @@ -// g++ 1.36.1 bug 900210_06 - -// g++ allows values of pointer-to-const types to be assigned to variables -// of pointer-to-non-const types. - -// Cfront 2.0 disallows such assignments. - -// g++ also allows values of pointer-to-volatile types to be assigned to -// variables of pointer-to-non-volatile types. - -// Cfront 2.0 *would* disallow this (if it only supported "volatile"). - -// keywords: pointer types, implicit type conversions - -const char *ccp; -volatile char *vcp; -char *cp; - -void function () -{ - cp = ccp; /* ERROR - */ - cp = vcp; /* ERROR - */ -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900210_07.C b/gcc/testsuite/g++.old-deja/g++.bugs/900210_07.C deleted file mode 100755 index 1013058..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900210_07.C +++ /dev/null @@ -1,19 +0,0 @@ -// g++ 1.36.1 bug 900210_07 - -// g++ allows values of pointer-to-signed types to be assigned to variables -// of pointer-to-unsigned types, and vise versa. - -// Cfront 2.0 passes this test. - -// keyowrds: pointer types, implicit type conversions -// Special Options: -ansi -pedantic-errors -signed int *sip; -unsigned int *uip; - -void function () -{ - sip = uip; // ERROR - - uip = sip; // ERROR - -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900210_08.C b/gcc/testsuite/g++.old-deja/g++.bugs/900210_08.C deleted file mode 100755 index 40704d4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900210_08.C +++ /dev/null @@ -1,18 +0,0 @@ -// g++ 1.36.1 bug 900210_08 - -// g++ allows pointer-to-const values to be implicitly converted to -// void* values. This causes a silent loss of the const qualifier. - -// Cfront 2.0 passes this test. - -// keywords: pointer types, implicit type conversions - -const char *ccp; -void *vp; - -void function () -{ - vp = ccp; /* ERROR - */ -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900210_09.C b/gcc/testsuite/g++.old-deja/g++.bugs/900210_09.C deleted file mode 100755 index ce78540..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900210_09.C +++ /dev/null @@ -1,32 +0,0 @@ -// g++ 1.36.1 bug 900210_09 - -// g++ allows pointer to members (both data members and function members) -// to be implicitly converted to void*. - -// Section 4.8 of the Cfront 2.0 Reference Manual disallows such implicit -// conversions. - -// Cfront 2.0 passes this test. - -// keywords: member pointers, void pointers, implicit type conversions - -class class0 { -public: - int class0_data_member_0; - void class0_function_member_0 (); -}; - -int class0::*class0_data_member_pointer; -int (class0::*class0_function_member_pointer) (); - -void *vp; - -void global_function_0 () -{ - vp = class0_data_member_pointer; // ERROR - - vp = class0_function_member_pointer; // ERROR - -} - -int main () { return 0; } - - diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900210_10.C b/gcc/testsuite/g++.old-deja/g++.bugs/900210_10.C deleted file mode 100755 index 26c1721..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900210_10.C +++ /dev/null @@ -1,14 +0,0 @@ -// g++ 1.36.1 bug 900210_10 - -// g++ allows operator[] to be declared as a static member function. -// This is illegal. - -// Cfront 2.0 passes this test. - -// keywords: operator[], static function members - -struct struct0 { - static int operator[] (); /* ERROR - */ -}; - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900211_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900211_01.C deleted file mode 100755 index 75c99b6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900211_01.C +++ /dev/null @@ -1,16 +0,0 @@ -// g++ 1.36.1 bug 900211_01 - -// g++ issues only warnings for calls to previously undeclared functions, -// however such calls are actually errors. - -// Cfront 2.0 passes this test. - -// keywords: undeclared, functions -// Build don't link: - -void global_function_0 () -{ - global_function_1 (); /* ERROR - */ -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900211_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900211_02.C deleted file mode 100755 index d23a9df..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900211_02.C +++ /dev/null @@ -1,24 +0,0 @@ -// g++ 1.36.1 bug 900211_02 - -// g++ allows you to explicitly specify the return type for a type conversion -// operator. - -// The Cfront 2.0 Reference Manual (12.3.2) says that this in not allowed. - -// Cfront 2.0 passes this test. - -// keywords: type conversion operators, return type - -struct struct0 { int member_0; }; - -struct0 struct0_object_0; - -struct struct1 { - struct0 operator struct0 (); /* ERROR - */ -}; - -struct0 struct1::operator struct0 () { // ERROR - - return struct0_object_0; -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900211_03.C b/gcc/testsuite/g++.old-deja/g++.bugs/900211_03.C deleted file mode 100755 index b805f78..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900211_03.C +++ /dev/null @@ -1,14 +0,0 @@ -// g++ 1.36.1 bug 900211_03 - -// The following erroneous code causes g++ to segfault. - -// Cfront 2.0 passes this test. - -// keywords: segfault, operator new, arrays, undeclared, array bound - -void function () -{ - char* new_base = new char[x]; // ERROR - -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900211_04.C b/gcc/testsuite/g++.old-deja/g++.bugs/900211_04.C deleted file mode 100755 index 81bea9e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900211_04.C +++ /dev/null @@ -1,27 +0,0 @@ -// g++ 1.36.1 bug 900211_04 - -// g++ fails to flag as errors attempts to compare pointer values against -// (non-zero) integer values; - -// Since implicit conversions of pointer to integers (or vise versa) are -// illegal, these comparisons are also illegal. - -// Cfront 2.0 passes this test. - -// keywords: comparison operators, pointer types, integral types - -int result; -int i; -char *p; - -void function () -{ - result = i == p; /* ERROR - caught by g++ */ - result = i != p; /* ERROR - caught by g++ */ - result = i > p; /* ERROR - missed */ - result = i < p; /* ERROR - missed */ - result = i >= p; /* ERROR - missed */ - result = i <= p; /* ERROR - missed */ -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900212_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900212_01.C deleted file mode 100755 index 03c41fb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900212_01.C +++ /dev/null @@ -1,38 +0,0 @@ -// g++ 1.36.1 bug 900212_01 - -// g++ fails to flag as errors all attempts to add or subtract integer values -// from pointers-to-member values. - -// Some cases are detected however. - -// Cfront 2.0 passes this test. - -// keywords: pointer arithmetic, member pointers - -struct struct0 { -}; - -int struct0::*p0; -int struct0::*p1; - -int (struct0::*fp0) (); -int (struct0::*fp1) (); - -void global_function_0 () -{ - p0 = p1 + 3; // ERROR - - p0 = p1 - 3; // ERROR - - p1++; /* ERROR - caught by g++ */ - ++p1; /* ERROR - caught by g++ */ - p1--; /* ERROR - caught by g++ */ - --p1; /* ERROR - caught by g++ */ - - fp0 = fp1 + 3; // ERROR - - fp0 = fp1 - 3; // ERROR - - fp1++; /* ERROR - */ - ++fp1; /* ERROR - */ - fp1--; /* ERROR - */ - --fp1; /* ERROR - */ -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900212_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900212_02.C deleted file mode 100755 index d997b61..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900212_02.C +++ /dev/null @@ -1,27 +0,0 @@ -// g++ 1.36.1 bug 900212_02 - -// g++ fails to flag as errors attempts to take the difference of two values -// of some compatible pointer-to-member type. - -// Cfront 2.0 passes this test. - -// keywords: pointer arithmetic, subtraction, member pointers - -struct struct0 { -}; - -int struct0::*p0; -int struct0::*p1; - -int (struct0::*fp0) (); -int (struct0::*fp1) (); - -int result; - -void global_function_0 () -{ - result = (p0 - p1); // ERROR - - result = (fp0 - fp1); // ERROR - -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900212_03.C b/gcc/testsuite/g++.old-deja/g++.bugs/900212_03.C deleted file mode 100755 index 479e32c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900212_03.C +++ /dev/null @@ -1,33 +0,0 @@ -// g++ 1.36.1 bug 900212_03 - -// g++ segfaults on any attempt to use the ->* operator. - -// Cfront 2.0 passes this test. - -// keywords: member pointers, operator->* - -struct struct0 { - int data_member; - void function_member (); -}; - -void struct0::function_member () -{ -} - -int i; - -int struct0::*dmp; -void (struct0::*fmp) (); - -struct0 *ptr; - -void global_function_0 () -{ - i = ptr->*dmp; // causes segfault - (ptr->*fmp) (); // causes segfault - // i = ptr->*(&struct0::data_member); // too complicated for cfront - // (ptr->*(&struct0::function_member)) (); // too complicated for cfront -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900213_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900213_01.C deleted file mode 100755 index 309a419..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900213_01.C +++ /dev/null @@ -1,26 +0,0 @@ -// g++ 1.36.1 bug 900213_01 - -// g++ incorrectly diagnoses the error when an attempt is made to reference -// a non-static data-member without an object indication. - -// Similar attempts to reference non-static function-members are correctly -// diagnosed by g++. - -// Cfront 2.0 passes this test. - -// keywords: non-static members, member pointers, scope resolution - -struct struct0 { - int struct0_data_member_0; /* ERROR - gets error from below */ - int struct0_function_member_0 (); -}; - -int i; - -void global_function_0 () -{ - i = struct0::struct0_data_member_0; /* ERROR - mishandled by g++ */ - //i = struct0::struct0_function_member_0 (); /* gets caught by g++ */ -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900213_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900213_02.C deleted file mode 100755 index c4263f9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900213_02.C +++ /dev/null @@ -1,21 +0,0 @@ -// g++ 1.36.1 bug 900213_02 - -// The following erroneous code causes g++ to abort. - -// Cfront 2.0 passes this test. - -// keywords: abort, member pointers, operator* - -struct struct0 { - int data_member; -}; - -int i; -int struct0::*dmp; - -void global_function_0 () -{ - i = *dmp; // ERROR - causes abort -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900213_03.C b/gcc/testsuite/g++.old-deja/g++.bugs/900213_03.C deleted file mode 100755 index 4e15896..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900213_03.C +++ /dev/null @@ -1,28 +0,0 @@ -// g++ 1.36.1 bug 900213_03 - -// g++ fails to detect an error when the address of a "bound" function is -// assigned to a pointer-to-member-function variable. - -// It does however correctly detect a similar errors for data-members. - -// keywords: bound function, operator&, member pointers -// Build don't link: - -struct struct0 { - int data_member; - int function_member (); -}; - -int i; -int struct0::*dmp; -int (struct0::*fmp) (); - -struct0 *ptr; - -void global_function_0 () -{ - fmp = &ptr->function_member; // ERROR - - //dmp = &ptr->data_member; // caught by g++, missed by cfront -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900214_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900214_01.C deleted file mode 100755 index 3aac764..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900214_01.C +++ /dev/null @@ -1,22 +0,0 @@ -// g++ 1.36.1 bug 900214_01 - -// g++ allows function members of incomplete types to be declared to be -// friends of other types. - -// Cfront 2.0 passes this test. - -// keywords: friends, incomplete types, function members - -struct A; - -struct B { - friend void A::foo(); // ERROR - type A is incomplete -}; - -void A::foo(); /* ERROR - also illegal */ - -struct A { - void foo() {} -}; - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900215_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900215_01.C deleted file mode 100755 index ff16b20..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900215_01.C +++ /dev/null @@ -1,39 +0,0 @@ -// g++ 1.36.1 bug 900215_01 - -// g++ allows the definition of a type conversion operator `operator void' -// for class types, but subsequently fails to generate calls (where needed) -// for such type conversion operators. - -// Cfront 2.0 does generate such calls. - -// The following program exits with status 0 when compiled with Cfront 2.0 -// but exits with status 1 when compiled with g++. - -// Cfront 2.0 passes this test. - -// 4/27/94 (jason): The pre-San Diego working paper prohibits operator -// void, so we can go back to just ignoring void values. - -// keywords: user-defined type conversion operators, void type, explicit casts - -struct struct0 { - - operator void (); // ERROR - operator void -}; - -int exit_status = 1; - -struct0::operator void () -{ // ERROR - operator void - exit_status = 0; -} - -struct struct0 s0_object; - -int test () -{ - (void) s0_object; - return exit_status; -} - -int main () { return test (); } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900215_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900215_02.C deleted file mode 100755 index 269849e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900215_02.C +++ /dev/null @@ -1,47 +0,0 @@ -// g++ 1.36.1 bug 900215_02 - -// g++ allows global objects (which happen to be pointers to members of some -// class X) to be dereferenced without prefix object specifications within -// member functions of class X. - -// In effect, g++ treats any dereference of a pointer-to-member which appears -// within the context of a member function (and which is not preceeded by -// either ->* or .*) as if it had been implicitly prefixed with this->*. - -// The 2.0 Reference Manual only provides that such implicit prefixing -// takes place for *members* of the containing class, and *not* for -// global objects that happen to have certain types (i.e. pointer-to-member -// of the containing class). - -// Also, cfront 2.0 provides implicit this-> prefixes *only* for *members* -// of the containing class. - -// Cfront 2.0 passes this test. - -// keywords: member pointers, this, dereference, members - -struct struct0 { - int data_member; - void function_member (); -}; - -int struct0::*dmp; -int (struct0::*fmp) (); -int i; - -struct struct1 { - int data_member; - - void function_member (); -}; - -void struct0::function_member () -{ - i = (this->*fmp) (); // perfectly legal - for both cfront and g++ - i = this->*dmp; // perfectly legal - for both cfront and g++ - - i = (*fmp) (); // ERROR - - i = *dmp; // ERROR - -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900220_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900220_01.C deleted file mode 100755 index df7e641..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900220_01.C +++ /dev/null @@ -1,36 +0,0 @@ -// g++ 1.36.1 bug 900220_01 - -// Ref: 12.8 - -// Section 12.8 says: - -// "That is, X::operator=() will be generated only if no assignment -// operation is explicitly declared and an object of class X is actually -// assigned an object of class X (or an object of a class derived from X) -// or if the address of X::operator= is taken. - -// g++ does not allow you to take the address of an implicitly generated -// operator= - -// keywords: operator=, implicit copy operator, operator& - -struct struct0 { - int data_member; -}; - -typedef struct0& (struct0::*member_func_t) (const struct0&); - -member_func_t member_func; - -void global_function_0 (member_func_t member_f) -{ // gets bogus error - ref from below -} - -void global_function_1 () -{ - member_func = &struct0::operator=; // gets bogus error - - global_function_0 (&struct0::operator=); // gets bogus error -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900220_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900220_02.C deleted file mode 100755 index cf039f6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900220_02.C +++ /dev/null @@ -1,30 +0,0 @@ -// g++ 1.36.1 bug 900220_02 - -// g++ treats plain `char' and `unsigned char' as different types, however -// it fails to treat `signed char' as being a different type from plain -// `char' as called for by both the ANSI C standard and the C++ reference -// manual. - -// keywords: plain char type, signed char type, unsigned char type, overloading - -void overloaded (char) { -} - -void overloaded (signed char) { // gets bogus error -} - -void overloaded (unsigned char) { -} - -void global_function () -{ - char c = 0; - signed char sc = 0; - unsigned char uc = 0; - - overloaded (c); - overloaded (sc); - overloaded (uc); -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900220_03.C b/gcc/testsuite/g++.old-deja/g++.bugs/900220_03.C deleted file mode 100755 index 532fc84..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900220_03.C +++ /dev/null @@ -1,51 +0,0 @@ -// g++ 1.36.1 bug 900220_03 - -// g++ does not properly disambiguate calls to overloaded functions -// which are nearly identical except that one take a reference to a -// type `T' object and another takes a reference to a type `const T' -// object. - -// (Note that the volatile stuff is commented out here because cfront -// does not yet grok volatile.) - -// Cfront 2.0 passes this test. - -// keywords: references, overloading, type qualifiers, pointers - -int c_call_count = 0; -int cc_call_count = 0; -//int vc_call_count = 0; - -void overloaded (char&) -{ - c_call_count++; -} - -void overloaded (const char&) -{ - cc_call_count++; -} - -//void overloaded (volatile char&) -//{ -// vc_call_count++; -//} - -int test () -{ - char c = 0; - const char cc = 0; - //volatile char vc = 0; - - char& cr = c; - const char& ccr = cc; - //volatile char& vcr = vc; - - overloaded (c); // OK - overloaded (cc); // gets bogus error - //overloaded (vc); // OK - - return (c_call_count != 1 || cc_call_count != 1 /* || vc_call_count != 1 */); -} - -int main () { return test (); } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900221_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900221_01.C deleted file mode 100755 index 92c56fc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900221_01.C +++ /dev/null @@ -1,21 +0,0 @@ -// g++ 1.36.1 bug 900221_01 - -// Ref: 3.2 -// -// Section 3.2 of the C++ 2.0 Reference Manual says: -// -// "Names of formal arguments for a function are treated as if they -// were declared in the outermost block of that function" -// -// g++ does not enforce this treatment. - -// Cfront 2.0 passes this test. - -// keywords: scope, formal parameters - -void function (int arg1) -{ - int arg1; // ERROR - redeclaration of arg1 -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900227_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900227_01.C deleted file mode 100755 index 77ac100..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900227_01.C +++ /dev/null @@ -1,38 +0,0 @@ -// g++ 1.37.1 bug 900227_01 - -// g++ allows pointer type values to be converted to integral types which are -// not actually large enough to hold the converted values. - -// Section 3.3.4 of the ANSI C standard says: - -// A pointer may be converted to an integral type. The size of the -// integer required and the results are implementation defined. If -// the space provided is not long enough, the behavior is undefined. - -// I believe that the only proper thing to do in such cases is to generate -// errors. After all, if the converted value gets truncated, it is not -// likely to be useful after that. - -// Furthermore, as the following example demonstrates, allowing pointers -// to be converted to integral types which are not of sufficient size to -// completely hold the converted values may cause additional troubles. - -// I tried the following code on 5 different machines and it failed on -// all five (unless I also use the GNU assembler and the GNU linker). Three -// of the five (Sun3, Sun4, and Symmetry) got link-time errors about byte -// offset overflows. The other two (368/SystemV and AViiON) got assembly -// time errors about relocatable names used in "constant" expressions. - -// keywords: casts, pointer types, integral types - -// Update 2/10/95: The compiler will now compute these expressions at -// runtime. I think this is in the spirit of the GNU compilers (jason). - -// Special g++ Options: - -int main (); - -short s = (short) &main; -char c = (char) &main; - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900321_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900321_01.C deleted file mode 100755 index 489671f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900321_01.C +++ /dev/null @@ -1,29 +0,0 @@ -// g++ 1.37.1 bug 900321_01 - -// cfront flags ERRORs on each of the lines indicated below. g++ does not -// flag either ERRORs or warnings. - -// Although I cannot find where in the current C++ Reference Manual this -// topic is covered, I am sure that these statements should get ERRORs in -// a "strongly typed" language. - -// Cfront 2.0 passes this test. - -// keywords: array types, array bound, pointers - -int (*ptr_to_array_of_ints)[]; -int (*ptr_to_array_of_3_ints) [3]; -int (*ptr_to_array_of_5_ints) [5]; - -void function_0 () -{ - // we miss the first two because typeck.c (comp_array_types) deems - // it okay if one of the sizes is null - ptr_to_array_of_ints = ptr_to_array_of_3_ints; // ERROR - - ptr_to_array_of_3_ints = ptr_to_array_of_ints; // ERROR - - - ptr_to_array_of_3_ints = ptr_to_array_of_5_ints; // ERROR - - ptr_to_array_of_5_ints = ptr_to_array_of_3_ints; // ERROR - -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900321_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900321_02.C deleted file mode 100755 index d635ba3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900321_02.C +++ /dev/null @@ -1,27 +0,0 @@ -// g++ 1.37.1 bug 900321_02 - -// The following program exits with a non-zero status because the constructor -// is not called 3 times as it should be. This program exits with a zero -// status when compiled with cfront 2.0. - -// Cfront 2.0 passes this test. - -// keywords: arrays, initialization, default constructor, operator new - -int call_count = 0; - -struct struct0 { - struct0 (); -}; - -struct0::struct0 () { call_count++; } - -typedef struct0 array[3]; // known dimension - -int test () -{ - new array; - return (call_count != 3); -} - -int main () { return test (); } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900321_04.C b/gcc/testsuite/g++.old-deja/g++.bugs/900321_04.C deleted file mode 100755 index 5f3d5a1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900321_04.C +++ /dev/null @@ -1,16 +0,0 @@ -// g++ 1.37.1 bug 900321_04 - -// The following code causes g++ to segfault. - -// Cfront 2.0 passes this test. - -// keywords: segfault, object declaration, pointer, array, incomplete type - -struct incomplete; - -void function () -{ - struct incomplete (*ptr)[]; // causes segfault -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900321_05.C b/gcc/testsuite/g++.old-deja/g++.bugs/900321_05.C deleted file mode 100755 index 8f417e8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900321_05.C +++ /dev/null @@ -1,20 +0,0 @@ -// g++ 1.37.1 bug 900321_05 - -// The following code is legal as far as the ANSI C standard, GCC, and -// cfront are concerned, however g++ issues errors for the lines indicated. - -// Cfront 2.0 passes this test. - -// keywords: operator[], pointers, index - -char c; -char *cp; -int i; - -void function () -{ - c = 3["abcdef"]; // gets bogus error - c = i[cp]; // gets bogus error -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900322_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900322_01.C deleted file mode 100755 index 48ae600..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900322_01.C +++ /dev/null @@ -1,61 +0,0 @@ -// g++ 1.37.1 bug 900322_01 - -// ** Old, obsolete commentary: -// ************************************************************************** -// The ANSI C standard, in section 3.1.2.5 (first paragraph) differentiates -// types into three disjoint sets, i.e object types, function types, and -// incomplete types. - -// Also in 3.1.2.5 (page 24) the standard says that the element type of -// an array type is an object type. - -// Later in that same section the standard also notes that array types with -// unknown size are considered incomplete types (page 25). (Struct & union -// types which have only been "forward declared" are also incomplete types.) - -// Some experts infer this to mean that it is not legal to specify or to -// construct an array *type* whose element type is an incomplete type. - -// This interpretation suggests that the statements indicated below contain -// errors. - -// g++ fails to flag all of the indicated statements with errors (even when -// the -pedantic option is used). -// ************************************************************************** - -// The above commentary is wrong. (jason 1998/11/13) -// In fact, the lines marked OK are well-formed; the prohibition is only -// against forming array types with multiple unknown bounds. This prohibition -// is found in 8.3.4 [dcl.array]. - -// It is also ill-formed to create an object of incomplete type. - -// keywords: incomplete types, arrays, element types - -extern int extern_two_d [] []; // ERROR - invalid declaration -int tenative_two_d [] []; // ERROR - caught by g++ -static int static_two_d [] []; // ERROR - caught by g++ - -int (*pointer_to_two_d)[][]; // ERROR - invalid declaration - -void function_0 (int arg [] []) { // ERROR - invalid declaration -} - -typedef int int_one_d_type []; -typedef int_one_d_type int_two_d_type[];// ERROR - invalid declaration - -struct s; - -extern struct s extern_s_array [10]; // OK -struct s tenative_s_array [10]; // ERROR - object with incomplete type -static struct s static_s_array [10]; // ERROR - object with incomplete type - -struct s (*pointer_to_s_array) []; // OK - -void function_1 (struct s arg []) { // OK -} - -typedef struct s s_type; -typedef s_type s_one_d_type [10]; // OK - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900324_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900324_02.C deleted file mode 100755 index 56ff7b7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900324_02.C +++ /dev/null @@ -1,18 +0,0 @@ -// g++ 1.37.1 bug 900324_02 - -// The following erroreous code causes g++ to segfault. - -// Cfront 2.0 passes this test. - -// keywords: segfault, function pointer, conditional operator ?: - -void function_0 (int i) { } - -void (*fp)(void); - -void function_1 () -{ - fp = 1 ? function_0 : fp; // ERROR - -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900324_03.C b/gcc/testsuite/g++.old-deja/g++.bugs/900324_03.C deleted file mode 100755 index 69d9b58..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900324_03.C +++ /dev/null @@ -1,21 +0,0 @@ -// g++ 1.37.1 bug 900324_03 - -// g++ is unable to correctly parse declarations of non-global function-pointer -// variables and/or function-pointer formal parameters. - -// Cfront 2.0 passes this test. - -// keywords: syntax, function pointers, block local, formal - -void (*p0)(); // OK - -void function_0 () -{ - void (*p1)(); // gets bogus errors -} - -void function_1 (void (*p2)()); // gets bogus errors - -void (*function_2 ()) (); // OK - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900324_04.C b/gcc/testsuite/g++.old-deja/g++.bugs/900324_04.C deleted file mode 100755 index c874897..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900324_04.C +++ /dev/null @@ -1,25 +0,0 @@ -// g++ 1.37.1 bug 900324_04 - -// g++ implements an extension which supports the copying of array objects. - -// This extension is not described in the current C++ Reference Manual, and -// it is not implemented by cfront (2.0). - -// g++ should generate errors for the use of this extension when -pedantic -// is used, however it does not. - -// Cfront 2.0 passes this test. - -// keywords: extension, pedantic, arrays, copy - -typedef int int_array[20]; - -int_array ia1; -int_array ia2; - -void function_0 () -{ - ia1 = ia2; // ERROR - gnu extension -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900324_05.C b/gcc/testsuite/g++.old-deja/g++.bugs/900324_05.C deleted file mode 100755 index 32f691d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900324_05.C +++ /dev/null @@ -1,21 +0,0 @@ -// g++ 1.37.1 bug 900324_05 - -// The following erroneous code causes g++ to segfault. - -// Cfront 2.0 passes this test. - -// keywords: segfault, arrays, references, assignment operator= - -typedef int int_array[]; - -extern int_array int_array_object; - -int_array &left = int_array_object; -int_array &right = int_array_object; - -void function () -{ - left = right; // ERROR - causes segfault -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900324_06.C b/gcc/testsuite/g++.old-deja/g++.bugs/900324_06.C deleted file mode 100755 index 5a1938a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900324_06.C +++ /dev/null @@ -1,28 +0,0 @@ -// g++ 1.37.1 bug 900324_06 - -// g++ is unable to use context information (i.e. the required type of the -// expression) to disambiguate a possibly overloaded function name when that -// name is used as either the second or the third operand of a ?: operator. - -// It is also unable to use the fact that the given name is not in fact -// overloaded (and has only one possible interpretation). - -// This results in improper errors being generated. - -// keywords: overloading, function pointers, disambiguation, operator?: - -int i; -void (*p)(); - -void function_0 () -{ -} - -void function_1 () -{ - p = i ? function_0 : 0; // gets bogus error - p = i ? 0 : function_0; // gets bogus error - p = i ? function_1 : function_0; // gets bogus error -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900325_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900325_01.C deleted file mode 100755 index f11ec18..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900325_01.C +++ /dev/null @@ -1,17 +0,0 @@ -// g++ 1.37.1 bug 900325_01 - -// g++ fails to generate errors for attempts to declare a formal argument to -// be of a void type. - -// keywords: formal parameter, void type - -typedef void __void; -typedef __void Void; - -void function0 (void arg1) { // ERROR - missed -} - -void function1 (Void arg1) { // ERROR - missed -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900330_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900330_01.C deleted file mode 100755 index 651d370..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900330_01.C +++ /dev/null @@ -1,52 +0,0 @@ -// g++ 1.37.1 bug 900330_01 -// -// As indicated by the example at the end of the section 3.5.3 of the ANSI -// C standard, when a type qualifier (i.e. "const" or "volatile") is applied -// to an array type, the effect should be as if the element type had been -// qualified with the given qualifier. -// -// This rule applies to C++ also. -// -// In section 7.1.6 of the C++ Reference Manual it says "Each element of a -// const array is const..." -// -// It appears however that when a name already exists for a given array type -// (i.e. a typedef name) and when that name is qualified by a type qualifier, -// (i.e. "const" or "volatile"), gcc & g++ may act as if the qualifier applied -// to the named (array) type rather that to the elements of that type. -// -// The result is that (even with the -ansi and -pedantic options) g++ -// generates no errors or warnings for the lines indicated (even though it -// should). -// -// Due to the incorrect associations, gcc & g++ will also issue inappropriate -// warnings in some cases (as illustrated below). - -// keywords: type qualifiers, arrays - -typedef const int const_int; -typedef const_int array_of_const_int[3]; -array_of_const_int *ptr_to_array_of_consts; - -typedef int array_of_int[3]; -typedef const array_of_int const_array_of_int; -const_array_of_int *ptr_to_const_array; - -void function_0 () -{ - ptr_to_array_of_consts = ptr_to_const_array; /* gets bogus warning */ - ptr_to_const_array = ptr_to_array_of_consts; /* gets bogus warning */ -} - -/* The following example is taken from ANSI 3.5.3 */ - -typedef int A[2][3]; -const A a = {{4, 5, 6}, {7, 8, 9}}; -int *pi; - -void function_1 () -{ - pi = a[0]; // ERROR - a[0] has type "const int *" -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900330_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900330_02.C deleted file mode 100755 index 85c40f0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900330_02.C +++ /dev/null @@ -1,29 +0,0 @@ -// g++ 1.37.1 bug 900330_02 - -// The C++ Reference Manual says in section 13.1: - -// "Two function declarations of the same name refer to the same function -// if they are in the same scope and have identical argument types. A -// function member of a derived class is *not* in the same scope as a function -// member of the same name in a base class." - -// g++ fails to correctly detect the error indicated. - -// Cfront 2.0 passes this test. - -// keywords: function, member, overloading, hiding - -struct B { - int f(int); -}; - -struct D : public B { - int f(struct B); // ERROR - referred to below -}; - -void h(D* pd) -{ - pd->f(1); // ERROR - D::f(struct B) hides B::f(int) -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900331_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900331_02.C deleted file mode 100755 index 11884db..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900331_02.C +++ /dev/null @@ -1,27 +0,0 @@ -// g++ 1.37.1 bug 900331_02 - -// g++ fails to treat conditional expressions which yield composite type -// (i.e. struct type, union type, or class type) lvalues as if they did -// in fact yield lvalues in all cases. - -// Cfront 2.0 passes this test. - -// keywords: conditional operator?:, lvalues, composite types - -struct struct0 { - int data_member; -}; - -struct0 object0; -struct0 object1; -struct0 object2; - -int i; - -void function0 () -{ - (i ? object0 : object1).data_member = 99; // gets bogus error - (i ? object0 : object1) = object2; // gets bogus error -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900331_03.C b/gcc/testsuite/g++.old-deja/g++.bugs/900331_03.C deleted file mode 100755 index a73d685..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900331_03.C +++ /dev/null @@ -1,31 +0,0 @@ -// g++ 1.37.1 bug 900331_03 - -// Special Options: -ansi - -// The following code causes g++ to abort. - -// Curiously, the abort does not occur if the -pedantic option is used. - -// Cfront 2.0 passes this test. - -// Keywords: abort, conditional operator?:, lvalues, composite types - -struct struct0 { - int data_member; - - virtual void function_member () {} // contributes to the abort -}; - -struct0 object0; -struct0 object1; -struct0 object2; - -int i; - -void function0 () -{ - object2 = (i ? object0 : object1); // OK - (i ? object0 : object1) = object2; // causes abort -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900331_04.C b/gcc/testsuite/g++.old-deja/g++.bugs/900331_04.C deleted file mode 100755 index f8a14c6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900331_04.C +++ /dev/null @@ -1,32 +0,0 @@ -// g++ 1.37.1 bug 900331_04 - -// g++ is unable to correctly parse declarations of formal parameters and -// local objects which have pointer-to-array types or reference-to-array -// types. - -// Cfront 2.0 passes this test. - -// keywords: syntax, arrays, pointers, references, local, formal - -int array[10]; - -int (*global_array_ptr)[10] = &array; -int (&global_array_ref)[10] = array; - -void function0 (int (*formal_array_ptr)[10]) { // gets bogus errors -} - -void function1 (int (&formal_array_ref)[10]) { // gets bogus errors -} - -void function2 () -{ - int (*local_array_ptr)[10] = &array; // gets bogus errors -} - -void function3 () -{ - int (&local_array_ref)[10] = array; // gets bogus error -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900401_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900401_01.C deleted file mode 100755 index 18ecd61..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900401_01.C +++ /dev/null @@ -1,15 +0,0 @@ -// g++ 1.37.1 bug 900401_01 - -// The following erroneous code causes g++ to abort. - -// Cfront 2.0 passes this test. - -// keywords: abort, bit-fields, arrays - -typedef unsigned nibble_array[4]; - -struct whole { - nibble_array nibbles:16; // ERROR - -}; - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900402_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900402_01.C deleted file mode 100755 index 946e6d1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900402_01.C +++ /dev/null @@ -1,15 +0,0 @@ -// g++ 1.37.1 bug 900402_01 - -// The following erroneous code causes g++ to abort. - -// Cfront 2.0 passes this test. - -// keywords: abort, bit-fields, function types - -typedef void (func_type) (); - -struct s { - func_type f:32; // ERROR - bitified with function type -}; - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900402_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900402_02.C deleted file mode 100755 index 705cbf2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900402_02.C +++ /dev/null @@ -1,21 +0,0 @@ -// g++ 1.37.1 bug 900402_02 - -// g++ fails to correctly flag all attempts to construct an array type -// of zero length as errors. - -// keywords: arrays, array bound, zero length - -typedef int array_type[0]; // ERROR - gets warning only - -int array_object_1[0]; // ERROR - gets warning only - -void function_0 (int formal_array[0]) -{ // ERROR - gets warning only -} - -void function_2 () -{ - int local_object_array_0[0]; // ERROR - gets warning only -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900403_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900403_01.C deleted file mode 100755 index 608d8f9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900403_01.C +++ /dev/null @@ -1,19 +0,0 @@ -// g++ 1.37.1 bug 900403_01 - -// g++ allows casts to be treated as lvalues (even when the -pedantic -// option is used). Neither the C++ Reference Manual nor cfront 2.0 -// allow this. (gcc gives warnings for such usage with -pedantic). - -// Cfront 2.0 passes this test. - -// keywords: lvalues, casts - -int i, j; - -void f () -{ - (int) i = j; // ERROR - - ((int) i) = j; // ERROR - -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900403_04.C b/gcc/testsuite/g++.old-deja/g++.bugs/900403_04.C deleted file mode 100755 index c68e4c2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900403_04.C +++ /dev/null @@ -1,12 +0,0 @@ -// g++ 1.37.1 bug 900403_04 - -// The following erroneous code causes g++ to abort. - -// keywords: abort, bit-fields, zero length - -struct s { - unsigned int foo:0; // ERROR - This is the real line - unsigned int field; -}; - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900404_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900404_01.C deleted file mode 100755 index f728865..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900404_01.C +++ /dev/null @@ -1,15 +0,0 @@ -// g++ 1.37.1 bug 900404_01 - -// g++ allows string initializers for known-length character arrays to be -// one character longer (counting the terminating null) than the actual -// length of the array to be initialized. - -// The C++ Reference Manual (section 8.4.2) expressly prohibits this. - -// Cfront 2.0 passes this test. - -// keywords: arrays, initialization, array bounds - -char cv[4] = "asdf"; // ERROR - missed - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900404_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900404_02.C deleted file mode 100755 index 4099daa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900404_02.C +++ /dev/null @@ -1,24 +0,0 @@ -// g++ 1.37.1 bug 900404_02 - -// g++ fails to treat multicharacter literals as type "int" as required by -// section 2.5.2 of the C++ Reference Manual. - -// The result is that the following program will exit with a non-zero -// exit status. - -// keywords: character literals, multi-character literals, int type - -int exit_status = 0; - -void function0 (int i) // function that should be called -{ - i = i; -} - -void function0 (char c) // function that is actually called -{ - c = c; - exit_status++; -} - -int main () { function0 ('abcd'); return exit_status; } // WARNING - diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900404_03.C b/gcc/testsuite/g++.old-deja/g++.bugs/900404_03.C deleted file mode 100755 index 98a33d7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900404_03.C +++ /dev/null @@ -1,27 +0,0 @@ -// g++ 1.37.1 bug 900404_03 - -// g++ fails to be able to properly flag errors for even simple cases of -// ambiguous overload resolution (such as the one shown below). - -// Cfront 2.0 passes this test. - -// keywords: overloading, ambiguity, resolution - -void function0 (int i, char c) -{ // ERROR - - i = c; -} - -void function0 (char c, int i) -{ // ERROR - - i = c; -} - -char c; - -void test () -{ - function0 (c,c); // ERROR - missed -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900404_04.C b/gcc/testsuite/g++.old-deja/g++.bugs/900404_04.C deleted file mode 100755 index 75be8ab..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900404_04.C +++ /dev/null @@ -1,17 +0,0 @@ -// g++ 1.37.1 bug 900404_04 - -// [dcl.dcl] explains that simple-declarations may omit the -// init-declarator-list only if the decl-specifier-seq declares a -// class, i.e. if it contains a class-specifier, an -// elaborated-type-specifier with class key, or an enum-specifier. The -// declaration below contains neither. - -// g++ fails to flag errors for such usage. - -// keywords: semicolon, vacuous, file scope, declaration - -int i; - -; // ERROR - , XFAIL *-*-* - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900404_07.C b/gcc/testsuite/g++.old-deja/g++.bugs/900404_07.C deleted file mode 100755 index c07a577..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900404_07.C +++ /dev/null @@ -1,17 +0,0 @@ -// g++ 1.37.1 bug 900404_07 - -// It is illegal to use a cast to attempt to convert an object type -// to a non-scalar type (e.g. an array type). - -// g++ fails to properly flag as errors such illegal uses of array types. - -// keywords: array types, casts, type conversion - -typedef int array_type[10]; - -array_type *ap; - -void foo () -{ - int i = *((array_type) *ap); /* ERROR - missed */ -} diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900405_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900405_01.C deleted file mode 100755 index 346db0c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900405_01.C +++ /dev/null @@ -1,19 +0,0 @@ -// g++ 1.37.1 bug 900405_01 - -// The C++ Reference Manual says (in section 5.4) "Types may not be defined -// in casts." - -// g++ fails to flag errors for cases where an attempt is made to define -// a struct, class, union, or enum type within a cast. - -// keywords: casts, type definitions, tagged types - -void f () -{ - (enum e { red, green } *) 0; // ERROR - type defined in cast - (struct s { int member; } *) 0; // ERROR - type defined in cast - (union u { int member; } * ) 0; // ERROR - type defined in cast - (class c { int member; } *) 0; // ERROR - type defined in cast -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900406_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900406_01.C deleted file mode 100755 index 93e7af3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900406_01.C +++ /dev/null @@ -1,19 +0,0 @@ -// g++ 1.37.1 bug 900406_01 - -// The following code causes g++ to segfault. - -// cfront 2.0 passes this test. - -// keywords: segfault, operator new, array types, array bounds - -void function0 () -{ - new int[]; // ERROR - causes segfault -} - -void function1 () -{ - new int (*)[]; // ERROR - no size specified -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900406_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900406_02.C deleted file mode 100755 index daf46a1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900406_02.C +++ /dev/null @@ -1,25 +0,0 @@ -// g++ bug 900406_02 - -// g++ fails to correctly parse some type specifications within casts. - -// This results in incorrect errors being issued. - -// These errors are not issued for identical code by either cfront or -// by gcc. - -// cfront 2.0 passes this test. - -// keywords: syntax, array types, casts - -int (*ipp)[]; -int (**ippp)[]; - -int function () -{ - ipp = (int (*)[]) 0; // OK - ippp = (int (**)[]) 0; // gets bogus error (syntax) - return 0; -} - -int main () { return 0; } - diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900407_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900407_01.C deleted file mode 100755 index 988642f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900407_01.C +++ /dev/null @@ -1,36 +0,0 @@ -// g++ 1.37.1 bug 900407_01 - -// g++ fails to flag errors for uses of anachronistic features such as the -// invocation of a base class constructor in a ctor-initializer list without -// explicitly giving its name. - -// Errors should probably be issued for such usage unless the -traditional -// option is used. - -// Warnings are however issued. - -// Cfront 2.0 flags such usage as an error when the +p (pure-language) option -// is used. - -// Cfront 2.0 passes this test. - -// keywords: anachronism, inheritance, initialization, mem-initializer - -struct s0 { - int member; - - s0 (); -}; - -s0::s0() { } - -struct s1 : public s0 { - int member; - - s1 (); -}; - -s1::s1() : () { // ERROR - anachronism used -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900407_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900407_02.C deleted file mode 100755 index 20a323f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900407_02.C +++ /dev/null @@ -1,32 +0,0 @@ -// g++ 1.37.1 bug 900407_02 - -// g++ flags errors for attempts to assign to the "this" parameter within -// class constructors (regardless of whether or not the -traditional) -// option is used). - -// Such errors should probably not be issued when the -traditional option is -// used. - -// Special g++ Options: -fthis-is-variable -// Special CC Options: - -// Cfront only flags errors for such usage whin the +p (pure language) -// option is used. - -// cfront 2.0 passes this test. - -// keywords: anachronism, this, assignment - -struct s0 { - - int member; - - s0 (); -}; - -s0::s0 () -{ - this = this; // OK - anachronism allowed with -traditional -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900428_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900428_01.C deleted file mode 100755 index b46fc46..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900428_01.C +++ /dev/null @@ -1,51 +0,0 @@ -// g++ 1.37.1 bug 900428_01 - -// g++ fails to issue error messages for cases where an incomplete type -// object must be evaluated if the value of such an evaluation is not -// actually used in the given context. - -// In the case where such an object is volatile, it is obvious that this -// could be a problem, however I believe that errors should be issued -// for such cases regardless of whether or not such values are volatile -// because the abstract semantics seem to require the evaluation of such -// values whether they are volatile or not. - -// keywords: incomplete types, evaluation, volatile qualifier -// Build don't link: - -int i; - -void *pv; -volatile void *pvv; -struct s; -extern struct s es, *ps; -extern volatile struct s evs, *pvs; - -void pv_test () -{ - *pv; // ERROR - , XFAIL *-*-* - (i ? *pv : *pv); // ERROR - , XFAIL *-*-* - *pv, *pv; // ERROR - , XFAIL *-*-* - - *pvv; // ERROR - , XFAIL *-*-* - (i ? *pvv : *pvv); // ERROR - , XFAIL *-*-* - *pvv, *pvv; // ERROR - , XFAIL *-*-* - - es; // ERROR - , XFAIL *-*-* - (i ? es : es); // ERROR - , XFAIL *-*-* - es, es; // ERROR - , XFAIL *-*-* - - evs; // ERROR - , XFAIL *-*-* - (i ? evs : evs); // ERROR - , XFAIL *-*-* - evs, evs; // ERROR - , XFAIL *-*-* - - *ps; // ERROR - , XFAIL *-*-* - (i ? *ps : *ps); // ERROR - , XFAIL *-*-* - *ps, *ps; // ERROR - , XFAIL *-*-* - - *pvs; // ERROR - , XFAIL *-*-* - (i ? *pvs : *pvs); // ERROR - , XFAIL *-*-* - *pvs, *pvs; // ERROR - , XFAIL *-*-* -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900428_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900428_02.C deleted file mode 100755 index 9da709f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900428_02.C +++ /dev/null @@ -1,27 +0,0 @@ -// g++ 1.37.1 bug 900428_02 - -// g++ fails to issue either errors or warnings (even with -pedantic) for -// attempts to perform either pre or post increment or decrement operations -// on variables which have either pointer-to-void types or pointer-to-function -// types. - -// cfront 2.0 passes this test. - -// keywords: pointer arithmetic, increment, decrement -// Build don't link: - -void *vp; -void (*fp) (); - -void test () -{ - vp++; /* ERROR - */ - ++vp; /* ERROR - */ - vp--; /* ERROR - */ - --vp; /* ERROR - */ - - fp++; /* ERROR - */ - ++fp; /* ERROR - */ - fp--; /* ERROR - */ - --fp; /* ERROR - */ -} diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900428_03.C b/gcc/testsuite/g++.old-deja/g++.bugs/900428_03.C deleted file mode 100755 index 74e5586..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900428_03.C +++ /dev/null @@ -1,44 +0,0 @@ -// g++ 1.37.1 bug 900428_03 - -// g++ fails to detect cases where a constructor for a derived class invokes -// (either explicitly or implicitly) a private constructor for a base class. - -// cfront 2.0 passes this test. - -// keywords: inheritance, private, accessability, constructors - -struct struct_0 { - int struct_0_data_member; - -private: - struct_0 (int, int); -public: - struct_0 (int); -}; - -struct_0::struct_0 (int i) { } -struct_0::struct_0 (int, int) { } // ERROR - xref from below - -struct struct_1 : public struct_0 { - - struct_1 (); -}; - -struct_1::struct_1 () : struct_0 (8,9) -{ // ERROR - -} - -struct struct_2 { - struct_0 struct_2_data_member; - - struct_2 (); -}; - -// g++ catches the following error (but does so only at the line with the -// closing curly brace). - -struct_2::struct_2 () : struct_2_data_member (8,9) -{ // ERROR - should be up one line -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900511_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900511_01.C deleted file mode 100755 index e4488d9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900511_01.C +++ /dev/null @@ -1,42 +0,0 @@ -// g++ 1.37.1 bug 900511_01 - -// g++ fails to properly apply user-defined type conversion operators -// in cases where is it not obvious that the given conversion is -// appropriate for the context (i.e. operator and other operands) -// where the conversion should take place. - -// cfront 2.0 passes this test. - -struct struct_1 { - int member; - - operator int (); -}; - -struct_1::operator int () -{ - return 0; -} - -struct struct_2 { - int member; - - operator float (); -}; - -struct_2::operator float () -{ - return 0.0; -} - -struct_1 struct_1_object; -struct_2 struct_2_object; -double d; - -void test () -{ - d = struct_2_object + struct_1_object; // OK - d = struct_1_object + struct_2_object; // gets bogus error -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900511_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900511_02.C deleted file mode 100755 index cef71c0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900511_02.C +++ /dev/null @@ -1,21 +0,0 @@ -// g++ 1.37.1 bug 900511_02 - -// g++ does not properly shadow names of types with names of data members -// in cases where the type names in question are used in the context of -// formal parameters lists for member functions. - -// keywords: typedef names, shadowing, scope, formal parameter list - -// cfront 2.0 passes this test. - -enum enum0 { enum0_value_0 }; - -struct struct0 { - int enum0; - void member_function (enum0 e); // ERROR - invalid use of struct-local member -}; - -void class0::member_function (enum0 e) { // ERROR - syntax error -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900511_03.C b/gcc/testsuite/g++.old-deja/g++.bugs/900511_03.C deleted file mode 100755 index 849bdf3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900511_03.C +++ /dev/null @@ -1,19 +0,0 @@ -// g++ 1.37.1 bug 900511_03 - -// g++ does not properly shadow names of types with names of data members -// in cases where the type names in question are used in the context of -// formal parameters lists for member functions. - -// keywords: typedef names, shadowing, scope, formal parameter list - -class class0; - -struct struct1 { - int class0; - void member_function (class0 *); // ERROR - invalid use of struct-local member -}; - -void class1::member_function (class0 *p) { // ERROR - -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900514_03.C b/gcc/testsuite/g++.old-deja/g++.bugs/900514_03.C deleted file mode 100755 index 54123f2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900514_03.C +++ /dev/null @@ -1,112 +0,0 @@ -// g++ 1.37.1 bug 900514_03 - -// g++ fails to flag ERRORs on the following erroneous code. - -// In Section 12.3.2 it says "Defining conversion by both a constructor and -// a conversion function can lead to ambiguities." However in the case below, -// the explicit cast syntax disambiguates the constructor as one which -// invokes the type conversion operator rather than the conversion. - -// cfront 2.0 passes this test. - -// keywords: user-defined type conversion operator, constructor - -struct t_0_st_0; - -struct t_0_st_1 { - int member; - - t_0_st_1 (t_0_st_0&);// ERROR - - t_0_st_1 (); -};// ERROR - - -struct t_0_st_0 { - int member; - - operator t_0_st_1 ();// ERROR - -}; - -t_0_st_0 t_0_st_0_obj0; - -void t_0_assignment () -{ - t_0_st_1 t_0_st_1_obj0; - t_0_st_1 t_0_st_1_obj1; - t_0_st_1 t_0_st_1_obj2; - - t_0_st_1_obj0 = t_0_st_0_obj0; // ERROR - caught - t_0_st_1_obj1 = t_0_st_1 (t_0_st_0_obj0); -} - -void t_0_local_init () -{ - t_0_st_1 t_0_st_1_obj0 = t_0_st_0_obj0; // ERROR - - t_0_st_1 t_0_st_1_obj1 = t_0_st_1 (t_0_st_0_obj0); -} - -struct t_1_st_0; - -struct t_1_st_1 { - int member; - - t_1_st_1 (t_1_st_0&); // ERROR - - t_1_st_1 (); - void operator= (t_1_st_1&); // ERROR - -}; - -struct t_1_st_0 { - int member; - - operator t_1_st_1 (); // ERROR - -}; - -t_1_st_0 t_1_st_0_obj0; - -void t_1_assignment () -{ - t_1_st_1 t_1_st_1_obj0; - t_1_st_1 t_1_st_1_obj1; - t_1_st_1 t_1_st_1_obj2; - - t_1_st_1_obj0 = t_1_st_0_obj0; // ERROR - - t_1_st_1_obj1 = t_1_st_1 (t_1_st_0_obj0); // ERROR - -} - -void t_1_local_init () -{ - t_1_st_1 t_1_st_1_obj0 = t_1_st_0_obj0; // ERROR - - t_1_st_1 t_1_st_1_obj1 = t_1_st_1 (t_1_st_0_obj0); -} - -struct t_2_st_0; - -struct t_2_st_1 { - int member; - - t_2_st_1 (t_2_st_0); // ERROR - candidate - t_2_st_1 (); -}; // ERROR - candidate - -struct t_2_st_0 { - int member; - - operator t_2_st_1 (); // ERROR - candidate -}; - -t_2_st_0 t_2_st_0_obj0; - -void t_2_assignment () -{ - t_2_st_1 t_2_st_1_obj0; - t_2_st_1 t_2_st_1_obj1; - t_2_st_1 t_2_st_1_obj2; - - t_2_st_1_obj0 = t_2_st_0_obj0; // ERROR - caught - t_2_st_1_obj1 = t_2_st_1 (t_2_st_0_obj0); -} - -void t_2_local_init () -{ - t_2_st_1 t_2_st_1_obj0 = t_2_st_0_obj0; // ERROR - - t_2_st_1 t_2_st_1_obj1 = t_2_st_1 (t_2_st_0_obj0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900519_01.C b/gcc/testsuite/g++.old-deja/g++.bugs/900519_01.C deleted file mode 100755 index 9641d1d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900519_01.C +++ /dev/null @@ -1,16 +0,0 @@ -// g++ 1.37.1 bug 900519_01 - -// g++ fails to flag errors for some attempts to declare or define non-member -// type conversion operators. - -// cfront 2.0 passes this test. - -// keywords: user-defined type conversion operator, non-member - -extern operator int (); // ERROR - - -extern operator int () { // ERROR - - return 0; -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900519_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900519_02.C deleted file mode 100755 index 90dc16a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900519_02.C +++ /dev/null @@ -1,32 +0,0 @@ -// g++ 1.37.1 bug 900519_02 - -// The C++ Reference Manual says (in section 8.4.3) "A reference to a plain -// T can only be initialized with a plain T" however g++ allows the -// initialization of plain references with qualified objects in many cases. - -// keywords: references, initialization, type qualifiers - -extern const int cint_obj = 9; -volatile int vint_obj = 9; - -void take_int_ref (int& arg) { } // ERROR - referenced by errors below - -int& global_int_ref0 = cint_obj; // ERROR - -int& global_int_ref1 = vint_obj; // ERROR - - -extern const int& cint_ref; -extern volatile int& vint_ref; - -void test_0 () -{ - int& local_int_ref0 = cint_obj; // ERROR - - int& local_int_ref1 = vint_obj; // ERROR - - - take_int_ref (cint_obj); // ERROR - caught - take_int_ref (vint_obj); // ERROR - - - take_int_ref (cint_ref); // ERROR - - take_int_ref (vint_ref); // ERROR - -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900519_03.C b/gcc/testsuite/g++.old-deja/g++.bugs/900519_03.C deleted file mode 100755 index 114d909..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900519_03.C +++ /dev/null @@ -1,47 +0,0 @@ -// g++ 1.37.1 bug 900519_03 - -// The C++ Reference Manual says (in section 8.4.3) "A reference to a -// volatile T can be initialized with a volatile T or a plain T but not a -// const T. A reference to a const T can be initialized with a const T or -// a plain T or something that can be converted into a plain T, but not a -// volatile T." - -// g++ fails to disgnose such errors in most cases. - -// keywords: references, initialization, type qualifiers - -extern const int cint_obj; -extern volatile int vint_obj; - -void take_cint_ref (const int& arg) { } // ERROR - -void take_vint_ref (volatile int& arg) { } // ERROR - - -const int& global_cint_ref2 = vint_obj; // ERROR - - -volatile int& global_vint_ref1 = cint_obj; // ERROR - - -extern const int& extern_cint_ref; -extern volatile int& extern_vint_ref; - -void test_0 () -{ - const int& local_cint_ref2 = vint_obj; // ERROR - - - volatile int& local_vint_ref1 = cint_obj; // ERROR - -} - -void test_1 () -{ - take_cint_ref (vint_obj); // ERROR - - - take_vint_ref (cint_obj); // ERROR - caught -} - -void test_2 () -{ - take_cint_ref (extern_vint_ref); // ERROR - - - take_vint_ref (extern_cint_ref); // ERROR - -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900519_04.C b/gcc/testsuite/g++.old-deja/g++.bugs/900519_04.C deleted file mode 100755 index 53867a1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900519_04.C +++ /dev/null @@ -1,21 +0,0 @@ -// g++ 1.37.1 bug 900519_04 - -// The following legal code causes g++ to segfault. - -// cfront 2.0 passes this test. - -// keywords: segfault, references, initialization - -int cint_obj = 9; - -void take_cint_ref (int& arg) { } - -int& cint_ref_0 = cint_obj; -int& cint_ref_1 = cint_obj; - -void test_0 () -{ - take_cint_ref (cint_ref_1); // causes segfault -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900519_05.C b/gcc/testsuite/g++.old-deja/g++.bugs/900519_05.C deleted file mode 100755 index 9a2a4cf..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900519_05.C +++ /dev/null @@ -1,18 +0,0 @@ -// g++ 1.37.1 bug 900519_05 - -// g++ fails to allow the use of function-reference types. - -// cfront 2.0 passes this test. - -// keywords: function types, reference types - -typedef void (func_type) (int, int); -typedef func_type& func_ref_type; - -void function (int arg1, int arg2) -{ -} - -func_type& global_func_ref1 = function; - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900519_06.C b/gcc/testsuite/g++.old-deja/g++.bugs/900519_06.C deleted file mode 100755 index 5704c3f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900519_06.C +++ /dev/null @@ -1,22 +0,0 @@ -// g++ 1.37.1 bug 900519_06 - -// g++ allows the type given in an invocation of operator new to be a -// reference type. - -// Since pointers to reference types are illegal, the required return type -// from such an invocation (of operator new) is illegal, and thus (it seems) -// the entire call to new should be treated as being illegal. - -typedef int& int_ref; - -void test (int n) -{ - new int&; // ERROR - missed - new int_ref; // ERROR - missed - new int&[n]; // ERROR - missed - new int_ref[n]; // ERROR - missed - new int&[3]; // ERROR - missed - new int_ref[3]; // ERROR - missed -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900519_07.C b/gcc/testsuite/g++.old-deja/g++.bugs/900519_07.C deleted file mode 100755 index f5ea6bc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900519_07.C +++ /dev/null @@ -1,16 +0,0 @@ -// g++ 1.37.1 bug 900519_07 - -// It is illegal to specify or to use array-of-reference types, yet g++ -// allows them to be specified (in typedef statements and in declarations) -// and to be used (in declarations). - -// keywords: reference types, array types - -int i; -int j; - -typedef int& int_ref; -typedef int_ref int_ref_array_type[2]; // ERROR - missed - -int& int_ref_array_obj0[2] = { i, j }; // ERROR - missed -int_ref int_ref_array_obj1[2] = { i, j }; // ERROR - missed diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900519_09.C b/gcc/testsuite/g++.old-deja/g++.bugs/900519_09.C deleted file mode 100755 index 3bff70e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900519_09.C +++ /dev/null @@ -1,29 +0,0 @@ -// g++ 1.37.1 bug 900519_09 - -// g++ allows the allocation of const objects via operator new even when -// these uses of operator new do not include initializations. - -// This is inconsistant within the restrictions placed on the construction -// of class, struct, and union types which have constant members. - -// Since there is no completely valid way of initializing such objects -// after the invocation of new, these cases should all be illegal. - -// keywords: operator new, initialization, const qualifier - -struct struct_0 { - int member; -}; - -typedef const int const_int; -typedef const struct struct_0 const_struct_0; - -void test () -{ - new const int; // ERROR - - new const_int; // ERROR - - new const struct_0; // ERROR - - new const_struct_0; // ERROR - -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900519_12.C b/gcc/testsuite/g++.old-deja/g++.bugs/900519_12.C deleted file mode 100755 index 112b989..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900519_12.C +++ /dev/null @@ -1,11 +0,0 @@ -// g++ 1.37.1 bug 900519_12 - -// The following erroneous code causes g++ to segfault. - -// cfront 2.0 passes this test. - -// keywords: segfault, typedef, pointer type, function type - -typedef eek void (*)(); // ERROR - - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900519_13.C b/gcc/testsuite/g++.old-deja/g++.bugs/900519_13.C deleted file mode 100755 index 8161b59..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900519_13.C +++ /dev/null @@ -1,35 +0,0 @@ -// g++ 1.37.1 bug 900519_13 - -// If multiple inheritance creates a situation in which a given name is -// inherited from more than one base class, and if the inherited declarations -// for the name are for different categories of members (e.g. object members, -// function members, enumeral members), then g++ will (in some cases) fail -// to flag errors when the ambiguous name is used. - -// cfront 2.0 passes this test. - -// keywords: inheritance, ambiguity resolution, members - -struct base_0 { - enum { base_member }; -}; - -struct base_1 { - int base_member; -}; - -struct base_2 { - int base_member (); -}; - -struct derived_0 : public base_0, public base_1 { - void member () { base_member; } // ERROR - -}; - -struct derived_1 : public base_0, public base_2 { - void member () { base_member; } // ERROR - missed -}; - -struct derived_2 : public base_1, public base_2 { - void member () { base_member; } // ERROR - missed -}; diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900520_02.C b/gcc/testsuite/g++.old-deja/g++.bugs/900520_02.C deleted file mode 100755 index 80543b6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900520_02.C +++ /dev/null @@ -1,26 +0,0 @@ -// g++ 1.37.1 bug 900520_02 - -// keywords: reference types, initialization, parameter passing - -typedef int b_array[3]; -typedef int u_array[]; - -typedef b_array &b_array_ref; -typedef u_array &u_array_ref; - -void take_b_array_ref (b_array_ref arg) { } // ERROR - passed to here - -extern u_array u_array_gbl_obj; - -u_array_ref u_array_ref_gbl_obj0 = u_array_gbl_obj; - -b_array_ref b_array_ref_gbl_obj0 = u_array_ref_gbl_obj0; // ERROR - invalid declaration - -void test_passing () -{ - take_b_array_ref (u_array_ref_gbl_obj0); // ERROR - invalid call -} - -b_array u_array_gbl_obj; - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900520_03.C b/gcc/testsuite/g++.old-deja/g++.bugs/900520_03.C deleted file mode 100755 index b1f05c9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900520_03.C +++ /dev/null @@ -1,49 +0,0 @@ -// g++ 1.37.1 bug 900520_03 - -// The C++ Reference Manual says (in section 8.2.4): - -// When an identifier of array type appears in an expression, except -// as the operand of sizeof or & or used to initialize a reference, -// it is converted into a pointer to the first member of the array. - -// One must assume from the verbage, that when the name of a non-const array -// object appears in one of the exempted contexts mentioned in this passage, -// that it is *not* automatically converted into a pointer value, but rather -// that it remains as an array type value, and that it may therefore also -// still be an lvalue, and may be used to initialize references. - -// As the following code demonstrates, g++ does in fact treat the names -// of non-const array objects as valid initializers for reference-to-array -// type object in some (but not all) contexts. - -// The exception is that g++ does not allow names which designate objects -// on incomplete array types to be used as actual parameters in function -// calls where the corresponding formal parameter is of a reference-to-array -// type. - -// g++ does however allow other similar sorts of initializations of non-formal -// reference objects. - -// 5/16/94 (jason): The 1/25/94 WP explicitly states in section 8.3.5 that -// parameter types may not contain pointers or references to arrays of unknown -// bound. g++ is correct. - -// keywords: reference types, array types, initialization, parameter passing - -typedef int u_array[]; -typedef u_array &u_array_ref; - -void take_u_array_ref (u_array_ref arg) { } // ERROR - reference to array of unknown bound in parmtype - -extern u_array u_array_gbl_obj; -u_array_ref u_array_ref_gbl_obj0 = u_array_gbl_obj; // OK - -void test_local_initialization () -{ - u_array_ref u_array_ref_lcl_obj0 = u_array_gbl_obj; // OK -} - -void test_passing () -{ - take_u_array_ref (u_array_gbl_obj); -} diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900520_04.C b/gcc/testsuite/g++.old-deja/g++.bugs/900520_04.C deleted file mode 100755 index d9488cf..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900520_04.C +++ /dev/null @@ -1,40 +0,0 @@ -// g++ 1.37.1 bug 900520_04 - -// g++ does not yet support the initialization of scalar type objects -// (including built-in arithmetic types, enum types, and pointer types) -// via constructor initialization syntax except within a call to operator -// new. - -// keywords: unimplemented, syntax, initialization, scalar types - -enum e_type { e_value }; - -typedef char *charp; - -charp cp; - -int global_i (1); // gets bogus error -double global_d (9.9); // gets bogus error -charp global_cp0 (cp); // gets bogus error -charp global_cp1 (0); // gets bogus error -enum e_type global_e (e_value); // gets bogus error - -void func0 () -{ - int local_i (1); // gets bogus error - double local_d (9.9); // gets bogus error - charp local_cp0 (cp); // gets bogus error - charp local_cp1 (0); // gets bogus error - enum e_type local_e (e_value); // gets bogus error -} - -void func1 () -{ - int* ip = new int (1); // gets bogus error - double* dp = new double (9.9); // gets bogus error - charp* cpp0 = new charp (cp); // gets bogus error - charp* cpp1 = new charp (0); // gets bogus error - enum e_type* ep = new e_type (e_value); // gets bogus error -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900520_05.C b/gcc/testsuite/g++.old-deja/g++.bugs/900520_05.C deleted file mode 100755 index d628ae3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900520_05.C +++ /dev/null @@ -1,23 +0,0 @@ -// g++ 1.37.1 bug 900520_05 - -// The following legal code gets syntax errors from g++. - -// keywords: syntax, unimplemented, operator new, initialization, pointer types - -struct struct_0 { -}; - -char *cp; -static struct_0 *sp; - -void test0 () -{ - new char * (cp); // gets bogus error -} - -void test1 () -{ - new struct_0 * (sp); // gets bogus error -} - -int main () { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.bugs/900520_06.C b/gcc/testsuite/g++.old-deja/g++.bugs/900520_06.C deleted file mode 100755 index aa4ec9a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.bugs/900520_06.C +++ /dev/null @@ -1,78 +0,0 @@ -// g++ 1.37.1 bug 900520_06 - -// When an object of a class type is passed into a formal parameter of the -// same class type (in a function call) the language definition calls for -// this action to be treated like any other form of an initialization of -// an object of the given class type. - -// g++ fails however to invoke the (compiler-supplied) copy constructor for -// the class type when a parameter of the class type is passed as an -// actual parameter. - -// This causes the following program to exit with a non-zero exit status. - -// cfront 2.0 passes this test. - -int base_copy_ctor_called = 0; -int member_copy_ctor_called = 0; - -struct struct_0 { - struct_0 (); - struct_0 (const struct_0&); -}; - -struct_0::struct_0 () -{ -} - -struct_0::struct_0 (const struct_0&) -{ - base_copy_ctor_called++; -} - -struct struct_1 { - struct_1 (); - struct_1 (const struct_1&); -}; - -struct_1::struct_1 () -{ -} - -struct_1::struct_1 (const struct_1&) -{ - member_copy_ctor_called++; -} - -struct struct_2 : public struct_0 { - struct_2 (); - struct_1 struct_1_member; -#ifdef MAKE_COPY_CONSTRUCTOR_EXPLICIT - struct_2 (const struct_2&); -#endif -}; - -struct_2::struct_2 () -{ -} - -#ifdef MAKE_COPY_CONSTRUCTOR_EXPLICIT -struct_2::struct_2 (const struct_2& arg) : - struct_0 ((struct_0&)arg), - struct_1_member (arg.struct_1_member) -{ -} -#endif - -void take_struct_2 (struct_2 arg) -{ -} - -int test () -{ - struct_2 struct_2_object0; - take_struct_2 (struct_2_object0); - return (base_copy_ctor_called != 1 || member_copy_ctor_called != 1); -} - -int main () { return test (); } diff --git a/gcc/testsuite/g++.old-deja/g++.eh/cleanup1.C b/gcc/testsuite/g++.old-deja/g++.eh/cleanup1.C deleted file mode 100755 index 6faea26..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/cleanup1.C +++ /dev/null @@ -1,34 +0,0 @@ -// Bug: obj gets destroyed twice because the fixups for the return are -// inside its cleanup region. - -extern "C" int printf (const char *, ...); - -int d; - -struct myExc { }; - -struct myExcRaiser { - ~myExcRaiser() { throw myExc(); } -}; - -struct stackObj { - ~stackObj() { ++d; printf ("stackObj::~stackObj()\n"); }; -}; - -int test() -{ - myExcRaiser rais; - stackObj obj; - return 0; -} - -int main() -{ - try { - test(); - } - catch (myExc &) { - return d != 1; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C b/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C deleted file mode 100755 index 9874131..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/ctor1.C +++ /dev/null @@ -1,15 +0,0 @@ -struct A -{ - A(); - A(A&); // ERROR - referenced below -}; - -int -main () -{ - try - { - throw A(); // ERROR - can't copy - } - catch (...) { } -} diff --git a/gcc/testsuite/g++.old-deja/g++.eh/flow1.C b/gcc/testsuite/g++.old-deja/g++.eh/flow1.C deleted file mode 100755 index 024670c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/flow1.C +++ /dev/null @@ -1,21 +0,0 @@ -#include <stdio.h> - -int bar () -{ - throw 100; -} - -int main () -{ - int i = 0; // this gets deleted after flow analysis - try - { - i = bar (); - } - catch (...) - { - } - - printf ("i = %d\n", i); - return i; -} diff --git a/gcc/testsuite/g++.old-deja/g++.eh/new1.C b/gcc/testsuite/g++.old-deja/g++.eh/new1.C deleted file mode 100755 index 1671dbb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/new1.C +++ /dev/null @@ -1,44 +0,0 @@ -// Test that a throw in foo destroys the A, but does not free the memory. - -#include <stddef.h> -#include <stdlib.h> -#include <new.h> - -struct A { - A(); - ~A(); -}; - -struct B { - B (A); -}; - -void foo (B*); - -int newed, created; - -int main () -{ - try { - foo (new B (A ())); - } catch (...) { } - - return !(newed && !created); -} - -A::A() { created = 1; } -A::~A() { created = 0; } -B::B(A) { } -void foo (B*) { throw 1; } - -void* operator new (size_t size) throw (std::bad_alloc) -{ - ++newed; - return (void *) malloc (size); -} - -void operator delete (void *p) throw () -{ - --newed; - free (p); -} diff --git a/gcc/testsuite/g++.old-deja/g++.eh/new2.C b/gcc/testsuite/g++.old-deja/g++.eh/new2.C deleted file mode 100755 index 17bea5e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/new2.C +++ /dev/null @@ -1,44 +0,0 @@ -// Test that a throw in B's constructor destroys the A and frees the memory. - -#include <stddef.h> -#include <stdlib.h> -#include <new.h> - -struct A { - A(); - ~A(); -}; - -struct B { - B (A); -}; - -void foo (B*); - -int newed, created; - -int main () -{ - try { - foo (new B (A ())); - } catch (...) { } - - return !(!newed && !created); -} - -A::A() { created = 1; } -A::~A() { created = 0; } -B::B(A) { throw 1; } -void foo (B*) { } - -void* operator new (size_t size) throw (std::bad_alloc) -{ - ++newed; - return (void *) malloc (size); -} - -void operator delete (void *p) throw () -{ - --newed; - free (p); -} diff --git a/gcc/testsuite/g++.old-deja/g++.eh/pdel1.C b/gcc/testsuite/g++.old-deja/g++.eh/pdel1.C deleted file mode 100755 index b8e553c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/pdel1.C +++ /dev/null @@ -1,22 +0,0 @@ -// Test for calling placement delete. - -#include <new> -#include <stddef.h> - -int r = 1; - -struct A { - A() { throw 1; } - void operator delete (void *p, int, int) { r = 0; ::operator delete (p); } -}; - -void * operator new (size_t size, int, int) { return operator new (size); } - -int main () -{ - try { - A* ap = new (1, 5) A; - } catch (...) { } - - return r; -} diff --git a/gcc/testsuite/g++.old-deja/g++.eh/pdel2.C b/gcc/testsuite/g++.old-deja/g++.eh/pdel2.C deleted file mode 100755 index 12efcd3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/pdel2.C +++ /dev/null @@ -1,22 +0,0 @@ -// Test for not calling mismatched placement delete. - -#include <new> -#include <stddef.h> - -int r = 0; - -struct A { - A() { throw 1; } - void operator delete (void *p, int, long) { r = 1; ::operator delete (p); } -}; - -void * operator new (size_t size, int, int) { return operator new (size); } - -int main () -{ - try { - A* ap = new (1, 5) A; - } catch (...) { } - - return r; -} diff --git a/gcc/testsuite/g++.old-deja/g++.eh/ptr1.C b/gcc/testsuite/g++.old-deja/g++.eh/ptr1.C deleted file mode 100755 index 9101e9e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/ptr1.C +++ /dev/null @@ -1,22 +0,0 @@ -// Bug: catching pointers by reference doesn't work right. - -extern "C" int printf (const char *, ...); - -struct E { - int x; - E(int i) { x = i; }; -}; - -int main() -{ - try { - E *p = new E(5); - throw p; - } - - catch (E *&e) { - printf ("address of e is 0x%lx\n", (long)e); - return !(long(e) != 5 && e->x == 5); - } - return 2; -} diff --git a/gcc/testsuite/g++.old-deja/g++.eh/rethrow1.C b/gcc/testsuite/g++.old-deja/g++.eh/rethrow1.C deleted file mode 100755 index ef4dcb4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/rethrow1.C +++ /dev/null @@ -1,45 +0,0 @@ -// Testcase for proper handling of rethrow. - -#include <stdio.h> - -int c, d; - -struct A -{ - int i; - A () { i = ++c; printf ("A() %d\n", i); } - A (const A&) { i = ++c; printf ("A(const A&) %d\n", i); } - ~A() { printf ("~A() %d\n", i); ++d; } -}; - -int -main () -{ - try - { - try - { - printf ("Throwing 1...\n"); - throw A(); - } - catch (A) - { - try - { - printf ("Throwing 2...\n"); - throw A(); - } - catch (A) - { - printf ("Throwing 3...\n"); - throw; - } - } - } - catch (A) - { - printf ("Caught.\n"); - } - printf ("c == %d, d == %d\n", c, d); - return c != d; -} diff --git a/gcc/testsuite/g++.old-deja/g++.eh/rethrow2.C b/gcc/testsuite/g++.old-deja/g++.eh/rethrow2.C deleted file mode 100755 index 2d2583b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/rethrow2.C +++ /dev/null @@ -1,45 +0,0 @@ -// Testcase for proper handling of rethrow. - -#include <stdio.h> - -int c, d; - -struct A -{ - int i; - A () { i = ++c; printf ("A() %d\n", i); } - A (const A&) { i = ++c; printf ("A(const A&) %d\n", i); } - ~A() { printf ("~A() %d\n", i); ++d; } -}; - -int -main () -{ - try - { - try - { - printf ("Throwing 1...\n"); - throw A(); - } - catch (A) - { - try - { - printf ("Throwing 2...\n"); - throw; - } - catch (A) - { - printf ("Throwing 3...\n"); - throw; - } - } - } - catch (A) - { - printf ("Caught.\n"); - } - printf ("c == %d, d == %d\n", c, d); - return c != d; -} diff --git a/gcc/testsuite/g++.old-deja/g++.eh/rethrow3.C b/gcc/testsuite/g++.old-deja/g++.eh/rethrow3.C deleted file mode 100755 index 5da2081..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/rethrow3.C +++ /dev/null @@ -1,38 +0,0 @@ -#include <stdio.h> -#include <exception> - -static void -eh_terminate () -{ - printf ("CALLING TERMINATE\n"); - exit (1); -} - -void -eh_test (int level) -{ - try - { - if (level < 2) - eh_test (level + 1); - else - { - printf ("%d: Throwing\n", level); - throw (level); - } - } - catch (int &x) - { - printf ("%d: Got level %d\n", - level, x); - - if (level > 0) - throw; - } -} - -int main () -{ - std::set_terminate (&eh_terminate); - eh_test (0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.eh/rethrow4.C b/gcc/testsuite/g++.old-deja/g++.eh/rethrow4.C deleted file mode 100755 index c5dcd23..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/rethrow4.C +++ /dev/null @@ -1,45 +0,0 @@ -// Testcase for proper handling of rethrow. - -#include <stdio.h> - -int c, d; - -struct A -{ - int i; - A () { i = ++c; printf ("A() %d\n", i); } - A (const A&) { i = ++c; printf ("A(const A&) %d\n", i); } - ~A() { printf ("~A() %d\n", i); ++d; } -}; - -int -main () -{ - try - { - try - { - printf ("Throwing 1...\n"); - throw A(); - } - catch (A) - { - try - { - printf ("Throwing 2...\n"); - throw; - } - catch (A) - { - printf ("Throwing 3...\n"); - throw A(); - } - } - } - catch (A) - { - printf ("Caught.\n"); - } - printf ("c == %d, d == %d\n", c, d); - return c != d; -} diff --git a/gcc/testsuite/g++.old-deja/g++.eh/rethrow5.C b/gcc/testsuite/g++.old-deja/g++.eh/rethrow5.C deleted file mode 100755 index f137d18..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/rethrow5.C +++ /dev/null @@ -1,44 +0,0 @@ -// Testcase for proper handling of rethrow. - -#include <stdio.h> - -int c, d; - -struct A -{ - int i; - A () { i = ++c; printf ("A() %d\n", i); } - A (const A&) { i = ++c; printf ("A(const A&) %d\n", i); } - ~A() { printf ("~A() %d\n", i); ++d; } -}; - -int -main () -{ - try - { - try - { - printf ("Throwing 1...\n"); - throw A(); - } - catch (A) - { - try - { - printf ("Throwing 2...\n"); - throw; - } - catch (A) - { - printf ("Falling out...\n"); - } - } - } - catch (A) - { - printf ("Caught.\n"); - } - printf ("c == %d, d == %d\n", c, d); - return c != d; -} diff --git a/gcc/testsuite/g++.old-deja/g++.eh/spec1.C b/gcc/testsuite/g++.old-deja/g++.eh/spec1.C deleted file mode 100755 index 044af8c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/spec1.C +++ /dev/null @@ -1,38 +0,0 @@ -// Testing exception specifications. -// Test 1: the original exception succeeds. - -#include <stdlib.h> -#include <exception> - -void my_term () { exit (1); } -void my_unexp () { throw 42; } - -void -f () throw (char, int, std::bad_exception) -{ - throw 'a'; -} - -int main () -{ - std::set_terminate (my_term); - std::set_unexpected (my_unexp); - - try - { - f (); - } - catch (char) - { - return 0; - } - catch (int) - { - return 3; - } - catch (std::bad_exception) - { - return 4; - } - return 5; -} diff --git a/gcc/testsuite/g++.old-deja/g++.eh/spec2.C b/gcc/testsuite/g++.old-deja/g++.eh/spec2.C deleted file mode 100755 index d0269b3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/spec2.C +++ /dev/null @@ -1,38 +0,0 @@ -// Testing exception specifications. -// Test 2: the second throw succeeds. - -#include <stdlib.h> -#include <exception> - -void my_term () { exit (1); } -void my_unexp () { throw 42; } - -void -f () throw (int, std::bad_exception) -{ - throw 'a'; -} - -int main () -{ - std::set_terminate (my_term); - std::set_unexpected (my_unexp); - - try - { - f (); - } - catch (char) - { - return 2; - } - catch (int) - { - return 0; - } - catch (std::bad_exception) - { - return 4; - } - return 5; -} diff --git a/gcc/testsuite/g++.old-deja/g++.eh/spec3.C b/gcc/testsuite/g++.old-deja/g++.eh/spec3.C deleted file mode 100755 index 57b29d4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/spec3.C +++ /dev/null @@ -1,38 +0,0 @@ -// Testing exception specifications. -// Test 3: the bad_exception throw succeeds. - -#include <stdlib.h> -#include <exception> - -void my_term () { exit (1); } -void my_unexp () { throw 42; } - -void -f () throw (std::bad_exception) -{ - throw 'a'; -} - -int main () -{ - std::set_terminate (my_term); - std::set_unexpected (my_unexp); - - try - { - f (); - } - catch (char) - { - return 2; - } - catch (int) - { - return 3; - } - catch (std::bad_exception) - { - return 0; - } - return 5; -} diff --git a/gcc/testsuite/g++.old-deja/g++.eh/spec4.C b/gcc/testsuite/g++.old-deja/g++.eh/spec4.C deleted file mode 100755 index a92f7f0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/spec4.C +++ /dev/null @@ -1,38 +0,0 @@ -// Testing exception specifications. -// Test 4: all throws fail, call terminate. - -#include <stdlib.h> -#include <exception> - -void my_term () { exit (0); } -void my_unexp () { throw 42; } - -void -f () throw (short) -{ - throw 'a'; -} - -int main () -{ - std::set_terminate (my_term); - std::set_unexpected (my_unexp); - - try - { - f (); - } - catch (char) - { - return 2; - } - catch (int) - { - return 3; - } - catch (std::bad_exception) - { - return 4; - } - return 5; -} diff --git a/gcc/testsuite/g++.old-deja/g++.eh/spec5.C b/gcc/testsuite/g++.old-deja/g++.eh/spec5.C deleted file mode 100755 index 56154f9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/spec5.C +++ /dev/null @@ -1,3 +0,0 @@ -// Build don't link: - -extern void *f(unsigned int k) throw(); diff --git a/gcc/testsuite/g++.old-deja/g++.eh/throw1.C b/gcc/testsuite/g++.old-deja/g++.eh/throw1.C deleted file mode 100755 index 49a7d1e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/throw1.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: - -void athrow(const int & e) throw(int) -{ - throw e; -} - -int main(void) -{ - athrow(int()); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.eh/throw2.C b/gcc/testsuite/g++.old-deja/g++.eh/throw2.C deleted file mode 100755 index fbf0cec..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/throw2.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: - -// Submitted by Sebastian Ritterbusch <uabp@rz.uni-karlsruhe.de> - -#define ANY int // a class with a public constructor - -void athrow(const ANY & e) throw(ANY) -{ - throw e; // gets bogus error - discarding const -} - -int main(void) -{ - athrow(ANY()); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.eh/tmpl1.C b/gcc/testsuite/g++.old-deja/g++.eh/tmpl1.C deleted file mode 100755 index cdbd6e1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/tmpl1.C +++ /dev/null @@ -1,15 +0,0 @@ -template <class T> -void f() throw (T) -{ - throw 7; -} - - -int main() -{ - try { - f<int>(); - } catch (...) { - return 0; - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.eh/tmpl2.C b/gcc/testsuite/g++.old-deja/g++.eh/tmpl2.C deleted file mode 100755 index af3dc7b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/tmpl2.C +++ /dev/null @@ -1,33 +0,0 @@ -// Build don't link: -// Special g++ flags: -O -// crash test - XFAIL i*86-*-linux* - -// Posted by H. J. Lu <hjl@lucon.org> - -template<class T> -class FixSeq -{ -public: - void append(const T&); -}; -class foo -{ -public: - void setupIR(); -}; -typedef FixSeq<foo *> bar; -extern void dummy (foo *); -void * -foobar (bar &x, foo *p) -{ - try - { - p -> setupIR(); - } - catch(...) - { - dummy (p); - } - x.append(p); - return p; -} diff --git a/gcc/testsuite/g++.old-deja/g++.eh/tmpl3.C b/gcc/testsuite/g++.old-deja/g++.eh/tmpl3.C deleted file mode 100755 index 521315e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/tmpl3.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: - -// Posted by Trevor Taylor <ttaylor@powerup.com.au> - -template<class T> struct A { - void X() throw(T); -}; - -template<class T> -inline void A<T>::X() -throw(T) { } diff --git a/gcc/testsuite/g++.old-deja/g++.eh/unwind1.C b/gcc/testsuite/g++.old-deja/g++.eh/unwind1.C deleted file mode 100755 index 617b355..0000000 --- a/gcc/testsuite/g++.old-deja/g++.eh/unwind1.C +++ /dev/null @@ -1,24 +0,0 @@ -// Test that unwinding properly restores SP. -// Contributed by Jason Merrill <jason@cygnus.com> - -int f (int i) -{ - throw i; -} - -int main () -{ - void *sp1 = __builtin_alloca (0); - - try - { - f (0); - } - catch (int) - { - } - - void *sp2 = __builtin_alloca (0); - - return (sp1 != sp2); -} diff --git a/gcc/testsuite/g++.old-deja/g++.ext/array1.C b/gcc/testsuite/g++.old-deja/g++.ext/array1.C deleted file mode 100755 index 808eb53..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ext/array1.C +++ /dev/null @@ -1,22 +0,0 @@ -// Testcase for assignment of non-array to array (assigns the same value to -// each member) -// Build don't link: -// Special Options: - -typedef struct {} ct2d_rigid, ct2d_rigid_a[1]; -class ccInspection -{ -protected: - ct2d_rigid_a _dev2phys; -}; -class ccBgaInspection : public ccInspection -{ -public: - int reinspect (unsigned long diagFlags); -}; -int -ccBgaInspection::reinspect (unsigned long diag_flags) -{ - ct2d_rigid physTdev; - _dev2phys = physTdev; // ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.ext/array2.C b/gcc/testsuite/g++.old-deja/g++.ext/array2.C deleted file mode 100755 index 13679af..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ext/array2.C +++ /dev/null @@ -1,13 +0,0 @@ -// This testcase used to cause a crash on the Alpha. -// Special g++ Options: -// Build don't link: - -struct A { - int i; - ~A() { } -}; - -A f (int n) -{ - A a[n]; -} diff --git a/gcc/testsuite/g++.old-deja/g++.ext/arrnew.C b/gcc/testsuite/g++.old-deja/g++.ext/arrnew.C deleted file mode 100755 index ef051d2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ext/arrnew.C +++ /dev/null @@ -1,5 +0,0 @@ -// PRMS Id: 4992 -// Build don't link: -// Special g++ Options: - - int *f(){ return new int[1] = { 1 }; } diff --git a/gcc/testsuite/g++.old-deja/g++.ext/arrnew2.C b/gcc/testsuite/g++.old-deja/g++.ext/arrnew2.C deleted file mode 100755 index e572081..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ext/arrnew2.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// Special g++ Options: - -int *foo = new int[1](0); // gets bogus error - diff --git a/gcc/testsuite/g++.old-deja/g++.ext/bound1.C b/gcc/testsuite/g++.old-deja/g++.ext/bound1.C deleted file mode 100755 index 3b926a4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ext/bound1.C +++ /dev/null @@ -1,29 +0,0 @@ -// Testcase for cast of bound pointer to member function. -// Special g++ Options: -Wno-pmf-conversions -// Build don't link: - -struct A { - int f (); -}; - -typedef int (*fptr)(A *); -typedef void* vptr; -typedef int (A::*pmf)(); - -int foo (A* ap, pmf fp, int A::* ip) -{ - fptr p; - vptr q; - A a; - - p = (fptr)(ap->*fp); - p = (fptr)(ap->*fp); - p = (fptr)(ap->*(&A::f)); - p = (fptr)(a.*fp); - p = (fptr)(a.*(&A::f)); - - q = (vptr)(ap->*fp); - q = (vptr)(ap->*(&A::f)); - q = (vptr)(a.*fp); - q = (vptr)(a.*(&A::f)); -} diff --git a/gcc/testsuite/g++.old-deja/g++.ext/constructor.C b/gcc/testsuite/g++.old-deja/g++.ext/constructor.C deleted file mode 100755 index cdf9f1d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ext/constructor.C +++ /dev/null @@ -1,19 +0,0 @@ -// Testcase for constructor expressions (GNU extension) -// Special g++ Options: - -struct Any { - int *type; - int *addr; -}; - -int i, j; - -main () { - struct Any *ap = (struct Any *) - __builtin_alloca (sizeof(struct Any)); - *ap = ((struct Any){ &i, &j }) ; - - if (ap->type != &i || ap->addr != &j) - return 1; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.ext/default.C b/gcc/testsuite/g++.old-deja/g++.ext/default.C deleted file mode 100755 index f434749..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ext/default.C +++ /dev/null @@ -1,26 +0,0 @@ -// PRMS Id: 5353 -// This may be an extension, but it's a very common one... - -extern "C" int printf (const char *, ...); - -class A { -public: - static A*func (int = 3); - static A*(*ptr)(int = 4); -}; - -A*(*A::ptr)(int) = &A::func; - -int main() -{ - A foo; - - A::ptr(); - A::ptr(47); -} - -A*A::func(int i) -{ - printf("I = %d\n",i); - return (A*)0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.ext/implicit1.C b/gcc/testsuite/g++.old-deja/g++.ext/implicit1.C deleted file mode 100755 index 33b9450..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ext/implicit1.C +++ /dev/null @@ -1,14 +0,0 @@ -// test for implicit declaration -// Special g++ Options: -w -fpermissive - -int -main () -{ - return blarg (); -} - -extern "C" int -blarg (...) -{ - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.ext/memconst.C b/gcc/testsuite/g++.old-deja/g++.ext/memconst.C deleted file mode 100755 index a49d3a0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ext/memconst.C +++ /dev/null @@ -1,25 +0,0 @@ -// From: Ove.Ewerlid@syscon.uu.se (Ove Ewerlid) -// Subject: ss-940630:cc1plus: internal error -// Date: Sat, 2 Jul 1994 05:07:20 +0200 -// Special g++ Options: -// Build don't link: - -class qwerty { -public: - qwerty (const unsigned short userkey[8]); - ~qwerty (); -}; - -class foo { -private: - static const unsigned char * const dummy_key = (unsigned char*)"ThisIs a dummy!"; - -public: - void bar (); -}; - -void -foo::bar () -{ - qwerty QWERTY ((unsigned short*)dummy_key); -} diff --git a/gcc/testsuite/g++.old-deja/g++.ext/null1.C b/gcc/testsuite/g++.old-deja/g++.ext/null1.C deleted file mode 100755 index ca1efff..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ext/null1.C +++ /dev/null @@ -1,8 +0,0 @@ -// Test for overloading with g++ NULL. - -void f (int *) { } -void f (char, char); -int main () -{ - f (__null); -} diff --git a/gcc/testsuite/g++.old-deja/g++.ext/pretty.C b/gcc/testsuite/g++.old-deja/g++.ext/pretty.C deleted file mode 100755 index 715837d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ext/pretty.C +++ /dev/null @@ -1,42 +0,0 @@ -// Test for PRETTY_FUNCTION -// Build don't link: - -class SV; - -class SVTable // : public Debug -{ - // It is an array to pointer to a SV. - SV ** array; - - // This is the size of array. - int maxCount; - - // This is the current element count. - int count; - - void fatal_error (const char *f, ...); - -public: - SVTable (int size, const char *d); - SVTable (); - SVTable (const SVTable &); - ~SVTable () {} - -}; - - -SVTable::SVTable (int size, const char *d) - : maxCount (size), count (0)// , Debug (d) -{ - if (size < 0) - { - fatal_error ("%s: Invalid size: %d\n", __PRETTY_FUNCTION__, size); - } - - array = (SV **) new SV * [size]; - - if (array == 0) - { - fatal_error ("%s: Failed to allocate array\n", __PRETTY_FUNCTION__); - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.ext/typeof1.C b/gcc/testsuite/g++.old-deja/g++.ext/typeof1.C deleted file mode 100755 index a9c03b3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ext/typeof1.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: - -struct inttest { - int elem[1]; -}; - -template <class T> -void F(T x) -{ - typedef __typeof (x.elem[0]) dummy; - dummy i = 1; -} - -int main() { - inttest x; - F(x); -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/README b/gcc/testsuite/g++.old-deja/g++.gb/README deleted file mode 100755 index db11890..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/README +++ /dev/null @@ -1,20 +0,0 @@ -These are my C++ signature and class-scoping tests. - -In changing my signature tests to DejaGnu style, I reduced the number -of tests from 40 to 25. They should still test the same features, -though. All of these tests are run. I don't have any tests yet to -check correct reporting of errors/warnings. - -The class scoping tests were in part derived from Vince Russo's -Renaissance operating system and in part written by myself in helping -Niklas Hallqvist test his rewrite of the scoping code. I had shared -some of these tests with Niklas, others were included in bug reports I -had sent to {g++,gcc}@cygnus.com. It is, therefore, possible that -these tests duplicate tests in other directories. - -All files in this directory, including this file, are Copyright FSF 1995 -and fall under the GPL version 2.0 or later. - -Gerald Baumgartner -gb@cs.purdue.edu -March 1, 1995 diff --git a/gcc/testsuite/g++.old-deja/g++.gb/scope01.C b/gcc/testsuite/g++.old-deja/g++.gb/scope01.C deleted file mode 100755 index e22dd39..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/scope01.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// GROUPS passed gb scope -struct c { typedef int t; }; -struct d { typedef char t; }; diff --git a/gcc/testsuite/g++.old-deja/g++.gb/scope02.C b/gcc/testsuite/g++.old-deja/g++.gb/scope02.C deleted file mode 100755 index 678b73e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/scope02.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed gb scope -struct c { - typedef int t; - struct d { - void foo (t &); - }; -}; - -void c::d::foo (t & x) { } diff --git a/gcc/testsuite/g++.old-deja/g++.gb/scope03.C b/gcc/testsuite/g++.old-deja/g++.gb/scope03.C deleted file mode 100755 index 09fe16a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/scope03.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed gb scope -struct c { - class t { }; - struct d { - void foo (t &); - }; -}; - -void c::d::foo (t & x) { } diff --git a/gcc/testsuite/g++.old-deja/g++.gb/scope04.C b/gcc/testsuite/g++.old-deja/g++.gb/scope04.C deleted file mode 100755 index f63775b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/scope04.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed gb scope -struct a { - struct c { - struct d { - static int foo (int); - }; - }; - - struct b { - int foo (int x) { return c::d::foo (x); } - }; -}; - -int a::c::d::foo (int) { return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.gb/scope05.C b/gcc/testsuite/g++.old-deja/g++.gb/scope05.C deleted file mode 100755 index 60f0b02..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/scope05.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// GROUPS passed gb scope -struct C { - void foo (int); - void foo (char); - - struct D { - void foo (); - }; -}; - -void C::D::foo () { } diff --git a/gcc/testsuite/g++.old-deja/g++.gb/scope06.C b/gcc/testsuite/g++.old-deja/g++.gb/scope06.C deleted file mode 100755 index 46c9d07..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/scope06.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed gb scope -struct C { - struct D { - int x; - void foo (); - }; - const int Ok = 0; // ERROR - initialization forbidden -}; - -void C::D::foo () -{ - x = Ok; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/scope07.C b/gcc/testsuite/g++.old-deja/g++.gb/scope07.C deleted file mode 100755 index 051bbb5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/scope07.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS passed gb scope -struct D { - friend class A; - friend class B; - friend class C; - - void foo (); -}; - -void D::foo () { } diff --git a/gcc/testsuite/g++.old-deja/g++.gb/scope08.C b/gcc/testsuite/g++.old-deja/g++.gb/scope08.C deleted file mode 100755 index 2451965..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/scope08.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed gb scope -template <class X> class C { -public: - int f (X ob) { return 0; } - int g (X ob) { return f (ob); } -}; - -class D { -public: - class E { public: E (); }; - - C <E> x; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.gb/scope09.C b/gcc/testsuite/g++.old-deja/g++.gb/scope09.C deleted file mode 100755 index cc17afc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/scope09.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed gb scope -class enclose { - int e; -protected: - class nested { - int n; - }; -}; - -class derived : public enclose { -protected: - class nested_derived : public nested { - int nd; - }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.gb/scope10.C b/gcc/testsuite/g++.old-deja/g++.gb/scope10.C deleted file mode 100755 index 32caa60..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/scope10.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// GROUPS passed gb scope -void Foo (void) -{ - class C { - public: - virtual int foo (void) { return 0; }; - }; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/scope11.C b/gcc/testsuite/g++.old-deja/g++.gb/scope11.C deleted file mode 100755 index 19229df..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/scope11.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't link: -// GROUPS passed gb scope -template<class T, int N> class fixed_array { -public: - T _array[N]; -}; - -class Hash { -public: - Hash (int); -}; - -typedef fixed_array<char, 4> ipAddress_t; - -class IPAddress { -protected: - long _i; -public: - IPAddress (ipAddress_t ip) { } - IPAddress () { } - IPAddress netMask () { return *this; } - operator Hash (); -}; - -IPAddress::operator Hash () -{ - return Hash (_i); -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/scope12.C b/gcc/testsuite/g++.old-deja/g++.gb/scope12.C deleted file mode 100755 index 52916b9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/scope12.C +++ /dev/null @@ -1,35 +0,0 @@ -// Build don't link: -// GROUPS passed gb scope -template<class T, int N> class FixedArray_t { -public: - T _array[N]; - - FixedArray_t () { } -}; - -typedef FixedArray_t<unsigned char, 4> IPAddress_t; - -class IPAddress { -public: - IPAddress (IPAddress_t ip) { } - - operator IPAddress_t () - { - IPAddress_t rv; - return rv; - } - - IPAddress () { } -}; - -class DatagramHeader { -public: - IPAddress _src; - - void setHeader (IPAddress); -}; - -void -DatagramHeader::setHeader (IPAddress) -{ -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/scope13.C b/gcc/testsuite/g++.old-deja/g++.gb/scope13.C deleted file mode 100755 index 9ca5ba8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/scope13.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS passed gb scope -class X { -public: -}; - -class Y { -public: - void X(); - ::X X(int); -}; diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig01.C b/gcc/testsuite/g++.old-deja/g++.gb/sig01.C deleted file mode 100755 index a3e9277..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig01.C +++ /dev/null @@ -1,33 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr assignment -// Test assignment to local signature pointer. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - char * f (void) { return "PA"; } - char * g (int) { return "SS"; } -}; - -signature S -{ - char * f (void); - char * g (int); -}; - -int main (void) -{ - C a; - S * p; - - p = &a; - - printf ("%s%s\n", p->f (), p->g (0)); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig02.C b/gcc/testsuite/g++.old-deja/g++.gb/sig02.C deleted file mode 100755 index f739a28..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig02.C +++ /dev/null @@ -1,45 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr assignment -// Test assigning objects of different classes to local signature pointer. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - char * f (void) { return "PA"; } -}; - -class D -{ -public: - char * f (void) { return "SS"; } -}; - -signature S -{ - char * f (void); -}; - -int main (void) -{ - C a; - D b; - S * p; - int i; - - for (i = 0; i < 2; i++) - { - if (i == 0) - p = &a; - else - p = &b; - printf ("%s", p->f ()); - } - printf ("\n"); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig03.C b/gcc/testsuite/g++.old-deja/g++.gb/sig03.C deleted file mode 100755 index d791c7e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig03.C +++ /dev/null @@ -1,33 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr overloading -// Test overloading of signature member functions. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - char * f (void) { return "PA"; } - char * f (int) { return "SS"; } -}; - -signature S -{ - char * f (void); - char * f (int); -}; - -int main (void) -{ - C a; - S * p; - - p = &a; - - printf ("%s%s\n", p->f (), p->f (0)); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig04.C b/gcc/testsuite/g++.old-deja/g++.gb/sig04.C deleted file mode 100755 index af54959..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig04.C +++ /dev/null @@ -1,46 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr this -// Test passing of 'this' pointer through signature pointer. - -extern "C" -{ - int printf (char *, ...); -} - -class C; -int inc_mod_4 (C *); - -class C -{ -public: - char * text[4]; - int i; - int get_i (void) { return i; } - char * msg (void) { i = inc_mod_4 (this); return text[i]; } -}; - -signature S -{ - char * msg (void); -}; - -int inc_mod_4 (C * p) -{ - return (p->get_i () + 1) % 4; -} - -int main (void) -{ - C o = { "P", "A", "S", "S", -1 }; - S * p; - int i; - - p = &o; - - for (i = 0; i < 4; i++) - printf ("%s", p->msg ()); - - printf ("\n"); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig05.C b/gcc/testsuite/g++.old-deja/g++.gb/sig05.C deleted file mode 100755 index 3023e34..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig05.C +++ /dev/null @@ -1,31 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr initialization -// Test initialization of a local signature pointer. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - char * f (void) { return "PA"; } - char * g (int) { return "SS"; } -}; - -signature S -{ - char * f (void); - char * g (int); -}; - -int main (void) -{ - C a; - S * p = &a; - - printf ("%s%s\n", p->f (), p->g (0)); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig06.C b/gcc/testsuite/g++.old-deja/g++.gb/sig06.C deleted file mode 100755 index b6476d5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig06.C +++ /dev/null @@ -1,31 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr initialization -// Test initialization of a local signature pointer. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - char * f (void) { return "PA"; } - char * g (int) { return "SS"; } -}; - -signature S -{ - char * f (void); - char * g (int); -}; - -C a; -S * p = &a; - -int main (void) -{ - printf ("%s%s\n", p->f (), p->g (0)); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig07.C b/gcc/testsuite/g++.old-deja/g++.gb/sig07.C deleted file mode 100755 index 18a47be..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig07.C +++ /dev/null @@ -1,29 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr default-argument -// Test calling a signature member function with default argument. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - char * f (char * text) { return text; } -}; - -signature S -{ - char * f (char * text = "PA"); -}; - -C a; -S * p = &a; - -int main (void) -{ - printf ("%s%s\n", p->f (), p->f ("SS")); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig08.C b/gcc/testsuite/g++.old-deja/g++.gb/sig08.C deleted file mode 100755 index 2d5d14d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig08.C +++ /dev/null @@ -1,40 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr argument return-value -// Test passing a signature pointer to a function and returning it from one. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - char * text; - char * get_msg (void) const { return text; } -}; - -const C a = { "PA" }; -const C b = { "SS" }; - -signature S -{ - char * get_msg (void) const; -}; - -char * f (const S * p) -{ - return p->get_msg (); -} - -const S * g (const C * p) -{ - return p; -} - -int main (void) -{ - printf ("%s%s\n", f(&a), g(&b)->get_msg ()); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig09.C b/gcc/testsuite/g++.old-deja/g++.gb/sig09.C deleted file mode 100755 index a2e3b33..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig09.C +++ /dev/null @@ -1,34 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr assignment initialization new -// Test assignment to/initialization of signature pointer with run-time value. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - int f (void) { return 1; } -}; - -signature S -{ - int f (void); -}; - -S * p1 = new C; - -int main (void) -{ - S * p2 = new C; - S * p3; - - p3 = new C; - - if (p1->f () + p2->f () + p3->f () == 3) - printf ("PASS\n"); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig10.C b/gcc/testsuite/g++.old-deja/g++.gb/sig10.C deleted file mode 100755 index e16f2ee..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig10.C +++ /dev/null @@ -1,38 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr argument return-value new -// Test passing a signature pointer to a function and returning it from one. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ - char * text; -public: - C (char * s) { text = s; } - char * get_msg (void) const { return text; } -}; - -signature S -{ - char * get_msg (void) const; -}; - -char * f (const S * p) -{ - return p->get_msg (); -} - -const S * g (const C * p) -{ - return p; -} - -int main (void) -{ - printf ("%s%s\n", f(new C ("PA")), g(new C ("SS"))->get_msg ()); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig11.C b/gcc/testsuite/g++.old-deja/g++.gb/sig11.C deleted file mode 100755 index 892695f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig11.C +++ /dev/null @@ -1,34 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr array -// Test a signature pointer array. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - char * f (void) { return "PA"; } -}; - -class D -{ -public: - char * f (void) { return "SS"; } -}; - -signature S -{ - char * f (void); -}; - -int main (void) -{ - S * p[2] = { new C, new D }; - - printf ("%s%s\n", p[0]->f (), p[1]->f ()); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig12.C b/gcc/testsuite/g++.old-deja/g++.gb/sig12.C deleted file mode 100755 index 2747a80..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig12.C +++ /dev/null @@ -1,40 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr structure -// Test a signature pointer structure. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - char * f (void) { return "PA"; } -}; - -class D -{ -public: - char * f (void) { return "SS"; } -}; - -signature S -{ - char * f (void); -}; - -struct SP -{ - S * p; - S * q; -}; - -int main (void) -{ - SP o = { new C, new D }; - - printf ("%s%s\n", o.p->f (), o.q->f ()); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig13.C b/gcc/testsuite/g++.old-deja/g++.gb/sig13.C deleted file mode 100755 index f5da9f8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig13.C +++ /dev/null @@ -1,38 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr assignment initialization -// Test assignment of/initialization with same type signature pointer. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - int f (void) { return 1; } -}; - -signature S -{ - int f (void); -}; - -C a; -S * p1 = &a; -S * q1 = p1; - -int main (void) -{ - C a; - S * p2 = &a; - S * q2 = p2; - S * q3; - - q3 = p2; - - if (q1->f () + q2->f () + q3->f () == 3) - printf ("PASS\n"); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig14.C b/gcc/testsuite/g++.old-deja/g++.gb/sig14.C deleted file mode 100755 index 6ce1d02..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig14.C +++ /dev/null @@ -1,55 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr assignment initialization -// Test assignment of/initialization with different type signature pointer. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - int f (void) { return 1; } - int g (int) { return 2; } -}; - -signature S -{ - int f (void); - int g (int); -}; - -signature T -{ - int f (void); -}; - -signature U -{ - int g (int); -}; - -C a; -S * p1 = &a; -T * q1 = p1; -U * r1 = p1; - -int main (void) -{ - C a; - S * p2 = &a; - T * q2 = p2; - U * r2 = p2; - T * q3; - U * r3; - - q3 = p2; - r3 = p2; - - if (q1->f () + q2->f () + q3->f () == 3 - && r1->g (0) + r2->g (0) + r3->g (0) == 6) - printf ("PASS\n"); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig15.C b/gcc/testsuite/g++.old-deja/g++.gb/sig15.C deleted file mode 100755 index f0ae52e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig15.C +++ /dev/null @@ -1,35 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr cast -// Test casting a signature pointer to a class pointer. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - char * f (void) { return "PA"; } - char * g (int) { return "SS"; } -}; - -signature S -{ - char * f (void); - char * g (int); -}; - -int main (void) -{ - C a; - S * p; - C * q; - - p = &a; - q = (C *) p; - - printf ("%s%s\n", q->f (), q->g (0)); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig16.C b/gcc/testsuite/g++.old-deja/g++.gb/sig16.C deleted file mode 100755 index 35475e9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig16.C +++ /dev/null @@ -1,44 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr cast -// Test casting a class pointer to an anonymous signature pointer. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - char * f (void) { return "PA"; } - char * g (int) { return "S"; } - char * h (void) { return "FAIL"; } -}; - -signature S -{ - char * f (void); - char * g (int); -}; - -signature T -{ - char * f (void); -}; - -C a; -signature { char * g (int); } * r1 = - (signature { char * h (void); char * g (int); } *) &a; - -int main (void) -{ - C a; - S * p = &a; - T * q = p; - signature { char * g (int); } * r2 = - (signature { char * h (void); char * g (int); } *) &a; - - printf ("%s%s%s\n", q->f (), r1->g (0), r2->g (0)); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig17.C b/gcc/testsuite/g++.old-deja/g++.gb/sig17.C deleted file mode 100755 index 6d1d1d9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig17.C +++ /dev/null @@ -1,54 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr cast -// Test casting a class pointer through a chain of signature pointers. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - char * f (void) { return "PA"; } - char * g (int) { return "SS"; } -}; - -class D : public C -{ -public: - char * h (void) { return "FAIL"; } -}; - -class E : public C -{ -public: - int foo (int) { return 0; } -}; - -signature S -{ - char * f (void); - char * g (int); -}; - -signature T -{ - char * f (void); -}; - -int main (void) -{ - D a; - S * p; - T * q; - signature { char * g (int); } * r; - - p = &a; - q = (T*) (signature { char * f (void); int foo (int); } *) (E*) (S*) (C*) p; - r = (signature { char * h (void); char * g (int); } *) &a; - - printf ("%s%s\n", q->f (), r->g (0)); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig18.C b/gcc/testsuite/g++.old-deja/g++.gb/sig18.C deleted file mode 100755 index ba0ec86..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig18.C +++ /dev/null @@ -1,33 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr assignment virtual -// Test assignment of object from virtual class to signature pointer. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - virtual char * f (void) { return "PA"; } - virtual char * g (int) { return "SS"; } -}; - -signature S -{ - char * f (void); - char * g (int); -}; - -int main (void) -{ - C a; - S * p; - - p = &a; - - printf ("%s%s\n", p->f (), p->g (0)); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig19.C b/gcc/testsuite/g++.old-deja/g++.gb/sig19.C deleted file mode 100755 index 160a4a3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig19.C +++ /dev/null @@ -1,38 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr initialization virtual -// Test initialization of signature pointer with object from abstract class. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - virtual char * f (void) = 0; - virtual char * g (int) = 0; -}; - -class D : public C -{ -public: - char * f (void) { return "PA"; } - char * g (int) { return "SS"; } -}; - -signature S -{ - char * f (void); - char * g (int); -}; - -int main (void) -{ - C * p = new D; - S * q = p; - - printf ("%s%s\n", q->f (), q->g (0)); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig20.C b/gcc/testsuite/g++.old-deja/g++.gb/sig20.C deleted file mode 100755 index a8228de..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig20.C +++ /dev/null @@ -1,38 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr initialization virtual -// Test initialization of signature pointer with object from virtual class. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - virtual char * f (void) { return "FA"; } - virtual char * g (int) { return "IL"; } -}; - -class D : public C -{ -public: - char * f (void) { return "PA"; } - char * g (int) { return "SS"; } -}; - -signature S -{ - char * f (void); - char * g (int); -}; - -int main (void) -{ - C * p = new D; - S * q = p; - - printf ("%s%s\n", q->f (), q->g (0)); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig21.C b/gcc/testsuite/g++.old-deja/g++.gb/sig21.C deleted file mode 100755 index faad45b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig21.C +++ /dev/null @@ -1,56 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr assignment virtual -// Test assignment of objects of different types to same signature pointer. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - virtual char * f (void) = 0; -}; - -class D : public C -{ -public: - char * f (void) { return "P"; } -}; - -class E -{ -public: - char * f (void) { return "AS"; } -}; - -class F : public C -{ -public: - char * f (void) { return "S"; } -}; - -signature S -{ - char * f (void); -}; - -int main (void) -{ - E a; - C * p = new D; - S * q; - - q = p; - printf ("%s", q->f ()); - - q = &a; - printf ("%s", q->f ()); - - p = new F; - q = p; - printf ("%s\n", q->f ()); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig22.C b/gcc/testsuite/g++.old-deja/g++.gb/sig22.C deleted file mode 100755 index 25b0a1a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig22.C +++ /dev/null @@ -1,59 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr assignment initialization -// Test assignment to/init of sigptr that requires copying sigtable slots. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - int f (void) { return 1; } - int g (int) { return 2; } - int h (void) { return 666; } -}; - -signature S -{ - int f (void); - int g (int); - int h (void); -}; - -signature T -{ - int f (void); - int h (void); -}; - -signature U -{ - int h (void); - int g (int); -}; - -C a; -S * p = &a; -T * q1 = p; -U * r1 = p; - -int main (void) -{ - C a; - S * p = &a; - T * q2 = p; - U * r2 = p;; - T * q3; - U * r3; - - q3 = p; - r3 = p; - - if (q1->f () + q2->f () + q3->f () == 3 - && r1->g (0) + r2->g (0) + r3->g (0) == 6) - printf ("PASS\n"); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig23.C b/gcc/testsuite/g++.old-deja/g++.gb/sig23.C deleted file mode 100755 index 767cfa3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig23.C +++ /dev/null @@ -1,53 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr assignment local-signature -// Test assignment to signature pointer of local signature. - -extern "C" -{ - int printf (char *, ...); -} - -char * PA (void) -{ - class C - { - public: - char * f (void) { return "PA"; } - }; - - signature S - { - char * f (void); - }; - - C a; - S * p = &a; - - return p->f (); -} - -char * SS (void) -{ - class C - { - public: - char * f (void) { return "SS"; } - }; - - signature S - { - char * f (void); - }; - - C a; - S * p = &a; - - return p->f (); -} - -int main (void) -{ - printf ("%s%s\n", PA (), SS ()); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig24.C b/gcc/testsuite/g++.old-deja/g++.gb/sig24.C deleted file mode 100755 index 2dca6f9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig24.C +++ /dev/null @@ -1,36 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr opaque-type -// Test calling member functions taking/returning opaque type through sigptr. - -extern "C" -{ - int printf (char *, ...); -} - -signature S -{ - typedef t; - char * f (t); - t g (void); - t h (void); -}; - -class C -{ -public: - typedef char * t; - char * f (t text) { return text; } - t g (void) { return "PA"; } - t h (void) { return "SS"; } -}; - -int main (void) -{ - C a; - S * p = &a; - S::t w = p->h (); - - printf ("%s%s\n", p->f (p->g ()), p->f (w)); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig25.C b/gcc/testsuite/g++.old-deja/g++.gb/sig25.C deleted file mode 100755 index d00ef57..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig25.C +++ /dev/null @@ -1,33 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr default-implementation -// Test calling default implementation through signature pointer. - -extern "C" -{ - int printf (char *, ...); -} - -class C { }; - -class D -{ -public: - char * f (void) { return "SS"; } -}; - -signature S -{ - char * f (void) { return "PA"; } -}; - -int main (void) -{ - C a; - D b; - S * p = &a; - S * q = &b; - - printf ("%s%s\n", p->f (), q->f ()); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig26.C b/gcc/testsuite/g++.old-deja/g++.gb/sig26.C deleted file mode 100755 index 399737b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig26.C +++ /dev/null @@ -1,34 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr default-implementation -// Test calling default implementation through signature pointer. - -extern "C" -{ - int printf (char *, ...); -} - -class C { }; - -class D -{ -public: - char * f (void) { return "SS"; } -}; - -signature S -{ - char * f (void) { return "PA"; } - char * g (void) { return f (); } -}; - -int main (void) -{ - C a; - D b; - S * p = &a; - S * q = &b; - - printf ("%s%s\n", p->g (), q->g ()); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig27.C b/gcc/testsuite/g++.old-deja/g++.gb/sig27.C deleted file mode 100755 index 7b9e7d2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig27.C +++ /dev/null @@ -1,38 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr multiple-inheritance -// Test class defined by multiple inheritance as implementation of signature. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - char * f (void) { return "PA"; } -}; - -class D -{ -public: - char * g (void) { return "SS"; } -}; - -class E : public C, public D { }; - -signature S -{ - char * f (void); - char * g (void); -}; - -int main (void) -{ - E a; - S * p = &a; - - printf ("%s%s\n", p->f (), p->g ()); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig28.C b/gcc/testsuite/g++.old-deja/g++.gb/sig28.C deleted file mode 100755 index 4edff68..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig28.C +++ /dev/null @@ -1,46 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr multiple-inheritance -// Test correct adjustment of `this' pointer in case of multiple inheritance. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ - char * text; -public: - C () { text = "PA"; } - char * f (void) { return text; } -}; - -class D -{ - char * text; -public: - D () { text = "SS"; } - char * g (void) { return text; } -}; - -class E : public C, public D -{ -public: - E () : C (), D () { } -}; - -signature S -{ - char * f (void); - char * g (void); -}; - -int main (void) -{ - E a; - S * p = &a; - - printf ("%s%s\n", p->f (), p->g ()); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig29.C b/gcc/testsuite/g++.old-deja/g++.gb/sig29.C deleted file mode 100755 index e5c5e39..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig29.C +++ /dev/null @@ -1,46 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr multiple-inheritance -// Test calling virtual function from MI class through signature pointer. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ - char * text; -public: - C () { text = "PA"; } - virtual char * f (void) { return text; } -}; - -class D -{ - char * text; -public: - D () { text = "SS"; } - virtual char * g (void) { return text; } -}; - -class E : public C, public D -{ -public: - E () : C (), D () { } -}; - -signature S -{ - char * f (void); - char * g (void); -}; - -int main (void) -{ - E a; - S * p = &a; - - printf ("%s%s\n", p->f (), p->g ()); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig30.C b/gcc/testsuite/g++.old-deja/g++.gb/sig30.C deleted file mode 100755 index 3e93e11..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig30.C +++ /dev/null @@ -1,48 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr multiple-inheritance -// Test calling overwritten virtual functions through signature pointer. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - char * text1; - C () { text1 = "PA"; } - virtual char * f (void) = 0; -}; - -class D -{ -public: - char * text2; - D () { text2 = "SS"; } - virtual char * g (void) = 0; -}; - -class E : public C, public D -{ -public: - E () : C (), D () { }; - char * f (void) { return text1; } - char * g (void) { return text2; } -}; - -signature S -{ - char * f (void); - char * g (void); -}; - -int main (void) -{ - E a; - S * p = &a; - - printf ("%s%s\n", p->f (), p->g ()); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.gb/sig31.C b/gcc/testsuite/g++.old-deja/g++.gb/sig31.C deleted file mode 100755 index 90fa9e9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.gb/sig31.C +++ /dev/null @@ -1,52 +0,0 @@ -// Special g++ Options: -fhandle-signatures -// GROUPS passed gb sigptr assignment sigsigtable -// Test use of multiple signature-signature tables for same signature pair. - -extern "C" -{ - int printf (char *, ...); -} - -class C -{ -public: - virtual int f (void) { return 1; } - int g (int) { return 2; } -}; - -class D : public C -{ -public: - int f (void) { return 3; } - int g (int) { return 4; } -}; - -signature S -{ - int f (void); - int g (int); -}; - -signature T -{ - int g (int); - int f (void); -}; - -int main (void) -{ - S * p = new C; - T * q = p; - T * r; - - p = new D; - r = p; - - if (q->f () == 1 && q->g (0) == 2 - && r->f () == 3 && r->g (0) == 4) - printf ("PASS\n"); - else - printf ("FAIL\n"); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/.cvsignore b/gcc/testsuite/g++.old-deja/g++.jason/.cvsignore deleted file mode 100755 index fcd0a43..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/.cvsignore +++ /dev/null @@ -1,4 +0,0 @@ -wa.C -wa2.C -*.ii -*.s diff --git a/gcc/testsuite/g++.old-deja/g++.jason/2371.C b/gcc/testsuite/g++.old-deja/g++.jason/2371.C deleted file mode 100755 index b11db5e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/2371.C +++ /dev/null @@ -1,571 +0,0 @@ -// GROUPS passed templates nested-classes -// Special g++ Options: -// -// The SetLS template test -// -// Wendell Baker, Berkeley CAD Group, 1993 (wbaker@ic.Berkeley.EDU) -// - - -#pragma implementation "ListS.h" -#pragma implementation "SetLS.h" - -#include <stdlib.h> -#include <iostream.h> -# 1 "../../templates/SetLS.h" 1 -// -*- C++ -*- - - - -// -// A Set Template - implemented with an ListS -// -// Wendell Baker, Berkeley CAD Group, 1993 (wbaker@ic.Berkeley.EDU) -// - - - - - -#pragma interface - - - - - -#define XTRUE true -#define XFALSE false - -# 37 "../../templates/SetLS.h" - - -# 1 "../../templates/ListS.h" 1 -// -*- C++ -*- - - - -// -// A List Template - providing a singly linked capability -// -// Wendell Baker, Berkeley CAD Group, 1993 (wbaker@ic.Berkeley.EDU) -// - - - - - -#pragma interface - - - - - - -# 1 "/projects/gnu-cygnus/gnu-cygnus-14/mips/lib/gcc-lib/decstation/cygnus-reno-1/g++-include/bool.h" 1 3 -// Defining XTRUE and XFALSE is usually a Bad Idea, -// because you will probably be inconsistent with anyone -// else who had the same clever idea. -// Therefore: DON'T USE THIS FILE. - - - - - - - - - -# 26 "../../templates/ListS.h" 2 - -# 37 "../../templates/ListS.h" - - - -// g++ reno-1 is not yet capable of creating templates with nested -// classes which instantiate the template arguments. -template<class T> -struct ListS_link { - T item; - ListS_link<T> *next; - - ListS_link(const T& i, ListS_link<T> *n = 0): item(i), next(n) - { } -}; - - -// -// For now, errors are raised by ::abort() because exceptions -// are not well implemented in cxx or at all in CC 3.0.1 -// -template<class T> -class ListS { -public: - ListS(); - ListS(const ListS<T>&); - ~ListS(); - - void operator=(const ListS<T>&); - - unsigned length() const - { return count; } - - void prepend(const T& item); - void append(const T& item); - void clear(); - - const T& head() const - { ensure_1(); - return head_link->item; } - T& head() - { ensure_1(); - return head_link->item; } - void head(T& fill) const - { ensure_1(); - fill = head_link->item; } - void remove_head() - { remove_head_filling(0); } - void remove_head(T& fill) - { remove_head_filling(&fill); } - - const T& tail() const - { ensure_1(); - return tail_link->item; } - T& tail() - { ensure_1(); - return tail_link->item; } - void tail(T& fill) const - { ensure_1(); - fill = tail_link->item; } - - class Vix { - public: - Vix(): owner(0), index(0) - { } - - // These are friend functions so that v == x is the same as x == v - friend int operator==(void *v, const Vix& x) - { return v == x.index; } - friend int operator==(const Vix& x, void *v) - { return v == x.index; } - friend int operator!=(void *v, const Vix& x) - { return v != x.index; } - friend int operator!=(const Vix& x, void *v) - { return v != x.index; } - friend int operator==(const Vix& x1, const Vix& x2) - { return x1.owner == x2.owner && x1.index == x2.index; } - friend int operator!=(const Vix& x1, const Vix& x2) - { return x1.owner != x2.owner || x1.index != x2.index; } - private: - friend class ListS<T>; - - - Vix(const ListS<T> *o, ListS_link<T> *i): owner(o), index(i) - { } - - - - - - const ListS<T> *owner; - - ListS_link<T> *index; - - - - }; - - Vix first() const - { return Vix(this, head_link); } - void next(Vix& x) const - { check(x); - if (x.index != 0) - x.index = x.index->next; } - T& operator()(const Vix& x) - { check(x); - return x.index->item; } - const T& operator()(const Vix& x) const - { check(x); - return x.index->item; } -protected: -# 154 "../../templates/ListS.h" - - - unsigned count; - - ListS_link<T> *head_link; // 0 for a zero-length list - ListS_link<T> *tail_link; // 0 for a zero-length list - - - - - -private: - // fill may be 0 (then don't fill) - void remove_head_filling(T *fill); - - void ensure_1() const - { if (0 == head_link) - ::abort(); } - void check(const Vix& x) const - { if (this != x.owner) - ::abort(); - if (0 == x.index) - ::abort(); } -}; - -template<class T> -ListS<T>::ListS(): -count(0), -head_link(0), -tail_link(0) -{ } - -template<class T> -ListS<T>::ListS(const ListS<T>& other): -count(0), -head_link(0), -tail_link(0) -{ - for (Vix x=other.first(); 0 != x; other.next(x)) - append(other(x)); -} - -template<class T> -ListS<T>::~ListS() -{ - clear(); -} - -template<class T> -void -ListS<T>::operator=(const ListS<T>& other) -{ - clear(); - for (Vix x=other.first(); 0 != x; other.next(x)) - append(other(x)); -} - -template<class T> -void -ListS<T>::prepend(const T& item) -{ - - head_link = new ListS_link<T>(item, head_link); - - - - if (0 == tail_link) - tail_link = head_link; - count++; -} - -template<class T> -void -ListS<T>::append(const T& item) -{ - - ListS_link<T> *new_link = new ListS_link<T>(item); - - - - if (0 == tail_link) { - head_link = new_link; - tail_link = new_link; - } else { - tail_link->next = new_link; - tail_link = tail_link->next; - } - count++; -} - -template<class T> -void -ListS<T>::clear() -{ - - ListS_link<T> *next, *l; - - - - for (l=head_link; 0 != l; l=next) { - next = l->next; - delete l; - } - - count = 0; - head_link = 0; - tail_link = 0; -} - -template<class T> -void -ListS<T>::remove_head_filling(T* fill) -// fill may be 0 in which case don't assign into it -{ - ensure_1(); - - ListS_link<T> *ohead = head_link; - - - - if (0 != fill) - *fill = ohead->item; - head_link = ohead->next; - if (0 == head_link) - tail_link = 0; - count--; - delete ohead; -} - - -# 39 "../../templates/SetLS.h" 2 - - -# 62 "../../templates/SetLS.h" - -template<class T> -class SetLS { -public: - SetLS(); - - void add(const T& item); - // There is no remove(const T& item) for this set - bool contains(const T& item) const; - - unsigned length() const - { return list.length(); } - - void clear() - { list.clear(); } - - class Vix { - public: - Vix(): owner(0), vix() - { } - - // These are friend functions so that v == x is the same as x == v - friend int operator==(void *v, const Vix& x) - { return v == x.vix; } - friend int operator==(const Vix& x, void *v) - { return v == x.vix; } - friend int operator!=(void *v, const Vix& x) - { return v != x.vix; } - friend int operator!=(const Vix& x, void *v) - { return v != x.vix; } - friend int operator==(const Vix& x1, const Vix& x2) - { return x1.owner == x2.owner && x1.vix == x2.vix; } - friend int operator!=(const Vix& x1, const Vix& x2) - { return x1.owner != x2.owner || x1.vix != x2.vix; } - private: - friend class SetLS<T>; - - Vix(const SetLS<T> *o, const ListS<T>::Vix& x): owner(o), vix(x) - { } - - const SetLS<T> *owner; - ListS<T>::Vix vix; - }; - friend class Vix; - - Vix first() const - { return Vix(this, list.first()); } - void next(Vix& x) const - { check(x); - list.next(x.vix); } - const T& operator()(const Vix& x) const - { check(x); - return list(x.vix); } - // There is item no remove(const Vix&) for this set -protected: - ListS<T> list; - -private: - void check(const Vix& x) const - { if (this != x.owner) - ::abort(); } -}; - - -template<class T> -SetLS<T>::SetLS(): - - - -list() - -{ } - -template<class T> -void -SetLS<T>::add(const T& item) -{ - if ( ! contains(item) ) { - - - - list.append(item); - - } -} - -template<class T> -bool -SetLS<T>::contains(const T& item) const -{ - for (Vix x=first(); 0 != x; next(x)) { - if (operator()(x) == item) - return XTRUE; - } - return XFALSE; -} - - -# 14 "SetLS.cc" 2 - - - -# 1 "/projects/gnu-cygnus/gnu-cygnus-14/mips/lib/gcc-lib/decstation/cygnus-reno-1/g++-include/iostream.h" 1 3 -// This is part of the iostream library, providing -*- C++ -*- input/output. -// Copyright (C) 1991 Per Bothner. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free -// Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -# 211 "/projects/gnu-cygnus/gnu-cygnus-14/mips/lib/gcc-lib/decstation/cygnus-reno-1/g++-include/iostream.h" 3 - -# 21 "SetLS.cc" 2 - - -// In (most versions of) g++ 2.X, this use of typedefs has the effect -// of causing the instantiation of the templates, thereby testing the -// templates - -class test { -public: - test(): value(0) - { } - test(int v): value(v) - { } - - void print(ostream& out) const - { out << value; } - - friend int operator==(const test& a, const test& b); -private: - int value; -}; - -int -operator==(const test& a, const test& b) -{ - return a.value == b.value; -} - -ostream& -operator<<(ostream& o, const test& t) -{ - t.print(o); - return o; -} - -typedef SetLS<test> SLS; - -static ostream& -operator<<(ostream& o, const SLS& s) -{ - o << "set of " << s.length() << " = {"; - - bool first; - SetLS<test>::Vix x; - for (first=XTRUE, x=s.first(); 0 != x; s.next(x), first=XFALSE) { - if ( ! first ) - o << ','; - o << ' '; - s(x).print(o); - } - o << '}'; - - return o; -} - -SLS gsls; -const SLS gcsls; - -int foo() -{ - const unsigned SIZE = 20; - - // - // SetLS() - // SetLS(const SetLS<T>&) - // - SLS sls; - { - // Fill sls with some interesting values - for (unsigned i=0; i<SIZE; i++) { - test t = i; - sls.add(t); - } - } - - const SLS csls(sls); - - // - // void operator=(const SetLS<T>&); - // - sls = csls; - - // - // bool contains(const T& item) const - // - for (unsigned i=0; i<SIZE; i++) { - test t = i; - - int contains = sls.contains(t); - } - - // - // void clear() - // - sls.clear(); - if (sls.length() != 0) - ::abort(); - - sls = csls; - - // - // Vix first() const - // void next(Vix& x) const - // T& operator()(const Vix& x) - // const T& operator()(const Vix& x) const - // - SetLS<test>::Vix cx; - for (cx=csls.first(); 0 != cx; sls.next(cx)) { - if ( ! sls.contains(csls(cx)) ) - ::abort(); - } - - cout << "gsls:\t" << gsls << '\n'; - cout << "gcsls:\t" << gcsls << '\n'; - cout << "sls:\t" << sls << '\n'; - cout << "csls:\t" << csls << '\n'; -} - -// Dummy function so it'll run -int main() -{ - cout << "PASS" << endl; -} - -template class ListS<test>; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/3523.C b/gcc/testsuite/g++.old-deja/g++.jason/3523.C deleted file mode 100755 index f47bd7b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/3523.C +++ /dev/null @@ -1,40 +0,0 @@ -// Build don't link: -// GROUPS passed assignment -class ccUnwind -{ -public: - virtual ~ccUnwind (); // comment out virtual, and void diag changes -}; - -template<class T> -class ccHandle : public ccUnwind // similarly comment out inheritance -{ -public: - ccHandle& operator = (const ccHandle& h); -}; - -class cc_Image; - -class ccImage : public ccHandle<cc_Image> -{ -public: -// reversing the order of the next two lines changes the diagnostic -// printed about the def of ccDisplay::image - ccImage (const ccImage &); - ccImage (const cc_Image &); -}; - -class ccDisplay -{ -public: - ccImage img; -//ccImage image ( ccImage i) {img = i; return img;} -// above line compiles - ccImage image ( ccImage i) { return img = i;} /* this gets void* error */ -}; - - - -// vd.C: In method `class ccImage ccDisplay::image (class ccImage)': -// vd.C:31: bad argument 1 for function `ccImage::ccImage (const class cc_Image&)' (type was void *) -// vd.C:31: in base initialization for class `ccImage' diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access1.C b/gcc/testsuite/g++.old-deja/g++.jason/access1.C deleted file mode 100755 index fff77f2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access1.C +++ /dev/null @@ -1,17 +0,0 @@ -// Bug: access declarations are broken. -// Build don't link: - -class A { -public: - void foo (); -}; - -class B: private A { -public: - A::foo; -}; - -void foo() { - B b; - b.foo (); // gets bogus error - -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access10.C b/gcc/testsuite/g++.old-deja/g++.jason/access10.C deleted file mode 100755 index 6db610c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access10.C +++ /dev/null @@ -1,14 +0,0 @@ -// PRMS Id: 4839 -// Bug: The initializer of a static member of a class has the same acess -// rights as a member function. g++ doesn't realize that. -// Build don't link: - -class X -{ - X (int); - static X foo; -public: - void dummy(); -}; - -X X::foo = 9; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access11.C b/gcc/testsuite/g++.old-deja/g++.jason/access11.C deleted file mode 100755 index 31a89b2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access11.C +++ /dev/null @@ -1,12 +0,0 @@ -// PRMS Id: 4900 -// Bug: g++ doesn't apply access control uniformly to type conversion operators -// Build don't link: - -struct A { -protected: - operator int * () const; -}; - -struct B : public A { - int * foo () { return A::operator int *(); } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access12.C b/gcc/testsuite/g++.old-deja/g++.jason/access12.C deleted file mode 100755 index 71e3361..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access12.C +++ /dev/null @@ -1,16 +0,0 @@ -// PRMS Id: 4694 -// Bug: g++ doesn't realize that A::i refers to a member of `this' in B(). -// Build don't link: - -class A { -protected: - int i; -}; - -struct B : public A { - B () { A::i = 0; } -}; - -struct C : public B { - C () { B::i = 0; } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access13.C b/gcc/testsuite/g++.old-deja/g++.jason/access13.C deleted file mode 100755 index c12dd81..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access13.C +++ /dev/null @@ -1,15 +0,0 @@ -// PRMS Id: 4955 -// Build don't link: - -struct A { - protected: - int i; - void f (); -}; - -struct B: public A { - void g () { - this->A::i = 1; // gets bogus error - access control failure - this->A::f(); // gets bogus error - access control failure - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access14.C b/gcc/testsuite/g++.old-deja/g++.jason/access14.C deleted file mode 100755 index f181906..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access14.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -template <class T> struct A { T t; }; - -template <class T> class B: private T { - public: - T::t; // gets bogus error - doesn't recognize access decl -}; - -template class B<A<int> >; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access15.C b/gcc/testsuite/g++.old-deja/g++.jason/access15.C deleted file mode 100755 index 4380998..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access15.C +++ /dev/null @@ -1,18 +0,0 @@ -// Bug: g++ complains about Z being a private base when trying to -// initialize B::foo. -// Build don't link: - -struct Z { - Z(); - Z(int); -}; - -struct A : private Z { }; -struct B : public A -{ - Z foo; - B(); - B(const B&); -}; - -B::B() : foo(1) { } // gets bogus error diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access16.C b/gcc/testsuite/g++.old-deja/g++.jason/access16.C deleted file mode 100755 index b8d43f3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access16.C +++ /dev/null @@ -1,20 +0,0 @@ -// Bug: g++ uses the same binfo for the a subobject of c and the a subobject -// of b, so basetype_paths get bashed improperly. -// Build don't link: - -class a { -protected: - virtual void foo() { } // gets bogus error -}; - -class b : public virtual a {}; - -class c : public b { -public: - void bar() { b::foo(); } // gets bogus error -}; - -int main() { - c test; - test.bar(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access17.C b/gcc/testsuite/g++.old-deja/g++.jason/access17.C deleted file mode 100755 index 9ed7d30..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access17.C +++ /dev/null @@ -1,24 +0,0 @@ -// Make sure definitions of static members have the right access. -// Build don't link: - -struct A { -protected: - int i; - int f (); // ERROR - -}; - -struct B: public A { - static int A::*p; - static int (A::*fp)(); -}; - -int A::* B::p = &A::i; -int (A::* B::fp)() = &A::f; - -struct C { - static int A::*p; - static int (A::*fp)(); -}; - -int A::* C::p = &A::i; // ERROR - -int (A::* C::fp)() = &A::f; // ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access18.C b/gcc/testsuite/g++.old-deja/g++.jason/access18.C deleted file mode 100755 index 11b7e10..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access18.C +++ /dev/null @@ -1,23 +0,0 @@ -// PRMS Id: 5073 -// Bug: g++ doesn't catch access violations in base initializers. -// Special g++ Options: -w - -int r = 0; -class A { - private: - A() { r = 1; } // ERROR - - ~A() {} // ERROR - -}; - -class B : public A { - public: - B(): A() {} // ERROR - - B(const B&) {} // ERROR - - ~B() { } // ERROR - private dtor -}; - -main() -{ - B b; - return r; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access2.C b/gcc/testsuite/g++.old-deja/g++.jason/access2.C deleted file mode 100755 index cacfbe1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access2.C +++ /dev/null @@ -1,11 +0,0 @@ -// Bug: g++ doesn't deal with friends also being derived classes. -// Build don't link: - -class A { - int i; - friend class B; -}; - -class B : public A { - void f () { i = 1; } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access20.C b/gcc/testsuite/g++.old-deja/g++.jason/access20.C deleted file mode 100755 index 96093dc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access20.C +++ /dev/null @@ -1,39 +0,0 @@ -// PRMS Id: 6662 -// Bug: we crash trying to check the access on anglesSinesCosines. -// Build don't link: - -#define Double double - -class GCTransform -{ - protected: - struct angle - { - Double phi1 ; - Double phi2 ; - } ; - - struct sineAndCosine - { - Double cosine1 ; - Double cosine2 ; - Double sine1 ; - Double sine2 ; - } ; - - union anglesSinesCosines - { - struct angle a ; - struct sineAndCosine siCo ; - } ; -}; - -class GCTransTransmit : public GCTransform -{ - protected: - - struct GCTransTransmitDataTemp - { - union anglesSinesCosines t ; // causes abort - } ; -} ; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access21.C b/gcc/testsuite/g++.old-deja/g++.jason/access21.C deleted file mode 100755 index 340ed61..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access21.C +++ /dev/null @@ -1,22 +0,0 @@ -// PRMS Id: 6877 -// Build don't link: - -typedef __SIZE_TYPE__ size_t; -class aa { -public: - aa(); - ~aa(); -private: - int iaa; - void operator delete(void*, size_t); -}; - -class bb { -public: - aa caa; -}; // gets bogus error - calling private delete - -void -f(){ - bb abb; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access22.C b/gcc/testsuite/g++.old-deja/g++.jason/access22.C deleted file mode 100755 index 225ef6c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access22.C +++ /dev/null @@ -1,21 +0,0 @@ -// PRMS Id: 8518 -// Bug: Call to foo is not checked for accessibility - -class A -{ - private: - static void foo() {} // ERROR - - public: - void goo() {} -}; - -struct B : public A -{ - void func() { foo(); } // ERROR - -}; - -int main() -{ - B b; - b.func(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access23.C b/gcc/testsuite/g++.old-deja/g++.jason/access23.C deleted file mode 100755 index 74112aa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access23.C +++ /dev/null @@ -1,79 +0,0 @@ -// PRMS Id: 9127 -// Bug: members of anonymous unions are not access-controlled. - -#include <stdio.h> - -struct Foo { -public: - union { - long A; - void *pX; - }; - union X { - long A; - void *pX; - } PUB ; - int PUB_A; -protected: - union { - long B; - void *pY; - } ; - union Y { - long B; - void *pY; - } PRT; - int PRT_A; -private: - union { - long C; - void *pZ; - }; - union Z { - long C; - void *pZ; - } PRV; - int PRV_A; -}; - -struct Bar : public Foo { -public: - void DoSomething() { - PUB_A = 0; - Foo::A = 0; - printf("%x\n",pX); - Foo::PUB.A = 0; - printf("%x\n",PUB.pX); - B = 0; - printf("%x\n",Foo::pY); - PRT_A = 0; - PRT.B = 0; - printf("%x\n",Foo::PRT.pY); - PRV_A = 0; // ERROR - - Foo::C = 0; // ERROR - - printf("%x\n",pZ); // ERROR - - Foo::PRV.C = 0; // ERROR - - printf("%x\n",PRV.pZ); // ERROR - - } -}; - -int main() -{ - Foo a; - - a.PUB_A = 0; - a.A = 0; - printf("%x\n",a.pX); - a.PRT_A = 0; // ERROR - - a.B = 0; // ERROR - - printf("%x\n",a.pY); // ERROR - - a.PRV_A = 0; // ERROR - - a.C = 0; // ERROR - - printf("%x\n",a.pZ); // ERROR - - a.PUB.A = 0; - printf("%x\n",a.PUB.pX); - a.PRT.B = 0; // ERROR - - printf("%x\n",a.PRT.pY); // ERROR - - a.PRV.C = 0; // ERROR - - printf("%x\n",a.PRV.pZ); // ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access24.C b/gcc/testsuite/g++.old-deja/g++.jason/access24.C deleted file mode 100755 index 7c42359..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access24.C +++ /dev/null @@ -1,11 +0,0 @@ -// Bug: forward reference to friend doesn't work in template. -// Build don't link: - -template <class T> class A { - static int i; - friend struct B; -}; - -struct B { - void f () { A<int>::i = 0; } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access3.C b/gcc/testsuite/g++.old-deja/g++.jason/access3.C deleted file mode 100755 index fae6c93..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access3.C +++ /dev/null @@ -1,12 +0,0 @@ -// Simple testcase for access control. -// Build don't link: - -class A { - protected: - void f (); -}; - -class B : public A { - public: - void f () { A::f(); } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access4.C b/gcc/testsuite/g++.old-deja/g++.jason/access4.C deleted file mode 100755 index 51f5fb1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access4.C +++ /dev/null @@ -1,14 +0,0 @@ -// Simple testcase for access control. -// Build don't link: - -class A { -protected: - static int i; -}; - -class B: public A { }; - -class C: public B { -public: - void g () { B b; b.i; } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access5.C b/gcc/testsuite/g++.old-deja/g++.jason/access5.C deleted file mode 100755 index 5eec43d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access5.C +++ /dev/null @@ -1,12 +0,0 @@ -// Simple testcase for access control. -// Build don't link: - -class A { - protected: - void f (); -}; - -class B : public A { }; -class C : public B { - void f () { B::f(); } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access6.C b/gcc/testsuite/g++.old-deja/g++.jason/access6.C deleted file mode 100755 index 24676d4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access6.C +++ /dev/null @@ -1,12 +0,0 @@ -// Simple testcase for access control. -// Build don't link: - -class A { - public: - void f (); -}; - -class B: protected A { }; -class C: protected B { - void g() { f (); } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access7.C b/gcc/testsuite/g++.old-deja/g++.jason/access7.C deleted file mode 100755 index a1e908f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access7.C +++ /dev/null @@ -1,13 +0,0 @@ -// Simple testcase for access control. -// Build don't link: - -class A { - protected: - static void f (); -}; - -class B: public A {}; -class C: public A {}; -class D: public C, public B { - void g () { A::f(); } // gets bogus error - wrongly ambiguous static member call -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access8.C b/gcc/testsuite/g++.old-deja/g++.jason/access8.C deleted file mode 100755 index c8addcd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access8.C +++ /dev/null @@ -1,29 +0,0 @@ -// From: smidt@dd.chalmers.se (Peter Smidt) -// Date: 25 Jan 1994 23:41:33 -0500 -// Bug: g++ forgets access decls after the definition. -// Build don't link: - -class inh { - int a; -protected: - void myf(int); -}; - -class mel : private inh { -protected: - int t; - inh::myf; -}; - -class top_t : protected mel { -public: - void myf(int); -}; - -void inh::myf(int i) { - a = i; -} - -void top_t::myf(int i) { - inh::myf(i); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/access9.C b/gcc/testsuite/g++.old-deja/g++.jason/access9.C deleted file mode 100755 index f9c2797..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/access9.C +++ /dev/null @@ -1,9 +0,0 @@ -// Bug: g++ doesn't allow const objects to be constructed. -// Build don't link: - -struct B { B(); }; - -const B foo() -{ - return B(); // gets bogus error - constructing const -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/aggregate.C b/gcc/testsuite/g++.old-deja/g++.jason/aggregate.C deleted file mode 100755 index 8128d8d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/aggregate.C +++ /dev/null @@ -1,13 +0,0 @@ -struct A { int i; }; - -int main() -{ - A a1 = { 42 }; - A a2 (a1); - A a3 = { 137 }; - a1 = a3; - - if (a1.i == 137 && a2.i == 42 && a3.i == 137) - return 0; - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/ambig1.C b/gcc/testsuite/g++.old-deja/g++.jason/ambig1.C deleted file mode 100755 index 4551dc7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/ambig1.C +++ /dev/null @@ -1,6 +0,0 @@ -// Testcase for ambiguity between functional cast and abstract declarator. -// This ambiguity accounts for 6 of the r/r conflicts. -// Special g++ Options: -pedantic-errors - -int i = sizeof (int ()); // ERROR - sizeof applied to fn type -int j = sizeof (int () + 1); diff --git a/gcc/testsuite/g++.old-deja/g++.jason/ambig2.C b/gcc/testsuite/g++.old-deja/g++.jason/ambig2.C deleted file mode 100755 index c6da752..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/ambig2.C +++ /dev/null @@ -1,11 +0,0 @@ -// Testcase for ambiguity between cast and parmlist. -// This ambiguity accounts for 1 of the r/r conflicts. -// Do not compile with -pedantic so that the compiler will accept taking -// the sizeof a function type. -// Special g++ Options: -Wno-pointer-arith -// Build don't link: - -void f(){ - (void)sizeof(int((int)1.2)); - (void)sizeof(int((int))); // gets bogus error - -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/ambig3.C b/gcc/testsuite/g++.old-deja/g++.jason/ambig3.C deleted file mode 100755 index 3f01660..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/ambig3.C +++ /dev/null @@ -1,16 +0,0 @@ -// Testcase for ambiguity between function and variable declaration (8.2). -// Build don't link: - -struct A { - A (int, int); - int k; -}; - -void f () -{ - int i[2], j; - A a (int (i[1]), j); // gets bogus error - late parsing XFAIL *-*-* - A b (int (i[1]), int j); // function - a.k = 0; // gets bogus error - late parsing XFAIL *-*-* - b (i, j); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/anon.C b/gcc/testsuite/g++.old-deja/g++.jason/anon.C deleted file mode 100755 index 63d17a8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/anon.C +++ /dev/null @@ -1,18 +0,0 @@ -// Bug: g++ has trouble copying anonymous structs. - -typedef struct { int i; } foo; -struct A : public foo { - struct { int i; } x; -}; - -int main () -{ - A a; - a.i = 5; - a.x.i = 42; - A b (a); - a = b; - if (a.i != 5 || a.x.i != 42) - return 1; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/anon2.C b/gcc/testsuite/g++.old-deja/g++.jason/anon2.C deleted file mode 100755 index 55d6898..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/anon2.C +++ /dev/null @@ -1,7 +0,0 @@ -// g++ should not complain about anonymous bitfields. -// Build don't link: - -struct A -{ - int : 2; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/anon3.C b/gcc/testsuite/g++.old-deja/g++.jason/anon3.C deleted file mode 100755 index b3f05f8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/anon3.C +++ /dev/null @@ -1,25 +0,0 @@ -// Bug: g++ dies. -// Build don't link: - -class cl { -public: - cl(); - void set(void *, char *, int); -private: - union { - float vf; - struct ff { - void *ptr; - char *name; - int sz; - } *vff; - }; -}; - -void cl::set(void *p, char *n, int sz) -{ - vff = new ff; // This procude an internal compiler error. - vff->ptr = p; - vff->name = n; - vff->sz = sz; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/anon4.C b/gcc/testsuite/g++.old-deja/g++.jason/anon4.C deleted file mode 100755 index de0b40e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/anon4.C +++ /dev/null @@ -1,14 +0,0 @@ -// PRMS Id: 5371 -// Bug: g++ screws up the alignment of buff and dies. -// Build don't link: -// Special g++ Options: -O - -main() -{ - union { - double a; - char buff[sizeof(double)]; - }; - - void *p = buff; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/binding.C b/gcc/testsuite/g++.old-deja/g++.jason/binding.C deleted file mode 100755 index cc6f25c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/binding.C +++ /dev/null @@ -1,11 +0,0 @@ -// Bug: g++ only looks in the current temporary binding level for a name. - -struct T { ~T(); }; - -int main() -{ - foo: - T t; // ERROR - redeclared - bar: - T t; // ERROR - redeclaration -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/binding2.C b/gcc/testsuite/g++.old-deja/g++.jason/binding2.C deleted file mode 100755 index e56a054..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/binding2.C +++ /dev/null @@ -1,15 +0,0 @@ -// Bug: g++ screws up binding levels in a switch statement with cleanups. -// Build don't link: - -struct A { - ~A() { } -}; - -int f (int i) -{ - switch (i) { - default: - A a; - } - return 1; -} // causes compiler segfault diff --git a/gcc/testsuite/g++.old-deja/g++.jason/binding3.C b/gcc/testsuite/g++.old-deja/g++.jason/binding3.C deleted file mode 100755 index 3cd358f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/binding3.C +++ /dev/null @@ -1,20 +0,0 @@ -// Bug: g++ fails to clear out the IDENTIFIER_CLASS_VALUEs of various names -// after a class definition. -// Build don't link: - -struct A { - typedef double T; - virtual T f () = 0; -}; - -class B { - B (const B&); - void operator=(const B&); -public: - B (); - typedef void * T; -}; - -struct C : public A { - T f (); // gets bogus error -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/bool.C b/gcc/testsuite/g++.old-deja/g++.jason/bool.C deleted file mode 100755 index e446f12..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/bool.C +++ /dev/null @@ -1,46 +0,0 @@ -// Testcase for uses of bool. -// Build don't link: - -int i,j,k; - -/* Check that types of certain expressions are bool. */ -void f () -{ - i ? j == k : true; - i ? j < k : true; - i ? j && k : true; -} - -/* Check that g++ can find a conversion to bool when one exists. */ -struct A { operator char * (); } a; -struct B { operator int (); } b; -struct C { operator float (); } c; -struct D { operator bool (); } d; -struct E { operator int E::* (); } e; - -void g () -{ - a || true; - b || true; - c || true; // gets bogus error - d || true; - e || true; -} - -/* Check for support in templates. */ -template <class T> struct F { }; -template class F<bool>; - -template <class T> void f (T, bool) { }; -template void f (bool, bool); - -/* Special cases. */ -void h () -{ - /* Used to cause infinite recursion. */ - i&1 || true; - /* Should find conversion path to int. */ - d == true; -} - -bool boo = -1; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/bool2.C b/gcc/testsuite/g++.old-deja/g++.jason/bool2.C deleted file mode 100755 index 559b7d0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/bool2.C +++ /dev/null @@ -1,14 +0,0 @@ -// Make sure that bool bitfields promote to int properly. - -struct F { - bool b1 : 1; - bool b2 : 7; -}; - -int main() -{ - F f = { true, true }; - - if (int (f.b1) != 1) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/bool3.C b/gcc/testsuite/g++.old-deja/g++.jason/bool3.C deleted file mode 100755 index d8e9514..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/bool3.C +++ /dev/null @@ -1,13 +0,0 @@ -// From: panisset@cae.ca (Jean-Francois Panisset) -// Subject: Problem with constant expressions for bitfields -// Date: Mon, 6 Jun 94 14:00:01 EDT - -// Bug: g++ doesn't treat boolean true and false as constant values. -// Build don't link: - -enum E { e1,e2,e3,e4,e5 }; - -struct X -{ - unsigned int bits : ((e5 > 4) ? 8 : 4); // gets bogus error - constant expression -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/bool4.C b/gcc/testsuite/g++.old-deja/g++.jason/bool4.C deleted file mode 100755 index 8c4695d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/bool4.C +++ /dev/null @@ -1,10 +0,0 @@ -// Test for allowing conversion to bool. - -struct A { }; - -int main () -{ - bool b = (void*)0; - b = (int A::*)0; - b = (int (A::*)())0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/bool5.C b/gcc/testsuite/g++.old-deja/g++.jason/bool5.C deleted file mode 100755 index 8f8e37d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/bool5.C +++ /dev/null @@ -1,10 +0,0 @@ -int main () -{ - bool b = false; - int i = b++; - if (i != false || b != true) - return 1; - i = b++; - if (i != true || b != true) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/bool6.C b/gcc/testsuite/g++.old-deja/g++.jason/bool6.C deleted file mode 100755 index 493e25f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/bool6.C +++ /dev/null @@ -1,9 +0,0 @@ -// Bug: The conversion from bool to int gets stripped. -// Build don't link: - -bool b; - -int main () -{ - return ((!b) != 0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/bool7.C b/gcc/testsuite/g++.old-deja/g++.jason/bool7.C deleted file mode 100755 index 1ecb68d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/bool7.C +++ /dev/null @@ -1,29 +0,0 @@ -// Build don't link: - -struct A -{ - operator bool () const; - operator const void * () const; -}; - -struct B -{ - A a; - int foo1 (); - int foo2 (); -}; - -int -B::foo1 () -{ - return a ? 0 : 1; // ambiguous default type conversion for `operator !=' -} - -int -B::foo2 () -{ - if (a) - return 0; - else - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/builtin.C b/gcc/testsuite/g++.old-deja/g++.jason/builtin.C deleted file mode 100755 index 0e0cc48..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/builtin.C +++ /dev/null @@ -1,10 +0,0 @@ -// Bug: g++ overloads strlen instead of bashing the builtin version. -// Special g++ Options: -w -// Build don't link: - -extern "C" void strlen (const char *); - -void f () -{ - strlen("Hi"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/builtin2.C b/gcc/testsuite/g++.old-deja/g++.jason/builtin2.C deleted file mode 100755 index 698d0a1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/builtin2.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: - -inline void strlen (const char *) { } - -void f () -{ - strlen("Hi"); // gets bogus error - wrongful overload -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/byval.C b/gcc/testsuite/g++.old-deja/g++.jason/byval.C deleted file mode 100755 index bd17797..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/byval.C +++ /dev/null @@ -1,19 +0,0 @@ -// Bug: a is destroyed in both foo() and main() - -int count; - -struct A { - double a,b; - A(int) { count++; } - A(const A&) { count++; } - ~A() { count--; } -}; - -void foo (A a) -{ } - -int main() -{ - foo (1); - return count; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/byval2.C b/gcc/testsuite/g++.old-deja/g++.jason/byval2.C deleted file mode 100755 index 490e625..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/byval2.C +++ /dev/null @@ -1,23 +0,0 @@ -// From: panisset@cae.ca (Jean-Francois Panisset) -// Subject: 2.6.0 pre-rel, internal error, regression, mips-sgi-irix4 -// Date: Thu, 14 Jul 94 23:34:21 EDT -// Build don't link: - -class Char -{ -protected: - char rep; -public: - Char (const char ) {}; - operator char() const; - void operator -= (const Char ); -}; - -inline Char operator - (const Char a, const Char b) {} -inline char operator == (const Char a, const char b) {} - -char mystrcmp(Char s[31], Char t[31]) -{ - for (; *s == *t; ++s, ++t) if (*s == '\0') return 0; - return char(*s - *t); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/byval3.C b/gcc/testsuite/g++.old-deja/g++.jason/byval3.C deleted file mode 100755 index 7c2a798..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/byval3.C +++ /dev/null @@ -1,14 +0,0 @@ -// Test to make sure that value return of classes with cleanups works; it -// has been broken at various times on PCC_STATIC_STRUCT_RETURN targets. -// Build don't link: - -struct A {}; - -struct R : virtual A { virtual ~R(); }; - -R g(); - -void encode() -{ - g(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/c-inline.C b/gcc/testsuite/g++.old-deja/g++.jason/c-inline.C deleted file mode 100755 index 7e90c4e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/c-inline.C +++ /dev/null @@ -1,11 +0,0 @@ -// Bug: the compiler gets hopelessly confused. -// Build don't link: - -#line 1 "c-inline.h" -#pragma interface -inline double abs (double) { return 0.0; } -inline short abs (short) { return 0; } -#line 2 "c-inline.C" -extern "C" { - inline int abs (int) { return 0; } // causes segfault - -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/c2.C b/gcc/testsuite/g++.old-deja/g++.jason/c2.C deleted file mode 100755 index ba7f0ed..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/c2.C +++ /dev/null @@ -1,18 +0,0 @@ -// PRMS Id: 3134 -// g++ understands C redeclaration semantics. Sun CC 2.0.1 doesn't. -// Special g++ Options: -// Build don't link: - -extern "C" { - int foo(); - int foo(int); - - int bar(int); - int bar(); -} - -main() -{ - foo (1); - bar (1); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/cast1.C b/gcc/testsuite/g++.old-deja/g++.jason/cast1.C deleted file mode 100755 index 4e987ea..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/cast1.C +++ /dev/null @@ -1,8 +0,0 @@ -// Bug: g++ fails to grok functional casts in all situations. -// Build don't link: - -class A { -public: - typedef int B; - static B foo() { return B(1); } // gets bogus error - -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/cast2.C b/gcc/testsuite/g++.old-deja/g++.jason/cast2.C deleted file mode 100755 index 02495b3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/cast2.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// The compiler tried to build up a double with a NOP_EXPR from -// integer_zero_node, which fails. - -template <class T> -class vector { -public: - vector (int n, const T& value = T()) {} -}; - -void -foo (void) -{ - vector<double> v (10); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/cast3.C b/gcc/testsuite/g++.old-deja/g++.jason/cast3.C deleted file mode 100755 index 5d59980..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/cast3.C +++ /dev/null @@ -1,16 +0,0 @@ -// PRMS Id: 7088 -// Build don't link: - -struct string -{ - int length () const; - string (string &); - string (char * = 0); - int operator [] (int); - ~string (); -}; - -string _cook(const string raw, bool for_postscript) -{ - unsigned char c = (unsigned) ((string &)raw)[1]; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/cleanup.C b/gcc/testsuite/g++.old-deja/g++.jason/cleanup.C deleted file mode 100755 index d9addde..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/cleanup.C +++ /dev/null @@ -1,23 +0,0 @@ -// Bug: continue over object decl calls destructor but not constructor. - -int c = 0; -int d = 0; -extern "C" int printf(const char *,...); - -class Foo { -public: - Foo(){ c++; } - ~Foo(){ d++; } -}; - -int main() -{ - for(int i=0;i<2;i++){ - continue; - Foo bar; - } - printf ("%d %d\n", c, d); - if (c == d && d == 0) - return 0; - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/cleanup2.C b/gcc/testsuite/g++.old-deja/g++.jason/cleanup2.C deleted file mode 100755 index fdae1b7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/cleanup2.C +++ /dev/null @@ -1,15 +0,0 @@ -// PRMS Id: 6303 -// Bug: compiler crashes processing the cleanup for arrayOfClass. -// Build don't link: - -class Class { -public: - ~Class(); // This dtor MUST be declared to generate the error... -}; - -Class varOfClass; - -int main() { - // This MUST be 'const' to generate the error... - const Class arrayOfClass[1] = { varOfClass }; // causes abort -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/complete1.C b/gcc/testsuite/g++.old-deja/g++.jason/complete1.C deleted file mode 100755 index 0f140e1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/complete1.C +++ /dev/null @@ -1,12 +0,0 @@ -// PRMS Id: 4695 -// Bug: g++ wrongly requires A to be complete here. -// Build don't link: - -struct A; - -void foo(const A &); - -void bar(A *p) -{ - foo(*p); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/cond.C b/gcc/testsuite/g++.old-deja/g++.jason/cond.C deleted file mode 100755 index b613838..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/cond.C +++ /dev/null @@ -1,39 +0,0 @@ -// Build don't link: -// GROUPS passed rtti -// Negative testcase for decls in conditions. - -int main() -{ - float i; - - if (int i = 1) // ERROR - , XFAIL *-*-* - { - char i; // ERROR - , XFAIL *-*-* - char j; - } - else - { - short i; // ERROR - , XFAIL *-*-* - char j; - } - - if (struct A { operator int () { return 1; } } *foo = new A) // ERROR - - ; - - A bar; // ERROR - - - if (enum A { one, two, three } foo = one) // ERROR - - ; - - struct B { operator int () { return 2; } }; - - if (struct B * foo = new B) - ; - - if (int f () = 1) // ERROR - - ; - - if (int a[2] = {1, 2}) // ERROR - - ; - -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/cond2.C b/gcc/testsuite/g++.old-deja/g++.jason/cond2.C deleted file mode 100755 index 9a8e045..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/cond2.C +++ /dev/null @@ -1,65 +0,0 @@ -// Positive testcase for decls in conditions. - -extern "C" int printf(const char *, ...); - -int up = 0; -int down = 0; - -struct T -{ - int i; - T(int j) { i = j; printf("UP\n"); up++; } - T(const T& t) { i = t.i; printf("unwanted copy\n"); } - ~T() { printf ("DOWN\n"); down++; } - operator int () { return i; } -}; - -int main () -{ - int t; - - if (T t = 1) - ; - - printf ("\n"); - - int j = 3; - while (T t = j--) - ; - - printf ("\n"); - - j = 3; - while (1) - { - T t = j--; - if (t) continue; - break; - } - - printf ("\n"); - - j = 3; - for (;T t = j--;) - ; - - printf ("\n"); - - for (int k = 3; T t = k--;) - ; - - printf ("\n"); - - switch (T t = 34) - { - case 34: - ; - } - - printf ("\n"); - - if (up == down && up == 18) - return 0; - else - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/condexp.C b/gcc/testsuite/g++.old-deja/g++.jason/condexp.C deleted file mode 100755 index edfd12e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/condexp.C +++ /dev/null @@ -1,14 +0,0 @@ -// PRMS id: 5629 -// Build don't link: - -struct String { const char *x; }; -class Pathname: public String { }; - -String -f(int i) -{ - Pathname p; - String s; - - return i ? p: s; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/const.C b/gcc/testsuite/g++.old-deja/g++.jason/const.C deleted file mode 100755 index 2faf8e5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/const.C +++ /dev/null @@ -1,16 +0,0 @@ -// Bug: a ends up in the text segment, so trying to initialize it causes -// a seg fault. - -struct A { - int i; - A(): i(0) {} - A(int j): i(j) {} -}; - -const A a; -const A b(1); - -int main () -{ - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/const2.C b/gcc/testsuite/g++.old-deja/g++.jason/const2.C deleted file mode 100755 index 7dd956b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/const2.C +++ /dev/null @@ -1,14 +0,0 @@ -// Example of static member constants - -extern "C" int printf (const char *, ...); - -struct T { - static const char letter = 'a'; // this is the new stuff! - char x[letter]; - void f(); -}; - -void T::f() { printf ("%p", &letter); } -const char T::letter; // still need def after class - -int main() { } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/const3.C b/gcc/testsuite/g++.old-deja/g++.jason/const3.C deleted file mode 100755 index 3ff8f0c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/const3.C +++ /dev/null @@ -1,10 +0,0 @@ -// Bug: bar isn't emitted, which causes havoc. - -extern int i; -const int bar = i; -int i = 5; - -int main() -{ - return bar != 5; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/const4.C b/gcc/testsuite/g++.old-deja/g++.jason/const4.C deleted file mode 100755 index b8b8efa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/const4.C +++ /dev/null @@ -1,24 +0,0 @@ -// PRMS Id: 8927 -// Bug: complex inheritance interferes with const checking - -class GrandParent { -public: - virtual void DoIt(); -protected: - int A; -}; - -class Parent : virtual public GrandParent { -public: - virtual void DoX() const; -}; - -class Child : public Parent { -public: - void DoX() const; -}; - -void Child::DoX() const -{ - A = 10; // ERROR - assignment to const -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/context.C b/gcc/testsuite/g++.old-deja/g++.jason/context.C deleted file mode 100755 index a9a8363..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/context.C +++ /dev/null @@ -1,20 +0,0 @@ -// PRMS Id: 3988 -// Bug: DECL_CONTEXT of A::B gets clobbered in pushdecl when defining A::foo(). -// Build don't link: - -#pragma implementation "context.h" -#line 1 "context.h" -#pragma interface - -template <class T> -struct A { - inline void foo () { } - class B { }; -}; - -struct C : public A<int> { - void bar (C::B&); -}; -#line 2 "context.C" - -void C::bar (C::B& b) { } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/conversion.C b/gcc/testsuite/g++.old-deja/g++.jason/conversion.C deleted file mode 100755 index 80436f3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/conversion.C +++ /dev/null @@ -1,16 +0,0 @@ -// Bug: g++ doesn't find the conversion path from DPtr& to B*. -// Build don't link: - -class B {}; -class D : public B {}; -class DPtr -{ -public: - operator D*() const; -}; - -void foo (B* bp); -void bar (DPtr& dp) -{ - foo (dp); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/conversion10.C b/gcc/testsuite/g++.old-deja/g++.jason/conversion10.C deleted file mode 100755 index 97bb707..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/conversion10.C +++ /dev/null @@ -1,19 +0,0 @@ -// PRMS Id: 9019 -// Bug: g++ doesn't find conversion to const char *. -// Build don't link: - -struct String { - String (); - explicit String (const char *); - operator const char * (); -}; - -int main(int argc, char **argv) -{ - String deflt("no args"); - String useme; - - const char *p = (argv[1]) ? argv[1] : deflt; - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/conversion11.C b/gcc/testsuite/g++.old-deja/g++.jason/conversion11.C deleted file mode 100755 index c0c6ca4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/conversion11.C +++ /dev/null @@ -1,26 +0,0 @@ -// PRMS Id: 8805 -// Bug: The two-level conversion is not found when calling a global fn. - -class Int { -public: - Int(int A); -}; - -class Ding { -public: - Ding(Int A); -}; - -class Something { -public: - void DoSomething(Ding A); // ERROR - referred to -}; - -void DoSomething(Ding A); - -void foo(Something* pX) -{ - DoSomething(1); // ERROR - - pX->DoSomething(1); // ERROR - - (*pX).DoSomething(1); // ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/conversion2.C b/gcc/testsuite/g++.old-deja/g++.jason/conversion2.C deleted file mode 100755 index db773d6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/conversion2.C +++ /dev/null @@ -1,6 +0,0 @@ -// PRMS Id: 3069 - -void f(int&); // ERROR - referenced by error below -void g(const int& i) { - f(i); // ERROR - discarding const -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/conversion3.C b/gcc/testsuite/g++.old-deja/g++.jason/conversion3.C deleted file mode 100755 index 0d66c1e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/conversion3.C +++ /dev/null @@ -1,7 +0,0 @@ -void qsort (void *, int, int, int (*)(const void *, const void *)); -int f (char *, char *); -void g () -{ - typedef int (*pf)(void *, void *); - qsort(0, 0, 0, pf(f)); // ERROR - adding const to function parms -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/conversion4.C b/gcc/testsuite/g++.old-deja/g++.jason/conversion4.C deleted file mode 100755 index 7caca19..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/conversion4.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -struct A { - A (int); -}; -struct B { - operator int () { return 1; } -}; -void f (const A&); -void g() -{ - B b; - f ((A) b); - f (A (b)); // gets bogus error - functional cast treated differently from C style -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/conversion5.C b/gcc/testsuite/g++.old-deja/g++.jason/conversion5.C deleted file mode 100755 index 303860b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/conversion5.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -struct A { }; -struct B: public A { - A a; - operator A () { return a; } // WARNING - never used implicitly -}; -void f (const A&); -void g() -{ - B b; - (A) b; // gets bogus error - trying both constructor and type conversion operator -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/conversion6.C b/gcc/testsuite/g++.old-deja/g++.jason/conversion6.C deleted file mode 100755 index a8477e3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/conversion6.C +++ /dev/null @@ -1,40 +0,0 @@ -// PRMS Id: g++/6034 - -extern "C" int printf (const char *, ...); - -class Base -{ - char x; -}; - -template <class T> -// remove the public Base inheritance and the problem goes away... -class Container : public Base -{ -public: - - Container(const T& aValue): myValue(aValue) { } - - operator const T&(void) const - { - printf("Container::const T& called\n"); - return myValue; - } - -protected: - - T myValue; -}; - -typedef unsigned short Type; - -typedef Container<Type> TypeContainer; - -int main(void) -{ - TypeContainer myTypeContainer(2); - Type t = myTypeContainer; - - printf ("myType = %d\n", t); - return t != 2; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/conversion7.C b/gcc/testsuite/g++.old-deja/g++.jason/conversion7.C deleted file mode 100755 index 01812f5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/conversion7.C +++ /dev/null @@ -1,16 +0,0 @@ -// Bug: g++ tries to look inside (B*)0 for a virtual base pointer. - -struct A -{ -}; - -struct B : virtual A -{ -}; - -A* a; - -int main() -{ - a = (B*)0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/conversion8.C b/gcc/testsuite/g++.old-deja/g++.jason/conversion8.C deleted file mode 100755 index 0c3d378..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/conversion8.C +++ /dev/null @@ -1,10 +0,0 @@ -// PRMS id: 8279 - -int main () -{ - char *const *p = 0; - char **q = 0; - - (void)(p - q); - (void)(q - p); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/conversion9.C b/gcc/testsuite/g++.old-deja/g++.jason/conversion9.C deleted file mode 100755 index e0d3715..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/conversion9.C +++ /dev/null @@ -1,13 +0,0 @@ -// PRMS Id: 8475 - -class SomeClass { -public: - operator int & () { - static int x; - return x; - } -} a; - -int main (int, char**) { - return a + 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/crash1.C b/gcc/testsuite/g++.old-deja/g++.jason/crash1.C deleted file mode 100755 index 2982734..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/crash1.C +++ /dev/null @@ -1,29 +0,0 @@ -// Bug: g++ dies on this input. -// Build don't link: - -class Sample - { - public: - int operator <<(const char *c); - }; - -extern Sample sample; - -struct Simple - { - int a; - }; - -extern "C" void get_it(); - -class Test - { - private: - void test(); - friend void get_it(); - }; - -void Test::test() - { - sample << "hello"; - } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/crash10.C b/gcc/testsuite/g++.old-deja/g++.jason/crash10.C deleted file mode 100755 index b966944..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/crash10.C +++ /dev/null @@ -1,7 +0,0 @@ -// PRMS Id: 5155 - -struct A { - enum foo { bar }; -}; - -typedef A::foo A::foo; // ERROR - causes compiler segfault diff --git a/gcc/testsuite/g++.old-deja/g++.jason/crash11.C b/gcc/testsuite/g++.old-deja/g++.jason/crash11.C deleted file mode 100755 index 51d1629..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/crash11.C +++ /dev/null @@ -1,9 +0,0 @@ -// Bug: g++ crashes on this input. -// Build don't link: - -struct A { - const char *p; -}; -const char foo[] = "bar"; -const A a = { foo }; -extern const A* ap = &a; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/crash12.C b/gcc/testsuite/g++.old-deja/g++.jason/crash12.C deleted file mode 100755 index 46d6322..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/crash12.C +++ /dev/null @@ -1,10 +0,0 @@ -// Bug: g++ dies instead of flagging this invalid. -// Build don't link: - -inline float max(float x, float y) { return (x>y)?x:y; } - -float b(float x, float y, float z) -{ - float f = (y<x)?x:(max<y)?z:y; // ERROR - - return f; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/crash3.C b/gcc/testsuite/g++.old-deja/g++.jason/crash3.C deleted file mode 100755 index c3709c5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/crash3.C +++ /dev/null @@ -1,13 +0,0 @@ -// Bug: g++ tries to generate initialization semantics for a Node from an int, -// and fails. -// Build don't link: - -struct Node -{ - Node* child[2]; -}; // ERROR - - -void bug(int i) -{ - Node* q = new Node(i); // ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/crash4.C b/gcc/testsuite/g++.old-deja/g++.jason/crash4.C deleted file mode 100755 index bf6a15c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/crash4.C +++ /dev/null @@ -1,38 +0,0 @@ -// PRMS Id: 4346 -// Bug: g++ dies on redefinition of cc_Array::repInvariant. -// Build don't link: - -class ccObjectInfo -{ -public: - virtual const ccObjectInfo& repInvariant (int =0) const; -}; - -template <class T> -class cc_Array : public ccObjectInfo -{ -public: - virtual const ccObjectInfo& repInvariant (int =0) const ; -}; - -template <class T> -const ccObjectInfo& cc_Array<T>::repInvariant(int) const -{ return *this /* *this is required here */; } // ERROR - redefined - -template <class T> -class ccArray :public ccObjectInfo -{ - ccArray (cc_Array<T>*); -}; - -template <class T> -class ccObjArray : public ccArray<T> -{ - ccObjArray(); -}; - -template <class T> -const ccObjectInfo& cc_Array<T>::repInvariant(int) const -{ return 0; } // ERROR - causes compiler segfault - -typedef ccObjArray< double> ccROIRuns; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/crash5.C b/gcc/testsuite/g++.old-deja/g++.jason/crash5.C deleted file mode 100755 index b67376f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/crash5.C +++ /dev/null @@ -1,4 +0,0 @@ -// Bug: g++ doesn't deal well with abstract declarators used inappropriately. -// Build don't link: - -void (*)(); // ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.jason/crash6.C b/gcc/testsuite/g++.old-deja/g++.jason/crash6.C deleted file mode 100755 index 8e0a9c8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/crash6.C +++ /dev/null @@ -1,9 +0,0 @@ -// Bug: g++ dies on the below. -// Build don't link: - -class A { }; -void f () -{ - A a; - a.~a(); // ERROR - causes segfault -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/crash7.C b/gcc/testsuite/g++.old-deja/g++.jason/crash7.C deleted file mode 100755 index e7dd8f7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/crash7.C +++ /dev/null @@ -1,5 +0,0 @@ -// Bug: g++ can't deal. - -typedef unsigned size_t; // ERROR - previous declaration -typedef unsigned long size_t; // ERROR - redefining size_t -void f (size_t); // causes compiler segfault - diff --git a/gcc/testsuite/g++.old-deja/g++.jason/crash8.C b/gcc/testsuite/g++.old-deja/g++.jason/crash8.C deleted file mode 100755 index cadda2f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/crash8.C +++ /dev/null @@ -1,9 +0,0 @@ -struct A { - A(); - A(A); // ERROR - copy ctor must take reference -}; -int main() -{ - A a; - A b(a); // causes compiler segfault -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/crash9.C b/gcc/testsuite/g++.old-deja/g++.jason/crash9.C deleted file mode 100755 index 6cacb11..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/crash9.C +++ /dev/null @@ -1,29 +0,0 @@ -// PRMS Id: 5085 -// Bug: TYPE_POINTER_TO wasn't set. -// Build don't link: - -class A { - A(const A &); - void operator=(const A &); -public: - inline A(); -}; - -class B { - A a; -public: - B(); - virtual void f() const; -}; - -class C : public B { }; - -class D : C { -public: - void f() const; -}; - -void D::f() const -{ - C::f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/ctor1.C b/gcc/testsuite/g++.old-deja/g++.jason/ctor1.C deleted file mode 100755 index 123295d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/ctor1.C +++ /dev/null @@ -1,26 +0,0 @@ -// PRMS Id: 5584 - -extern "C" -{ - struct xx { - void (*xx)(void); // ERROR - field with name of class - int x,y; - }; -} - -int r = 1; - -void f(void) -{ - r = 0; -} - -int main() -{ - struct xx p; - - p.xx = f; - p.xx(); - - return r; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/ctor2.C b/gcc/testsuite/g++.old-deja/g++.jason/ctor2.C deleted file mode 100755 index bf37c11..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/ctor2.C +++ /dev/null @@ -1,16 +0,0 @@ -// Bug: the reference to c in the initializer list doesn't get fixed up. -// Build don't link: - -struct AP { - AP(unsigned char); -}; - -struct AI : AP { - AI(unsigned char); -}; - -AI::AI(unsigned char c) -: AP(c) -{ - &c; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/dcast1.C b/gcc/testsuite/g++.old-deja/g++.jason/dcast1.C deleted file mode 100755 index f4d93c3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/dcast1.C +++ /dev/null @@ -1,20 +0,0 @@ -// PRMS Id: 7162 -// Build don't link: - -struct B { - int i; - B() : i(1) {} -}; - -struct D : B { - int i; - D() : i(2) {} -}; - -void ch() -{ - D od2; - D &rd2 = od2; - - B &rd1 = dynamic_cast<B&>(rd2); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/dcast2.C b/gcc/testsuite/g++.old-deja/g++.jason/dcast2.C deleted file mode 100755 index e42c71d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/dcast2.C +++ /dev/null @@ -1,18 +0,0 @@ -struct A { virtual void f() { } }; -struct B { virtual void g() { } }; -struct C : public A, public B { }; - -int main () -{ - C* cp = 0; - B* bp = 0; - - if (dynamic_cast <B*> (cp) != 0) - return 1; - - if (dynamic_cast <void *> (bp) != 0) - return 1; - - if (dynamic_cast <C*> (bp) != 0) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/dcast3.C b/gcc/testsuite/g++.old-deja/g++.jason/dcast3.C deleted file mode 100755 index 6d333f0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/dcast3.C +++ /dev/null @@ -1,32 +0,0 @@ -// Testcase for tricky dynamic cast situations. - -struct A { - virtual void f () { } -}; - -struct B : public A { }; -struct C : public B { }; -struct D : public B { }; -struct E : public C, public D { }; - -struct B2 : public virtual A { }; -struct C2 : public B2 { }; -struct D2 : public B2 { }; -struct E2 : public C2, public D2 { }; - -int main () -{ - E e; - E2 e2; - - A* ap = (C*)&e; - - // ap points to base subobject of unique B; succeeds - if (dynamic_cast <B*> (ap) == 0) - return 1; - - ap = (C2*)&e2; - // ap points to base subobject shared by two Bs; fails - if (dynamic_cast <B2*> (ap) != 0) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/default1.C b/gcc/testsuite/g++.old-deja/g++.jason/default1.C deleted file mode 100755 index 0372d91..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/default1.C +++ /dev/null @@ -1,16 +0,0 @@ -// PRMS Id: 5204 -// Bug: g++ bashes the type of add_sym with the type of add, so calling it -// with one parameter generates an error. -// Build don't link: - -int add(int const &symbol, - const unsigned char flags=(void*)0); // ERROR - invalid default arg - -int add_sym(int const &symbol, - const unsigned char flags=0); - -int main() -{ - int fname; - add_sym(fname); // Guarantee a symbol exists -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/default2.C b/gcc/testsuite/g++.old-deja/g++.jason/default2.C deleted file mode 100755 index f50ee2f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/default2.C +++ /dev/null @@ -1,31 +0,0 @@ -// PRMS Id: 5921 -// Build don't link: -// Bug: default arguments containing constructor calls persist incorrectly. - -class foo -{ - public: - foo(); - foo(int x); - public: - int iamamember; -}; - -class bar -{ - public: - bar(); - int memberfunction(int i, char *j, double k, foo foo1 = foo(0)); -}; - -int -pain(bar *bar1) -{ - return bar1->memberfunction(1, "x", 0.0); -} - -int -pain2(bar *bar1) -{ - return bar1->memberfunction(1, "x", 0.0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/default3.C b/gcc/testsuite/g++.old-deja/g++.jason/default3.C deleted file mode 100755 index 05af3b6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/default3.C +++ /dev/null @@ -1,6 +0,0 @@ -// Bug: type_list_equal aborts when it sees lang-specific tree nodes. -// Build don't link: - -struct A { }; -void f (A a = A()); -void g (A a = A()); diff --git a/gcc/testsuite/g++.old-deja/g++.jason/defctor.C b/gcc/testsuite/g++.old-deja/g++.jason/defctor.C deleted file mode 100755 index 68cf25c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/defctor.C +++ /dev/null @@ -1,15 +0,0 @@ -// Bug: g++ doesn't generate default constructor. - -class A { -public: - int i; -}; - -extern "C" int printf(const char *, ...); - -int main () { - A a; - a.i = 1; - A b (a); - printf("%d\n",b.i); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/delete1.C b/gcc/testsuite/g++.old-deja/g++.jason/delete1.C deleted file mode 100755 index a176652..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/delete1.C +++ /dev/null @@ -1,5 +0,0 @@ -#include <stddef.h> -struct A { - virtual void operator delete (void *); // ERROR - virtual delete - virtual void * operator new (size_t); // ERROR - virtual new -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/delete2.C b/gcc/testsuite/g++.old-deja/g++.jason/delete2.C deleted file mode 100755 index 7748e2b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/delete2.C +++ /dev/null @@ -1,16 +0,0 @@ -// PRMS Id: 5003 -// Bug: g++ complains about calling the destructor for a const object. -// Build don't link: - -struct A { -public: - ~A(); -}; - -const A foo (); - -void bar() -{ - A n; - n = foo(); // gets bogus error - deleting const -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/delete3.C b/gcc/testsuite/g++.old-deja/g++.jason/delete3.C deleted file mode 100755 index 8bffb9a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/delete3.C +++ /dev/null @@ -1,18 +0,0 @@ -// PRMS Id: 6093 - -class A { -public: - A(); - ~A(); -protected: - void operator delete(void *); // ERROR - protected -}; - -A::~A() -{ -} - -void foo(A *p) -{ - delete p; // ERROR - in this context -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/destruct.C b/gcc/testsuite/g++.old-deja/g++.jason/destruct.C deleted file mode 100755 index c5b3be6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/destruct.C +++ /dev/null @@ -1,33 +0,0 @@ -// Exhaustive test for destructors of simple types. -// PRMS Id: 2744, 3308 -// Build don't link: - -template <class T> class A { - T q; -public: - ~A() { - q.T::~T(); - q.~T(); - (&q)->T::~T(); - (&q)->~T(); - } -}; - -typedef char * cp; - -int main () -{ - A<int> a; - A<cp> b; - int i; - cp c; - - i.~int(); - i.int::~int(); - (&i)->~int(); - (&i)->int::~int(); - c.~cp(); - c.cp::~cp(); - (&c)->~cp(); - (&c)->cp::~cp(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/destruct2.C b/gcc/testsuite/g++.old-deja/g++.jason/destruct2.C deleted file mode 100755 index 09b6bdd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/destruct2.C +++ /dev/null @@ -1,20 +0,0 @@ -// PRMS Id: 4342 -// Bug: g++ does not massage things enough to allow calling ~X(). -// Build don't link: - -struct X -{ - virtual ~X (); -}; - -struct Y : public X -{}; - -struct Z : public Y, public X -{}; // WARNING - - -void foo () -{ - Z* f = new Z; - delete f; // gets bogus error - -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/destruct3.C b/gcc/testsuite/g++.old-deja/g++.jason/destruct3.C deleted file mode 100755 index d4bbf9a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/destruct3.C +++ /dev/null @@ -1,45 +0,0 @@ -// Special g++ Options: -w -// PRMS Id: 4342 (second testcase) -// Bug: g++ still can't deal with ambiguous inheritance in destructor calls. -// Build don't link: - -struct ccUnwind -{ - ccUnwind (); - virtual ~ccUnwind (); -}; - -struct ccPersistent -{ - virtual void bar(); -}; - -struct ccImpExp : public ccPersistent, public ccUnwind -{}; - -struct ccTool : public ccImpExp -{}; - -struct ccScreenTool : public ccTool -{}; - -struct ccVTool : public ccScreenTool -{}; - -struct ccScreenObjRep : public ccUnwind -{}; - -struct ccScreenObj : public ccScreenObjRep -{}; - -struct ccVSTool : public ccImpExp, public ccUnwind -{}; - -struct ccSCCP : public ccVSTool -{}; - -void foo () -{ - ccSCCP* foo = new ccSCCP; - delete foo; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/destruct4.C b/gcc/testsuite/g++.old-deja/g++.jason/destruct4.C deleted file mode 100755 index 3ce7d76..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/destruct4.C +++ /dev/null @@ -1,14 +0,0 @@ -// PRMS Id: 4342 -// Bug: g++ fails to massage ambiguity in calling virtual destructor. -// Build don't link: - -class A { public: virtual ~A();}; -class B: public A { }; -class C: public A { }; -class D: public B, public C { }; - -void foo () -{ - D* p = new D; - delete p; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/dot.C b/gcc/testsuite/g++.old-deja/g++.jason/dot.C deleted file mode 100755 index 3870eea..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/dot.C +++ /dev/null @@ -1,20 +0,0 @@ -// PRMS Id: 4143 -// Bug: Pointer is silently dereferenced in method call. -// Build don't link: - -extern "C" int printf (const char *, ...); - -class Test -{ - char ch; - public: - Test(char c) : ch(c) {} - void Print() { printf("%c", ch); } -}; - -int main() -{ - Test *p = new Test('x'); - - p.Print(); // ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/dtor.C b/gcc/testsuite/g++.old-deja/g++.jason/dtor.C deleted file mode 100755 index db76e17..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/dtor.C +++ /dev/null @@ -1,13 +0,0 @@ -struct A { - ~A(); -}; - -struct B { - ~B(); -}; - -int main() -{ - A a; - a.~B(); // ERROR - wrong name -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/dtor2.C b/gcc/testsuite/g++.old-deja/g++.jason/dtor2.C deleted file mode 100755 index c088e3f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/dtor2.C +++ /dev/null @@ -1,10 +0,0 @@ -// PRMS Id: 5163 -// Bug: g++ doesn't accept the explicit destructor call syntax for templates. - -template <class T> struct A { }; -A<int> a; - -int main() -{ - a.~A(); // gets bogus error -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/dtor3.C b/gcc/testsuite/g++.old-deja/g++.jason/dtor3.C deleted file mode 100755 index 0c5e68a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/dtor3.C +++ /dev/null @@ -1,18 +0,0 @@ -// PRMS Id: 5341 -// Bug: g++ complains about the explicit destructor notation. -// Build don't link: - -#include <stddef.h> - -void *operator new(size_t Size, void* pThing) { return pThing; }; - -template <class T> class Stack { -public: - Stack() { new (Data) T(); } - ~Stack() { ((T*)Data)->~T(); } -private: - char Data[sizeof(T)]; -}; - -Stack<int> a; -Stack<Stack<int> > c; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/dtor4.C b/gcc/testsuite/g++.old-deja/g++.jason/dtor4.C deleted file mode 100755 index dfdc3aa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/dtor4.C +++ /dev/null @@ -1,23 +0,0 @@ -// PRMS Id: 5420 -// Bug: g++ gets mixed up calling destructors for references. -// Build don't link: - -template<class X> -class Z { -public: - char space[100]; - void kill() - { X& x = (X&) space[0]; - x.~X(); } -}; - -class C { int i; }; - -void -f() -{ - Z<int> r; - r.kill(); - Z<C> s; - s.kill(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/dtor5.C b/gcc/testsuite/g++.old-deja/g++.jason/dtor5.C deleted file mode 100755 index 4761bed..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/dtor5.C +++ /dev/null @@ -1,24 +0,0 @@ -// PRMS Id: 5286 -// Bug: g++ forgets side-effects of object in call to nonexistent destructor. - -#include <new> - -int r; - -template <class T> struct A { - T *p; - int i; - A() { i = 0; p = (T*) new char[sizeof (T)]; new (p + i++) T; } - ~A() { p[--i].~T(); r = i; } -}; - -int main() -{ - { A<int> a; } - - int* p = (int*) new char[sizeof (int)]; - new (p + r++) int; - p[--r].~int(); - - return r; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/enum.C b/gcc/testsuite/g++.old-deja/g++.jason/enum.C deleted file mode 100755 index 6dd24e6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/enum.C +++ /dev/null @@ -1,19 +0,0 @@ -// PRMS Id: 4337 -// Bug: Enums are not looked up to arbitrary depth. -// Build don't link: - -struct W { - enum A { B }; -}; - -struct X : public W -{}; - -struct Y : public X -{}; - -struct S -{ - X::A a1; - Y::A a2; // gets bogus error - -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/enum2.C b/gcc/testsuite/g++.old-deja/g++.jason/enum2.C deleted file mode 100755 index 8fb7538..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/enum2.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: - -enum tristate { no = -1, maybe, yes }; - -void foobar () -{ - tristate var = no; // gets bogus error -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/enum3.C b/gcc/testsuite/g++.old-deja/g++.jason/enum3.C deleted file mode 100755 index 9e25570..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/enum3.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// Special g++ Options: -Wall - -enum tristate { no = -1, maybe, yes }; - -tristate -tristate_satisfies (register tristate const t1, register tristate const t2) -{ - switch (t1) - { - case no: - return (tristate) -t2; - case maybe: - return yes; - case yes: - return t2; - } - return maybe; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/enum4.C b/gcc/testsuite/g++.old-deja/g++.jason/enum4.C deleted file mode 100755 index ab8b69f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/enum4.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// Special g++ Options: -Wall - -enum tristate { no = -1, maybe, yes }; - -tristate -definite_tristate (int truth) -{ - return (truth) ? yes : no; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/enum5.C b/gcc/testsuite/g++.old-deja/g++.jason/enum5.C deleted file mode 100755 index bbaa674..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/enum5.C +++ /dev/null @@ -1,8 +0,0 @@ -enum { a = 1 }; - -int main(void) -{ - int l = -1; - - return ! (l < a); // testcase fails if a is unsigned -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/enum6.C b/gcc/testsuite/g++.old-deja/g++.jason/enum6.C deleted file mode 100755 index 4097e2d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/enum6.C +++ /dev/null @@ -1,15 +0,0 @@ -// Special g++ Options: -fshort-enums - -#include <limits.h> - -enum A { a1 = 0x7fffffff }; -enum B { b1 = 0x80000000 }; -enum C { c1 = -1, c2 = 0x80000000 }; -enum D { d1 = CHAR_MIN, d2 = CHAR_MAX }; -enum E { e1 = CHAR_MIN, e2 = CHAR_MIN }; - -main() -{ - return (sizeof (A) != 4 || sizeof (B) != 4 || sizeof (C) != 8 - || sizeof (D) != 1 || sizeof (E) != 1); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/enum7.C b/gcc/testsuite/g++.old-deja/g++.jason/enum7.C deleted file mode 100755 index 0f68304..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/enum7.C +++ /dev/null @@ -1,15 +0,0 @@ -// Yet Another testcase for signed/unsigned enums. -// Build don't link: - -enum A { AA = 0, AB = 1}; -enum B { BA = -1, BB = 1}; - -void set(int a); -void set(long a); - -void -foo() -{ - set(AA); // gets bogus error - why is this ambiguous - set(BA); // when this is not amibguous -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/enum8.C b/gcc/testsuite/g++.old-deja/g++.jason/enum8.C deleted file mode 100755 index 0a3220f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/enum8.C +++ /dev/null @@ -1,20 +0,0 @@ -// Bug: the switch fails on the Alpha because folding ef - 1 fails. - -enum foo { one=1, thirty=30 }; - -int f (enum foo ef) -{ - switch (ef) - { - case one: - case thirty: - return 0; - default: - return 1; - } -} - -int main () -{ - return f (one); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/explicit.C b/gcc/testsuite/g++.old-deja/g++.jason/explicit.C deleted file mode 100755 index 9fcecfd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/explicit.C +++ /dev/null @@ -1,15 +0,0 @@ -// Testcase for explicit instantiation of templates. -// Build don't link: - -template <class T> -class A { - T t; -public: - void f () { } -}; - -template class A<int>; - -template <class T> T min (T a, T b) { return (a < b ? a : b); } - -template int min (int, int); diff --git a/gcc/testsuite/g++.old-deja/g++.jason/expr1.C b/gcc/testsuite/g++.old-deja/g++.jason/expr1.C deleted file mode 100755 index 89d719f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/expr1.C +++ /dev/null @@ -1,12 +0,0 @@ -// Bug: g++ doesn't figure out what to do. -// Build don't link: - -struct A { - operator char *(); -}; - -char foo(A a) -{ - char c = a[0]; // gets bogus error - return c; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/friend.C b/gcc/testsuite/g++.old-deja/g++.jason/friend.C deleted file mode 100755 index 4c517cb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/friend.C +++ /dev/null @@ -1,18 +0,0 @@ -// Bug: g++ doesn't keep track of the lexical context of friends properly. - -extern "C" void exit(int); - -struct B; -struct A { - static void f () { exit (1); } -}; - -struct B { - static void f () { exit (0); } - friend void g () { f (); } -}; - -int main () -{ - g (); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/friend2.C b/gcc/testsuite/g++.old-deja/g++.jason/friend2.C deleted file mode 100755 index 02ccb5c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/friend2.C +++ /dev/null @@ -1,21 +0,0 @@ -// PRMS Id: 5189 -// Bug: g++ fails to collapse the several declarations of freefoo, so it isn't -// recognized as a friend. -// Build don't link: - -extern "C" -void freefoo(void); - -class foo { - friend void freefoo(void); - protected: - static void foomem(); - public: - foo(); - ~foo(); -}; - -void freefoo(void) -{ - foo::foomem(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/groff1.C b/gcc/testsuite/g++.old-deja/g++.jason/groff1.C deleted file mode 100755 index 7ce697b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/groff1.C +++ /dev/null @@ -1,40 +0,0 @@ -// PRMS Id: 3744 -// Bug: unswitching a COND_EXPR initializer fails to set SIDE_EFFECTS on the -// result, so expand_expr ignores it. - -extern "C" { - int printf(const char *,...); - void exit(int); -} - -struct A { - int x; - int y; - - A() : x(0), y(0) { } -}; - -struct S { - S() : flags(0) { } - unsigned flags; - A from; - void foo(const A &pos); -}; - -void S::foo(const A &pos) -{ - A a = flags ? from : pos; - printf("%d %d\n", a.x, a.y); - if (a.x != 17 || a.y != 12) - exit (1); -} - -int main() -{ - A pos; - pos.x = 17; - pos.y = 12; - S s; - s.foo(pos); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/hmc1.C b/gcc/testsuite/g++.old-deja/g++.jason/hmc1.C deleted file mode 100755 index fec9487..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/hmc1.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// GROUPS passed templates default-arguments -template <class I> -class Class { -public: - void func1(int n=1); - void func2(int d) {} -}; -template <class I> -void Class<I>::func1(int n) {} - -//if this is replaced by: -//void Class<I>::func1(int n=1) {} -//the code compiles. - -int main() { - Class<int> C; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/incomplete1.C b/gcc/testsuite/g++.old-deja/g++.jason/incomplete1.C deleted file mode 100755 index 8b738d9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/incomplete1.C +++ /dev/null @@ -1,15 +0,0 @@ -// The reference parameter to fred isn't dereferenced properly. -// Build don't link: - -class Gump {}; -Gump operator & (const Gump x){return x;} - -class B; - -void *sam(int &x) -{return &x;} - -const void *fred(const B& x) -{return &x;} // "&x" causes the compilation error. - -class B {}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/incomplete2.C b/gcc/testsuite/g++.old-deja/g++.jason/incomplete2.C deleted file mode 100755 index 6642321..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/incomplete2.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: - -struct A { - int foo(A a) { return a.bar(); } - int bar(); - int n; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/init.C b/gcc/testsuite/g++.old-deja/g++.jason/init.C deleted file mode 100755 index 032d172..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/init.C +++ /dev/null @@ -1,7 +0,0 @@ -// Bug: g++ uses an empty initializer list for its own devious purpose -// internally, and gets confused if it shows up in the input. -// Build don't link: - -struct A { int i; }; - -A a = { }; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/init2.C b/gcc/testsuite/g++.old-deja/g++.jason/init2.C deleted file mode 100755 index c85adc3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/init2.C +++ /dev/null @@ -1,9 +0,0 @@ -// PRMS Id: 5126 - -extern int i, j; -static const int foo [] = { i, j }; -int i = 5, j = 42; -int main() -{ - return foo[1] != 42; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/init3.C b/gcc/testsuite/g++.old-deja/g++.jason/init3.C deleted file mode 100755 index ae86931..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/init3.C +++ /dev/null @@ -1,42 +0,0 @@ -// PRMS Id: 5652 -// Bug: strings does not get initialized. - -extern "C" void * memcpy (void *, const void *, __SIZE_TYPE__); -extern "C" int strcmp (const char *, const char *); - -class My_string { - char *str; - int len; -public: - My_string(const char* string); - My_string(const My_string &); - ~My_string() { delete str; } - char* char_p() { return str; } -}; - -const My_string strings[4] = { - "first string", - "second string", - "third string", - "fourth string" -}; - -My_string::My_string(const char* string) -{ - len = strlen(string) + 1; - str = new char[len]; - memcpy(str, string, len); -} - -My_string::My_string(const My_string &string) -{ - len = string.len; - str = new char[len]; - memcpy(str, string.str, len); -} - -int main() -{ - My_string str1 = strings[0]; - return strcmp ("first string", str1.char_p ()) != 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/init4.C b/gcc/testsuite/g++.old-deja/g++.jason/init4.C deleted file mode 100755 index aa9417c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/init4.C +++ /dev/null @@ -1,3 +0,0 @@ -struct A { int i; }; - -A a = {{{1}}}; // ERROR - causes abort diff --git a/gcc/testsuite/g++.old-deja/g++.jason/inline.C b/gcc/testsuite/g++.old-deja/g++.jason/inline.C deleted file mode 100755 index d6cb9e9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/inline.C +++ /dev/null @@ -1,21 +0,0 @@ -// PRMS Id: 4341 -// Bug: Instantiating a template in the middle of processing the functions -// from another template screws up lineno/input_filename. - -#pragma implementation "C.h" -#line 1 "A.h" -#pragma interface -template <class T> class A {}; -#line 1 "C.h" -#pragma interface -template <class T> class C -{ -public: - C() { A<T> *ap; } - ~C() { } -}; -#line 18 "inline.C" -int main() -{ - C<int> c; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/inline2.C b/gcc/testsuite/g++.old-deja/g++.jason/inline2.C deleted file mode 100755 index 7dea476..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/inline2.C +++ /dev/null @@ -1,12 +0,0 @@ -// Bug: the lang-specific bits of the decl for g aren't being copied when -// inlining. -// Special g++ Options: -O -// Build don't link: - -inline void f () { - void g (); -} - -void h() { - f(); // causes compiler segfault - -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/inline3.C b/gcc/testsuite/g++.old-deja/g++.jason/inline3.C deleted file mode 100755 index 00d57eb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/inline3.C +++ /dev/null @@ -1,42 +0,0 @@ -// Testcase for order of destruction. -// Special g++ Options: -O2 - -extern "C" int printf( char const*, ... ); -int c; -int r; - -struct B { - B(); - B( B const& ); - ~B(); -}; - -struct A { - A(); - A( A const& ); - ~A(); - operator B (); -}; - -inline A::operator B () { printf( "operator B ()\n"); return B(); } - -A f(); -void g( B const& ); - -int -main() -{ - g( f() ); - return r; -} - -B::B() { printf( "B::B()\n" ); if (++c != 2) r = 1; } -B::B( B const& ) { printf( "B::B( B const& )\n" ); r = 1; } -B::~B() { printf( "B::~B()\n" ); if (--c != 1) r = 1; } - -A::A() { printf( "A::A()\n" ); if (++c != 1) r = 1; } -A::A( A const& ) { printf( "A::A( A const& )\n" ); r = 1; } -A::~A() { printf( "A::~A()\n" ); if (--c != 0) r = 1; } - -A f() { printf( "f()\n"); return A(); } -void g( B const& ) { printf( "g()\n"); } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/jump.C b/gcc/testsuite/g++.old-deja/g++.jason/jump.C deleted file mode 100755 index e59de36..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/jump.C +++ /dev/null @@ -1,14 +0,0 @@ -// PRMS Id: 6036 - -extern int a; - -int main() { - switch (a) { - case 1: - int v2 = 3; // ERROR - referenced below - case 2: // ERROR - jumping past initializer - if (v2 == 7) - ; - } - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/lex1.C b/gcc/testsuite/g++.old-deja/g++.jason/lex1.C deleted file mode 100755 index 174ec77..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/lex1.C +++ /dev/null @@ -1,6 +0,0 @@ -int main() -{ - char c = '\351'; - if (c != '\351') - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/lineno.C b/gcc/testsuite/g++.old-deja/g++.jason/lineno.C deleted file mode 100755 index 6878f75..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/lineno.C +++ /dev/null @@ -1,6 +0,0 @@ -// Bug; g++ binds a function definition to the line number of a later decl. -// Build don't link: - -void foo () { } // ERROR - redeclared -void foo (); // gets bogus error - invalid binding -void foo () { } // ERROR - redeclared diff --git a/gcc/testsuite/g++.old-deja/g++.jason/lineno2.C b/gcc/testsuite/g++.old-deja/g++.jason/lineno2.C deleted file mode 100755 index 6c27803..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/lineno2.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed error-reporting -// Special g++ Options: -// Bug: # line directive gets ignored immediately after text. -template <class T> class A -{ -public: -# 200 "lineno2.C" -}; - -main() -{ - undef1(); // ERROR - , LINE 204 -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/lineno3.C b/gcc/testsuite/g++.old-deja/g++.jason/lineno3.C deleted file mode 100755 index f268863..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/lineno3.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// Special g++ Options: -// GROUPS passed error-reporting -// potential bug: # line directive does not get reproduced in template -// expansion -template <class T> class A -{ -public: -# 200 "lineno3.C" - int foo () { undef1(); } // ERROR - , LINE 200 -}; - -template class A<int>; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/lineno4.C b/gcc/testsuite/g++.old-deja/g++.jason/lineno4.C deleted file mode 100755 index a570edf..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/lineno4.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// Special g++ Options: -// GROUPS passed error-reporting -// Bug: # line directive in template definition interferes with growing obstack -template <class T> class A -{ -public: - -# 200 "lineno4.C" - int foo () { undef1(); } // ERROR - , LINE 200 -}; - -template class A<int>; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/lineno5.C b/gcc/testsuite/g++.old-deja/g++.jason/lineno5.C deleted file mode 100755 index 95ff218..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/lineno5.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed error-reporting -// Bug: incomplete instantiation messes with lineno -template <class T> class A; - -int main() -{ - A<int> *p; - undef1();// ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/local.C b/gcc/testsuite/g++.old-deja/g++.jason/local.C deleted file mode 100755 index 6159db0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/local.C +++ /dev/null @@ -1,20 +0,0 @@ -// General testcase for local classes. - -int x; -void f () -{ - static int s; - int x; // ERROR - referenced below - extern int q(); - - struct local { - int g() { return x; } // ERROR - automatic variable - int h() { return s; } // gets bogus error - local class - int k() { return ::x; } // OK - int l() { return q(); } // OK - int m(); // OK - not defined - static int foo; // ERROR - static data member of local class - }; -} - -local* p = 0; // ERROR - no such type in scope diff --git a/gcc/testsuite/g++.old-deja/g++.jason/lookup.C b/gcc/testsuite/g++.old-deja/g++.jason/lookup.C deleted file mode 100755 index c6c44c3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/lookup.C +++ /dev/null @@ -1,30 +0,0 @@ -// PRMS Id: 4357 -// Bug: g++ forgets to clear out push/popclass cache stuff when instantiating -// templates. -// Build don't link: - -template <class T> class ccHandle { }; - -class cc_GStack -{ - static cc_GStack* freeList; -}; - -// OK if ccGStack is not derived from ccHandle<something> -class ccGStack : public ccHandle<int> { }; - -struct S { }; - -S* freeList; - -class X -{ -public: - void foo(); -}; - -void X::foo() -{ - S m; - freeList = &m; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/lookup2.C b/gcc/testsuite/g++.old-deja/g++.jason/lookup2.C deleted file mode 100755 index e44b1dc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/lookup2.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: - -struct A { - struct B { - B (); - }; -}; -void f (A::B); -void g () -{ - A::B b; - f (b); // gets bogus error - can't find nested constructor -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/lookup3.C b/gcc/testsuite/g++.old-deja/g++.jason/lookup3.C deleted file mode 100755 index 7be731e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/lookup3.C +++ /dev/null @@ -1,15 +0,0 @@ -// [class.ambig]: A single function, object, type, or enumerator may be -// reached through more than one path through the DAG of base classes. This -// is not an ambiguity. -// Build don't link: - -struct A { - typedef long T; -}; - -struct B : public A { }; -struct C : public A { }; - -struct D : public C , public B { - void f (T&); // gets bogus error - ambiguous lookup -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/loverload.C b/gcc/testsuite/g++.old-deja/g++.jason/loverload.C deleted file mode 100755 index 2d1a9b3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/loverload.C +++ /dev/null @@ -1,11 +0,0 @@ -// Bug: g++ can't deal with multi-language overloading. -// Build don't link: - -extern void foo (int, int); -extern "C" void foo (int); - -void bar () -{ - foo (1); - foo (1, 2); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/loverload3.C b/gcc/testsuite/g++.old-deja/g++.jason/loverload3.C deleted file mode 100755 index c9cc3bf..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/loverload3.C +++ /dev/null @@ -1,12 +0,0 @@ -// PRMS Id: 2010 -// Bug: g++ doesn't deal with overloads involving C-language fns properly. -// Build don't link: - -extern "C" double pow (double, double); -inline double pow (double d, int e) { return pow (d, (double) e); } - -void foo () -{ - pow (1.0, 1); - pow (1.0, 1.0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/loverload4.C b/gcc/testsuite/g++.old-deja/g++.jason/loverload4.C deleted file mode 100755 index c689bf5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/loverload4.C +++ /dev/null @@ -1,8 +0,0 @@ -// Bug: g++ dies on this input. -// Build don't link: - -inline char abs (char x) { return 0; } - -extern "C" { - inline int abs (int x) { return 1; } -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/lvalue.C b/gcc/testsuite/g++.old-deja/g++.jason/lvalue.C deleted file mode 100755 index c85e6fe..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/lvalue.C +++ /dev/null @@ -1,22 +0,0 @@ -// Bug: Scoped method calls don't propagate the constness of `this'. -// PRMS Id: 4181 (second testcase) -// Build don't link: - -class D; - -class Bptr -{ -public: - Bptr& operator=(D*); - const Bptr& operator=(const D*) const; -}; - -class Dptr : public Bptr -{ -public: - const Dptr& operator=(const D* rep) const - { - Bptr::operator=(rep); - return *this; - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/lvalue2.C b/gcc/testsuite/g++.old-deja/g++.jason/lvalue2.C deleted file mode 100755 index 2fba73c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/lvalue2.C +++ /dev/null @@ -1,20 +0,0 @@ -// PRMS Id: 4892 -// Bug: COND_EXPRs, MODIFY_EXPRs and COMPOUND_EXPRs aren't properly recognized -// as lvalues. -// Build don't link: - -extern int foo; -int& f (int& a, int& b) -{ - return (foo ? a : b); // gets bogus error - -} - -int& g (int& a) -{ - return (a = 0); // gets bogus error - -} - -int& h (int& a, int& b) -{ - return (a = 1, b); // gets bogus error - -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/lvalue3.C b/gcc/testsuite/g++.old-deja/g++.jason/lvalue3.C deleted file mode 100755 index a3edaac..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/lvalue3.C +++ /dev/null @@ -1,9 +0,0 @@ -// Bug: C++ semantics for assignment don't match the backend semantics for -// MODIFY_EXPR. -// Build don't link: - -void -foo (int j) -{ - (j = 1)++; // causes compiler segfault -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/lvalue4.C b/gcc/testsuite/g++.old-deja/g++.jason/lvalue4.C deleted file mode 100755 index 79a02d8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/lvalue4.C +++ /dev/null @@ -1,6 +0,0 @@ -int main() { - int i = 2; - int *pi = &(++i); - - return i != 3; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/mangle1.C b/gcc/testsuite/g++.old-deja/g++.jason/mangle1.C deleted file mode 100755 index 59b83b9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/mangle1.C +++ /dev/null @@ -1,23 +0,0 @@ -// Bug: numeric_outputed_need_bar is not cleared properly, adding random '_'s -// to mangled names. - -// Build don't link: - -template <int seed_length> -class rand1 -{ -public: - rand1 (); -}; - -class codes -{ -public: - rand1<32> * randgen; - codes (int ptr); - -}; - -codes::codes (int ptr) -{ -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/mangle2.C b/gcc/testsuite/g++.old-deja/g++.jason/mangle2.C deleted file mode 100755 index b1876b7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/mangle2.C +++ /dev/null @@ -1,23 +0,0 @@ -// I guess this was broken once. -// Build don't link: - -template <class C, int D> class X { }; -typedef X<int, 0> T; - -class Y -{ - public: - ~Y(); -}; - -class Z -{ - public: - void f(T**); -}; - -void Z::f(T** t) -{ } - -Y::~Y() -{ } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/mangle3.C b/gcc/testsuite/g++.old-deja/g++.jason/mangle3.C deleted file mode 100755 index 5a82107..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/mangle3.C +++ /dev/null @@ -1,19 +0,0 @@ -// PRMS Id: 7563 -// Bug: declaration at function scope causes mismangling. - -int main() -{ - char ArrA[10][10][20][30], - ArrB[10][10][20][30]; - - void HitMe(char [10][10][20][30], char [10][10][20][30]); - - HitMe(ArrA, ArrB); - - return 0; -} - -void HitMe(char A[10][10][20][30], char B[10][10][20][30]) -{ - return; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/member.C b/gcc/testsuite/g++.old-deja/g++.jason/member.C deleted file mode 100755 index 3518811..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/member.C +++ /dev/null @@ -1,35 +0,0 @@ -// Build don't link: -// GROUPS passed member-pointers error-reporting -struct Y -{ - struct X - { - int A; - int Y::X::* foo () { undef1(1); return &Y::X::A; }// ERROR - foo().* - int bar () { return A; } - }; -}; - -int Y::X::* foo () -{ - undef2(1);// ERROR - foo().* - return &Y::X::A; -} - -int Y::X::* (* foo2 ())() -{ - undef3(1);// ERROR - foo().* - return foo; -} - -int (Y::X::* bar2 ()) () -{ - undef4(1);// ERROR - foo\(\).* - return Y::X::bar;// ERROR - foo\(\).* -} - -int Y::X::* (Y::X::* foo3 ())() -{ - undef5(1);// ERROR - foo().* - return Y::X::foo;// ERROR - foo().* -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/method.C b/gcc/testsuite/g++.old-deja/g++.jason/method.C deleted file mode 100755 index e9496b8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/method.C +++ /dev/null @@ -1,12 +0,0 @@ -// Bug: pointer to pointer is treated as plain pointer. -// PRMS Id: 1767 -// Build don't link: - -class Foo { -public: - void method(); -}; - -void func(Foo ** ppFoo) { - ppFoo->method(); // ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/mi.C b/gcc/testsuite/g++.old-deja/g++.jason/mi.C deleted file mode 100755 index de805dd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/mi.C +++ /dev/null @@ -1,16 +0,0 @@ -int status; - -struct A { virtual void foo () { status = 1; } }; -struct B { }; -struct C : public A, public B { }; -struct D { virtual void baz () { } }; -struct E : public D, public C { void foo () { status = 0; } }; - -int main () -{ - E* ep = new E; - - ep->foo(); - - return status; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/mutable1.C b/gcc/testsuite/g++.old-deja/g++.jason/mutable1.C deleted file mode 100755 index 5311a87..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/mutable1.C +++ /dev/null @@ -1,11 +0,0 @@ -struct X -{ - X () { } - mutable int x; -}; - -int main () -{ - const X x; - x.x = 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/nested1.C b/gcc/testsuite/g++.old-deja/g++.jason/nested1.C deleted file mode 100755 index 4405f3d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/nested1.C +++ /dev/null @@ -1,12 +0,0 @@ -// Bug: g++ can't deal with function-local classes that talk about themselves. -// Build don't link: - -void foo() { - class Wrapper { - public: - void F (void * Wrapperptr) - { - Wrapper * wrapptr = ( Wrapper *) Wrapperptr; // gets bogus error - } - }; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/nested2.C b/gcc/testsuite/g++.old-deja/g++.jason/nested2.C deleted file mode 100755 index 24020a2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/nested2.C +++ /dev/null @@ -1,26 +0,0 @@ -// PRMS Id: 3764 (c/h) -// Bug: g++ gets into an infinite loop trying to find the top-level context -// Build don't link: - -class Menu; -class MenuItem; - -class MenuAction { -public: - virtual void execute (Menu& menu, MenuItem& menuItem) = 0; -protected: - MenuAction () {} -}; - -class Test { - class MenuCBA : public MenuAction { - public: - typedef void (Test::* MenuCBA_Member) (Menu& menu, MenuItem& menuItem); - MenuCBA (Test& instance, MenuCBA_Member member) - : _instance(&instance), _member(member) { } - void execute (Menu& menu, MenuItem& menuItem); - private: - MenuCBA_Member _member; - Test* _instance; - }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/nested4.C b/gcc/testsuite/g++.old-deja/g++.jason/nested4.C deleted file mode 100755 index cd5a839..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/nested4.C +++ /dev/null @@ -1,17 +0,0 @@ -// From: quipu@ulrik.uio.no -// Subject: extern "C" nested class -// Date: Fri, 13 Aug 1993 15:33:53 +0200 -// Build don't link: - -extern "C" { - struct A { - struct B { int j; } *x; - }; -} - -void -foo () { - A a; - struct A::B *b; - b = a.x; // gets bogus error - type `B' is not a base type for type `B' -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/nested5.C b/gcc/testsuite/g++.old-deja/g++.jason/nested5.C deleted file mode 100755 index 1b0e35c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/nested5.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: - -struct A { - struct B { }; -}; - -struct C : public A { - struct D - : public B // gets bogus error - can't find B - { }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/nested6.C b/gcc/testsuite/g++.old-deja/g++.jason/nested6.C deleted file mode 100755 index b98c643..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/nested6.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: -union A { - struct B { }; - A::B b; // gets bogus error -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/nested7.C b/gcc/testsuite/g++.old-deja/g++.jason/nested7.C deleted file mode 100755 index 43cce23..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/nested7.C +++ /dev/null @@ -1,16 +0,0 @@ -// Testcase for defining nested types separately. -// Build don't link: - -class remote -{ - class remote_file; -}; - -class remote::remote_file -{ -public: - ~remote_file(); -}; - -remote::remote_file::~remote_file() -{} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/nested8.C b/gcc/testsuite/g++.old-deja/g++.jason/nested8.C deleted file mode 100755 index ff2d659..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/nested8.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: - -struct A { }; -struct B: public A { - struct C { -friend struct B; // gets bogus error - base clause w/o members - }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/net.C b/gcc/testsuite/g++.old-deja/g++.jason/net.C deleted file mode 100755 index be8b962..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/net.C +++ /dev/null @@ -1,10 +0,0 @@ -// Bug: g++ doesn't instantiate function templates in instantiate_type. -// Build don't link: - -template <class T> void fn (T t) { } -template <class T> struct A { - void (*p)(T); - A() { p = fn; } -}; - -A<int> a; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/net2.C b/gcc/testsuite/g++.old-deja/g++.jason/net2.C deleted file mode 100755 index 8738ead..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/net2.C +++ /dev/null @@ -1,37 +0,0 @@ -// Test of various ?: problems. - -class D -{ -public: - void a(); - void b(); - D(int i):x(i) {} -private: - int x; -}; - -void D::a() {++x;} -void D::b() {--x;} - - -int aa=1, bb=0; - -int fa() {return 0;} -int fb() {return 2;} - -int main(int argc, char* argv[]) -{ - typedef int* pi; - int* p = (argc == 1)? &aa: &bb; - *p = 0; - - typedef int (*ifptr)(); - ifptr fp = (argc == 1)? fa: fb; - aa = fp(); - - D d(0); - typedef void (D::*dmem)(); - dmem mfp = (argc == 1)? &D::a: &D::b; - (d.*mfp)(); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/new.C b/gcc/testsuite/g++.old-deja/g++.jason/new.C deleted file mode 100755 index ce86569..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/new.C +++ /dev/null @@ -1,25 +0,0 @@ -// Bug: new doesn't make sure that the count is an integral value. - -#include <new> -extern "C" int printf (const char *, ...); -extern "C" void *malloc (size_t); -size_t s; - -void * operator new (size_t siz) throw (std::bad_alloc) { - if (s == 0) - s = siz; - else - s = (s != siz); - return malloc (siz); -} - -int main() -{ - s = 0; - - float f = 3; - int* b1 = new int[(int)f]; - int* b2 = new int[f]; // ERROR - new requires integral size - - return s; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/new2.C b/gcc/testsuite/g++.old-deja/g++.jason/new2.C deleted file mode 100755 index 612c5e2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/new2.C +++ /dev/null @@ -1,12 +0,0 @@ -// PRMS Id: 6267 -// Special g++ Options: -fthis-is-variable -fno-exceptions - -struct A { - int i; - A() { i = 2; } -}; - -main() -{ - A *p = new A (); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/new3.C b/gcc/testsuite/g++.old-deja/g++.jason/new3.C deleted file mode 100755 index ede3a00..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/new3.C +++ /dev/null @@ -1,23 +0,0 @@ -// PRMS Id: 6037 -// Special g++ Options: -fcheck-new - -extern "C" void * malloc (__SIZE_TYPE__); - -struct A { - int i; - A () { i = 2; } -}; - -int ena = 0; -void * operator new (__SIZE_TYPE__ s) -{ - if (ena) - return 0; - return malloc (s); -} - -main () -{ - ena = 1; - A* ap = new A; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/new4.C b/gcc/testsuite/g++.old-deja/g++.jason/new4.C deleted file mode 100755 index ba8af27..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/new4.C +++ /dev/null @@ -1,22 +0,0 @@ -// Special g++ Options: -fcheck-new - -struct A { - A(): i(42) { } - A(int j): i(j) { } - int i; -}; - -A* ap = new A (1); -A* ap2 = new A[3]; - -main () -{ - if (ap->i != 1 || ap2[0].i != 42 || ap2[1].i != 42 || ap2[2].i != 42) - return 1; - - A* ap = new A (1); - A* ap2 = new A[3]; - - if (ap->i != 1 || ap2[0].i != 42 || ap2[1].i != 42 || ap2[2].i != 42) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/new5.C b/gcc/testsuite/g++.old-deja/g++.jason/new5.C deleted file mode 100755 index 87279fd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/new5.C +++ /dev/null @@ -1,5 +0,0 @@ -int main () -{ - const int *p = new const int (0); - delete p; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/offset1.C b/gcc/testsuite/g++.old-deja/g++.jason/offset1.C deleted file mode 100755 index d4fd38b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/offset1.C +++ /dev/null @@ -1,17 +0,0 @@ -// PRMS Id: 5070 (testcase 1) -// Build don't link: - -struct foo { - foo(int x = 0) {}; - int IsAlive(void) { return 1; } -}; - -struct xx { - int IsOk(int X); - foo a; -}; - -int xx::IsOk(int X) -{ - return ((xx::a).IsAlive()); // gets bogus error -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/offset2.C b/gcc/testsuite/g++.old-deja/g++.jason/offset2.C deleted file mode 100755 index a598d43..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/offset2.C +++ /dev/null @@ -1,23 +0,0 @@ -// PRMS Id: 5070 (testcase 2) - -int status = 1; - -struct foo { - foo& operator= (const foo&) { status = 0; } -}; - -struct xx { - foo a; -}; - -struct yy : public xx { - yy(foo& a) { xx::a = a; } -}; - -int main() -{ - foo f; - yy y (f); - - return status; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/offset3.C b/gcc/testsuite/g++.old-deja/g++.jason/offset3.C deleted file mode 100755 index d980ba1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/offset3.C +++ /dev/null @@ -1,22 +0,0 @@ -// PRMS Id: 5070 (bug 2) -// Build don't link: - -struct A { - void f (); -}; - -struct Ptr { - A* operator->(); -}; - -struct B { - Ptr p; -}; - -struct C: public B { - void g (); -}; - -void C::g() { - B::p->f(); // gets bogus error -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/offset4.C b/gcc/testsuite/g++.old-deja/g++.jason/offset4.C deleted file mode 100755 index 2a50491..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/offset4.C +++ /dev/null @@ -1,15 +0,0 @@ -// Bug: g++ complains about the use of A::p below. -// Build don't link: - -struct A { - void *p; -}; - -struct B: public A { - int f () - { - if (A::p) - return 1; - return 0; - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/opeq.C b/gcc/testsuite/g++.old-deja/g++.jason/opeq.C deleted file mode 100755 index ac099a4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/opeq.C +++ /dev/null @@ -1,39 +0,0 @@ -// PRMS Id: 4297 (related to 3525) -// Bug: Generating default op= didn't set TYPE_HAS_ASSIGNMENT, so it wasn't -// found. - -extern "C" int printf (char *, ...); - -class Y -{ -public: - Y(char*) {} - Y& operator = (const Y&) {} -}; - - -class X -{ -public: - X(int v, char* m) : _v(v), _m (m) {} - X () : _v(0), _m("Unknown") {} - // Defining our own op= here makes things work correctly. - -private: - int _v; - int _m4; - // Adding more members here increases the count on u. - Y _m; -}; - -const X sPassed (1, "Passed"), sFailed (-1, "Failed"); - -int main (int, char**) -{ - X result; - int u = 0; - result = (u++ ? sPassed : sFailed); - if (u == 1) - return 0; - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/opeq2.C b/gcc/testsuite/g++.old-deja/g++.jason/opeq2.C deleted file mode 100755 index 9e91ab3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/opeq2.C +++ /dev/null @@ -1,26 +0,0 @@ -// Bug: default operator= is not being generated properly. -// PRMS Id: 3525 -// Build don't link: - -struct ccUnwind -{ - ccUnwind& operator = (const ccUnwind&); -}; - -struct ccEllipseUnit -{ - ccEllipseUnit () {} -}; - -struct ccEllipse : ccUnwind -{ - ccEllipse (); - ccEllipse (const ccEllipseUnit&); - -}; - -void foo () -{ - ccEllipse e; - e = ccEllipseUnit(); // gets bogus error - assignment not defined -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/opeq3.C b/gcc/testsuite/g++.old-deja/g++.jason/opeq3.C deleted file mode 100755 index e290f7a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/opeq3.C +++ /dev/null @@ -1,15 +0,0 @@ -// Bug: g++ generates code for assignment in invalid situations. -// Build don't link: - -class X { - int& a; -public: - X(int& i): a(i) { }; -}; - -void foo () -{ - int one=1, two=2; - X a(one), b(two); - a = b; // ERROR - no assignment semantics defined -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/opeq4.C b/gcc/testsuite/g++.old-deja/g++.jason/opeq4.C deleted file mode 100755 index d993d83..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/opeq4.C +++ /dev/null @@ -1,8 +0,0 @@ -// PRMS Id: 4329 -// Bug: default op= gives an warning about casting away volatile. -// Build don't link: - -struct foo -{ - volatile int bar[2]; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/opeq5.C b/gcc/testsuite/g++.old-deja/g++.jason/opeq5.C deleted file mode 100755 index 51b3e6e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/opeq5.C +++ /dev/null @@ -1,26 +0,0 @@ -// Testcase for tricky synthesized op= in complex inheritance situation. -// See discussion in g++int.texi. - -// execution test - XFAIL *-*-* - -int count = 0; -extern "C" int printf (const char *, ...); - -class A { - public: - A& operator = (const A&) { count++; return *this; } -}; - -class B: virtual private A { }; -class C: virtual public A { }; -class D: public B, public C { }; - -int main() -{ - D a, b; - a = b; - printf ("%d\n",count); - if (count != 1) - return 1; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/opeq6.C b/gcc/testsuite/g++.old-deja/g++.jason/opeq6.C deleted file mode 100755 index 62be499..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/opeq6.C +++ /dev/null @@ -1,24 +0,0 @@ -// Testcase for wrongful generation of operator =. -// Build don't link: - -class ivResource { -public: - ivResource (); -private: - ivResource & operator =(const ivResource &); -}; - -class ivButtonState : virtual public ivResource { -public: - void operator=(ivButtonState &); -}; - -class ivPrintBS : public ivButtonState { -}; - -void f () -{ - ivPrintBS a, b; - a = b; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.jason/operator.C b/gcc/testsuite/g++.old-deja/g++.jason/operator.C deleted file mode 100755 index bd21e37..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/operator.C +++ /dev/null @@ -1,31 +0,0 @@ -// General test for operator overloading permissiveness. -// Build don't link: -// Special g++ Options: - -typedef __SIZE_TYPE__ size_t; - -struct A { - int operator?:(int a, int b); // WARNING - - static int operator()(int a); // ERROR - must be nonstatic - static int operator+(A,A); // ERROR - must be nonstatic - int operator+(int a, int b = 1); // ERROR - two errors on this line - int operator++(char); // ERROR - must take 'int' - void operator delete (void *); - void operator delete (void *, unsigned long); -}; - -struct B { - void * operator new (size_t, void *); - int operator++(int = 0); - int operator+ (int); - void operator()(); - char * operator[](int); - B * operator->(); -}; - -int operator-(int a, int b); // ERROR - no class argument - -void * operator new (A a); // ERROR - invalid first argument -void operator delete (A a); // ERROR - ditto - -char * operator char * (int); // ERROR - return value, nonmember diff --git a/gcc/testsuite/g++.old-deja/g++.jason/operator2.C b/gcc/testsuite/g++.old-deja/g++.jason/operator2.C deleted file mode 100755 index 4776160..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/operator2.C +++ /dev/null @@ -1,14 +0,0 @@ -// PRMS Id: 6018 -// Build don't link: - -class string { - char *p; -public: - string(const char* s) ;// { p == s; } - operator const char*() ;// { return s; } -}; - -void f4(string& s) -{ - *s; // implies "s.operator const char*()" -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/opover.C b/gcc/testsuite/g++.old-deja/g++.jason/opover.C deleted file mode 100755 index f4a3213..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/opover.C +++ /dev/null @@ -1,15 +0,0 @@ -// Bug: g++ prefers a non-matching operator== over user-defined conversions -// and a default operator==. -// Build don't link: - -struct A { - operator int (); -}; - -struct B { - friend int operator== (B, int); -}; - -int foo (A& a) { - return a == 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/optimize.C b/gcc/testsuite/g++.old-deja/g++.jason/optimize.C deleted file mode 100755 index 1f554e2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/optimize.C +++ /dev/null @@ -1,42 +0,0 @@ -// Bug: g++ claims that control can fall off the end of these functions. -// PRMS Id: 4943 -// Special g++ Options: -O -pedantic-errors -// Build don't link: - -struct A { - A(); - A(const A&); - A& operator= (const A&); - ~A(); -}; - -int f () -{ - A a[2]; - return 1; -} // gets bogus error - jump_optimize - -int g () -{ - A a; - return 1; -} // gets bogus error - jump_optimize - -struct B { - B(); - B(const B&); - B& operator= (const B&); - ~B(); -}; - -inline B::~B() -{ - int i = 2; - while (i--) ; -} - -int h () -{ - B b; - return 1; -} // gets bogus error - jump_optimize diff --git a/gcc/testsuite/g++.old-deja/g++.jason/optimize2.C b/gcc/testsuite/g++.old-deja/g++.jason/optimize2.C deleted file mode 100755 index 0d4e177..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/optimize2.C +++ /dev/null @@ -1,19 +0,0 @@ -// Used to crash on the alpha with optimization. -// Special g++ Options: -w - -struct Fix { - unsigned short l; -}; - -static inline void f (int len) -{ - if (len > 65535) - abort (); -} - -struct Fix a = { 33 }; - -main() -{ - f (a.l); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload.C b/gcc/testsuite/g++.old-deja/g++.jason/overload.C deleted file mode 100755 index bc41672..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed overloading -enum bar {}; - -void operator+ (int, int);// ERROR - .* -void operator+ (bar&, int); - -template <class T> void operator+ (int b, T& t) { return b; } -void operator+ (int, bar&); - -template <class T> class foo -{ -public: - friend void operator+ <> (int, T&); -}; - -class baz; - -class foo<int>; -class foo<baz>; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload1.C b/gcc/testsuite/g++.old-deja/g++.jason/overload1.C deleted file mode 100755 index e29a7c1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload1.C +++ /dev/null @@ -1,12 +0,0 @@ -// Bug: g++ thinks there is a conversion from void * to B *. -// Build don't link: - -struct A { - operator void* (); -}; - -struct B: public A { }; - -void bar (A& a) { - B* bp = (B*)a; // ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload10.C b/gcc/testsuite/g++.old-deja/g++.jason/overload10.C deleted file mode 100755 index cd18382..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload10.C +++ /dev/null @@ -1,22 +0,0 @@ -// PRMS Id: 4257 (second bug) -// Bug: g++ fails to recognize multiple previous instantiations of a function -// template. -// Build don't link: -// Special g++ Options: -fguiding-decls - -template <class T> -class A { - int i; - - friend int foo (A<T>&); -}; - -template <class T> int foo (A<T>& a) { return a.i; } - -A<int> a; -A<char> dummy; - -void bar () -{ - foo (a); // gets bogus error - two foo(A<int>&)'s -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload11.C b/gcc/testsuite/g++.old-deja/g++.jason/overload11.C deleted file mode 100755 index f5ed01e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload11.C +++ /dev/null @@ -1,17 +0,0 @@ -// PRMS Id: 4697 -// Bug: g++ calls the non-const method for a const object. - -class A { -public: - void foo(int &i) const { i = 0; } - void foo(int &i) { i = 1; } -}; - -int main() -{ - A a; - const A& b = a; - int i = 2; - b.foo (i); - return i; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload12.C b/gcc/testsuite/g++.old-deja/g++.jason/overload12.C deleted file mode 100755 index 61d3740..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload12.C +++ /dev/null @@ -1,15 +0,0 @@ -// PRMS Id: 4066 -// Bug: g++ doesn't notice the const on reference returns. - -struct B { - int foo() { return 1; } - int foo() const { return 0; } -}; - -B b_; -const B &b () { return b_; } - -int main() -{ - return b().foo(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload13.C b/gcc/testsuite/g++.old-deja/g++.jason/overload13.C deleted file mode 100755 index 6b5ca0f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload13.C +++ /dev/null @@ -1,27 +0,0 @@ -// Bug: g++ screws up derived->base conversions when calling a global function -// in the presence of matching members in the base. Whew. - -struct xios { - virtual ~xios() { } -}; - -struct xistream: virtual public xios { - int j; - void operator>>(char&); -}; - -struct xfstreambase: virtual public xios { }; - -struct xifstream: public xfstreambase, public xistream { }; - -void operator>>(xistream& i, int j) -{ - i.j = 0; -} - -int main() { - int i; - xifstream ifs; - - ifs >> i; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload14.C b/gcc/testsuite/g++.old-deja/g++.jason/overload14.C deleted file mode 100755 index 6a5d3dc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload14.C +++ /dev/null @@ -1,10 +0,0 @@ -// Bug: g++ fails to recognize that the template matches the target type. -// Build don't link: - -template <class T> void foo (T *, int); - -struct A; -void bar () -{ - void (*p)(A *, int) = &foo; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload15.C b/gcc/testsuite/g++.old-deja/g++.jason/overload15.C deleted file mode 100755 index 779de72..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload15.C +++ /dev/null @@ -1,10 +0,0 @@ -// Bug: g++ thinks that int->long is a promotion. -// Build don't link: - -long f (long, long); -double f (double, double); - -void g (double d) -{ - f (d, 0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload16.C b/gcc/testsuite/g++.old-deja/g++.jason/overload16.C deleted file mode 100755 index 34237bc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload16.C +++ /dev/null @@ -1,6 +0,0 @@ -void f (int); // ERROR - -void f (long); // ERROR - -int main() -{ - f (1 & 0xffffff00UL); // ERROR - ambiguous -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload17.C b/gcc/testsuite/g++.old-deja/g++.jason/overload17.C deleted file mode 100755 index 6573848..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload17.C +++ /dev/null @@ -1,20 +0,0 @@ -// Bug: g++ fails to prefer UDC's alone to UDC's plus standard conversions. -// Build don't link: - -struct B { }; -struct D: public B { }; -struct DP { - operator D * () const; - operator double () const; -}; - -void f (B *); -void f (D *); -void g (double); -void g (float); - -void h (DP p) -{ - f (p); - g (p); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload18.C b/gcc/testsuite/g++.old-deja/g++.jason/overload18.C deleted file mode 100755 index d4d9ec1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload18.C +++ /dev/null @@ -1,6 +0,0 @@ -// pushdecl gets confused by this. -// Build don't link: - -void f (); -void f (int, int); -template <class T> T f (T) { } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload19.C b/gcc/testsuite/g++.old-deja/g++.jason/overload19.C deleted file mode 100755 index ad58175..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload19.C +++ /dev/null @@ -1,11 +0,0 @@ -// PRMS Id: 4689 -// Bug: g++ doesn't notice operators overloaded on enumeral types. - -enum E { A=5, B=32, C=100 }; - -E operator|(E a, E b) { return C; }; - -int main() -{ - return (A|B) != C; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload2.C b/gcc/testsuite/g++.old-deja/g++.jason/overload2.C deleted file mode 100755 index 5641942..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload2.C +++ /dev/null @@ -1,12 +0,0 @@ -// Bug: foo and bar are considered to be overloaded (i.e. their -// IDENTIFIER_GLOBAL_VALUES are TREE_LISTs) even though they aren't, -// so ?: thinks it can't resolve the names. -// Build don't link: - -void foo (); -void bar (); - -void baz () -{ - void (*p)() = 1 ? foo : bar; // gets bogus error - wrongful overloading -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload20.C b/gcc/testsuite/g++.old-deja/g++.jason/overload20.C deleted file mode 100755 index 998f6a7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload20.C +++ /dev/null @@ -1,11 +0,0 @@ -// Bug: this code causes an internal compiler error 4. - -void f (char *); -void f (int); -struct A { - void f (); // ERROR - candidate - void f (int); // ERROR - candidate - void g () { - void (*p)(char *) = f; // ERROR - no matching function in scope - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload21.C b/gcc/testsuite/g++.old-deja/g++.jason/overload21.C deleted file mode 100755 index dc2f69e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload21.C +++ /dev/null @@ -1,12 +0,0 @@ -struct X { - void f (int = 4, char = 'r'); // ERROR - - void g (int = 4, char = 'r'); // ERROR - -}; - -void -X::f (int i = 4, char x = 'r') -{ } // ERROR - duplicate default args - -void -X::g (int i = 9, char x = 's') -{ } // ERROR - duplicate default args diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload22.C b/gcc/testsuite/g++.old-deja/g++.jason/overload22.C deleted file mode 100755 index fd7276a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload22.C +++ /dev/null @@ -1,17 +0,0 @@ -// PRMS Id: 4574 -// Bug: g++ prefers int to double for float& argument -// Build don't link: - -inline double abs (double x) { return x;} -inline int abs (int i) { return i; } - -float& fn(float& f) -{ - return f; -} - -void foo() -{ - float f = 23.45; - abs(fn(f)); // gets bogus warning -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload23.C b/gcc/testsuite/g++.old-deja/g++.jason/overload23.C deleted file mode 100755 index 21cda3a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload23.C +++ /dev/null @@ -1,27 +0,0 @@ -// From: panisset@cae.ca (Jean-Francois Panisset) -// Date: Mon, 6 Jun 94 13:39:25 EDT -// Subject: Problem with operator overloading - -// Build don't link: - -class ostream { -public: - ostream& operator<<(double n); - ostream& operator<<(float n); -}; - -class X -{ -public: - operator long() const; - operator double() const; -}; -ostream& operator<< (ostream& os, const X& x); - - -int main() -{ - X x; - ostream os; - os << x; // gets bogus error - converting to float -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload24.C b/gcc/testsuite/g++.old-deja/g++.jason/overload24.C deleted file mode 100755 index 0a12b00..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload24.C +++ /dev/null @@ -1,23 +0,0 @@ -// PRMS Id: 5124 -// Bug: g++ promotes bar to int* too soon and the call to f fails. -// Build don't link: - -typedef int arr[1]; - -struct A { - void f(void); - void f(arr &); - - void g(void); - void g(int *); - - void h(void); -}; - - -void A::h(void) -{ - arr bar; - f(bar); - g(bar); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload26.C b/gcc/testsuite/g++.old-deja/g++.jason/overload26.C deleted file mode 100755 index 0c15668..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload26.C +++ /dev/null @@ -1,22 +0,0 @@ -// Bug: g++ tries to build up a mangled name for its ideal match, which -// fails for one call below. -// Build don't link: - -extern const char foo[]; -extern const char baz[10]; -extern const char *fred; - -struct A { - void f(const char *); -} *a; - -void bing(const char *); -int main () -{ - a->f(foo); // gets bogus error because foo's size unknown. - a->f(baz); - a->f(fred); - bing(fred); - bing(foo); - bing(baz); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload27.C b/gcc/testsuite/g++.old-deja/g++.jason/overload27.C deleted file mode 100755 index 123018d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload27.C +++ /dev/null @@ -1,7 +0,0 @@ -void f(const int &) { } -void f(const float &); - -int main() -{ - f(false); // gets bogus error -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload28.C b/gcc/testsuite/g++.old-deja/g++.jason/overload28.C deleted file mode 100755 index 265c523..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload28.C +++ /dev/null @@ -1,11 +0,0 @@ -// PRMS Id: 6056 - -struct Foo { - Foo() { } // ERROR - candidate - Foo(int i = 25) { } // ERROR - candidate -}; - -int main() -{ - Foo* f1 = new Foo(); // ERROR - ambiguous -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload29.C b/gcc/testsuite/g++.old-deja/g++.jason/overload29.C deleted file mode 100755 index ecd4359..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload29.C +++ /dev/null @@ -1,16 +0,0 @@ -// Bug: we get an error trying to build up our ideal candidate. -// Build don't link: - -class C { - public: - C( const char * ); -}; - - extern const char c1[]; - -void f2( const char * ); - -void f1() { - C *fntp = new C(c1); // Line 10 - f2( c1 ); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload3.C b/gcc/testsuite/g++.old-deja/g++.jason/overload3.C deleted file mode 100755 index 63b175e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload3.C +++ /dev/null @@ -1,12 +0,0 @@ -// Bug: bar is considered to be overloaded (i.e. its -// IDENTIFIER_GLOBAL_VALUES are TREE_LISTs) even though it isn't, -// so default_conversion thinks it can't resolve the name. -// Build don't link: - -void foo (); -void bar (); - -void baz () -{ - void (*p)() = 1 ? (void (*)()) &foo : bar; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload30.C b/gcc/testsuite/g++.old-deja/g++.jason/overload30.C deleted file mode 100755 index 24485c5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload30.C +++ /dev/null @@ -1,17 +0,0 @@ -// PRMS Id: 6412 -// Build don't link: - -class Foo; - -template <class F> -class Temp -{ - F func_; -public: - Temp (F f) : func_(f) {} -}; - -template <class T> -T* func1 (T* t) { return t; } - -Temp<Foo*(*)(Foo*)> temp2(func1); diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload31.C b/gcc/testsuite/g++.old-deja/g++.jason/overload31.C deleted file mode 100755 index e45d802..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload31.C +++ /dev/null @@ -1,24 +0,0 @@ -// PRMS Id: 6568 -// Bug: g++ complains about the ambiguous conversion to bool even though -// we wouldn't end up using it anyway. -// Build don't link: - -class AString -{ -public: - AString (unsigned len); - operator char *() const; - operator char const *() const; -}; - -void -foo(unsigned t, AString const & handle) -{ -} - -void -foo(AString const & handle, bool includeSpecials) -{ - unsigned t; - foo(t, handle); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload32.C b/gcc/testsuite/g++.old-deja/g++.jason/overload32.C deleted file mode 100755 index 95f251d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload32.C +++ /dev/null @@ -1,19 +0,0 @@ -// PRMS Id: 7128 -// Build don't link: - -class B {}; - -class D : public B {}; - -class X { - public: - operator const B & () const; - operator const D & () const; -}; - -void f( const D & ); - -void g( const X & x ) -{ - f( x ); -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload33.C b/gcc/testsuite/g++.old-deja/g++.jason/overload33.C deleted file mode 100755 index 8b5bb4a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload33.C +++ /dev/null @@ -1,78 +0,0 @@ -// PRMS ID: 7507 -// Build don't link: - -/* ------------------------------------------------------------ */ - -class Base0 -{ -public: - Base0() {} - virtual ~Base0() {} -}; - -class Base1 -{ -public: - Base1() {} - virtual ~Base1() {} -}; - -class Derived : public Base0, public Base1 -{ -public: - Derived() {} - virtual ~Derived() {} -}; - -/* ------------------------------------------------------------ */ - -class Dummy -{ - public: - Dummy(Base0 * theBase) {} - ~Dummy() {} -}; - -/* ------------------------------------------------------------ */ - -template<class T> -class ConstSmartPtr -{ - T* myItem; // private - - public: - ConstSmartPtr(T const* theItem); - - operator T const*() const - { return myItem; } - protected: - T* _item() const - { return myItem; } -}; - -template<class T> -class SmartPtr : public ConstSmartPtr<T> -{ - public: - SmartPtr(T* theItem) - : ConstSmartPtr<T>(theItem) {} - - T* item() const - { return _item(); } - - operator T*() const - { return _item(); } -}; - -/* ------------------------------------------------------------ */ - -void -function() -{ - SmartPtr<Derived> myObj = new Derived(); - - Dummy th1(myObj); // Doesn't work under Cygnus - Dummy th2((Base0 *) myObj); // Doesn't work either -} - -/* ------------------------------------------------------------ */ diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload34.C b/gcc/testsuite/g++.old-deja/g++.jason/overload34.C deleted file mode 100755 index 871c35a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload34.C +++ /dev/null @@ -1,8 +0,0 @@ -// PRMS ID: 8010 -// Build don't link: - -class X { - int & flag; -public: - void f(){ flag++ ; } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload35.C b/gcc/testsuite/g++.old-deja/g++.jason/overload35.C deleted file mode 100755 index bb6e436..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload35.C +++ /dev/null @@ -1,25 +0,0 @@ -// PRMS Id: 9647 -// Build don't link: - -class castBug -{ -public: - operator int *(); - operator const int *() const; -}; - -class castBug2 -{ -public: - operator const int *() const; -}; - -void voidfn(void *); - -void test() -{ - castBug b; - castBug2 b2; - voidfn(b); // gets bogus error - voidfn(b2); // ERROR - discarding const -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload36.C b/gcc/testsuite/g++.old-deja/g++.jason/overload36.C deleted file mode 100755 index f5e6fb6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload36.C +++ /dev/null @@ -1,15 +0,0 @@ -// Test for subsequence checking in overload resolution. - -class foo { -public: - void operator <<(char *) { } - void operator <<(const char * const &); -}; - -int -main() -{ - char s[20]; - foo f; - f << s; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload4.C b/gcc/testsuite/g++.old-deja/g++.jason/overload4.C deleted file mode 100755 index 1da0ff0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload4.C +++ /dev/null @@ -1,11 +0,0 @@ -// Testcase for simple overloading resolution. -// Build don't link: - -void foo (int); -void foo (int, int); - -void bar () -{ - foo (1); - foo (1, 2); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload5.C b/gcc/testsuite/g++.old-deja/g++.jason/overload5.C deleted file mode 100755 index 8702bbb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload5.C +++ /dev/null @@ -1,4 +0,0 @@ -// Testcase for simple overloading resolution. - -int foo (); // ERROR - -void foo (); // ERROR - disallowed overload diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload6.C b/gcc/testsuite/g++.old-deja/g++.jason/overload6.C deleted file mode 100755 index 3ae9642..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload6.C +++ /dev/null @@ -1,15 +0,0 @@ -// Bug: g++ thinks there is a default conversion from void* to B*. -// There isn't. -// Build don't link: - -struct A { - operator void* (); -}; - -struct B { }; - -void foo (B* bp); - -void bar (A& a) { - foo (a); // ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload7.C b/gcc/testsuite/g++.old-deja/g++.jason/overload7.C deleted file mode 100755 index 3611505..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload7.C +++ /dev/null @@ -1,15 +0,0 @@ -// Bug: g++ thinks there is a default conversion from A& to B*. -// There isn't. -// Build don't link: - -struct A { - operator A* (); -}; - -struct B: public A { }; - -void foo (B* bp); - -void bar (A& a) { - foo (a); // ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload8.C b/gcc/testsuite/g++.old-deja/g++.jason/overload8.C deleted file mode 100755 index 9b605f8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload8.C +++ /dev/null @@ -1,7 +0,0 @@ -// Bug: g++ fails to catch the ambiguity below. -// Build don't link: - -struct A { - operator int () { return 1; }; - operator int &() { return 1; }; // ERROR - -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/overload9.C b/gcc/testsuite/g++.old-deja/g++.jason/overload9.C deleted file mode 100755 index 5b832fb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/overload9.C +++ /dev/null @@ -1,39 +0,0 @@ -// PRMS Id: 4257 -// Bug: g++ ignores non-member possibilities (ideal_candidate_ansi bug) -// Build don't link: - -class ostream -{ -public: -#ifdef EITHER_ONE_A - ostream& operator<<(unsigned long n); - ostream& operator<<(long n); -#else - ostream& operator<<(short n); - ostream& operator<<(unsigned short n); -#endif -}; - -class ccObjectInfo {}; - -ostream& operator << (ostream& out, const ccObjectInfo& obj); - -class ccString : public ccObjectInfo -{ -#ifdef EITHER_ONE_B - operator int () const; -#else - operator long () const; -#endif -}; - -// Should pick this one!! -ostream& operator << (ostream& o, const ccString & s); - -extern ostream cout; - -void f () -{ - ccString foo; - cout << foo; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/parse1.C b/gcc/testsuite/g++.old-deja/g++.jason/parse1.C deleted file mode 100755 index a5ba83c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/parse1.C +++ /dev/null @@ -1,8 +0,0 @@ -// Bug: g++ parses the declaration of r as a function declaration. -// Build don't link: - -void foo (int i) -{ - int &r (i); - r = 1; // gets bogus error - -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/parse10.C b/gcc/testsuite/g++.old-deja/g++.jason/parse10.C deleted file mode 100755 index b676336..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/parse10.C +++ /dev/null @@ -1,15 +0,0 @@ -// Testcase for precedence of ?: wrt = - -extern "C" int printf (const char *, ...); - -int main() -{ - int j = 0, k = 0; - 1 ? j : k = 5; // should be parsed 1 ? j : (k = 5) - (void) (1 ? k = 5 : 0); - k = 5 ? 1 : 0; // should be parsed k = (5 ? 1 : 0) - - printf ("%d %d\n", j, k); - - return j == 5 || k == 5; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/parse11.C b/gcc/testsuite/g++.old-deja/g++.jason/parse11.C deleted file mode 100755 index e9f285c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/parse11.C +++ /dev/null @@ -1,9 +0,0 @@ -// PRMS Id: 6825 -// Build don't link: - -class aClass -{ - ; -private: - ; // This line causes problems -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/parse12.C b/gcc/testsuite/g++.old-deja/g++.jason/parse12.C deleted file mode 100755 index eb71775..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/parse12.C +++ /dev/null @@ -1,17 +0,0 @@ -// PRMS Id: 6821 - -struct A { - int operator()(int i) { return i; } -}; - -struct B { - A* p; - int f () { return (*p)(42); } // gets bogus error -}; - -int main () -{ - B b = { new A }; - - return b.f () != 42; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/parse13.C b/gcc/testsuite/g++.old-deja/g++.jason/parse13.C deleted file mode 100755 index 0ffef98..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/parse13.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: - -struct A { - struct B {}; - struct C; -}; - -struct A :: C : A :: B {}; // gets bogus error - parse error before `:' diff --git a/gcc/testsuite/g++.old-deja/g++.jason/parse14.C b/gcc/testsuite/g++.old-deja/g++.jason/parse14.C deleted file mode 100755 index 20fcc47..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/parse14.C +++ /dev/null @@ -1,12 +0,0 @@ -// Bug: g++ decides that A::foo is introducing a constructor declarator. -// Build don't link: - -struct A { - typedef bool foo; -}; - -A::foo (*bar) (); - -struct B { - A::foo (*bar) (); -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/parse2.C b/gcc/testsuite/g++.old-deja/g++.jason/parse2.C deleted file mode 100755 index 71be1f4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/parse2.C +++ /dev/null @@ -1,6 +0,0 @@ -// Bug: g++ doesn't understand constructor syntax for pointers. -// Build don't link: - -void f () { - char * p (0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/parse3.C b/gcc/testsuite/g++.old-deja/g++.jason/parse3.C deleted file mode 100755 index 16f99aa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/parse3.C +++ /dev/null @@ -1,6 +0,0 @@ -// PRMS Id: 4484 (bug 2) -// Bug: g++ does not grok abstract declarator syntax for method pointers. -// Build don't link: - -template <class T> class A { }; -void (A<int>::*p)() = (void (A<int>::*)())0; // gets bogus error - abstract declarator failure diff --git a/gcc/testsuite/g++.old-deja/g++.jason/parse4.C b/gcc/testsuite/g++.old-deja/g++.jason/parse4.C deleted file mode 100755 index 95e0f44..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/parse4.C +++ /dev/null @@ -1,7 +0,0 @@ -// Bug: g++ doesn't handle superfluous parentheses when redeclaring a TYPENAME. -// Build don't link: - -typedef int foo; -class A { - typedef int ((foo)); // gets bogus error - -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/parse5.C b/gcc/testsuite/g++.old-deja/g++.jason/parse5.C deleted file mode 100755 index 519deb2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/parse5.C +++ /dev/null @@ -1,12 +0,0 @@ -// Bug: foo (bar) should be a declaration of a static data member, not a -// function; it's getting caught by the rules for constructors. -// Build don't link: - -typedef int foo; -typedef int bar; -struct A { - static foo (bar); // gets bogus error -}; - -int i = A::bar; // gets bogus error -int (*fp)(bar) = A::foo; // ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.jason/parse6.C b/gcc/testsuite/g++.old-deja/g++.jason/parse6.C deleted file mode 100755 index 677dbe2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/parse6.C +++ /dev/null @@ -1,9 +0,0 @@ -// PRMS id: 4653 -// Bug: g++ tries to resolve declarator/expression ambiguities too soon. -// Build don't link: - -template<class T> struct A { }; - -void f () { - void (A<int>::*pmf) (); // gets bogus error - late binding -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/parse7.C b/gcc/testsuite/g++.old-deja/g++.jason/parse7.C deleted file mode 100755 index bd9744c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/parse7.C +++ /dev/null @@ -1,7 +0,0 @@ -// Bug: g++ tries to parse this as a constructor. -// Build don't link: - -typedef int foo; -struct A { - foo (*bar)(); -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/parse8.C b/gcc/testsuite/g++.old-deja/g++.jason/parse8.C deleted file mode 100755 index 1ed9de7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/parse8.C +++ /dev/null @@ -1,2 +0,0 @@ -// Build don't link: -void foo(const int* const); // gets bogus error diff --git a/gcc/testsuite/g++.old-deja/g++.jason/parse9.C b/gcc/testsuite/g++.old-deja/g++.jason/parse9.C deleted file mode 100755 index da66fea..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/parse9.C +++ /dev/null @@ -1,18 +0,0 @@ -// PRMS Id: 5720 -// Bug: the extra set of parens confuses the expr/declarator disambiguation. - -class Fu -{ - int val; -public: - Fu(int i) : val(i) { }; - void print() { } -}; - -int main(int argc, char * argv[]) -{ - int * i = &argc; - - Fu((*i)).print(); // gets bogus error - Fu((*j)); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/pmem.C b/gcc/testsuite/g++.old-deja/g++.jason/pmem.C deleted file mode 100755 index 76e8732..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/pmem.C +++ /dev/null @@ -1,11 +0,0 @@ -// Bug: g++ parses the declaration of 'char A::* foo' below as a -// declaration of 'char A'. -// Build don't link: - -class A { }; -typedef int foo; -void f () -{ - char A::* foo; - foo = 0; // gets bogus error - parsing blunder -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/pmem2.C b/gcc/testsuite/g++.old-deja/g++.jason/pmem2.C deleted file mode 100755 index 99adf1c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/pmem2.C +++ /dev/null @@ -1,43 +0,0 @@ -template <class Called> -class aCallback -{ -public: - aCallback(Called& obj, int (Called::*met)()); - - int callback(); - -protected: - -private: - Called& object; - - int (Called::*method)(); - -}; - -template <class Called> -aCallback<Called>::aCallback(Called& obj, - int (Called::*met)()) : -object(obj), -method(met) -{}; - -template <class Called> -int aCallback<Called>::callback() -{ - return (object.*method)(); -} - -struct myStruct -{ - int action() {return 0;}; -}; - -int main() -{ - myStruct toto; - - aCallback<myStruct> cb(toto, &myStruct::action); - - return cb.callback(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/pmem3.C b/gcc/testsuite/g++.old-deja/g++.jason/pmem3.C deleted file mode 100755 index a780c23..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/pmem3.C +++ /dev/null @@ -1,11 +0,0 @@ -// Test that comparison of pointers to members does not complain about -// contravariance violation. - -struct A { int i; }; -struct B : public A { int j; int f (); }; -int main () -{ - int A::*apm = &A::i; - int B::*bpm = apm; - return apm != bpm; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/pmem4.C b/gcc/testsuite/g++.old-deja/g++.jason/pmem4.C deleted file mode 100755 index 3ce2bb9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/pmem4.C +++ /dev/null @@ -1,10 +0,0 @@ -struct X {}; -X& X::*PTM_1; // ERROR - pointer to reference member -void X::*PTM_2; // ERROR - pointer to void member - -struct A { - static int& ir; -}; - -int i; -int& A::ir = i; // not an error diff --git a/gcc/testsuite/g++.old-deja/g++.jason/pmf.C b/gcc/testsuite/g++.old-deja/g++.jason/pmf.C deleted file mode 100755 index 6773639..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/pmf.C +++ /dev/null @@ -1,7 +0,0 @@ -// PRMS Id: 4333 -// Bug: g++ can't deal with casts to pointer to member function. -// Build don't link: - -class A { }; -typedef void (A::* pmf)(); -void foo () { (pmf) 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/pmf2.C b/gcc/testsuite/g++.old-deja/g++.jason/pmf2.C deleted file mode 100755 index 7ebb23b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/pmf2.C +++ /dev/null @@ -1,13 +0,0 @@ -// PRMS Id: 4484 (bug 3) -// Bug: g++ does implicitly take the address of methods passed to fns. -// Build don't link: - -struct A { - void f (); -}; - -void g (void (A::*)()); - -void h () { - g (A::f); // ERROR - failed conversion to method pointer -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/pmf3.C b/gcc/testsuite/g++.old-deja/g++.jason/pmf3.C deleted file mode 100755 index 4d4d6ef..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/pmf3.C +++ /dev/null @@ -1,19 +0,0 @@ -// From: enewton@uunet.uu.NET -// Subject: g++ 2.5.8: cannot cast member function pointers -// Date: 27 Jan 1994 01:22:56 -0500 -// Build don't link: - -struct A { - void f(char); - void g(int); -}; - -typedef void (A::*Ptr)(char); - -void q() { - Ptr p; - - p = (Ptr) &A::f; - p = (Ptr) &A::g; - p = &A::f; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/pmf4.C b/gcc/testsuite/g++.old-deja/g++.jason/pmf4.C deleted file mode 100755 index a0af9f4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/pmf4.C +++ /dev/null @@ -1,9 +0,0 @@ -// PRMS Id: 4484 (bug 5) -// Bug: g++ can't convert between pmf types. -// Build don't link: - -class A; -typedef void (A::*pmf)(); -typedef void (A::*pmfc)() const; - -pmfc p = (pmfc)(pmf)0; // gets bogus error - pmf conversion diff --git a/gcc/testsuite/g++.old-deja/g++.jason/pmf5.C b/gcc/testsuite/g++.old-deja/g++.jason/pmf5.C deleted file mode 100755 index c27bec1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/pmf5.C +++ /dev/null @@ -1,18 +0,0 @@ -// PRMS Id: 4985 -// Build don't link: -// Special g++ Options: - -struct Thing { - int OverloadFn() const; - void FunctionA(char* restOfLine); - void OverloadFn(char* restOfLine); -}; - -struct ThingEntry { - void (Thing::*_handler)(char* restOfLine); -}; - -static ThingEntry KeyWordTable[] = { - &Thing::FunctionA, - Thing::OverloadFn, -}; // WARNING - implicit & diff --git a/gcc/testsuite/g++.old-deja/g++.jason/pmf6.C b/gcc/testsuite/g++.old-deja/g++.jason/pmf6.C deleted file mode 100755 index 08e425b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/pmf6.C +++ /dev/null @@ -1,11 +0,0 @@ -// PRMS Id: 5656 -// Bug: g++ tries (which is a bug) and fails (which is a bug) to initialize -// var at runtime. -// Build don't link: - -struct A -{ - int func(int); - int func() const; -}; -int (A::* var) () const = & A::func; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/pmf7.C b/gcc/testsuite/g++.old-deja/g++.jason/pmf7.C deleted file mode 100755 index 8ef92fb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/pmf7.C +++ /dev/null @@ -1,27 +0,0 @@ -// PRMS Id: 6486 -// Make sure that no confused handling of COND_EXPRs and SAVE_EXPRs messes -// with the number of calls to foo. - -int c; - -struct A { - void f () {} - virtual void g () {} -}; - -A& foo () -{ - static A a; - ++c; - return a; -} - -int main () -{ - void (A::*p)() = &A::f; - (foo ().*p)(); - p = &A::g; - (foo ().*p)(); - - return 2 - c; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/pmf8.C b/gcc/testsuite/g++.old-deja/g++.jason/pmf8.C deleted file mode 100755 index 7fccb31..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/pmf8.C +++ /dev/null @@ -1,29 +0,0 @@ -// PRMS Id: 6905 - -class Parent { -public: - void DoSomething() { return; }; - int i; -}; - -class Child : public Parent { -public: -}; - -class User { -public: - void DoAnyThing(void (Parent::*)(void)) { return; } - void DoAThing(void (Child::*)(void)) { return; } - void DoAThing(int Child::*) { return; } -}; - - -int main() -{ - User a; - - a.DoAnyThing(&Child::DoSomething); - a.DoAThing(&Child::DoSomething); - a.DoAThing(&Parent::DoSomething); - a.DoAThing(&Parent::i); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/pmf9.C b/gcc/testsuite/g++.old-deja/g++.jason/pmf9.C deleted file mode 100755 index 335cfcc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/pmf9.C +++ /dev/null @@ -1,57 +0,0 @@ -// PRMS id: g++/13340 -// Build don't link: - -class rectangle { - -public: - rectangle(); - int overlaps() const; - -}; - -class region -{ - friend class region_impl; - -public: - region(); - typedef int (region::* region_func)() const; - -}; - -class region_impl { - friend class region; - -private: - rectangle content, mbb; - region_impl *link_p; - region_impl(const rectangle &content); - -public: - int iterate(region *region_p, region::region_func what, - const rectangle &clip_rect) const; - int iterate(region *region_p, region::region_func what, - const region_impl &clip_rgn) const; -}; - - -int -region_impl::iterate (region *region_p, region::region_func what, - const rectangle &clip_rect) const -{ - for (const region_impl *p = this; p != 0 && p->mbb.overlaps(); - p = p->link_p) - if (p->content.overlaps()) - if (!(region_p->*what)()) return 0; - return 1; -} - -int -region_impl::iterate (region *region_p, region::region_func what, - const region_impl &clip_rgn) const -{ - for (const region_impl *p = this; p != 0 && p->mbb.overlaps(); - p = p->link_p) - if (!clip_rgn.iterate(region_p, what, p->content)) return 0; - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/pmftemp.C b/gcc/testsuite/g++.old-deja/g++.jason/pmftemp.C deleted file mode 100755 index 87d2ed1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/pmftemp.C +++ /dev/null @@ -1,16 +0,0 @@ -// PRMS Id: 4484 (bug 1) -// Bug: g++ does not support templates involving method pointers. -// Build don't link: - -struct A { - void f (); -}; - -template <class T> void -f (void (T::*p)()) // gets bogus error - use of template parm as aggregate -{ } - -void g () -{ - f (&A::f); // gets bogus error - templates and method pointers -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/precedence.C b/gcc/testsuite/g++.old-deja/g++.jason/precedence.C deleted file mode 100755 index af2dcde..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/precedence.C +++ /dev/null @@ -1,14 +0,0 @@ -// Bug: g++ groups ->* before casts. -// PRMS Id: 4484 (bug 4) -// Build don't link: - -struct A { }; -struct B : public A { void f (); }; - -void g () -{ - A* ap = new B; - void (B::*p)() = &B::f; - - ((B*)ap->*p)(); // gets bogus error - incorrect precedence -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/redecl1.C b/gcc/testsuite/g++.old-deja/g++.jason/redecl1.C deleted file mode 100755 index fecace3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/redecl1.C +++ /dev/null @@ -1,12 +0,0 @@ -class A -{ -public: - A (const A& ccref); - friend A const re (const A& v1); // ERROR - -}; - -A // const -re (const A& ref) -{ // ERROR - mismatched decls - return A (ref); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/ref1.C b/gcc/testsuite/g++.old-deja/g++.jason/ref1.C deleted file mode 100755 index 590ddf5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/ref1.C +++ /dev/null @@ -1,8 +0,0 @@ -// Bug: g++ tries to call a constructor for a reference. Doh! -// Build don't link: - -class B; -struct A { - B & b; - A (B & x) : b (x) { } // gets bogus error - -}; // gets bogus error - diff --git a/gcc/testsuite/g++.old-deja/g++.jason/ref10.C b/gcc/testsuite/g++.old-deja/g++.jason/ref10.C deleted file mode 100755 index 876ca45..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/ref10.C +++ /dev/null @@ -1,31 +0,0 @@ -// Test that conversion from D* to B*& works properly. - -extern "C" int printf (const char *, ...); - -struct V { - int a; -}; - -struct B: virtual V { - int b; -}; - -struct D: B { - int c; -}; - -V* gp = 0; - -void foo(V * const &r) { - gp = r; -} - -int bar(V *r) { - return (r != gp); -} - -int main() { - D *p = new D; - foo(p); - return bar(p); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/ref11.C b/gcc/testsuite/g++.old-deja/g++.jason/ref11.C deleted file mode 100755 index b8c6f31..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/ref11.C +++ /dev/null @@ -1,17 +0,0 @@ -int main(int argc, char ** argv) { - - int (&var_field_ref)[] = * (int (*)[]) new int [42]; - int (&fix_field_ref)[1] = * (int (*)[1]) new int [42]; - - int static_field[42]; - - int *const &var_field_ptr_ref = var_field_ref; // gets bogus error - int *const &fix_field_ptr_ref = fix_field_ref; - int *const &static_field_ptr_ref = static_field; - - int * var_field_ptr = var_field_ref; // gets bogus error - int * fix_field_ptr = fix_field_ref; - int * static_field_ptr = static_field; - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/ref12.C b/gcc/testsuite/g++.old-deja/g++.jason/ref12.C deleted file mode 100755 index 30e9633..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/ref12.C +++ /dev/null @@ -1,5 +0,0 @@ -void f (char *const &) { } -int main () -{ - f ("hi"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/ref2.C b/gcc/testsuite/g++.old-deja/g++.jason/ref2.C deleted file mode 100755 index fe97990..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/ref2.C +++ /dev/null @@ -1,6 +0,0 @@ -// Bug: g++ can't deal with references to arrays. -// Build don't link: - -typedef float Matrix[4][4]; -Matrix m; -Matrix& f () { return m; } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/ref3.C b/gcc/testsuite/g++.old-deja/g++.jason/ref3.C deleted file mode 100755 index 2bdd023..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/ref3.C +++ /dev/null @@ -1,7 +0,0 @@ -// PRMS Id: ???? -// Build don't link: - -void f (const int& i) -{ - &(int&)i; // gets bogus error - references ARE lvalues -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/ref4.C b/gcc/testsuite/g++.old-deja/g++.jason/ref4.C deleted file mode 100755 index 5c62d6a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/ref4.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: - -void f (); -void (&fr)() = f; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/ref5.C b/gcc/testsuite/g++.old-deja/g++.jason/ref5.C deleted file mode 100755 index 0789522..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/ref5.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -int i; -int &const j = i; // ERROR - invalid const -int &const f(); // ERROR - invalid const -void g () -{ - j = 1; - f() = 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/ref6.C b/gcc/testsuite/g++.old-deja/g++.jason/ref6.C deleted file mode 100755 index afebb6b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/ref6.C +++ /dev/null @@ -1,2 +0,0 @@ -const int &f(); -int &a = f(); // ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.jason/ref7.C b/gcc/testsuite/g++.old-deja/g++.jason/ref7.C deleted file mode 100755 index af64d6a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/ref7.C +++ /dev/null @@ -1,21 +0,0 @@ -// Testcase for the lifetime of a temporary object which is used to -// initialize a reference. - -int destroyed = 0; - -struct A { - A() { } - A(int) { } - ~A() { destroyed++; } -}; - -A a; -A foo () { return a; } - -int main() -{ - const A& ar = foo(); - const A& ar2 = A(); - const A& ar3 = (A)1; - return destroyed; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/ref8.C b/gcc/testsuite/g++.old-deja/g++.jason/ref8.C deleted file mode 100755 index 10e335e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/ref8.C +++ /dev/null @@ -1,17 +0,0 @@ -// PRMS Id: 5184 -// Bug: cast to C& below does not adjust address - -struct A {}; -struct B { - virtual void foo () {}; -}; -struct C : public B, public A {}; - -int main() { - C c; - - A& ar = c; - C& cr = (C&)ar; - - cr.foo(); // this line causes core dump -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/ref9.C b/gcc/testsuite/g++.old-deja/g++.jason/ref9.C deleted file mode 100755 index 099d342..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/ref9.C +++ /dev/null @@ -1,25 +0,0 @@ -// Bug: g++ re-evaluates the initializer for r before calling f(); since i has -// changed to an invalid index, this breaks. - -class C -{ -public: - void f () { } -}; - -void foo (C * objs[]) -{ - int i = 0; - C & r = * objs[i]; /* make reference to element */ - - i = 666; - r.f (); /* core dumps here */ -} - -int -main () -{ - C * objs[1] = { new C }; - - foo (objs); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/report.C b/gcc/testsuite/g++.old-deja/g++.jason/report.C deleted file mode 100755 index d3d3392..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/report.C +++ /dev/null @@ -1,68 +0,0 @@ -// Build don't link: -// GROUPS passed error-reporting -template <char C> -class badoo -{ -}; - -template <int (*F) (int)> -class doowop -{ -}; - -struct A -{ - int a; - ~A () { a = 0; } - operator int () { return a; } -}; - -extern "C" int atoi (char *); - -int (*fee)(char *) = atoi; -int (**bar)(char *) = &fee; - -char *s = "4"; -char **sp = &s; -char ***spp = &sp; - -int foo (int a = (**bar) (s)) -{ - return doowop<foo>::bar; // ERROR - not a member -} // ERROR - non-void - -int foo2 (int (*a)(int) = &foo) -{ - undef4 (1); // ERROR - implicit declaration - return 1; -} - -class X{ - class Y{}; -}; - -typedef int const * bart (); -typedef bart const * const * bar2; - -bar2 baz (X::Y y) -{ - X::Y f; - bar2 wa [5]; - wa[0] = baz(f); - undef2 (1); // ERROR - implicit declaration -} // ERROR - non-void - -int ninny () -{ - struct A - { - static int ninny2 () { return badoo<'\001'>::foo; } // ERROR - not a member - }; - - return A::ninny2(); -} - -int darg (char X::*p) -{ - undef3 (1); // ERROR - implicit declaration -} // ERROR - non-void diff --git a/gcc/testsuite/g++.old-deja/g++.jason/return.C b/gcc/testsuite/g++.old-deja/g++.jason/return.C deleted file mode 100755 index c737a3e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/return.C +++ /dev/null @@ -1,21 +0,0 @@ -// PRMS Id: 5331 -// Bug: the return value of foo is constructed in a temporary and then -// copied into the return slot. This is not necessary. - -int c = 0; - -struct X { - X(int i) { } - X(X const &XX) { c = 1; } - ~X() { } -}; - -const X foo() { - return X(3); -}; - -int main() -{ - foo(); - return c; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/return2.C b/gcc/testsuite/g++.old-deja/g++.jason/return2.C deleted file mode 100755 index 2723909..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/return2.C +++ /dev/null @@ -1,23 +0,0 @@ -// PRMS Id: 5368 -// Bug: the X temporary in foo() is not destroyed. - -int c = 0; - -struct X { - X (int) { c++; } - ~X() { c--; } -}; - -struct Y { - Y(const X &) { } -}; - -Y foo() { - return X(3); -}; - -int main() -{ - foo(); - return c; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/return3.C b/gcc/testsuite/g++.old-deja/g++.jason/return3.C deleted file mode 100755 index ac52bc3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/return3.C +++ /dev/null @@ -1,19 +0,0 @@ -// PRMS id: 10912 - -struct A { - A() { i=10; }; - int i; -}; -struct B : public A {}; -B b; - -A f() -{ - return b; -} - -int main () -{ - A a = f (); - return a.i != 10; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg1.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg1.C deleted file mode 100755 index a9b581f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg1.C +++ /dev/null @@ -1,13 +0,0 @@ -// Bug: g++ parses the declaration of i as a functional cast. -// Build don't link: - -void take_int (int arg) { } - -void -test () -{ - int (i); - - i = 0; - take_int (i); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg10.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg10.C deleted file mode 100755 index 8e7d2d1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg10.C +++ /dev/null @@ -1,9 +0,0 @@ -// Bug: g++ doesn't notice the overflow in the enum values. - -#include <limits.h> - -enum COLOR -{ - red, - green = ULONG_MAX, blue -}; // ERROR - enum overflow diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg11.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg11.C deleted file mode 100755 index 2b3e4cc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg11.C +++ /dev/null @@ -1 +0,0 @@ -typedef int int; /* ERROR - trying to redefine int */ diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg12.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg12.C deleted file mode 100755 index e33404d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg12.C +++ /dev/null @@ -1 +0,0 @@ -int array[3] = { 1, 2, 3, 4 }; /* ERROR - excess initializer elements */ diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg13.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg13.C deleted file mode 100755 index 77560b3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg13.C +++ /dev/null @@ -1,11 +0,0 @@ -// Bug: g++ does overloading on a function-by-function basis. - -void -f () -{ - void (*fp)(void); - { - extern void g (); - } - fp = g; /* ERROR - no 'g' in scope */ -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg14.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg14.C deleted file mode 100755 index 8475ecd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg14.C +++ /dev/null @@ -1,15 +0,0 @@ -void *vp; -int (*ap)[]; -struct S *sp; -union U *up; -int (*fp)(); - -void -test () -{ - vp++; /* ERROR - incrementing void * */ - ap++; /* ERROR - incrementing ptr to incomplete type */ - sp++; /* ERROR - incrementing ptr to incomplete type */ - up++; /* ERROR - incrementing ptr to incomplete type */ - fp++; /* ERROR - incrementing ptr to function */ -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg16.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg16.C deleted file mode 100755 index 75d87a5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg16.C +++ /dev/null @@ -1,5 +0,0 @@ -// Bug: g++ doesn't push parameter decls as they are parsed. -// Build don't link: - -void (*ptr) (int foo, int array[sizeof(foo)]); // gets bogus error XFAIL *-*-* -void test2 (int bar, int array[sizeof(bar)]) { } // gets bogus error XFAIL *-*-* diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg17.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg17.C deleted file mode 100755 index 8291650..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg17.C +++ /dev/null @@ -1,15 +0,0 @@ -// The default assignment operator for B uses array assignment, so we can't -// just disallow it... - -struct A { A& operator=(const A&); }; -struct B { A f[20]; }; - -int a1[20], a2[20]; -B b1, b2; - -void -test () -{ - b1 = b2; /* OK */ - a1 = a2; /* ERROR - array assignment */ -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg18.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg18.C deleted file mode 100755 index 53c3dd1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg18.C +++ /dev/null @@ -1,11 +0,0 @@ -// Any expression may be explicitly converted to type void. -// Build don't link: - -struct S { int m[10]; } object; -struct S f () { return object; } - -void -test () -{ - (void) f().m; /* OK - cast to void; see constraints in 3.8.1 */ -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg2.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg2.C deleted file mode 100755 index 9c30c36..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg2.C +++ /dev/null @@ -1,6 +0,0 @@ -// Bug: g++ complains about a class definition containing a const member -// but no constructor; it shouldn't complain at that point, since this is -// valid use. -// Build don't link: - -struct S { const int member; } object = { 0 }; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg20.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg20.C deleted file mode 100755 index 33b4858..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg20.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -typedef void func_type (); -func_type *fp; -void *vp; - -void example () -{ - vp != fp; // gets bogus error - nuttin' wrong wit dat -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg21.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg21.C deleted file mode 100755 index d6389be..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg21.C +++ /dev/null @@ -1 +0,0 @@ -char array0[4] = "abcde"; /* ERROR - initializer too long */ diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg22.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg22.C deleted file mode 100755 index 7be8ba0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg22.C +++ /dev/null @@ -1,6 +0,0 @@ -static void f (); // ERROR - used but not defined - -void g () -{ - f (); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg23.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg23.C deleted file mode 100755 index 73bcfc0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg23.C +++ /dev/null @@ -1,2 +0,0 @@ - signed char *ptr2 = "hello"; /* ERROR - changing sign */ -unsigned char *ptr3 = "hello"; /* ERROR - changing sign */ diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg24.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg24.C deleted file mode 100755 index e5987a1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg24.C +++ /dev/null @@ -1,8 +0,0 @@ -typedef int Int; - -Int Int_object_1; - -void test () -{ - ((Int) Int_object_1) = Int_object_1; /* ERROR - not an lvalue*/ -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg25.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg25.C deleted file mode 100755 index deb319d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg25.C +++ /dev/null @@ -1 +0,0 @@ -struct { int :0; }; /* ERROR - anon struct not used to declare objects */ diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg26.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg26.C deleted file mode 100755 index 1ad204e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg26.C +++ /dev/null @@ -1,9 +0,0 @@ -typedef void (FTYPE) (); - -FTYPE f; /* ok */ - -void -test_0 () -{ - (FTYPE) f; /* ERROR - casting to function type */ -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg27.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg27.C deleted file mode 100755 index 8fb85e8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg27.C +++ /dev/null @@ -1,4 +0,0 @@ -short volatile short var_0_2; /* ERROR - duplicate short */ -long volatile long var_0_3; /* ERROR - duplicate long */ -signed volatile signed var_0_7; /* ERROR - duplicate signed */ -unsigned volatile unsigned var_0_8; /* ERROR - duplicate unsigned */ diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg28.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg28.C deleted file mode 100755 index 246c7e6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg28.C +++ /dev/null @@ -1,9 +0,0 @@ -/* From 01/25/94 working paper (7.1.3): - - If, in a decl-specifier-seq containing the decl-specifier typedef, - there is no type-specifier, or the only type-specifiers are cv- - qualifiers, the typedef declaration is ill-formed. -*/ - -typedef foo; // ERROR - invalid typedef -typedef const bar; // ERROR - invalid typedef diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg3.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg3.C deleted file mode 100755 index fc25451..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg3.C +++ /dev/null @@ -1,15 +0,0 @@ -// Bug: g++ remembers the members of OUTER and complains about the second -// definition. -// Build don't link: - -void -test () -{ - { - struct OUTER { struct INNER { int mbr; } member; }; - } - - { - struct OUTER { struct INNER { int mbr; } member; }; - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg4.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg4.C deleted file mode 100755 index 978b363..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg4.C +++ /dev/null @@ -1,12 +0,0 @@ -// Bug: f1 and f2 are treated as overloaded when they aren't. -// Build don't link: - -int i; -void f1(double) { } -void f2(double) { } - -void -test () -{ - i ? f1 : f2; // gets bogus error - improper overloading -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg5.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg5.C deleted file mode 100755 index 700fae3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg5.C +++ /dev/null @@ -1,10 +0,0 @@ -// Bug: func is treated as an overloaded function when it isn't. -// Build don't link: - -int *func () { return 0; } - -void -test () -{ - *func; // gets bogus error - improper overloading -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg6.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg6.C deleted file mode 100755 index 0f3c9c3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg6.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: - -wchar_t *single = L"xyz" ; -wchar_t *(array[]) = { L"xyz" }; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg7.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg7.C deleted file mode 100755 index 8f3835f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg7.C +++ /dev/null @@ -1,6 +0,0 @@ -// Bug: fixincludes and/or cpp mangle the definition of wchar_t so that this -// doesn't work. -// Build don't link: - -#include <stdlib.h> -wchar_t array[] = L"xxx"; // gets bogus error - wchar_t diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg8.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg8.C deleted file mode 100755 index 401d05d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg8.C +++ /dev/null @@ -1,4 +0,0 @@ -// Bug: g++ is wrongfully pedantic about union initializers. -// Build don't link: - -union U { int mbr; } array[1] = { 0 }; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rfg9.C b/gcc/testsuite/g++.old-deja/g++.jason/rfg9.C deleted file mode 100755 index abf6335..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rfg9.C +++ /dev/null @@ -1,9 +0,0 @@ -int cond; -int i; -int *ip; - -void -test () -{ - cond ? i : ip; /* ERROR - pointer/integer mismatch */ -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rvalue1.C b/gcc/testsuite/g++.old-deja/g++.jason/rvalue1.C deleted file mode 100755 index 01cd497..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rvalue1.C +++ /dev/null @@ -1,51 +0,0 @@ -// PRMS Id: 6000 -// Bug: g++ gets confused trying to build up a reference to a cast. - -class String { -protected: - char *cp; -public: - String(char *incp); - String(const String &constStringRef); - virtual void virtualFn1(void) const {;} -}; - -String::String(char *incp) -{ - cp = incp; -} - -String::String(const String &constStringRef) -{ -// Right here, do an 'info args', and look at the virtual function table -// pointer: typically junk! Calling the function through that table could -// do anything, since we're really leaping off into the void. This example -// goes down with 'SIGBUS', but I've seen 'SIGSEGV' too, and 'SIGILL' is -// possible. - - cp = constStringRef.cp; - constStringRef.virtualFn1(); -} - -void foofun(String string) -{ - ; -} - -class Class1 { -public: - Class1(const String & constStringRef); -}; - -Class1 :: Class1 (const String & constStringRef) -{ -// If instead of calling the function 'foofun()' here, we just assign -// 'constStringRef' to a local variable, then the vptr is typically == 0! - - foofun(String(constStringRef)); -} - -int main(void) -{ - Class1 *class1 = new Class1("Hi!"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rvalue2.C b/gcc/testsuite/g++.old-deja/g++.jason/rvalue2.C deleted file mode 100755 index 71f59bc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rvalue2.C +++ /dev/null @@ -1,17 +0,0 @@ -// Test for undesired aliasing. - -struct A { - const A * get_this () const { return this; } -}; - -int main () -{ - A a; - int r = 0; - const A& ar1 = (A)a; - if (&ar1 == &a) - r |= 1; - if (A(a).get_this () == &a) - r |= 2; - return r; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/rvalue3.C b/gcc/testsuite/g++.old-deja/g++.jason/rvalue3.C deleted file mode 100755 index 4e18cfb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/rvalue3.C +++ /dev/null @@ -1,5 +0,0 @@ -int main () -{ - int i; - int &ir = (int&)(int)i; // ERROR - casting rvalue to reference type -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/scoping.C b/gcc/testsuite/g++.old-deja/g++.jason/scoping.C deleted file mode 100755 index 49715be..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/scoping.C +++ /dev/null @@ -1,12 +0,0 @@ -// PRMS Id: 3977 -// Bug: A member function is not hidden properly by a later use of its name. -// Build don't link: - -struct A { - void index (); -}; - -struct B: A { - int index; - B(): index(4) {} -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/scoping10.C b/gcc/testsuite/g++.old-deja/g++.jason/scoping10.C deleted file mode 100755 index 9119951..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/scoping10.C +++ /dev/null @@ -1,14 +0,0 @@ -// Test for scope-based hiding of functions. - -void f (char *); -struct A { - void f (); // ERROR - referred to -}; -struct B : public A { - void g (char *); - void h () { - extern void g (); // ERROR - - f("foo"); // ERROR - hidden - g("foo"); // ERROR - hidden - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/scoping11.C b/gcc/testsuite/g++.old-deja/g++.jason/scoping11.C deleted file mode 100755 index 870b9d5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/scoping11.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: - -void f (); -void g () -{ - int f; - { - void f (); - f (); // gets bogus error - trying to call integer - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/scoping12.C b/gcc/testsuite/g++.old-deja/g++.jason/scoping12.C deleted file mode 100755 index 96e4ab7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/scoping12.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -void f () -{ - struct A { - friend void g (); - }; -} -void h () { - g (); // ERROR - no g in scope -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/scoping13.C b/gcc/testsuite/g++.old-deja/g++.jason/scoping13.C deleted file mode 100755 index 2fd1707..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/scoping13.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -struct A { typedef int foo; }; -struct B: public A { - typedef int bar; - struct C { - void g (B::bar); // gets bogus error - nested type failure - void f (B::foo); - }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/scoping14.C b/gcc/testsuite/g++.old-deja/g++.jason/scoping14.C deleted file mode 100755 index d8c1938..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/scoping14.C +++ /dev/null @@ -1,8 +0,0 @@ -// [class.scope0]: The scope of a name declared in a class consists -// ... also of all ... default arguments ... in that class .... -// Build don't link: - -struct A { - void f (int A::* = &A::i); - int i; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/scoping15.C b/gcc/testsuite/g++.old-deja/g++.jason/scoping15.C deleted file mode 100755 index bfebf24..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/scoping15.C +++ /dev/null @@ -1,20 +0,0 @@ -// Bug: g++ ignores the :: qualification and dies trying to treat an integer -// variable as a list of functions. -// Build don't link: - -class DComplex { -public: - friend double imag(const DComplex& a); -}; - -class FComplex { -public: - friend float imag(const FComplex& a); -}; - -void -scnrm2(FComplex cx[]) -{ - int imag; - ::imag( cx[0] ); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/scoping16.C b/gcc/testsuite/g++.old-deja/g++.jason/scoping16.C deleted file mode 100755 index d88501e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/scoping16.C +++ /dev/null @@ -1,4 +0,0 @@ -struct A { - int a(); // ERROR - - int a; // ERROR - -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/scoping17.C b/gcc/testsuite/g++.old-deja/g++.jason/scoping17.C deleted file mode 100755 index 26fb456..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/scoping17.C +++ /dev/null @@ -1,8 +0,0 @@ -// Test that the integer hides the struct in block scope. - -int main () -{ - int A; - struct A { }; - A = 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/scoping2.C b/gcc/testsuite/g++.old-deja/g++.jason/scoping2.C deleted file mode 100755 index 68c8c75..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/scoping2.C +++ /dev/null @@ -1,15 +0,0 @@ -// Bug: A function is not hidden properly by a use of its name in an -// inner scope. -// Build don't link: - -struct A -{ - struct B - { - int f; - B() : f(0) {}; - void g() { f = 0; }; - }; - void f(); - void f(int); -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/scoping3.C b/gcc/testsuite/g++.old-deja/g++.jason/scoping3.C deleted file mode 100755 index 578de7a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/scoping3.C +++ /dev/null @@ -1,8 +0,0 @@ -// Bug: g++ does not grok nested types very well. -// Build don't link: - -class A { - class B; - friend class B; - class B { }; // gets bogus error - -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/scoping4.C b/gcc/testsuite/g++.old-deja/g++.jason/scoping4.C deleted file mode 100755 index 94a49bf..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/scoping4.C +++ /dev/null @@ -1,30 +0,0 @@ -// PRMS Id: 4375 -// Bug: g++ fails to keep track of nested typedefs properly. -// Build don't link: - -class A { -public: - typedef char * Ptr; - Ptr s; - Ptr get_string(); - A(Ptr string); // { s = string; }; -}; - -class B { -public: - typedef A * Ptr; - Ptr a; - Ptr get_A(); - B(Ptr a_ptr); -}; - -A::A(Ptr string) { // gets bogus error - - s = string; // gets bogus error - -} - -int main() { - A a("testing"); - A *a_ptr; - B b(&a); - a_ptr = b.get_A(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/scoping5.C b/gcc/testsuite/g++.old-deja/g++.jason/scoping5.C deleted file mode 100755 index 4572da7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/scoping5.C +++ /dev/null @@ -1,6 +0,0 @@ -// Bug: g++ thinks that A defines operator delete, and tries to call it. -// Build don't link: - -struct A { - ~A () { ::operator delete (0); } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/scoping6.C b/gcc/testsuite/g++.old-deja/g++.jason/scoping6.C deleted file mode 100755 index 161cc47..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/scoping6.C +++ /dev/null @@ -1,27 +0,0 @@ -// Testcase for all uses of explicit global scope. -// Build don't link: - -int a, B; - -struct A { }; -int operator+(A&, int); - -struct B { - struct C { - static int a; - static int f () { A a; return ::operator+ (a, ::a); } // gets bogus error - }; -}; - -int B::C::a = 0; - -struct D : public ::B::C { }; // gets bogus error - -void f () -{ - int B; - ::B::C b; - - B = ::B::C::a; // gets bogus error - B = ::B::C::f(); // gets bogus error -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/scoping7.C b/gcc/testsuite/g++.old-deja/g++.jason/scoping7.C deleted file mode 100755 index 6ffa907..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/scoping7.C +++ /dev/null @@ -1,6 +0,0 @@ -// Bug: g++ doesn't flag name collisions between types and non-types as -// errors. It shouldn't for class names, but it should for typedefs. -// Build don't link: - -int bar; // ERROR - -typedef int bar; // ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.jason/scoping8.C b/gcc/testsuite/g++.old-deja/g++.jason/scoping8.C deleted file mode 100755 index de023d1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/scoping8.C +++ /dev/null @@ -1,7 +0,0 @@ -// Bug: g++ allows two different meanings of a name in the same scope. - -typedef int foo; // ERROR - -struct A { - A (foo); - int foo (); // ERROR - foo already used in scope -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/scoping9.C b/gcc/testsuite/g++.old-deja/g++.jason/scoping9.C deleted file mode 100755 index 3d8a155..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/scoping9.C +++ /dev/null @@ -1,12 +0,0 @@ -// Bug: g++ silently mangles the second 'B' to 'A::B', so the definition is -// lost. -// Build don't link: - -struct A { - enum B { }; -}; - -struct C: public A { - enum B { }; - void foo (C::B); -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/shadow1.C b/gcc/testsuite/g++.old-deja/g++.jason/shadow1.C deleted file mode 100755 index 59ffcbd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/shadow1.C +++ /dev/null @@ -1,16 +0,0 @@ -// Special g++ Options: -Wshadow -// Build don't link: - -class x { -public: - void fun(); -private: - int foo; -}; - -void x::fun() { }; - -main () -{ - float foo; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/soverload.C b/gcc/testsuite/g++.old-deja/g++.jason/soverload.C deleted file mode 100755 index 793e37f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/soverload.C +++ /dev/null @@ -1,10 +0,0 @@ -// Bug: dfs_pushdecls doesn't create an overload list for member functions, -// like it claims to. -// Build don't link: - -struct A -{ - static int foo (int); - static int foo (int, int); - void bar () { foo (1, 2); } // gets bogus error - broken overloading -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/special.C b/gcc/testsuite/g++.old-deja/g++.jason/special.C deleted file mode 100755 index 9f6202e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/special.C +++ /dev/null @@ -1,6 +0,0 @@ -// Make sure that forward declarations of specializations work... - -template <class T> class A { }; -class A<int>; -A<int> a; // ERROR - incomplete type -class A<int> { }; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/static1.C b/gcc/testsuite/g++.old-deja/g++.jason/static1.C deleted file mode 100755 index 8c5bdff..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/static1.C +++ /dev/null @@ -1,31 +0,0 @@ -// PRMS id: 6863 - -extern "C" int printf(const char *, ...); -extern "C" void abort(); - -enum ENUM {E1=0, E2 }; -int d; - -class AAA{ -public: - AAA() {a = new char[10];printf("constructor AAA() called\n");} - AAA(int) {printf("constructor AAA(int) called\n");} - ~AAA(){ printf("destructor ~AAA() called\n"); d = 1; } - operator int () { return 1;} - char *a; - int i; -}; - -struct sentinel { - ~sentinel () { if (d == 0) abort (); } -} s; - -/* forward decl here causes gcc not to execute ct and dt for arr1 */ -extern AAA arr1[]; - -AAA arr1[] = {(int)E1 }; - -int main() -{ - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/synth.C b/gcc/testsuite/g++.old-deja/g++.jason/synth.C deleted file mode 100755 index 733243c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/synth.C +++ /dev/null @@ -1,13 +0,0 @@ -// Bug: the synthesized copy constructor for A is not found. -// Build don't link: - -struct A { - // A (const A& a): i(a.i) {} - int i; -}; - -struct B { - A a; - B (const B& b): a(b.a), j(b.j) { } // gets bogus error - - int j; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/synth10.C b/gcc/testsuite/g++.old-deja/g++.jason/synth10.C deleted file mode 100755 index d94e6bd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/synth10.C +++ /dev/null @@ -1,52 +0,0 @@ -// Special g++ Options: -O -// Build don't link: -// Bug: Synthesizing methods for the nested class screwed up current_class_decl -// for the outer class. - -class A; -class AH -{ - public: - inline AH ( A * p = 0 ); - AH ( const AH & from ) - : pointer( from.pointer ) { inc(); } - ~ AH () { dec(); } - private: - A * pointer; - inline void inc() const; - inline void dec() const; -}; - -class A -{ - protected: - struct AttrTable - { - struct Row - { - }; - }; - - public: - - class Attributes - { - public: - class iterator - { - public: - iterator() : mo(0), attr(0) {} - iterator& operator++() { ++attr; return *this; } - iterator operator++(int) - { iterator tmp = *this; ++*this; return tmp; } - - private: - AH mo; - const AttrTable::Row* attr; - }; - - Attributes(AH mo) - : mo(mo) {} - AH mo; - }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/synth2.C b/gcc/testsuite/g++.old-deja/g++.jason/synth2.C deleted file mode 100755 index 3094b8e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/synth2.C +++ /dev/null @@ -1,8 +0,0 @@ -// PRMS Id: 4623 -// Bug: g++ tries and fails to synthesize a copy constructor for D. -// Build don't link: - -class A { }; -class B: public virtual A { }; -class C: public A { }; -class D: public B, public C { }; // gets bogus error - bad synthesis diff --git a/gcc/testsuite/g++.old-deja/g++.jason/synth3.C b/gcc/testsuite/g++.old-deja/g++.jason/synth3.C deleted file mode 100755 index 26af8ae..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/synth3.C +++ /dev/null @@ -1,6 +0,0 @@ -// Testcase for wrongful generation of copy constructor. -// Build don't link: - -class A { }; -class B: virtual private A { }; -class D: public B { }; // gets bogus error diff --git a/gcc/testsuite/g++.old-deja/g++.jason/synth4.C b/gcc/testsuite/g++.old-deja/g++.jason/synth4.C deleted file mode 100755 index 89ecf2d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/synth4.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: - -struct X { - X(); -}; -typedef void (X::*mfp)(); -struct Y { - Y(); - mfp memfp; -}; -void f() -{ - Y *y1, *y2 ; - *y1 = *y2; // gets bogus error - failed to synthesize op= -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/synth5.C b/gcc/testsuite/g++.old-deja/g++.jason/synth5.C deleted file mode 100755 index 2905da7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/synth5.C +++ /dev/null @@ -1,14 +0,0 @@ -// Bug: generated B::operator= tries to call A::operator= - -#pragma implementation -#line 1 "synth5.h" -#pragma interface - -struct A { - virtual A& operator= (const A&) = 0; -}; - -struct B: public A { -}; -#line 5 "synth5.C" -int main() { } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/synth6.C b/gcc/testsuite/g++.old-deja/g++.jason/synth6.C deleted file mode 100755 index f3a95db..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/synth6.C +++ /dev/null @@ -1,15 +0,0 @@ -// Bug: g++ tries to generate an op= for DbmItem and fails. -// Build don't link: - -class RefCount{ -public: - RefCount(); - -private: - RefCount& operator=(const RefCount); -}; - -class DbmItem: public RefCount{ -public: - DbmItem(): RefCount() {}; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/synth7.C b/gcc/testsuite/g++.old-deja/g++.jason/synth7.C deleted file mode 100755 index 0595377..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/synth7.C +++ /dev/null @@ -1,11 +0,0 @@ -// Testcase to make sure that synthesized methods are found when needed. - -struct B { ~B() { } }; -struct A { B b; }; - -int main() -{ - A a, b (a), c = A(); - A& (A::*afp)(const A&) = &A::operator=; - (a.*afp) (b); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/synth8.C b/gcc/testsuite/g++.old-deja/g++.jason/synth8.C deleted file mode 100755 index f7e82a9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/synth8.C +++ /dev/null @@ -1,20 +0,0 @@ -// Bug: the synthesized constructor for A tries to use the mem-initializer -// list for the B constructor. -// Build don't link: - -struct A -{ - virtual ~A(); -}; - -struct B -{ - B(); - char* x; - A* a; -}; - -B::B() -: x(0), a(new A()) -{ -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/synth9.C b/gcc/testsuite/g++.old-deja/g++.jason/synth9.C deleted file mode 100755 index 6886feb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/synth9.C +++ /dev/null @@ -1,20 +0,0 @@ -// PRMS Id: 6837 -// Bug: anonymous union confuses g++. -// Build don't link: - -struct my_key { - my_key(const my_key&); - my_key(const char* n); -}; - -struct my_node { - my_node(my_key&); - union { - long cnt; - my_node* next; - }; - my_key a; -}; - -extern my_node n; -my_node a(n); diff --git a/gcc/testsuite/g++.old-deja/g++.jason/tempargs.C b/gcc/testsuite/g++.old-deja/g++.jason/tempargs.C deleted file mode 100755 index 749e02c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/tempargs.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: -// GROUPS passed templates overloading -template<class T> class Vector { }; -template<class T> struct Sort { static void sort (Vector<typename T::foo> &); }; -template<class T> void Sort<T>::sort (Vector<typename T::foo> &) { } -struct whee { typedef int foo; }; - -void f (Vector<int> &vi) { Sort<whee>::sort (vi); } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/tempcons.C b/gcc/testsuite/g++.old-deja/g++.jason/tempcons.C deleted file mode 100755 index 77cc732..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/tempcons.C +++ /dev/null @@ -1,8 +0,0 @@ -// Bug: member initializers are allowed where they shouldn't be. -// Build don't link: - -template <class T> -struct A { - int i; - Blarg () : i(0) { } // ERROR - -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/tempdest.C b/gcc/testsuite/g++.old-deja/g++.jason/tempdest.C deleted file mode 100755 index 04fae56..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/tempdest.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed templates destructors -// Example of PR 3308 workaround - -template <class T> -class A -{ - T q; -public: - ~A() { (&q)->T::~T(); } -}; - -typedef unsigned int ui; - -int main() -{ - A<ui> *ap = new A<ui>; - - delete ap; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/tempinst1.C b/gcc/testsuite/g++.old-deja/g++.jason/tempinst1.C deleted file mode 100755 index 0a8a6cc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/tempinst1.C +++ /dev/null @@ -1,23 +0,0 @@ -// Bug: g++ fails to instantiate operator<<. -// Build don't run: -// Special g++ Options: -g - -struct ostream { - ostream& operator<< (const char *) { return *this; }; -}; - -template <class T> class foo; - -template <class T> ostream& operator<< (ostream& ios, foo<T>&obj) { }; - -template <class T> class foo { - friend ostream& operator<<<>(ostream&, foo<T>&); -}; - -int main() -{ - ostream cout; - foo<int> foo_obj; - cout << foo_obj; // causes linker error - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template1.C b/gcc/testsuite/g++.old-deja/g++.jason/template1.C deleted file mode 100755 index f3aa571..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template1.C +++ /dev/null @@ -1,20 +0,0 @@ -// PRMS Id: 4688 -// Bug: g++ can't deal with templates instantiated within extern "C". -// Build don't link: - -class Gnaf { -public: - virtual int invariant (); -}; - -template <class T> class Array : public Gnaf { -public: - virtual int invariant(); -}; - -extern "C" -int foo() -{ - Array<int> toConv; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template10.C b/gcc/testsuite/g++.old-deja/g++.jason/template10.C deleted file mode 100755 index 18a574a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template10.C +++ /dev/null @@ -1,26 +0,0 @@ -// Bug: member operator shadows global template in tsubst. -// Build don't link: - -class ostream; - -template <class TP> class smanip { -public: - friend ostream& operator<< <>(ostream &o, const smanip<TP>&m); -}; - -template<class TP> -ostream& operator<<(ostream& o, const smanip<TP>& m) -{ return o;} - -class X -{ -public: - X operator<<(int); // commenting out this line makes it work! - void print(ostream& os); -}; - -void X::print(ostream& os) -{ - smanip<double> smd; - os << smd; // gets bogus error -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template11.C b/gcc/testsuite/g++.old-deja/g++.jason/template11.C deleted file mode 100755 index d58bdfe..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template11.C +++ /dev/null @@ -1,14 +0,0 @@ -// Bug: initializers for static data members of templates don't get run. - -template <class T> struct A { - static T t; -}; - -int foo () { return 1; } - -int A<int>::t = foo (); - -int main () -{ - return (A<int>::t != 1); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template12.C b/gcc/testsuite/g++.old-deja/g++.jason/template12.C deleted file mode 100755 index 93c19b6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template12.C +++ /dev/null @@ -1,14 +0,0 @@ -// Testcase for 'this is a type' syntax. -// Build don't link: - -struct B { - typedef int A; -}; - -template <class T> struct Y { - void f() { - typename T::A *d; - } -}; - -template class Y<B>; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template13.C b/gcc/testsuite/g++.old-deja/g++.jason/template13.C deleted file mode 100755 index fbd16a9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template13.C +++ /dev/null @@ -1,10 +0,0 @@ -// Bug: g++ fails to actually instantiate templates to the specifications of -// guiding decls. -// Special g++ Options: -g -ansi -pedantic-errors -fguiding-decls - -template <class T> inline T min (T a, T b) { return a<b?a:b; } -double min (double, double); - -int main () { - return (int) min (0, 1.0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template14.C b/gcc/testsuite/g++.old-deja/g++.jason/template14.C deleted file mode 100755 index ecd99bc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template14.C +++ /dev/null @@ -1,16 +0,0 @@ -// PRMS Id: 4745 -// Bug: g++ gets the constructor and destructor confused because the default -// parm prevents the two constructor types from satisfying ==. - -template <class T> struct A { - A(int = 1); - ~A(); -}; - -template <class T> A<T>::A(int) { } // causes compiler abort -template <class T> A<T>::~A() { } - -int main() -{ - A<int> a; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template15.C b/gcc/testsuite/g++.old-deja/g++.jason/template15.C deleted file mode 100755 index 9779ca0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template15.C +++ /dev/null @@ -1,27 +0,0 @@ -// PRMS Id: 2139 -// Bug: g++ tries to instantiate the template with types on the function -// obstack and fails. - -template<class T> -class X { -public: - X(int) { } - - T x; -}; - -class A { }; - -int main() -{ - int i; - X<int> xi(i); - X<double> xd(i); - - X<int (*)(int, void *)> fp0(i); - X<int (*)(int, char, double)> fp1(i); - X<int (*)(int, double**, void *)> fp2(i); - - X<int (A::*)()> mp0 (i); - X<int A::*> mp1 (i); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template16.C b/gcc/testsuite/g++.old-deja/g++.jason/template16.C deleted file mode 100755 index 3241f98..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template16.C +++ /dev/null @@ -1,33 +0,0 @@ -// PRMS Id: 1502 -// Bug: g++ fails to resolve 'gnc' in the call to 'grid'. - -template<class T> class foo { -public: - foo() { } -}; - -template<class T> class bar : public foo<T> { -public: - bar() : foo<T>() {} -}; - -template<class T> class ben : public foo<T> { -public: - ben() : foo<T>() {} - void grid(T (*f)(bar<T>&),bar<T>& x,bar<T>& y,bar<T>& param); -}; - -template<class T> void ben<T>::grid(T (*f)(bar<T>&),bar<T>& x,bar<T>& y,bar<T>& param) { } - -template<class T> T gnc(bar<T>& a) -{ - return 0; -} - -int main() -{ - ben<double> a; - bar<double> x,y,p; - a.grid(gnc,x,y,p); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template17.C b/gcc/testsuite/g++.old-deja/g++.jason/template17.C deleted file mode 100755 index 27e4d04..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template17.C +++ /dev/null @@ -1,11 +0,0 @@ -// Caught by Booch Components. -// Bug: g++ tries to instantiate nested enums. -// Build don't link: - -template <class T> struct A -{ - struct B { }; - enum C { c }; -}; - -template struct A<int>; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template18.C b/gcc/testsuite/g++.old-deja/g++.jason/template18.C deleted file mode 100755 index b95303f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template18.C +++ /dev/null @@ -1,18 +0,0 @@ -// GROUPS passed templates -// Bug: g++ emits template instances when it shouldn't. -// Special g++ Options: -g -fexternal-templates - -// We mark this XFAIL because we can't test for expected linker errors. -// If we get an XPASS for this testcase, that's a bug. -// (OK) excess errors test - XFAIL *-*-* - -#pragma implementation "irrelevant_file" -#line 1 "template18.h" -#pragma interface -template <class T> inline T min (T a, T b) { return a<b?a:b; } -#line 13 "template18.C" - -main() -{ - min (1, 1); // should produce an undefined symbol error. -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template19.C b/gcc/testsuite/g++.old-deja/g++.jason/template19.C deleted file mode 100755 index 68ea9a9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template19.C +++ /dev/null @@ -1,9 +0,0 @@ -// Make sure type deduction isn't confused by top-level cv-quals. -template <class T> T max (const T a, const T b) { return a>b?a:b; } - -int main() -{ - int a = 0, b = 1; - int c = max (a, b); - int d = max ((const int)a, (const int)b); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template2.C b/gcc/testsuite/g++.old-deja/g++.jason/template2.C deleted file mode 100755 index d3950e9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template2.C +++ /dev/null @@ -1,12 +0,0 @@ -// Bug: instantiation of member templates breaks. -// Build don't link: - -template <class T> struct A { - static void f (); - void g (); -}; - -template <class T> void A<T>::f () { } -template <class T> void A<T>::g () { } - -A<int> a; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template20.C b/gcc/testsuite/g++.old-deja/g++.jason/template20.C deleted file mode 100755 index ee4daa0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template20.C +++ /dev/null @@ -1,9 +0,0 @@ -// Make sure type deduction works for both types of array parameters. -template <class T> void f (T (&a)[2]) { } -template <class T> void g (T a[2]) { } -int main() -{ - int a[2] = { 0, 0 }; - f (a); - g (a); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template21.C b/gcc/testsuite/g++.old-deja/g++.jason/template21.C deleted file mode 100755 index 817d1da..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template21.C +++ /dev/null @@ -1,16 +0,0 @@ -// Gosh, this works! -// Build don't link: - -template<class T> -struct A -{ - struct B - { - void bar(); - }; - struct C { }; -}; - -template<class T> void A<T>::B::bar() { } - -template class A<int>; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template22.C b/gcc/testsuite/g++.old-deja/g++.jason/template22.C deleted file mode 100755 index ce247e8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template22.C +++ /dev/null @@ -1,31 +0,0 @@ -// Testcase for proper unification of code involving references. -// Build don't link: - -template<class T> -struct A -{ - void foo(); -}; - -template<class T> void A<T>::foo() { } - -template class A<int&>; - -const int& f1 (); -int& f2 (); -int f3 (); - -template <class T> void g1 (const T&); -template <class T> void g2 (T&); -template <class T> void g3 (T); - -int main() -{ - g1 (f1 ()); - g1 (f2 ()); - g1 (f3 ()); - g2 (f2 ()); - g3 (f1 ()); - g3 (f2 ()); - g3 (f3 ()); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template23.C b/gcc/testsuite/g++.old-deja/g++.jason/template23.C deleted file mode 100755 index 1d257a2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template23.C +++ /dev/null @@ -1,12 +0,0 @@ -// Testcase for instantiation with cv-qualified type -// Build don't link: - -template<class T> -struct A -{ - void foo(); -}; - -template<class T> void A<T>::foo() { } - -template class A<const int>; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template24.C b/gcc/testsuite/g++.old-deja/g++.jason/template24.C deleted file mode 100755 index 120b717..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template24.C +++ /dev/null @@ -1,21 +0,0 @@ -// Bug: g++ doesn't find the conversion from ostream_withassign to ostream. - -#include <iostream.h> - -template <class T> -struct A { - T t; -}; - -template <class T> -ostream & operator<< (ostream & os, A<T> & a) -{ - os << a.t; - return os; -} - -int main () -{ - A<int> a = { 1 }; - cout << a << endl; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template25.C b/gcc/testsuite/g++.old-deja/g++.jason/template25.C deleted file mode 100755 index 9704412..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template25.C +++ /dev/null @@ -1,48 +0,0 @@ -// PRMS Id: 6393 -// Bug: g++ is too lax in considering UPTs to be the same. - -template <class R, class T> -class Bar -{ -public: - R do_bar (T arg); -}; - - -template <class T> -class Foo -{ - T i; - -public: - void do_foo () {} - void do_foo (T const & t) {} - void do_foo (Bar<char, T> const & bar); // {} Put the body here and it works - void do_foo (Bar<T, T> const & bar); // {} Put the body here and it works -}; - -// These definitions don't work - -template <class T> -inline void Foo<T>:: -do_foo (Bar<char, T> const & bar) -{} - -template <class T> -inline void Foo<T>:: -do_foo (Bar<T, T> const & bar) -{} - - -int main () -{ int i; - Bar<char, int> bar1; - Bar<int, int> bar2; - Foo<int> foo; - foo.do_foo(); - foo.do_foo(i); - foo.do_foo(bar1); - foo.do_foo(bar2); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template26.C b/gcc/testsuite/g++.old-deja/g++.jason/template26.C deleted file mode 100755 index fcd598d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template26.C +++ /dev/null @@ -1,114 +0,0 @@ -// PRMS Id: 6275 -// Bug: unification fails for call to find_parameter_in_stack. - -#include <stdio.h> -#include <stdlib.h> - -const int max_stack_size = 20; - -template <class T> -class Stack { - private: - T objects[max_stack_size]; - int nobjects; - public: - Stack(): nobjects(0) {} - void push(const T&a) { - if (nobjects >= max_stack_size) { - fprintf(stderr,"Stack: overflow\n"); - abort(); - } - objects[nobjects++] = a; - } - T pop() { - if (!nobjects) { - fprintf(stderr,"Stack: underflow\n"); - abort(); - } - nobjects -= 1; - T result = objects[nobjects]; - return result; - } - T top() const { - if (!nobjects) { - fprintf(stderr,"Stack: underflow\n"); - abort(); - } - return objects[nobjects - 1]; - } - int n() const { return nobjects; } - T operator[](int i) { return objects[i]; } -}; - -template <class T> -class Parameter { - T parameter_; - int is_set_; - int overrides_; - public: - Parameter(): is_set_(0), overrides_(0) {} - void set(const T& a) { parameter_ = a; is_set_ = 1; } - void override(int overrides = 1) { overrides_ = overrides; } - const T& value() const { return parameter_; } - int overrides() const { return overrides_; } - int is_set() const { return is_set_; } -}; - -template <class T1, class T2> -T2 -find_parameter_in_stack(Stack<T1>& stack, Parameter<T2>& (T1::*access)()) -{ - T2 result; - int have_result = 0; - for (int i=stack.n()-1; i>=0; i--) { - if ((stack[i].*access)().is_set()) { - if (!have_result || (stack[i].*access)().overrides()) { - result = (stack[i].*access)().value(); - have_result = 1; - } - } - } - return result; -} - -class A { - private: - Parameter<int> a_; - public: - A() { } - Parameter<int>& a() { return a_; } -}; - -int -main(int, char**) -{ - Stack<A> A_stack; - A a1; - A a2; - a1.a().set(1); - a2.a().set(2); - A_stack.push(a1); - A_stack.push(a2); - - int val = find_parameter_in_stack(A_stack, &A::a); - - printf("val = %d\n", val); - if (val != 2) - return 1; - - A_stack.pop(); - A_stack.pop(); - - a1.a().override(); - - A_stack.push(a1); - A_stack.push(a2); - - val = find_parameter_in_stack(A_stack, &A::a); - - printf("val = %d\n", val); - if (val != 1) - return 1; - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template27.C b/gcc/testsuite/g++.old-deja/g++.jason/template27.C deleted file mode 100755 index be90aca..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template27.C +++ /dev/null @@ -1,48 +0,0 @@ -// PRMS Id: 6826 -// Check that unnecessary templates are not instantiated. - -template <class T> -class Test -{ - public: - void doThiss(); - void doThat(); -}; - -template <class T> -void Test<T>::doThiss() -{ - T x; - - x.thiss(); -} - -template <class T> -void Test<T>::doThat() -{ - T x; - - x.that(); -} - -class A -{ - public: - void thiss() {}; -}; - -class B -{ - public: - void that() {}; -}; - -int main() -{ - Test<A> a; - a.doThiss(); // a.doThat() is not well formed, but then - // it's not used so needn't be instantiated. - - Test<B> b; - b.doThat(); // simillarly b.doThiss(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template28.C b/gcc/testsuite/g++.old-deja/g++.jason/template28.C deleted file mode 100755 index c5501d9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template28.C +++ /dev/null @@ -1,33 +0,0 @@ -// PRMS Id: 7179 - -template <class T> -class Car{ -public: - Car(); -} ; - -class Wheels{ -public: - Wheels(); -} ; - -class Shop -{ -public: - Shop(); -private: - Car<Wheels> car ; -} ; - -Wheels::Wheels() {} - -Shop::Shop() {} - -int main() -{ - Shop shop ; - return 0 ; -} - -template <class T> -Car<T>::Car() {} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template29.C b/gcc/testsuite/g++.old-deja/g++.jason/template29.C deleted file mode 100755 index d4212e2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template29.C +++ /dev/null @@ -1,19 +0,0 @@ -// PRMS Id: 9500 -// Build don't link: - -template <int S> -class base - { -public: - inline base(); - }; - -template <class T> -class derived : public base<sizeof(T)> - { -public: - inline derived(); - }; - -template <class T> -inline derived<T>::derived() : base<sizeof(T)>(){} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template3.C b/gcc/testsuite/g++.old-deja/g++.jason/template3.C deleted file mode 100755 index 1cd6553..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template3.C +++ /dev/null @@ -1,14 +0,0 @@ -// PRMS Id: 4679 -// Bug: g++ doesn't re-instantiate templates after definition is seen. - -template <class T> struct A; - -A<int> *a; - -template <class T> struct A { T t; }; - -int main() -{ - if (a) - a->t = 1; // gets bogus error -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template30.C b/gcc/testsuite/g++.old-deja/g++.jason/template30.C deleted file mode 100755 index 98bad49..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template30.C +++ /dev/null @@ -1,13 +0,0 @@ -template <class T, class U> -int func(U, T); // ERROR - ref below - -template <class T, class U> -int func(T, U) -{ // ERROR - ref below - return 2; -} - -int main () -{ - func (0, 1); // ERROR - ambiguous -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template31.C b/gcc/testsuite/g++.old-deja/g++.jason/template31.C deleted file mode 100755 index 1148e27..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template31.C +++ /dev/null @@ -1,40 +0,0 @@ -// PRMS Id: 8569 - -#include <iostream.h> -#include <vector> - -using std::vector; - -class Component { - int george; - char mabel[128]; -}; -class CopyMe { -public: - CopyMe(){;} -private: - vector<Component> strvec; -}; - -class IncludeIt { -public: - IncludeIt() {} - ~IncludeIt() {} - IncludeIt(const IncludeIt& i) { - myStrvec = i.myStrvec; - } - IncludeIt& operator=(const IncludeIt& i) { - myStrvec = i.myStrvec; - } -private: - CopyMe myStrvec; -}; - -int main(int argc, char**argv) { - IncludeIt foo; - IncludeIt* bar; - exit(0); -} - -template class std::__malloc_alloc_template<0>; -template class std::__default_alloc_template<false, 0>; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template32.C b/gcc/testsuite/g++.old-deja/g++.jason/template32.C deleted file mode 100755 index d510e93..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template32.C +++ /dev/null @@ -1,10 +0,0 @@ -// Bug: Instantiating A<int> screws with class bindings for B -// Build don't link: - -template <class T> struct A { }; -struct B { - typedef int foo; - void f (); -}; - -void B::f () { A<int> a; foo i; } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template33.C b/gcc/testsuite/g++.old-deja/g++.jason/template33.C deleted file mode 100755 index 35a63aa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template33.C +++ /dev/null @@ -1,17 +0,0 @@ -// Test nested enums in templates. -// Build don't link: - -template <class T> -class A -{ -public: - enum muni {X, Y}; - - muni e() { return X; }; - muni f(); -}; - -template <class T> -A<T>::muni A<T>::f() { return X; } - -template class A<int>; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template34.C b/gcc/testsuite/g++.old-deja/g++.jason/template34.C deleted file mode 100755 index 177286f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template34.C +++ /dev/null @@ -1,24 +0,0 @@ -template<class T> -class Set { - public: - typedef int (*Compare)(const T&, const T&); - static Compare cmp1; - static int (*cmp2)(const T&, const T&); -}; - -template<class T> -int gen_cmp(const T& a, const T& b) { - if (a<b) return -1; - else if (a==b) return 0; - else return 1; -} - -template<class T> -Set<T>::Compare Set<T>::cmp1 = &gen_cmp; - -template<class T> -int (*Set<T>::cmp2)(const T&, const T&) = &gen_cmp; - -int main() { - Set<int> s; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template35.C b/gcc/testsuite/g++.old-deja/g++.jason/template35.C deleted file mode 100755 index be3f808..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template35.C +++ /dev/null @@ -1,15 +0,0 @@ -// Bug: instantiation of D() corrupts declaration of basis[]. -// Build don't link: - -struct B { }; -template <int t> -struct D : public B -{ - D() : B () { } -}; - -B const * basis[] = -{ - new D<0>, - new D<1>, -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template36.C b/gcc/testsuite/g++.old-deja/g++.jason/template36.C deleted file mode 100755 index 807af75..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template36.C +++ /dev/null @@ -1,51 +0,0 @@ -// Testcase for implicit 'typename' and resolution of 'typename's in the -// current scope. - -class base1 { -public: - int bar() const - { return 1; } -}; - -class base2 { -public: - int bar() const - { return 0; } -}; - -template<class X> -struct base_trait { - typedef base1 base; -}; - -struct base_trait<float> { - typedef base2 base; -}; - -template<class T> -class weird : public base_trait<T>::base { -public: - typedef base_trait<T>::base base; - - base f (); - int base::* g (); - - int zowee() const - { return bar(); } -}; - -template <class T> -weird<T>::base weird<T>::f () -{ - return base(); -} - -template <class T> -int weird<T>::base::* weird<T>::g () -{ return 0; } - -int main() -{ - weird<float> z; - return z.zowee() || z.f().bar(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template37.C b/gcc/testsuite/g++.old-deja/g++.jason/template37.C deleted file mode 100755 index 71aa270..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template37.C +++ /dev/null @@ -1,36 +0,0 @@ -// PRMS Id: 9930 -// Test of -fexternal-templates hackery in new template code -// Special g++ options: -fexternal-templates - - #pragma implementation "foo.hh" - #pragma interface "foo.hh" - - template<class T> - class ONE - { - public: - static void func(); - }; - - template<class T> - void ONE<T>::func() - { - } - - class ONE<int> - { - public: - static void func(); - }; - - void ONE<int>::func() - { - } - -int main() - { - ONE<char>::func(); - ONE<int>::func(); - - return 0; - } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template38.C b/gcc/testsuite/g++.old-deja/g++.jason/template38.C deleted file mode 100755 index 3870cbc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template38.C +++ /dev/null @@ -1,18 +0,0 @@ -// Special g++ Options: -fguiding-decls - -struct A { - friend int operator== (const A&, const A&); - A (int) { } -}; - -template <class T> int -operator== (const T&, const T&) -{ - return 0; -} - -main () -{ - A a (1); - return a == 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template39.C b/gcc/testsuite/g++.old-deja/g++.jason/template39.C deleted file mode 100755 index dc76889..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template39.C +++ /dev/null @@ -1,22 +0,0 @@ -// PRMS Id: 10283 -// Build don't link: - -template <class T> struct B { - static void (*p)(); - static void f (); -}; - -template <class T> -void (*B<T>::p)() = &B<T>::f; - -B<int> b; - -template <int i> struct A { - static const int j = i; - int k[j]; -}; - -A<1> a; - -template <int i> -const int A<i>::j; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template4.C b/gcc/testsuite/g++.old-deja/g++.jason/template4.C deleted file mode 100755 index 7fcb45c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template4.C +++ /dev/null @@ -1,21 +0,0 @@ -// Bug: g++ tries to instantiate ccList twice, and fails. -// Build don't link: - -template<class T> class ccHandle{ }; -template <class T> class ccList; -template <class T> class cc_List { -public: - ccList <T> copy (); -}; - -template <class T> class ccList : public ccHandle < cc_List <T> > { -public: - ccList (int); -}; - -template <class T> -ccList <T> cc_List<T>::copy (){} - -int main (int, char **) { - ccList <int> size1(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template40.C b/gcc/testsuite/g++.old-deja/g++.jason/template40.C deleted file mode 100755 index a880392..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template40.C +++ /dev/null @@ -1,19 +0,0 @@ -// PRMS id: 11315 -// Bug: g++ doesn't recognize the copy ctor for Array<long>. - -template <class Type> -class Array { -public: - Array(int sz=12) - : ia (new Type[sz]), size(sz) {} - ~Array() { delete[] ia;} - Array(const Array<long>& r) : size(0) {} // just for testing -private: - Type *ia; - int size; -}; - -int main(int argc, char *argv[]) -{ - Array<long> ia; // looping occurs on this line -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template41.C b/gcc/testsuite/g++.old-deja/g++.jason/template41.C deleted file mode 100755 index 62d03b6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template41.C +++ /dev/null @@ -1,33 +0,0 @@ -// PRMS Id: 11420 -// Bug: Can't handle indirect virtual template base init. - -extern "C" int printf (const char *, ...); - -template<class T> -class Vbase { - public: - Vbase(T i) { printf ("%d\n", i); } -}; - -template<class T> -class D1 : virtual public Vbase<T> { - public: - D1(T i) : Vbase<T>(i) {} -}; - -template<class T> -class D2 : virtual public Vbase<T> { - public: - D2(T i) : Vbase<T>(i) {} -}; - -template<class T> -class Most : public D1<T>, public D2<T> { - public: - Most(T i) : D1<T>(i), D2<T>(i), Vbase<T>(i) {} -}; - -int main () { - Most<int> x(2); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template42.C b/gcc/testsuite/g++.old-deja/g++.jason/template42.C deleted file mode 100755 index 2bd6267..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template42.C +++ /dev/null @@ -1,18 +0,0 @@ -// Testcase for not evaluating template default args if they are -// never used. - -struct X { - X(int) { } -}; - -template <class T> -struct A { - void f (T t = T()) { } -}; - -int main () -{ - A<X> a; - X x (1); - a.f (x); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template43.C b/gcc/testsuite/g++.old-deja/g++.jason/template43.C deleted file mode 100755 index d9b3f85..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template43.C +++ /dev/null @@ -1,30 +0,0 @@ -// Test matching of partial specializations. - -template <int* x, int* y> -class EQUAL { -public: - enum { value = 0 }; -}; -template <int* x> -class EQUAL<x,x> { -public: - enum { value = 1 }; -}; - -int x; -int y; - -int equals_x_x = EQUAL<&x,&x>::value; // expected value: 1 -int equals_x_y = EQUAL<&x,&y>::value; // expected value: 0 -int equals_y_x = EQUAL<&y,&x>::value; // expected value: 0 -int equals_y_y = EQUAL<&y,&y>::value; // expected value: 1 - -int main () -{ - if (equals_x_x == 1 - && equals_x_y == 0 - && equals_y_x == 0 - && equals_y_y == 1) - return 0; - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template44.C b/gcc/testsuite/g++.old-deja/g++.jason/template44.C deleted file mode 100755 index 93b47bd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template44.C +++ /dev/null @@ -1,61 +0,0 @@ -#include <stdlib.h> -#include <string.h> - -template <class T> -class List { -public: - int len; - T *array; - - int length() const { return( len ); } - - List() : len( 0 ), array( 0 ) {} -}; - -template <class T> -int AlgoStdCompare(const T* a, const T* b) { - if (*a < *b) - return -1; - else - return (*a > *b); // 0 if equal, 1 if greater -} - -int AlgoStdCompare(const char* const* a, const char * const*b) -{ - return strcmp(*a,*b); -} - -template <class T> -void AlgoFixupSort(List< T >* , int, int ) { -} - -template <class T> -void AlgoSort(int (*compare)(const T *, const T *), - void (*fixup)( List<T> *, int first, int last), - List< T >* theList, int first, int last) { - if (last < 0) - last = theList->length()-1; - - qsort(theList->array+first, last-first+1, sizeof(T), - (int (*)(const void *, const void *))compare); - if (fixup) - fixup(theList, first, last); -} - -template <class T> -void AlgoSort(List< T >* theList, int first = 0, int last = -1) { - int (*compare)(const T*, const T*) = AlgoStdCompare; - void (*fixup)( List<T> *, int first, int last) = AlgoFixupSort; - - AlgoSort(compare, fixup, theList, first, last); -} - -int -main() -{ - List<const char *> slist; - AlgoSort( &slist ); - - List<int> ilist; - AlgoSort( &ilist ); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template5.C b/gcc/testsuite/g++.old-deja/g++.jason/template5.C deleted file mode 100755 index 3c1e4cd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template5.C +++ /dev/null @@ -1,28 +0,0 @@ -// Bug: g++ fails to compare integer constants properly. -// Build don't link: - -template <int X, int Y> -struct Matrix { - int base [X] [Y]; -}; - -template <int M,int H,int N> -Matrix<M,N>& Mul(Matrix<M,N>& Q,Matrix<M,H>& A,Matrix<H,N>& B) { - for(int i=0;i<M;i++) { - for(int j=0;j<N;j++) { - Q.base[i][j]=0; - for(int k=0;k<H;k++) { - Q.base[i][j]+=A.base[i][k]*B.base[k][j]; - } - } - } - return Q; -} - -void f () -{ - Matrix<2, 3> q; - Matrix<2, 4> a; - Matrix<4, 3> b; - q = Mul (q, a, b); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template6.C b/gcc/testsuite/g++.old-deja/g++.jason/template6.C deleted file mode 100755 index c42426a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template6.C +++ /dev/null @@ -1,20 +0,0 @@ -// PRMS Id: 4656 -// Testcase for use of member pointers in template resolution - -template <class T> class A { - public: - A() : a(1) {} - T a; -}; - -template <class T> -int foo (T A<int>::*p) -{ - return 0; -} -int main() -{ - int A<int>::*pm = &A<int>::a; // gets bogus error - failed temp resolution - foo (pm); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template7.C b/gcc/testsuite/g++.old-deja/g++.jason/template7.C deleted file mode 100755 index 87d79a8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template7.C +++ /dev/null @@ -1,9 +0,0 @@ -// PRMS Id: 4826 -// Build don't link: - -class A; -template <class T> void f(const T&, const T&); - -void g (const A& a, A& b) { - f (a, b); // gets bogus error - failed unification -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template8.C b/gcc/testsuite/g++.old-deja/g++.jason/template8.C deleted file mode 100755 index 586fb61..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template8.C +++ /dev/null @@ -1,10 +0,0 @@ -// PRMS Id: 4827 -// Build don't link: - -class A; -template <class T> int f (const T&, const A *); - -int g (const int& a) -{ - return f (a, (A *)0); // gets bogus error - failed unification -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/template9.C b/gcc/testsuite/g++.old-deja/g++.jason/template9.C deleted file mode 100755 index 80fd8c9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/template9.C +++ /dev/null @@ -1,12 +0,0 @@ -// PRMS Id: 4864 -// Bug: g++ can't deal with a guiding declaration which comes before the -// template. -// Build don't link: - -void f (const int&, const int&); -template <class T> void f (const T&, const T&) { } - -void g (int a) -{ - f (a,a); // gets bogus error - two identical candidates -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/temporary.C b/gcc/testsuite/g++.old-deja/g++.jason/temporary.C deleted file mode 100755 index 168bfe9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/temporary.C +++ /dev/null @@ -1,19 +0,0 @@ -// From: bruno@isoft.com.ar (Bruno R. Depascale) -// Subject: No destructor bug -// Date: Mon, 14 Feb 1994 12:49:45 -0300 (Arg) - -// Bug: temporaries created with constructor notation aren't destroyed. - -int count = 0; - -class A { -public: - A() { ++count; } - ~A() { --count; } -}; - -int main() -{ - A(); - return count; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/temporary2.C b/gcc/testsuite/g++.old-deja/g++.jason/temporary2.C deleted file mode 100755 index 36c8e8e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/temporary2.C +++ /dev/null @@ -1,16 +0,0 @@ -class X // Indentation has been done so to see the similarities. -{ -public: - X() {} // ERROR - referenced below - X(X& x) {x.i=7;} // ERROR - Both functions modify the - void bar(X& x) {x.i=7;} // ERROR - reference parameter x. - int i; -}; - -X foo() { X x; return x; } - -int main() -{ - X x(foo()); // ERROR - Compiler doesn't warn about temporary reference. - x.bar(foo()); // ERROR - The same mistake is warned about in this case. -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/temporary3.C b/gcc/testsuite/g++.old-deja/g++.jason/temporary3.C deleted file mode 100755 index 3ffeec7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/temporary3.C +++ /dev/null @@ -1,26 +0,0 @@ -// Bug: the temporary returned from f is elided, causing a to be constructed -// twice but only destroyed once. - -extern "C" int printf (const char *, ...); - -int c,d; - -struct A { - A (int) { c++; } - ~A () { d++; } - A (const A&) { c++; } - int i; -}; - -A f () -{ return 1; } - -int main () -{ - { - A a (1); - a = f (); - } - printf ("%d %d\n", c, d); - return c != d; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/temporary4.C b/gcc/testsuite/g++.old-deja/g++.jason/temporary4.C deleted file mode 100755 index bb7e56f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/temporary4.C +++ /dev/null @@ -1,31 +0,0 @@ -// Bug: g++ initializes both B::i and B::j before destroying any temps. - -extern "C" int printf (const char *, ...); - -int c = 0; -int d = 0; -int r = 0; - -struct A { - A() { if (c != d) r = 1; ++c; } - A(const A&); // declare so g++ returns A on the stack - ~A() { ++d; } - operator int () { return 0; } -}; - -A foo () -{ - return A(); -} - -struct B { - int i; - int j; - B(): i(foo()), j(foo()) { } -}; - -int main() -{ - B b; - return r; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/temporary5.C b/gcc/testsuite/g++.old-deja/g++.jason/temporary5.C deleted file mode 100755 index 6a2469e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/temporary5.C +++ /dev/null @@ -1,16 +0,0 @@ -// PRMS Id: 6604 -// Bug: Scoped constructor call is not properly recognized as a functional cast - -int c; - -struct A { - A() { ++c; } - ~A() { --c; } - operator int () { return 1; } -}; - -int main () -{ - A::A(); - return c; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/temporary6.C b/gcc/testsuite/g++.old-deja/g++.jason/temporary6.C deleted file mode 100755 index ce6a92e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/temporary6.C +++ /dev/null @@ -1,8 +0,0 @@ -// Bug: the temporary from the default parameter to f2 is reused. -// Build don't link: - -struct A {}; -int f2 (int i, const A& ar = A()); -void f (int i, int j = f2(1)); -void g () { f (1); } -void h () { f (1); } diff --git a/gcc/testsuite/g++.old-deja/g++.jason/temporary7.C b/gcc/testsuite/g++.old-deja/g++.jason/temporary7.C deleted file mode 100755 index 8b91fe1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/temporary7.C +++ /dev/null @@ -1,35 +0,0 @@ -// PRMS ID: 7304 - -struct V { - int n; - V() : n(0) { } - V(int x) : n(x) { } -}; - -V baz(const V &x) -{ - return x; -} - -int bar(V v1, V v2, V v3) -{ - return v1.n; -} - -struct A { - A(): n(7) { } - int foo(); - V n; -}; - -int A::foo() -{ - V v1, v2; - return bar(n, baz(v1), v2); -} - -int main() -{ - A a; - return (a.foo() != 7); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/temporary8.C b/gcc/testsuite/g++.old-deja/g++.jason/temporary8.C deleted file mode 100755 index bb0698e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/temporary8.C +++ /dev/null @@ -1,25 +0,0 @@ -// Test for proper handling of temporaries in ?: exprs. - -extern "C" int printf (const char *, ...); -int c = 0, d = 0; - -class A { -public: - A() { ++c; } - A(const A&) { ++c; } - ~A() { ++d; } -}; - -A f (const A& a) -{ - return (c ? A() : A()); -} - -int main() -{ - { - f (c ? A() : A()); - } - printf ("%d %d\n", c, d); - return c != d || c != 2; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/tempover.C b/gcc/testsuite/g++.old-deja/g++.jason/tempover.C deleted file mode 100755 index 0998f69..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/tempover.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed templates overloading -#define TEMPL template <class T> - -class B {}; - -TEMPL class A : virtual public B { - public: - A(int); -}; - -TEMPL A<T>::A(int){} - -A<double> a(1); diff --git a/gcc/testsuite/g++.old-deja/g++.jason/tempparse.C b/gcc/testsuite/g++.old-deja/g++.jason/tempparse.C deleted file mode 100755 index 68f67ad..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/tempparse.C +++ /dev/null @@ -1,29 +0,0 @@ -/* - PRMS Id: 3631 - Bug is: g++ mangles template class names in a way that it won't accept, - and then tries to feed them to itself. -*/ -// Build don't link: - -template<class T> -struct A { - A(); -}; - -template<class T> -struct B : A<T> { - B(); -}; // gets bogus error - B<C<char>> - -template<class T> -struct C { - C(); -}; - -template<class T> -struct D { - D(); - B<C<T> > p_f; -}; - -typedef D<char> Dummy; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/tempsub.C b/gcc/testsuite/g++.old-deja/g++.jason/tempsub.C deleted file mode 100755 index 4b69d88..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/tempsub.C +++ /dev/null @@ -1,28 +0,0 @@ -// Distillation of crash1.C problem (PR 3633) -// Build don't link: - -template<class P> -class A -{ - P p; -}; - -template<class Q> -class B -{ - A<Q> a; // bogus error - temp parm name propagating -}; - -template<class R> -class C -{ - B<R> b; -}; - -template<class S> -class D -{ - S s; -}; - -C< D<int> > c; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/this.C b/gcc/testsuite/g++.old-deja/g++.jason/this.C deleted file mode 100755 index 544db6c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/this.C +++ /dev/null @@ -1,16 +0,0 @@ -// PRMS Id: 5190 -// Bug: g++ fails to build up a const reference to `this'. -// Build don't link: - -class X -{ -public: - void member (); -}; - -void print (const X* const &); - -void X::member () -{ - print (this); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/thunk1.C b/gcc/testsuite/g++.old-deja/g++.jason/thunk1.C deleted file mode 100755 index 22c0516..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/thunk1.C +++ /dev/null @@ -1,47 +0,0 @@ -// Test that non-variadic function calls using thunks work right. -// Special g++ Options: -fvtable-thunks - -struct A { - void* p; - A (void* q): p (q) { } - A (const A& a): p (a.p) { } -}; - -class CBase { -public: - void BaseFunc(); -}; - -class MMixin { -public: - virtual A MixinFunc(int arg, A arg2) = 0; -}; - -class CExample : public CBase, public MMixin { -public: - A MixinFunc(int arg, A arg2); -}; - -void CBase::BaseFunc() -{ -} - -A CExample::MixinFunc(int arg, A arg2) -{ - if (arg != 1 || arg2.p != 0) - return 0; - return this; -} - -void* test(MMixin& anExample) -{ - return anExample.MixinFunc(1,A(0)).p; -} - -main () -{ - CExample c; - - if (test(c) != &c) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/thunk2.C b/gcc/testsuite/g++.old-deja/g++.jason/thunk2.C deleted file mode 100755 index 73bb0ff..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/thunk2.C +++ /dev/null @@ -1,49 +0,0 @@ -// Test that non-variadic function calls using thunks and PIC work right. -// Skip if not native -// Special g++ Options: -fvtable-thunks -fPIC -// excess errors test - XFAIL m68k-motorola-sysv m88k-motorola-sysv3 - -struct A { - void* p; - A (void* q): p (q) { } - A (const A& a): p (a.p) { } -}; - -class CBase { -public: - void BaseFunc(); -}; - -class MMixin { -public: - virtual A MixinFunc(int arg, A arg2) = 0; -}; - -class CExample : public CBase, public MMixin { -public: - A MixinFunc(int arg, A arg2); -}; - -void CBase::BaseFunc() -{ -} - -A CExample::MixinFunc(int arg, A arg2) -{ - if (arg != 1 || arg2.p != 0) - return 0; - return this; -} - -void* test(MMixin& anExample) -{ - return anExample.MixinFunc(1,A(0)).p; -} - -main () -{ - CExample c; - - if (test(c) != &c) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C b/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C deleted file mode 100755 index fe2e019..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C +++ /dev/null @@ -1,59 +0,0 @@ -// Test that variadic function calls using thunks work right. -// Note that this will break on any target that uses the generic thunk -// support, because it doesn't support variadic functions. - -// Special g++ Options: -fvtable-thunks -// excess errors test - XFAIL mips*-*-* alpha*-*-* rs6000-*-* powerpc-*-eabi m68k-*-coff m68k-motorola-sysv m88k-motorola-sysv3 mn10300-*-* mn10200-*-* v850-*-* sh-*-*-* - -#include <stdarg.h> - -struct A { - void* p; - A (void* q): p (q) { } - A (const A& a): p (a.p) { } -}; - -class CBase { -public: - void BaseFunc(); -}; - -class MMixin { -public: - virtual A MixinFunc(int arg, ...) = 0; -}; - -class CExample : public CBase, public MMixin { -public: - A MixinFunc(int arg, ...); -}; - -void CBase::BaseFunc() -{ -} - -A CExample::MixinFunc(int arg, ...) -{ - va_list ap; - va_start (ap, arg); - - if (arg != 1 || va_arg (ap, int) != 2 || va_arg (ap, int) != 3 - || va_arg (ap, int) != 4 || va_arg (ap, int) != 5 - || va_arg (ap, int) != 6 || va_arg (ap, int) != 7 - || va_arg (ap, int) != 8 || va_arg (ap, int) != 9) - return 0; - return this; -} - -void* test(MMixin& anExample) -{ - return anExample.MixinFunc(1,2,3,4,5,6,7,8,9).p; -} - -main () -{ - CExample c; - - if (test(c) != &c) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/tpt-1.cc b/gcc/testsuite/g++.old-deja/g++.jason/tpt-1.cc deleted file mode 100755 index 1509520..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/tpt-1.cc +++ /dev/null @@ -1,30 +0,0 @@ -// Testcase for use of template parms as types for other template parms. - -template <class T, T t> -class A { - T a; -public: - A(): a(t) {} - - operator T () { return a; } -}; - -template <class S, S s> -class B { - A<S,s> a; -public: - B(A<S,s>& b): a(b) {} - - operator S () { return a*20; } -}; - -main() -{ - A<int, 5> a; - B<int, 5> b(a); - - if (b * a == 500) - return 0; - else - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/tredecl.C b/gcc/testsuite/g++.old-deja/g++.jason/tredecl.C deleted file mode 100755 index 72cbae7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/tredecl.C +++ /dev/null @@ -1,17 +0,0 @@ -// Bug: Foo<Bar> *p semi-instantiates Foo<Bar> in local scope, so -// when Foo<Bar> f tries to instantiate it later, it only finds the partial -// instantiation from before. -// -// No PR; distilled from James Clark's SGML project. -// -// Build don't link: - -class Bar { }; - -template<class T> class Foo; - -Foo<Bar> *p; - -template<class T> class Foo { }; - -Foo<Bar> f; // gets bogus error - hosed binding levels diff --git a/gcc/testsuite/g++.old-deja/g++.jason/tredecl2.C b/gcc/testsuite/g++.old-deja/g++.jason/tredecl2.C deleted file mode 100755 index faaf862..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/tredecl2.C +++ /dev/null @@ -1,5 +0,0 @@ -// No bug; making sure my fix for tredecl.C doesn't break other cases -// Build don't link: - -template<class T> struct Foo { Foo<T> * me() { return this; } }; -Foo<int> i; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/tredecl3.C b/gcc/testsuite/g++.old-deja/g++.jason/tredecl3.C deleted file mode 100755 index bcc25ba..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/tredecl3.C +++ /dev/null @@ -1,11 +0,0 @@ -// PRMS Id: 4679 -// Bug: redeclaration of templates erases the definition. -// Build don't link: - -template <class T> class Foo { public: void h(); }; -template <class T> class Foo; - -void g() -{ - Foo<int> f; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/tredecl4.C b/gcc/testsuite/g++.old-deja/g++.jason/tredecl4.C deleted file mode 100755 index 64ba4b8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/tredecl4.C +++ /dev/null @@ -1,5 +0,0 @@ -// It is illegal to use the name of a class template for anything else, -// including another class template. - -template <class T> class A { }; // ERROR - -template <class U, class V> class A { }; // ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.jason/trivial.C b/gcc/testsuite/g++.old-deja/g++.jason/trivial.C deleted file mode 100755 index f5a5355..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/trivial.C +++ /dev/null @@ -1,71 +0,0 @@ -// PRMS Id: 3665 -// Build don't link: - -//------------------------------------------------------------- -// Referential declaration within class -// -// Imbeded below is the invocation of the compiler and the error -// message -// -// This compiles successfully with both the xlC and CFRONT compilers -// This was reviewed with Clem Dickey and we agree that it appears to -// be a Cygnus compiler problem. -//------------------------------------------------------------- -/* -$ make bug.reference.o - /usr/p3/bin/i960-vxworks-g++ `getsrc bug.reference.C` -I. -Iinc1 -Iinc2 - -I/vw5.0.3/h -I/vw5.0.3/h/i960 -I/usr/p3/lib/gcc-lib/i960-vxworks/cygnus-2.3.3 -/include -I/usr/p3/lib/gcc-lib/i960-vxworks/cygnus-2.3.3-930417/include -I/usr/p -3/lib/i960-vxworks/include -I/usr/p3/i960-vxworks/include -c -DCPU_FAMILY=I960 --DCPU=I960CA -mca -mold-align -g3 -O1 -DASSERT_ON -nostdinc -nostdinc++ -MD -./bug.reference.C: In method `class1::class1 (long unsigned int, long unsigned i -nt **&)': -./bug.reference.C:43: cannot convert type `long unsigned int **' -./bug.reference.C:43: to type `long unsigned int *[]&' -make: 1254-004 The error code from the last command is 1. -*/ - -// typedefs -typedef unsigned long u32; -typedef u32 *ul[16]; - -// class defs -class class1 { - u32 var1; - class1(const class1 &); // Copy constructor - class1& operator=(const class1 &); // operator= member function -public: - class1(u32, ul&); - ul &ulref; - ~class1() {} -}; - - -// member function defs -class1::class1(u32 u, ul &l) : var1(u), ulref(l) -{} - -/* =========================================================================== -Note: The following is a "work around" that allows the successful compilation. - - -// typedefs -typedef unsigned long u32; -typedef u32 *ul[16]; - -// class defs -class class1 { - u32 var1; - class1(const class1 &); // Copy constructor - class1& operator=(const class1 &); // operator= member function -public: - class1(u32, ul*); - ul &ulref; - ~class1() {} -}; - - -// member function defs -class1::class1(u32 u, ul *l) : var1(u), ulref(*l) -{} -============================================================================*/ diff --git a/gcc/testsuite/g++.old-deja/g++.jason/typeck.C b/gcc/testsuite/g++.old-deja/g++.jason/typeck.C deleted file mode 100755 index cffbc87..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/typeck.C +++ /dev/null @@ -1,19 +0,0 @@ -// Bug: g++ fails to catch incompatibilities in the parameter lists when -// assigning. -// Build don't link: - -typedef struct S *type_p; -typedef struct S const *ctype_p; - -typedef ctype_p (*PF) (int); - -type_p callee (type_p arg) { return 0; } - -void foobar () -{ - static PF p = callee; // ERROR - - - p = callee; // ERROR - -} - -PF pp = callee; // ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.jason/typedef.C b/gcc/testsuite/g++.old-deja/g++.jason/typedef.C deleted file mode 100755 index fac78ce..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/typedef.C +++ /dev/null @@ -1,9 +0,0 @@ -// PRMS Id: 4687 -// Bug: g++ misinterprets typedefs of function type in class scope. -// Build don't link: - -struct A { - typedef int F(); - F *fp; - void* g() { return fp; } // gets bogus error - typing -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/typedef2.C b/gcc/testsuite/g++.old-deja/g++.jason/typedef2.C deleted file mode 100755 index 44a32de..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/typedef2.C +++ /dev/null @@ -1,12 +0,0 @@ -// PRMS Id: 5367 -// Bug: the nested name of C::func gets hosed. - -struct C { - typedef int func(int *, int *); -}; - -int -main() -{ - C::func *handler; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/typedef3.C b/gcc/testsuite/g++.old-deja/g++.jason/typedef3.C deleted file mode 100755 index 5b96451..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/typedef3.C +++ /dev/null @@ -1,8 +0,0 @@ -// Test that inheriting from a type typedefed to itself works. -// Build don't link: - -typedef struct class1 { - class1& operator=(const class1&); -} class1; - -class class2 : public class1 { }; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/typeid1.C b/gcc/testsuite/g++.old-deja/g++.jason/typeid1.C deleted file mode 100755 index f6cd45b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/typeid1.C +++ /dev/null @@ -1,11 +0,0 @@ -#include <typeinfo> -#include <iostream.h> - -struct foo { double f(int); }; - -int main() { - double f (int); - const std::type_info &r = typeid (f); - cout << typeid(f).name() << endl; - cout << typeid(foo::f).name() << endl; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/typeid2.C b/gcc/testsuite/g++.old-deja/g++.jason/typeid2.C deleted file mode 100755 index 64ecc5a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/typeid2.C +++ /dev/null @@ -1,30 +0,0 @@ -// PRMS Id: 11596 - -#include <typeinfo> -extern "C" int printf (const char *, ...); - -class Chicken -{ -public: - int eggs_per_day; -}; - -template <class Bird> -class Flock -{ -public: - Bird * flock_head; - int head_count; - void print_self() { - printf ("A flock of %d %ss\n", head_count, typeid (Bird).name ()); - printf ("A flock of %d %ss\n", head_count, typeid (*flock_head).name ()); - } -}; - -int main() -{ - Flock<Chicken> x; - printf ("%s\n", typeid(x).name()); - x.head_count = 42; - x.print_self(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/union.C b/gcc/testsuite/g++.old-deja/g++.jason/union.C deleted file mode 100755 index b145390..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/union.C +++ /dev/null @@ -1,11 +0,0 @@ -// Bug: g++ doesn't insert anon union members into class scope. -// Breaks groff. -// Build don't link: - -struct A { - union { - int i; - }; - - void foo () { i = 1; } // gets bogus error - -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/vecdel.C b/gcc/testsuite/g++.old-deja/g++.jason/vecdel.C deleted file mode 100755 index 717e967..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/vecdel.C +++ /dev/null @@ -1,19 +0,0 @@ -__SIZE_TYPE__ newsize = 0; -__SIZE_TYPE__ delsize = 0; - -struct A { - int i; - void * operator new [] (__SIZE_TYPE__ i) - { newsize = i; return ::operator new [](i); } - void operator delete [] (void *p, __SIZE_TYPE__ i) - { delsize = i; ::operator delete [](p); } -}; - -int main() -{ - A* ap = new A [2]; - delete [] ap; - if (!newsize || newsize != delsize) - return 1; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/virtual.C b/gcc/testsuite/g++.old-deja/g++.jason/virtual.C deleted file mode 100755 index 3fa952b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/virtual.C +++ /dev/null @@ -1,41 +0,0 @@ -// From: chw@bellcore.com (Charlie Woloszynski,MRE 2J-278,8295228,,27143) -// Newsgroups: gnu.g++.bug -// Subject: gcc-2.5.5 bug in multiple inheritance and pure virtual functions -// Date: 25 Jan 1994 23:41:36 -0500 - -// Bug: g++ fails to notice definitions of abstract virtuals. -// Build don't link: - -class A -{ -public: - virtual void a1() = 0; - virtual void a2() = 0; -}; - -class B -{ -public: - virtual void b1() = 0; - virtual void b2() = 0; -}; - - -class C: public A, public B -{ -public: - virtual void a2() {}; - virtual void b2() {}; -}; - -class D : public C -{ -public: - virtual void a1() {}; - virtual void b1() {}; -}; - -int main() -{ - D d; // gets bogus error -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/virtual2.C b/gcc/testsuite/g++.old-deja/g++.jason/virtual2.C deleted file mode 100755 index ef42f8b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/virtual2.C +++ /dev/null @@ -1,13 +0,0 @@ -struct A { - virtual A* f () { return this; } -}; - -struct B: public A { - virtual B* f () { return 0; } -}; - -int main () -{ - A* ap = new B; - return (ap->f () != 0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/warning1.C b/gcc/testsuite/g++.old-deja/g++.jason/warning1.C deleted file mode 100755 index 86a2160..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/warning1.C +++ /dev/null @@ -1,7 +0,0 @@ -// Bug: g++ protests that foo was never defined. -// Build don't link: - -static void foo (); -static void foo (); -static void foo () { } -void bar () { foo(); } // gets bogus error - diff --git a/gcc/testsuite/g++.old-deja/g++.jason/warning10.C b/gcc/testsuite/g++.old-deja/g++.jason/warning10.C deleted file mode 100755 index 8dbf5ed..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/warning10.C +++ /dev/null @@ -1,19 +0,0 @@ -// Don't warn about these comparisons. -// Build don't link: -// Special g++ Options: -W -Wall - -struct A { - unsigned int b : 28; -}; - -int f (int i, unsigned char u, A a, unsigned long ul) -{ - if ((u & 0x10) == 0) - return 1; - if (i == 0U) - return 1; - if (a.b > ul) - return 1; - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/warning2.C b/gcc/testsuite/g++.old-deja/g++.jason/warning2.C deleted file mode 100755 index 6b51dd0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/warning2.C +++ /dev/null @@ -1,14 +0,0 @@ -// g++ ought to warn about casting a base pointer to a derived reference. -// Build don't link: - -struct A { - virtual int f () = 0; -}; - -struct B: public A { int f () { } }; - -int main() -{ - B* bp; - A& ar = (A&)bp; // WARNING - -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/warning3.C b/gcc/testsuite/g++.old-deja/g++.jason/warning3.C deleted file mode 100755 index b63b9ca..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/warning3.C +++ /dev/null @@ -1,12 +0,0 @@ -// Bug: overloading of 'A' for template causes bogus shadowing warnings. -// Special g++ Options: -Wshadow -// Build don't link: - -template<class T> -class A -{ - public: - virtual ~A() {} -}; - -template class A<int>; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/warning4.C b/gcc/testsuite/g++.old-deja/g++.jason/warning4.C deleted file mode 100755 index a4eb4ac..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/warning4.C +++ /dev/null @@ -1,16 +0,0 @@ -// Bug: a virtual function with the same name in an unrelated class will -// cause a bogus overloading warning. -// Special g++ Options: -Woverloaded-virtual -// Build don't link: - -struct A { - virtual void foo (); -}; - -struct B { - virtual void bar (); -}; - -struct C: public A { - virtual void bar (); -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/warning5.C b/gcc/testsuite/g++.old-deja/g++.jason/warning5.C deleted file mode 100755 index 239d867..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/warning5.C +++ /dev/null @@ -1,24 +0,0 @@ -// PRMS Id: 5135 -// Bug: g++ complains that the result of the new expression is not used. -// Special g++ Options: -Wall - -extern "C" int printf (const char *, ...); -inline void * operator new (__SIZE_TYPE__, void *p) { return p; } - -class foo { -public: - foo() : a(42) {}; - int a; -}; - -int -main() -{ - char buffer[1024]; - - new (buffer) foo; - - foo* pY = (foo *)buffer; - - return pY->a != 42; -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/warning6.C b/gcc/testsuite/g++.old-deja/g++.jason/warning6.C deleted file mode 100755 index 920a469..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/warning6.C +++ /dev/null @@ -1,7 +0,0 @@ -// Special g++ Options: -Wunused -// Build don't link: - -struct A { - int i:8; - virtual ~A() {} -}; diff --git a/gcc/testsuite/g++.old-deja/g++.jason/warning7.C b/gcc/testsuite/g++.old-deja/g++.jason/warning7.C deleted file mode 100755 index 1fe03f8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/warning7.C +++ /dev/null @@ -1,6 +0,0 @@ -// PRMS Id: 5481 -// Special g++ Options: -Wunused -// Build don't link: - -struct A { }; -static A a = A(); diff --git a/gcc/testsuite/g++.old-deja/g++.jason/warning8.C b/gcc/testsuite/g++.old-deja/g++.jason/warning8.C deleted file mode 100755 index d6ea821..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/warning8.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: - -struct A { - A(); - ~A(); -}; - -struct B { - B (const A&); - ~B (); -}; - -const B& f () -{ - A a; - return a; // WARNING - returning reference to temporary -} diff --git a/gcc/testsuite/g++.old-deja/g++.jason/warning9.C b/gcc/testsuite/g++.old-deja/g++.jason/warning9.C deleted file mode 100755 index d46ba37..0000000 --- a/gcc/testsuite/g++.old-deja/g++.jason/warning9.C +++ /dev/null @@ -1,13 +0,0 @@ -// Special g++ Options: -Wsynth - -struct A { - operator int (); - A& operator= (int); // WARNING - not used below -}; - -main() -{ - A a, b; - - a = b; // WARNING - uses synthesized op= -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/access1.C b/gcc/testsuite/g++.old-deja/g++.law/access1.C deleted file mode 100755 index 75b7ec3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/access1.C +++ /dev/null @@ -1,34 +0,0 @@ -// Build don't link: -// GROUPS passed access -// access file -// Message-Id: <9211281852.AA24557@cove.cis.ufl.edu> -// From: Robert Forsman <thoth@cove.cis.ufl.edu> -// Subject: method access bug in gcc-2.3.1 on a sparc-sun-sunos4.1.2 -// Date: Sat, 28 Nov 92 13:52:14 EST - -extern "C" { - int atoi(const char*); -} - -struct thingus; - -class foo { -public: - static const foo alpha; - static const foo beta; - -private: - int i; - foo(thingus * s); -public: - foo() {i=0;} -}; - -struct thingus { - int i; -}; - -static thingus blah, blah2; - -const foo foo::alpha(&blah); -const foo foo::beta(&blah2); diff --git a/gcc/testsuite/g++.old-deja/g++.law/access2.C b/gcc/testsuite/g++.old-deja/g++.law/access2.C deleted file mode 100755 index 22f9184..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/access2.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed access -// access file -// Message-Id: <9306301534.AA05072@sparc1.cnm.us.es> -// From: juando@cnm.us.es (Juan D. Martin) -// Subject: Compiler lets access to private constructor in template. -// Date: Wed, 30 Jun 93 17:34:10 +0200 - -template <class T> class Foo -{ -private: - friend class Bar; // To avoid warning. - Foo(const T &v) {}; // ERROR - private -}; - - -int main() -{ - Foo<int>(1);// ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/access3.C b/gcc/testsuite/g++.old-deja/g++.law/access3.C deleted file mode 100755 index 7836fe5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/access3.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed access -// unsorted.2 file -// Date: Sat, 6 Jun 1992 18:23:03 -0400 -// From: Brendan Kehoe <brendan@cs.widener.edu> -// Message-Id: <199206062223.AA22653@betty.cs.widener.edu> -// Subject: bug with access control to member functions - - class X { - void g (int); // ERROR - is private - public: - void g (double); - }; - - class Y : public X { void f() { g (1); } };// ERROR - - diff --git a/gcc/testsuite/g++.old-deja/g++.law/access4.C b/gcc/testsuite/g++.old-deja/g++.law/access4.C deleted file mode 100755 index 994a610..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/access4.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't link: -// GROUPS passed access -// (Message bugs/access:3) -// From: jamshid@ses.com (Jamshid Afshar) -// Date: Wed, 2 Mar 94 18:24:22 CST -// Subject: g++ 2.5.5 doesn't warn about inaccessible virtual base ctor -// Message-ID: <9403030024.AA04534@ses.com> - -class ForceLeafSterile { - friend class Sterile; - ForceLeafSterile() {} // ERROR - -}; - -class Sterile : private virtual ForceLeafSterile { -public: - Sterile() {} - Sterile(const char* /*blah*/) {} -}; - -class Illegitimate : public Sterile { -public: - Illegitimate() {} // ERROR - can't access virtual base deflt ctor - Illegitimate(const char* /*blah*/) - : ForceLeafSterile() {} // ERROR - can't access default ctor - Illegitimate(const Illegitimate&) - {} // ERROR - can't access default ctor -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/access5.C b/gcc/testsuite/g++.old-deja/g++.law/access5.C deleted file mode 100755 index 8d25ed2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/access5.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: -// GROUPS passed access -// access file -// From: Jeffrey C. Gealow <jgealow@mtl.mit.edu> -// Date: Thu, 18 Feb 93 10:22:23 -0500 -// Subject: nested class access control bug -// Message-ID: <9302181522.AA29209@mtl.mit.edu> - - -class enclose { -public: - class nested_public { int x; }; -protected: - class nested_protected { int x; }; -private: - class nested_private { int x; }; -}; - -class derived : public enclose { - nested_public obj1; // ok - nested_protected obj2; // ok - nested_private obj3; // error// ERROR - .* , XFAIL *-*-* -}; - diff --git a/gcc/testsuite/g++.old-deja/g++.law/arg1.C b/gcc/testsuite/g++.old-deja/g++.law/arg1.C deleted file mode 100755 index 1712f93..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arg1.C +++ /dev/null @@ -1,29 +0,0 @@ -// Build don't link: -// GROUPS passed arg-matching -// arg-matching file -// Subject: argument matching depending on the def order -// From: kondo@akane.mech.ibaraki.ac.jp -// Date: Fri, 04 Sep 92 17:41:05 JST - -#include <iostream.h> -// check the order of declarations -class A { -public: - void f(double* p) { cout << "A(double*)\n"; } // ERROR - candidate - void f(int* p) { cout << "A(int*)\n"; } // ERROR - candidate -}; - -class B { -public: - void f(int* p) { cout << "B(int*)\n"; } // ERROR - candidate - void f(double* p) { cout << "B(double*)\n"; } // ERROR - candidate -}; - -int main() -{ - A a; - B b; - - a.f(0);// ERROR - .* - b.f(0);// ERROR - .* -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/arg10.C b/gcc/testsuite/g++.old-deja/g++.law/arg10.C deleted file mode 100755 index 2c21ced..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arg10.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed arg-matching -// arg-matching file -// From: Terry Lee <terry@uivlsisd.csl.uiuc.edu> -// Date: Sat, 14 May 1994 02:46:15 -0500 -// Subject: g++ 2.5.8 template<const void*> bug -// Message-ID: <199405140746.AA03993@uivlsisd.csl.uiuc.edu> - -template<class T> -class A { -public: - void func(const T& val) { } -}; - -int main() -{ - A<const void*> a; - int* ptr = 0; - a.func(ptr); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/arg11.C b/gcc/testsuite/g++.old-deja/g++.law/arg11.C deleted file mode 100755 index 4f0868e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arg11.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: -// GROUPS passed arg-matching -// From: gustavo@cpqd.br (Gustavo Chaves) -// Date: Wed, 25 May 94 09:38:00 EST -// Subject: problem with user defined conversions in initialization -// Message-ID: <9405251238.AA19815@moon.cpqd.br> - -struct String { String(const char*); }; - -struct Ack { Ack(String); }; - -struct S { void method(Ack); }; // ERROR - referenced below - -void function(Ack); - -int -foo(S *o) -{ // Neither call has a usable constructor for conversions of char[5] to Ack. - function("adsf");// ERROR - - o->method("adsf");// ERROR - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/arg2.C b/gcc/testsuite/g++.old-deja/g++.law/arg2.C deleted file mode 100755 index 5dbf483..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arg2.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: -// GROUPS passed arg-matching -// arg-matching file -// Message-Id: <199303032114.AA03574@kolvir.Boulder.ParcPlace.COM> -// From: Warner Losh <imp@boulder.parcplace.com> -// Subject: Overloading bug in g++ 2.3.3 (sparc) compiled by GNU C version 2.3.3 -// Date: Wed, 03 Mar 1993 14:14:02 MST - -class c1 { }; - -typedef void (*fnp)(void *); -typedef void (c1::*memfnp)(void *); -extern void fn1( fnp ); -extern void fn1( c1*, memfnp ); - -void f3(void *) { } - -void fn2() -{ - fn1((fnp) &f3); // Everybody likes this - fn1(&f3); // g++ complains here line 13 -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/arg3.C b/gcc/testsuite/g++.old-deja/g++.law/arg3.C deleted file mode 100755 index c984d3a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arg3.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: -// GROUPS passed arg-matching -typedef void* Ptr; - - -void func(int, const Ptr& p); - -template <class T> void func(T, const Ptr& p); - - -Ptr& return_ref(); - - -int main() -{ - char* x; - - func(x,return_ref()); // bug: - // call of func(int, const Ptr&) - // instead of func(char*,const Ptr&) - -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/arg4.C b/gcc/testsuite/g++.old-deja/g++.law/arg4.C deleted file mode 100755 index 2d4479d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arg4.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed arg-matching -// arg-matching file -// Message-Id: <14t4tyk@rpi.edu> -// From: jorgej@colossus.cs.rpi.edu (Joaquim Jorge) -// Subject: g++ 2.3.3 Doesn't check function types in initializer lists ? -// Date: Tue, 9 Mar 1993 21:39:08 GMT - -typedef void (*FuncPtr)(int a, float b); -class Amazing { int a; int b; int c; }; - -extern void *Wrong1(char *a, int *b); -extern void *Wrong2(Amazing a, int *b); -extern void *Wrong3(char *a, Amazing *b); -extern void Wrong4(char *a, int *b); -extern Amazing Wrong5(char *a, int *b); - -FuncPtr p = &Wrong5;// ERROR - .* -FuncPtr func_ptr_array[] = { &Wrong1, &Wrong2, &Wrong3, &Wrong4, &Wrong5, 0 };// ERROR - .* - diff --git a/gcc/testsuite/g++.old-deja/g++.law/arg5.C b/gcc/testsuite/g++.old-deja/g++.law/arg5.C deleted file mode 100755 index 276068a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arg5.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed arg-matching -extern double pow(double,int*); - -extern "C" { - extern int printf(char*,...); - extern double pow(double, double); -} - -int main() -{ - if (pow (2.0, 3.0) != 8.0) - printf ("FAIL\n"); - else - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/arg6.C b/gcc/testsuite/g++.old-deja/g++.law/arg6.C deleted file mode 100755 index 2ad7732..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arg6.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed arg-matching -// arg-matching file -// Message-Id: <9305032310.AA03900@malachite.bbn.com> -// From: Dan Franklin <dan@diamond.bbn.com> -// Subject: overloaded function bug -// Date: Mon, 3 May 93 19:10:10 EDT - - - typedef int (*fnp)(int, void*); - void dispatch_insert(int, int, fnp, void* = 0); - void dispatch_insert(int, int, long*, char*); - typedef void (*InsertFunP)(int, int, fnp, void*); - extern void f(InsertFunP); - void g() { f(dispatch_insert); } diff --git a/gcc/testsuite/g++.old-deja/g++.law/arg7.C b/gcc/testsuite/g++.old-deja/g++.law/arg7.C deleted file mode 100755 index 7ea89ec..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arg7.C +++ /dev/null @@ -1,33 +0,0 @@ -// GROUPS passed arg-matching -// arg-matching file -// Message-Id: <9305041759.AA04913@malachite.bbn.com> -// From: Dan Franklin <dan@diamond.bbn.com> -// Subject: overloaded function resolved incorrectly -// Date: Tue, 4 May 93 13:59:18 EDT - -#include <stdio.h> - -// Given the following overloaded function definitions - -void ovf(unsigned long, short, short) { printf ("PASS\n"); } -void ovf( int, short, unsigned long) { printf ("FAIL\n"); } - -// and the call -// -// ovf(unsigned long, unsigned int, unsigned int) -// -// it seems to me (and to cfront) that this should resolve to ovf #1 above, -// but g++ resolves it to ovf #2. Resolving to ovf #1 requires two conversions -// (unsigned int => short) while resolving to ovf #2 takes two conversions -// (unsigned long => int, unsigned int => short) and a promotion -// (unsigned int => unsigned long). - -int main(int, char**) -{ - unsigned long pixmap = 0; - unsigned int x = 0; - unsigned int y = 0; - - ovf(pixmap, x, y); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/arg8.C b/gcc/testsuite/g++.old-deja/g++.law/arg8.C deleted file mode 100755 index 802471b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arg8.C +++ /dev/null @@ -1,27 +0,0 @@ -// GROUPS passed arg-matching -// arg-matching file -// Message-Id: <9307081747.AA14030@tnt> -// From: mclaugh@tnt.acsys.com (Mark A. McLaughlin) -// Subject: g++ bug -// Date: Thu, 8 Jul 93 11:47:28 MDT - - -#include <iostream.h> -#include <stdio.h> - -// With this declaration the program will not link. -template <class Type> ostream & save(ostream & os, Type T); - - template <class Type> ostream & -save(ostream & os, Type T) { - return os << T; -} // save - - int -main() { - int i = 10; - save((ostream &)cout, i) << endl; - short int s = 5; - save((ostream &)cout, s) << endl; - printf ("PASS\n"); -} // main diff --git a/gcc/testsuite/g++.old-deja/g++.law/arg9.C b/gcc/testsuite/g++.old-deja/g++.law/arg9.C deleted file mode 100755 index 6f5e4b8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arg9.C +++ /dev/null @@ -1,39 +0,0 @@ -// Build don't link: -// GROUPS passed arg-matching -// arg-matching file -// Message-Id: <199405132049.QAA06835@elan.cs.UMD.EDU> -// Subject: Bug in g++ 2.4.5 and 2.5.8 -// Date: Fri, 13 May 1994 16:49:22 -0400 -// From: Evan Rosser <ejr@cs.umd.edu> - -#include <assert.h> -#include <stdio.h> -#include <stdlib.h> - -class TupleIterator { -public: - TupleIterator(int *tpl); - int& operator*(); - int live() const; -// The compile fails with "no post-increment operator for type" at "TI++" -// below. -// It succeeds with the same declarations if set_position does not take an int. -// This occurs with G++ 2.4.5 and 2.5.8. -// Sun CC works OK with either case. - void operator++(int); - void set_position(int); -private: -}; - -int main() { - -int t[5]; -t[1] = 1; t[2] = 2;t[3] = 3;t[4] = 4; -TupleIterator TI(t); - - while(TI.live()){ - printf("%d", *TI); - TI++; - } -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/arm1.C b/gcc/testsuite/g++.old-deja/g++.law/arm1.C deleted file mode 100755 index 112c6d8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arm1.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// GROUPS passed ARM-compliance -// arm file -// Message-Id: <9211191128.AA14718@us-es.sel.de> -// From: dcb@us-es.sel.de -// Subject: ARM p79 trivial bug -// Date: Thu, 19 Nov 92 12:28:24 +0100 - -extern "C" int printf( const char *, ...); - -int main() -{ - int a = 1 ; - int b = 2 ; - int c = 3 ; - - (a = b) = c ; - printf( " %d %d %d\n", a, b, c); - return 0 ; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/arm10.C b/gcc/testsuite/g++.old-deja/g++.law/arm10.C deleted file mode 100755 index a57785e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arm10.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// GROUPS passed ARM-compliance -// arm file -// Message-Id: <1oab2hINN7m@gap.caltech.edu> -// From: tll@cco.caltech.edu (Tal Lewis Lancaster) -// Subject: ARM Page 65 -// Date: 18 Mar 1993 17:21:21 GMT - -int(*p)[10]=new int[20][10]; diff --git a/gcc/testsuite/g++.old-deja/g++.law/arm11.C b/gcc/testsuite/g++.old-deja/g++.law/arm11.C deleted file mode 100755 index 14f6b9d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arm11.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed ARM-compliance -// arm file -// Message-Id: <9302181055.AA12522@slsvitt> -// From: dcb@us-es.sel.de (David Binderman 3841) -// Subject: Page 81 of the ARM -// Date: Thu, 18 Feb 93 11:55:15 +0100 - - -int main() { - int x[ 10, 11]; // ERROR - .* - - return 0; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/arm12.C b/gcc/testsuite/g++.old-deja/g++.law/arm12.C deleted file mode 100755 index 89e2a4d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arm12.C +++ /dev/null @@ -1,47 +0,0 @@ -// Build don't link: -// GROUPS passed ARM-compliance -// arm file -// From: belley@cae.ca (Benoit Belley 3218) -// Subject: Bad access control with private constructor and derivation -// Date: Fri, 28 May 1993 12:39:57 -0400 (EDT) - -#include <iostream.h> - -class X -{ -public: - void f(); - -private: - X(); -}; - -class Y : public X -{ -public: - Y(); -}; - -X::X() -{// ERROR - .* - cout << "X::X()" << endl; -} - -void X::f() -{ - cout << "X::f()" << endl; -} - -Y::Y() -{// ERROR - within this - cout << "Y::Y()" << endl; -} - - -int main() -{ - Y y; - y.f(); -} - - diff --git a/gcc/testsuite/g++.old-deja/g++.law/arm13.C b/gcc/testsuite/g++.old-deja/g++.law/arm13.C deleted file mode 100755 index cf62278..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arm13.C +++ /dev/null @@ -1,14 +0,0 @@ -// GROUPS passed ARM-compliance -#include <stdio.h> -#include <stdlib.h> - -inline void *operator new(size_t, void *place) { return place; } - -int main() -{ - int* p = (int*) malloc(sizeof(int)); - (void) new (p) int(1); - p->int::~int(); - free(p); - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/arm14.C b/gcc/testsuite/g++.old-deja/g++.law/arm14.C deleted file mode 100755 index 9167428..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arm14.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: -// GROUPS passed ARM-compliance -// unsorted.2 file -// Message-Id: <BpBu19.GrF@math.waterloo.edu> -// Date: Thu, 4 Jun 1992 15:07:56 GMT -// Subject: access control -// From: gjditchf@plg.waterloo.edu (Glen Ditchfield) - - -class X { - private: - enum E1 {a1, b1}; - public: - enum E2 {a2, b2}; - }; - -void h(X* p) { - X::E2 e2; - int x2 = X::a2; - - X::E1 e1; // Should be rejected, but isn't.// ERROR - .* , XFAIL *-*-* - int x1 = X::a1; // ERROR - Should be rejected, and is. - } - diff --git a/gcc/testsuite/g++.old-deja/g++.law/arm15.C b/gcc/testsuite/g++.old-deja/g++.law/arm15.C deleted file mode 100755 index 639c1fc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arm15.C +++ /dev/null @@ -1,53 +0,0 @@ -// GROUPS passed ARM-compliance -// arm file -// From: Johan Bengtsson <jbn@lulea.trab.se> -// Date: Thu, 21 Oct 93 16:10:25 +0100 -// Subject: gcc 2.4.5 initializes base classes in mem-initializer order -// Message-ID: <9310211510.AA14943@holden.lulea.trab.se> - -#include <stdio.h> - -int state = 0; - -class A { public: - A() { - if (state == 0) - state = 1; - else { - printf ("FAIL\n"); - exit (1); - } - } -}; - -class B { public: - B() { - if (state == 1) - state = 2; - else { - printf ("FAIL\n"); - exit (1); - } - } -}; - -class AB : public A, public B { public: - AB() : B(), A() { - if (state == 2) - state = 3; - else { - printf ("FAIL\n"); - exit (1); - } - } -}; - -int main() -{ - AB ab; - if (state == 3) - printf("PASS\n"); - else - printf("FAIL\n"); - exit (state != 3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/arm16.C b/gcc/testsuite/g++.old-deja/g++.law/arm16.C deleted file mode 100755 index 894c37c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arm16.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// Special g++ Options: -ansi -Wall -pedantic -// GROUPS passed ARM-compliance -// arm file -// From: Olaf.Weber@cwi.nl -// Date: Fri, 2 Dec 1994 09:14:25 +0100 -// Subject: Omitting & when obtaining a pointer to member function. -// Message-ID: <9412020814.AA00604=olaf@havik.cwi.nl> - -struct C { - void foo(); -}; - -void (C::*pfm)() = C::foo;// ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.law/arm2.C b/gcc/testsuite/g++.old-deja/g++.law/arm2.C deleted file mode 100755 index b679c93..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arm2.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed ARM-compliance -// arm file -// Message-Id: <199301260140.AA13734@world.std.com> -// From: gparker@world.std.com (Glenn P Parker) -// Subject: gcc bug -// Date: Mon, 25 Jan 1993 20:40:44 -0500 - -int f() { return 1; } - -int main() -{ - int (&fr)() = f; - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/arm3.C b/gcc/testsuite/g++.old-deja/g++.law/arm3.C deleted file mode 100755 index 3c888ba..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arm3.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed ARM-compliance -// arm file -// Message-Id: <199301260139.AA13555@world.std.com> -// From: gparker@world.std.com (Glenn P Parker) -// Subject: gcc bug -// Date: Mon, 25 Jan 1993 20:39:19 -0500 - -class X { - enum S { blue, pink }; - int S; -public: - void f (enum S arg) ; -}; - -void X::f (enum S arg) -{ - S = arg; // g++ gives error on this line. -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/arm4.C b/gcc/testsuite/g++.old-deja/g++.law/arm4.C deleted file mode 100755 index 2fa43c3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arm4.C +++ /dev/null @@ -1,28 +0,0 @@ -// GROUPS passed ARM-compliance -// arm file -// Message-Id: <199301272139.AA25489@world.std.com> -// From: kol@world.std.com (Nikolay Yatsenko) -// Subject: g++ bug -// Date: Wed, 27 Jan 1993 16:39:10 -0500 - -extern "C" int printf(const char*,...); -int count = 0; - -struct S { - int i; - S(int b) { - i = b; - count++; } -}; - -int main(void) -{ - double a = 2.0; - - S x(int (a)); - if (count > 0) - printf ("FAIL\n"); - else - printf ("PASS\n"); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/arm5.C b/gcc/testsuite/g++.old-deja/g++.law/arm5.C deleted file mode 100755 index d39b476..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arm5.C +++ /dev/null @@ -1,24 +0,0 @@ -// GROUPS passed ARM-compliance -// arm file -// Message-Id: <9212072127.AA24243@us-es.sel.de> -// From: dcb@us-es.sel.de -// Subject: page 78 of the ARM -// Date: Mon, 7 Dec 92 22:27:09 +0100 - -extern "C" int printf( const char *, ...); - -int & max( int & a, int & b) { - return (a < b) ? b : a; -} - -int main( void) { - int a = 1; - int b = 2; - int & c = max( a, b); - - if (&c == &b) - printf( "PASS\n"); - else - printf( "FAIL\n"); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/arm6.C b/gcc/testsuite/g++.old-deja/g++.law/arm6.C deleted file mode 100755 index e1715ee..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arm6.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: -// GROUPS passed ARM-compliance -// arm file -// Message-Id: <9211231051.AA11287@us-es.sel.de> -// From: dcb@us-es.sel.de -// Subject: ARM page 87 -// Date: Mon, 23 Nov 92 11:51:38 +0100 - - -int main() { - int a; - - switch (a) { - case 1: - int v2 = 3;// ERROR - crosses.* - case 2:// ERROR - jump.* - if (v2 == 7) // error not flagged by 2.3.1 - ; - } - - return 0; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/arm7.C b/gcc/testsuite/g++.old-deja/g++.law/arm7.C deleted file mode 100755 index 1f3d430..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arm7.C +++ /dev/null @@ -1,41 +0,0 @@ -// Special g++ Options: -w -// GROUPS passed ARM-compliance -// arm file (also in cvt file) -// Message-Id: <9303061246.AA09402@gjetost.cs.wisc.edu> -// From: solomon@cs.wisc.edu (Marvin Solomon) -// Subject: Incorrect resolution of conversion path -// Date: Sat, 6 Mar 93 06:46:27 -0600 - - -extern "C" void printf(const char *,...); - -class Base { -public: - int i; - Base(int ii) : i(ii) {} -}; - -class Derived : public Base { -public: - Derived(int ii) : Base(ii) {} - operator Base&(); -}; - -Derived::operator Base&() { - Base *b = new Base(100*i); - return *b; -} - -void f(Base &b) { - if (b.i == 99) - printf ("PASS\n"); - else - printf ("FAIL\n"); -} - -int main() { - Derived d(99); - f(d); - return 0; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/arm8.C b/gcc/testsuite/g++.old-deja/g++.law/arm8.C deleted file mode 100755 index ef340c6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arm8.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed ARM-compliance -// arm file -// Message-Id: <9303161105.AA29336@slsvitt> -// From: dcb@us-es.sel.de (David Binderman 3841) -// Subject: Page 141 of the ARM -// Date: Tue, 16 Mar 93 12:05:24 +0100 - -struct K { - void f( int *p = 0); // ERROR - previous specification -}; - -extern int * q; - -void K::f( int *p = q);// ERROR - .* - diff --git a/gcc/testsuite/g++.old-deja/g++.law/arm9.C b/gcc/testsuite/g++.old-deja/g++.law/arm9.C deleted file mode 100755 index 35658b1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/arm9.C +++ /dev/null @@ -1,33 +0,0 @@ -// Build don't link: -// GROUPS passed ARM-compliance -#include <iostream.h> -enum f1 { - F1 -}; - -enum f2 { - F2 -}; - -class A { -public: - void set (f1 f); -}; -void A::set (f1 f) { cout << "called A f1\n";} - -class B : public A { -public: - void set (f2 f); -}; -void B::set (f2 f) { cout << "called B\n";} // ERROR - candidate - -int main() { - B b; - b.set(F1); // ARM page 309: should call A.set(f1) and that what g++ does,// ERROR - .* - // but 13.1 of ARM clearly states that it should call B::set() - // or generate an error because overloading works only for - // functions within the same scope (first page of chapter 13) - // while member of derived and base classes are considered to - // belong to different scopes. Thus B::set() should have - // hidden (completely) the A::set() function. -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/array1.C b/gcc/testsuite/g++.old-deja/g++.law/array1.C deleted file mode 100755 index 13250c6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/array1.C +++ /dev/null @@ -1,31 +0,0 @@ -// GROUPS passed arrays -// array file -// Message-Id: <9204120353.AA06266@cs.rice.edu> -// From: dougm@cs.rice.edu (Doug Moore) -// Subject: constructors not called on new'ed array elements -// Date: Sat, 11 Apr 92 22:53:35 CDT - -#include <stdio.h> - -int i = 0; - -class foo -{ -private: - static foo *array; -public: - foo() - { - i++; - } -}; - -foo* foo::array = new foo [5]; - -int main() -{ - if (i != 5) - printf ("FAIL\n"); - else - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/array2.C b/gcc/testsuite/g++.old-deja/g++.law/array2.C deleted file mode 100755 index 0147a4a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/array2.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS passed arrays -// excess errors test - XFAIL *-*-* -// array file -// Message-Id: <"nac.no.188:05.10.92.14.37.45"@nac.no> -// From: frode@auticon.no -// Subject: prototype bug ? -// Date: Thu, 5 Nov 92 15:37:34 PST - - extern unsigned char * (*trt_def(int))[][2]; - extern unsigned char * (trt_rplst(unsigned char *(*)[][2])); diff --git a/gcc/testsuite/g++.old-deja/g++.law/bad-error1.C b/gcc/testsuite/g++.old-deja/g++.law/bad-error1.C deleted file mode 100755 index 09a6878..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/bad-error1.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed bad-errors -// bad-error file -// Message-Id: <9301081103.AA29469@jclark.com> -// From: jjc@jclark.com (James Clark) -// Subject: initializer for static class member array -// Date: Fri, 8 Jan 93 11:03:05 GMT - -struct A { - static int v[]; -}; - -int A::v[1] = { 1 }; - diff --git a/gcc/testsuite/g++.old-deja/g++.law/bad-error3.C b/gcc/testsuite/g++.old-deja/g++.law/bad-error3.C deleted file mode 100755 index c5ce118..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/bad-error3.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// GROUPS passed bad-errors -// bad-error file -// Date: Sun, 31 Jul 1994 11:37:43 +1000 (EST) -// From: Rohan LENARD <rjl@iassf.easams.com.au> -// Subject: g++-2.6.0 gives wrong warning for placement syntax new -// Message-Id: <0iCk1b0000000z0VY0@iassf.easams.com.au> - - -#include <stddef.h> - -void * operator new(size_t, int *); -void * operator new(size_t, void *); - -int *x = 0; -int foo(){ -new (x) int *; -new (&x) int *; -new (x) int *; // This is identical to line 8 !!! -return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/bad-error4.C b/gcc/testsuite/g++.old-deja/g++.law/bad-error4.C deleted file mode 100755 index 09461c8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/bad-error4.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed bad-errors -#include <stddef.h> - -void * operator new(size_t, int *); -void * operator new(size_t, void *); - -int *x = 0; -int foo(){ -new (x) int *; -new (&x) int *; -new (x) int *; // This is identical to line 8 !!! -return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/bad-error6.C b/gcc/testsuite/g++.old-deja/g++.law/bad-error6.C deleted file mode 100755 index 497a49d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/bad-error6.C +++ /dev/null @@ -1,26 +0,0 @@ -// Build don't link: -// GROUPS passed bad-errors -typedef __SIZE_TYPE__ size_t; - -class tt { - public: - tt(int); - - private: - void *operator new(size_t a); // Forbid object creation in heap memory. -}; - -void st(const tt&, int); - -void ff(int i, int j) -{ - if( i > 0 ) { - // This work ok. - tt a_tt(i); - st(a_tt, j); - } - else { - // This triggers an error because of private operator new ????. - st(tt(-i), j); - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/bad-error7.C b/gcc/testsuite/g++.old-deja/g++.law/bad-error7.C deleted file mode 100755 index 434921d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/bad-error7.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: -// GROUPS passed bad-errors -#include <iostream.h> - -class ParX - { - public: - ParX() {} - }; - -class X : public ParX - { - public: - void fn2() { cout << "hi" << endl; } - }; - -int main() - { - X x; - ParX* pParX = &x; - void (ParX::*p)() = (void (ParX::*)()) &X::fn2; // line 19 - - (pParX->*p)(); - } diff --git a/gcc/testsuite/g++.old-deja/g++.law/bit-fields1.C b/gcc/testsuite/g++.old-deja/g++.law/bit-fields1.C deleted file mode 100755 index ed100af..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/bit-fields1.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// GROUPS passed bit-fields -typedef int A; - -struct B -{ - int A : 2; -} ; - diff --git a/gcc/testsuite/g++.old-deja/g++.law/bit-fields2.C b/gcc/testsuite/g++.old-deja/g++.law/bit-fields2.C deleted file mode 100755 index beb34d0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/bit-fields2.C +++ /dev/null @@ -1,36 +0,0 @@ -// GROUPS passed bit-fields -// bitfield file -// Message-Id: <92Oct29.191913est.62@jarvis.csri.toronto.edu> -// From: mdivax1!robinson@ai.mit.edu (Jim Robinson) -// Subject: gcc 2.2.2 C++ bug in handling :0 bit fields -// Date: Thu, 29 Oct 1992 19:18:28 -0500 -// -// Also applies to: -// bitfield file -// From: Jaimie Wilson/MSL <Jaimie_Wilson@msl.isis.org> -// Date: Fri, 28 Jan 1994 06:11:43 -0500 -// Subject: GCC bug report - - -#include <stdio.h> -#include <stddef.h> - -struct foo { - char a; - char b; - unsigned int : 0; /* force word alignment */ - char c; -}; - -int -main(int argc, char **argv) -{ - struct foo bar; - - if (offsetof (struct foo, c) > sizeof (unsigned int)) - printf ("FAIL\n"); - else - printf ("PASS\n"); - return 0; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/bit-fields3.C b/gcc/testsuite/g++.old-deja/g++.law/bit-fields3.C deleted file mode 100755 index 7c7e694..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/bit-fields3.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// GROUPS passed bit-fields - class t { - short :(sizeof(short)-2); - public: - t(); - }; diff --git a/gcc/testsuite/g++.old-deja/g++.law/builtin1.C b/gcc/testsuite/g++.old-deja/g++.law/builtin1.C deleted file mode 100755 index e9b4654..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/builtin1.C +++ /dev/null @@ -1,17 +0,0 @@ -// GROUPS passed builtins -// Apparently not in g++ bug snapshot (was originally sent to bug-gcc) -// Message-Id: <m0p74Fh-0002fCC@neal.ctd.comsat.com> -// Date: Tue, 7 Dec 93 10:23 EST -// From: neal@ctd.comsat.com (Neal Becker) -// Subject: builtin_alloca on hpux (gcc-2.5.6) -// We have to avoid using -ansi, which results in a call to alloca instead of -// the use of __builtin_alloca, and thus ends up being unresolved. -// Special g++ Options: - -extern "C" void* alloca( __SIZE_TYPE__ ); -extern "C" int printf (const char *, ...); - -void* junk() { - return alloca(10); -} -main() { printf ("PASS\n");} diff --git a/gcc/testsuite/g++.old-deja/g++.law/casts1.C b/gcc/testsuite/g++.old-deja/g++.law/casts1.C deleted file mode 100755 index 9cfeaa1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/casts1.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// GROUPS passed casts -// casts file -// From: dcb@us-es.sel.de (David Binderman 3841) -// Date: Thu, 18 Feb 93 14:42:48 +0100 -// Subject: Page 67 of the ARM -// Message-ID: <9302181342.AA14050@slsvitt> - -int main() { - (struct T { int b; } *) 0; // ERROR - - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/casts2.C b/gcc/testsuite/g++.old-deja/g++.law/casts2.C deleted file mode 100755 index 11a36b9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/casts2.C +++ /dev/null @@ -1,39 +0,0 @@ -// Build don't link: -// GROUPS passed casts -class VObject; - -typedef int boolean; - -typedef boolean (VObject::*method)(); -typedef boolean (VObject::*method0)(); -typedef boolean (VObject::*method1)(long); - -#define methodOf(o,m) (method)(&o::m) - - -class VObject { - public: - boolean perform(method ); - boolean perform(method , long); - void affectMethod(method ); - void dummy(){}; -}; - - -boolean VObject::perform(method m) -{ - method0 q = (method0)m; - return(this->*q)(); -} - - -boolean VObject::perform(method m, long param) -{ - method1 q = (method1)m; - return(this->*q)(param); - } - -void VObject::affectMethod(method m) -{ - m = methodOf(VObject, dummy); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/casts3.C b/gcc/testsuite/g++.old-deja/g++.law/casts3.C deleted file mode 100755 index e76f61c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/casts3.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// Special g++ Options: -pedantic-errors -// GROUPS passed casts -// casts file -// From: fjh@cs.mu.oz.au -// Message-Id: <9310121939.29641@munta.cs.mu.OZ.AU> -// Subject: should emit diagnostic for `int *p = (void *)0;' -// Date: Wed, 13 Oct 93 5:39:35 EST - int *p = (void *)0;// ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.law/code-gen1.C b/gcc/testsuite/g++.old-deja/g++.law/code-gen1.C deleted file mode 100755 index 0f7c610..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/code-gen1.C +++ /dev/null @@ -1,20 +0,0 @@ -// GROUPS passed code-generation -// code-gen file -// From: Jeffrey C. Gealow <jgealow@mtl.mit.edu> -// Date: Sun, 4 Jul 93 18:57:53 -0400 -// Subject: increment bug (0 + 1 + 1 = 3) -// Message-ID: <9307042257.AA23538@mtl.mit.edu> - -#include <stdio.h> - -int main() -{ - int i = 0; - (++i)++; - if (i == 2) - printf ("PASS\n"); - else - printf ("FAIL\n"); -} - - diff --git a/gcc/testsuite/g++.old-deja/g++.law/code-gen2.C b/gcc/testsuite/g++.old-deja/g++.law/code-gen2.C deleted file mode 100755 index 88dd13f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/code-gen2.C +++ /dev/null @@ -1,34 +0,0 @@ -// GROUPS passed code-generation -// code-gen file -// From: Gunther Seitz <Gunther.Seitz@regent.e-technik.tu-muenchen.dbp.de> -// Date: Thu, 18 Mar 1993 10:45:29 +0100 -// Message-ID: <93Mar18.104538met.1094@regatta.regent.e-technik.tu-muenchen.de> - - -#include <stdio.h> - -class X { - -public: - double x; - X () { x=3.5; } // Here we go. This assignment fails because - // of X::x being aligned on a doubleword - // boundary, not a quadword one. - }; - - -class A : public virtual X {}; // Only way to produce the -class B : public virtual X {}; // error is to use this -class C : public virtual X {}; // construct of virtual - // base classes. - -class Y : public A, public B, public C {}; - - -int main () -{ - Y y; // To call the constructor - printf ("PASS\n"); - } - - diff --git a/gcc/testsuite/g++.old-deja/g++.law/code-gen4.C b/gcc/testsuite/g++.old-deja/g++.law/code-gen4.C deleted file mode 100755 index c060d66..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/code-gen4.C +++ /dev/null @@ -1,30 +0,0 @@ -// GROUPS passed code-generation -// code-gen file -// From: david.binderman@pmsr.philips.co.uk -// Date: Tue, 17 Aug 93 10:09:38 BST -// Subject: .* broken in 2.4.5 -// Message-ID: <9308170909.AA05509@pmsr.philips.co.uk> - -class A { -public: - char c; -}; - -typedef char A::*PMA; - -PMA pmA = &A::c; - -A oA; - -extern "C" int printf( const char *, ...); - -int main() -{ - oA.c = 'q'; - - if ( (oA .* pmA)) - printf( "PASS\n"); - else - printf(" FAIL\n"); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/code-gen5.C b/gcc/testsuite/g++.old-deja/g++.law/code-gen5.C deleted file mode 100755 index 023b623..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/code-gen5.C +++ /dev/null @@ -1,283 +0,0 @@ -// GROUPS passed code-generation -// code-gen file -// From: "David" <norman@pi14.arc.umn.edu> -// Date: Mon, 15 Nov 1993 20:59:14 -0600 (CST) -// Subject: An error! -// Message-ID: <9311160259.AA03353@pi14.arc.umn.edu> - -#include <stdlib.h> -#include <stdio.h> -#include <assert.h> -#include <fstream.h> -#include <iostream.h> -#include <math.h> - -#define ANSI_C - -typedef double VEC ; - -class Vector; - -class VectorInt -{ - public: - - /* Nothing public!! Only Vector can use this class */ - - private: - - VectorInt( int ); - VectorInt( int, double *, int = 0 ); - VectorInt( const VectorInt & ); - ~VectorInt(); - - VectorInt *refer(); - void unrefer(); - int count; /* Number of Vector's refering to me */ - - VEC *vec; - - friend class Vector; - friend class VecElem; -}; - -class VecElem -{ - public: - - operator double(); - double operator=( double ); - - private: - - VecElem( Vector &, int ); - VecElem( const VecElem & ); - - Vector &v; - int row; /* Row element refers to */ - - friend class Vector; -}; - -class Vector -{ - public: - - Vector(); // Must be assigned to before used - Vector( VectorInt * ); - Vector( int ); - Vector( int, double *, int beg = 0 ); - Vector( const Vector & ); - Vector &operator=( const Vector & ); - ~Vector() { if(r) r->unrefer(); }; - - int row() const { return 19; } - int dim() const { return 10; } - - double operator()( int ) const; - VecElem operator()( int ); - - double assign( int, double ); - - friend ostream& operator<<( ostream&, const Vector& m ); - - private: - - VectorInt *r; /* Reference to real data */ - - friend class VecElem; - friend class LUDecom; - friend class SVD; -}; - - -Vector:: -Vector() - : r(0) -{} - -Vector:: -Vector( VectorInt *vi ) - : r(vi) -{ - r->refer(); -} - -Vector:: -Vector( int row ) -{ - assert( row > 0 ); - - r = new VectorInt( row ); - - r->refer(); -} - -Vector:: -Vector( int row, double *d, int beg ) -{ - assert( row > 0 ); - - r = new VectorInt( row, d, beg ); - - r->refer(); -} - -Vector:: -Vector( const Vector &A ) - : r( A.r->refer() ) -{} - -Vector& Vector:: -operator=( const Vector &A ) -{ - if( r ) - r->unrefer(); - - r = A.r->refer(); - - return *this; -} - -double Vector:: -operator()( int row ) const -{ - assert( r ); - - return *r->vec; -} - -VecElem Vector:: -operator()( int r ) -{ - assert(r); - - return VecElem( *this, r ); -} - - /* assign changes the matrix, it does not create a new one! */ -double Vector:: -assign( int rownum, double d ) -{ - assert(r); - - if( rownum > row() || rownum <= 0 ) { - cerr << "Warning: trying to assign out of bounds" << endl; - cerr << "row " << rownum << endl; - cerr << "Vector size " << row() << endl; - abort(); - } - - if( r->count == 1 ) { - /* Don't need to create a new matrix, since we are the only */ - /* one pointing to ours */ - } - else { - VectorInt *vi = new VectorInt( *r ); - r->unrefer(); - r = vi->refer(); - } - - return d; -} - - -VectorInt:: -VectorInt( int sx ) - : vec( new double[sx] ), count(0) -{ } - -VectorInt:: -VectorInt( int sx, double *, int ) - : vec( new double[sx] ), count(0) -{ -} - -VectorInt:: -VectorInt( const VectorInt & ) - : vec( new double[10] ), count(0) -{ -} - -VectorInt * VectorInt:: -refer() -{ - count ++; - return this; - - // cout << "Refering vec" << endl; -} - -void VectorInt:: -unrefer() -{ - count--; - - if( count == 0 ) { - delete this; - } - - // cout << "Unrefering vec" << endl; -} - -VectorInt:: -~VectorInt() -{ - delete vec; - vec = 0; -} - -VecElem:: -VecElem( Vector &vec, int r ) - : v(vec), row(r) -{ - if( r < 1 || r > vec.row() ) { - cerr << "Trying to access vector element out of bounds" << endl; - abort(); - } -} - -VecElem:: -VecElem( const VecElem &elem ) - : v(elem.v), row(elem.row) -{} - -VecElem:: -operator double() -{ - assert( v.r->vec ); - return *v.r->vec; -}; - -double VecElem:: -operator=( double d ) -{ - return v.assign( row, d ); -} - - - - - -int makeforms( Vector cen, Vector **a, Vector **b ); - -int main() -{ - Vector *a[8], *b[8], disp(3); - Vector cen(3), cen2(3); - int i, j; - - if (makeforms (cen,a,b) != 10) - printf ("FAIL\n"); - else - printf ("PASS\n"); - - -} - -int -makeforms( Vector cen, Vector **a, Vector **b) -{ - return 10; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/copy1.C b/gcc/testsuite/g++.old-deja/g++.law/copy1.C deleted file mode 100755 index 5cea11a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/copy1.C +++ /dev/null @@ -1,66 +0,0 @@ -// GROUPS passed copy-ctors -#include <stdio.h> - -int pass = 0; -class name { - int namestuff; -public: - name() { - namestuff = 111; - } - name(const name& subject); - - name & operator = (const name& right) { - this->namestuff = right.namestuff; - return *this; - } - - ~name() { - ; - } -}; - -name::name(const name& subject) { - pass = 1; -} - -class person { - int personstuff; - name personname; -public: - person() { - ; - personstuff = 222; - } - ~person() { - ; - } - void print() { - ; - } - -}; - -void -test(person argp) -{ - person testp; - - ; - argp.print(); - testp = argp; - argp.print(); - testp.print(); - ; -} - -int main() -{ - person mainp; - test(mainp); - if (pass) - printf ("PASS\n"); - else - printf ("FAIL\n"); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/copy2.C b/gcc/testsuite/g++.old-deja/g++.law/copy2.C deleted file mode 100755 index 3935cfd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/copy2.C +++ /dev/null @@ -1,35 +0,0 @@ -// Build don't link: -// GROUPS passed copy-ctors -// copy file -// From: Vivek Khera <khera@cs.duke.edu> -// Date: Mon, 15 Nov 1993 16:02:18 -0500 -// Subject: g++ 2.5.3 fails to automatically generate default initializer -// Message-ID: <9311152102.AA21248@thneed.cs.duke.edu> - -class String -{ - private: - char a[100]; - int len; - public: - String(); -}; - -String::String() -{ - len = 0; -} - - -struct List -{ - String item[100]; - int num_items; -// List(); // uncomment this line to let compile work -}; - -int -main(int argc, char **argv) -{ - List a; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors1.C b/gcc/testsuite/g++.old-deja/g++.law/ctors1.C deleted file mode 100755 index 79ca94a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors1.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed constructors -// ctor file -// From: rac@qedinc.com (Robert Clark) -// Date: Tue, 14 Dec 93 10:45:50 PST -// Subject: bug in g++ 2.5.7 Array of objects -// Message-ID: <9312141845.AA09188@annapurna.qedinc.com> - - -class POOL { -public: - POOL(); -}; - -struct VAL_LIST { - POOL pool[2]; -}; - -VAL_LIST baz; - diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors10.C b/gcc/testsuite/g++.old-deja/g++.law/ctors10.C deleted file mode 100755 index 213b798..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors10.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: -// GROUPS passed constructors -// ctor file -// Message-Id: <9302052351.AA10789@harvey> -// From: greg@qualcomm.com (Greg Noel) -// Subject: bug019.cc -// Date: Fri, 5 Feb 93 15:51:42 -0800 - -#include <iostream.h> - -class Class -{ - class Err : public ostream - { - public: - Err(void) : ostream() { } - ~Err(void) { } - }; -public: - //template<class T> Err& operator << (const T x) { return Err() << x; } - Err& operator << (const char *x) { return Err() << x; }// ERROR - .* -private: - char x; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors11.C b/gcc/testsuite/g++.old-deja/g++.law/ctors11.C deleted file mode 100755 index 3c39356..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors11.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// GROUPS passed constructors -// ctor file -// Message-Id: <9302081631.AA14744@tera.com> -// From: rrh@tera.com (Robert R. Henry) -// Date: Mon, 8 Feb 93 08:31:39 PST -extern "C" void printf(const char *,...); -class A{ -public: - inline A(int x){printf("constructing A with %d\n", x);} -}; - -class B:public A{ -private: -public: -}; // ERROR - non-default constructor - -int main() -{ - B(10);// ERROR - B doesn't have a constructor taking int -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors12.C b/gcc/testsuite/g++.old-deja/g++.law/ctors12.C deleted file mode 100755 index 32bf5c6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors12.C +++ /dev/null @@ -1,33 +0,0 @@ -// GROUPS passed constructors -#include <stdio.h> -#include <stdlib.h> -#include <iostream.h> - -#define MAGIC 7654 - -class complex { - double re; - double im; - int magic; - static int count; -public: - complex() { re=im=0; magic=MAGIC; } - complex(double d) { re=d; im=0; magic=MAGIC; } - complex(double d, double d2) {re=d; im=d2; magic=MAGIC; } - ~complex() {if(magic!=MAGIC) {printf("FAIL\n");exit(0);}} - friend ostream& operator << (ostream& o, const complex& c) - { return o << "(" << c.re << "," << c.im << ")"; } -}; - -int complex::count=0; - -int main() -{ - complex v[6] = {1, complex(1,2), complex(), 2 }; // ARM Sect. 12.6.1 - int i; // page 289 - - for(i=0; i<6; i++) ; - printf ("PASS\n"); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors13.C b/gcc/testsuite/g++.old-deja/g++.law/ctors13.C deleted file mode 100755 index aef721b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors13.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed constructors -#include <iostream.h> - -class A { - A() {} // private constructor// ERROR - .* -}; - -int main() { - A* a = new A();// ERROR - .* - if (a) { - cout << "a != NULL\n"; - } else { - cout << "a == NULL\n"; - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors14.C b/gcc/testsuite/g++.old-deja/g++.law/ctors14.C deleted file mode 100755 index 49abdf7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors14.C +++ /dev/null @@ -1,43 +0,0 @@ -// Build don't link: -// GROUPS passed constructors -// ctor file -// Message-Id: <199301310203.AA22417@oak.ucsc.edu> -// From: "Dean R. E. Long" <dlong@cse.ucsc.edu> -// Subject: problems with default constructors -// Date: Sat, 30 Jan 1993 18:03:32 -0800 - -class A0 { -}; - -class A1 { -public: - A1(void) {} -}; - -class A2 { - A1 a; -}; - -class B0 : public A0 { -public: - B0(void) {} - B0(int) {} - B0(char) : A0() {} - B0(short) : A0() {} -}; - -class B1 : public A1 { -public: -}; - -class B2 : public A2 { -public: - B2(void) : A2() {} - B2(int) : A2() {} -}; - -class C : public B1 { -public: - C(void) : B1() {} - C(int) : B1() {} -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors15.C b/gcc/testsuite/g++.old-deja/g++.law/ctors15.C deleted file mode 100755 index 32da141..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors15.C +++ /dev/null @@ -1,26 +0,0 @@ -// GROUPS passed constructors -// ctor file -// Message-Id: <9303270404.28207@munta.cs.mu.OZ.AU> -// From: fjh@cs.mu.oz.au -// Subject: bug with new/delete of multidimensional array -// Date: Sat, 27 Mar 93 14:04:52 EST - -#include <stdio.h> -#include <stdlib.h> - -int construct = 0; - -class Element { -public: - Element() { construct++; if (construct > 6) {printf ("FAIL\n"); exit(1);}} - ~Element() { } -}; - -typedef Element array[2]; - -int main() { - array *x; - x = new array[3]; - delete x; - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors16.C b/gcc/testsuite/g++.old-deja/g++.law/ctors16.C deleted file mode 100755 index 8a3982b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors16.C +++ /dev/null @@ -1,49 +0,0 @@ -// GROUPS passed constructors -// ctor file -// Message-Id: <9306021533.AA14347@icepick.jts.com> -// From: roland@jts.com (Roland Knight ) -// Subject: gcc 2.4.1 bug -// Date: Wed, 2 Jun 1993 11:33:34 -0400 - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -char stuff[50]; -char *p = stuff; - -class A { -public: - A() { *p++ = 'A';} -}; - -class B { -public: - B() { *p++ = 'B'; } -}; - -class C : public A, public B { -public: - C() : B(), A() { *p++ = 'C'; } -}; - -class D : public A, public B { -public: - D() : B() { *p++ = 'D'; } -}; - -class E : public A, public B { -public: - E() { *p++ = 'E'; } -}; - - -int main() { - C c; - D d; - E e; - if (strncmp ("ABCABDABE", stuff, 9)) - printf ("FAIL\n"); - else - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors17.C b/gcc/testsuite/g++.old-deja/g++.law/ctors17.C deleted file mode 100755 index eab071c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors17.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// GROUPS passed constructors -// ctor file -// Message-Id: <199306151813.gD28471@mail.Germany.EU.net> -// From: stephan@ifconnection.de (Stephan Muehlstrasser) -// Subject: gcc 2.4.3.1: illegal constructor call not rejected -// Date: Tue, 15 Jun 1993 18:34:14 +0200 (MET DST) - - -#include <fstream.h> - -class X : public ifstream { - public: - X(int a, char *b) {} // ERROR - candidate -}; // ERROR - candidate -int main() -{ - X *y = new X(10, "123"); - // the compiler must reject this constructor call: - X *x = new X("abc");// ERROR - .* -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors18.C b/gcc/testsuite/g++.old-deja/g++.law/ctors18.C deleted file mode 100755 index e7a666e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors18.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't link: -// GROUPS passed constructors -class test1 { -}; - -template<class T> -class GC_PTR { -public: - GC_PTR(T &a) {} -}; - - -void -gotPtrs(GC_PTR<test1> r1) -{ -} - -static void -short_alloc(int n) -{ - test1 here; - GC_PTR<test1> foo = here; // This works fine. - - gotPtrs(here); // Compile error from this - // No constructor named `GC_PTR` in visible scope - // conversion between incompatible aggregate types requested -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors19.C b/gcc/testsuite/g++.old-deja/g++.law/ctors19.C deleted file mode 100755 index 25c58d6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors19.C +++ /dev/null @@ -1,33 +0,0 @@ -// Build don't link: -// GROUPS passed constructors -// ctor file -// From: mkohtala@vinkku.hut.fi -// Date: Tue, 5 Oct 1993 19:31:16 +0200 -// Message-Id: <199310051731.AA12260@lk-hp-11.hut.fi> -// Subject: Nested class constructor calling bug - -class X -{ - public: - class Y - { - public: - Y(int i) : a(i) {} - int a; - }; - static void f(Y y); -}; - -void X::f(X::Y y) -{ -} - -int -main() -{ - X::Y y = X::Y(1); // Tries to call ctor Y instead of X::Y - X::f(X::Y(2)); // Tries to call Y instead of X::Y - - return 0; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors2.C b/gcc/testsuite/g++.old-deja/g++.law/ctors2.C deleted file mode 100755 index d4f2d9c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors2.C +++ /dev/null @@ -1,69 +0,0 @@ -// GROUPS passed constructors -// Message-Id: <m0p8Am6-0002fCC@neal.ctd.comsat.com> -// Date: Fri, 10 Dec 93 11:33 EST -// From: neal@ctd.comsat.com (Neal Becker) -// Subject: serious problems with static constructors - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#define CONST const - -class Sig { - -public: - - enum Type { Byte_t, Word_t, Long_t, Float_t, Double_t, Complex_t, ComplexLong_t, Bad_t }; - -private: - - Type T; - -public: - - static CONST char *ByteMagic, *WordMagic, *LongMagic, - *FloatMagic, *DoubleMagic, *ComplexMagic, *ComplexLongMagic, *BadMagic; - - struct SigTable { - Type T; - CONST char* Magic; - }; - - static CONST SigTable sigTable[]; - -}; - -CONST char -*Sig::ByteMagic = "BYTE", -*Sig::WordMagic = "WORD", -*Sig::LongMagic = "LONG", -*Sig::FloatMagic = "FLOA", -*Sig::DoubleMagic = "DOUB", -*Sig::ComplexMagic = "COMP", -*Sig::ComplexLongMagic = "CMPL", -*Sig::BadMagic = NULL; - - -CONST Sig::SigTable Sig::sigTable[] = { - { Byte_t, ByteMagic }, - { Word_t, WordMagic }, - { Long_t, LongMagic }, - { Float_t, FloatMagic }, - { Double_t, DoubleMagic }, - { Complex_t, ComplexMagic }, - { ComplexLong_t, ComplexLongMagic }, - { Bad_t, BadMagic } -}; - -int main() { - if (strcmp (Sig::sigTable[0].Magic, "BYTE") - || strcmp (Sig::sigTable[1].Magic, "WORD") - || strcmp (Sig::sigTable[2].Magic, "LONG") - || strcmp (Sig::sigTable[3].Magic, "FLOA") - || strcmp (Sig::sigTable[4].Magic, "DOUB") - || strcmp (Sig::sigTable[5].Magic, "COMP")) - printf ("FAIL\n"); - else - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors20.C b/gcc/testsuite/g++.old-deja/g++.law/ctors20.C deleted file mode 100755 index 34dbf7b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors20.C +++ /dev/null @@ -1,35 +0,0 @@ -// Build don't link: -// GROUPS passed constructors -// ctor file -// Message-Id: <9311011758.AA25157@thneed.cs.duke.edu> -// From: Vivek Khera <khera@cs.duke.edu> -// Subject: g++ 2.5.0 fails to automatically generate default initializer -// Date: Mon, 01 Nov 1993 12:58:34 -0500 - -class String -{ - private: - char a[100]; - int len; - public: - String(); -}; - -String::String() -{ - len = 0; -} - - -struct List -{ - String item[100]; - int num_items; -// List(); // uncomment this line to let compile work -}; - -int -main(int argc, char **argv) -{ - List a; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors21.C b/gcc/testsuite/g++.old-deja/g++.law/ctors21.C deleted file mode 100755 index 3f3b3df..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors21.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed constructors -// ctor file -// From: mln@tera.com (Mark Niehaus) -// Subject: g++-2.5.2 -- private copy ctor hides public ctor -// Date: Mon, 8 Nov 93 10:14:50 PST - -class A { - A(A&); - public: - A(); -}; - -class B { - A a; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors3.C b/gcc/testsuite/g++.old-deja/g++.law/ctors3.C deleted file mode 100755 index 6658764..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors3.C +++ /dev/null @@ -1,29 +0,0 @@ -// Build don't link: -// GROUPS passed constructors -// ctor file -// Message-Id: <m0oxRi1-0002fPC@nesmith.pactitle.com> -// From: genehi@nesmith.pactitle.com (Gene Hightower) -// Subject: Apparent bug in g++ 2.5.2 -// Date: Wed, 10 Nov 93 18:24 PST - -class One { - public: - One() {} -}; - -template<class T> class Two : public One { -}; - -class Three { -}; - -class Four { - Two<Three> x[1]; -}; - -class Five { - Four y; - - public: - Five() {} -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors4.C b/gcc/testsuite/g++.old-deja/g++.law/ctors4.C deleted file mode 100755 index dc1f08b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors4.C +++ /dev/null @@ -1,27 +0,0 @@ -// Special g++ Options: -w -// GROUPS passed constructors -// ctors file -// Message-Id: <ACHILLES.92Nov25192123@i90s8.ira.uka.de> -// From: Alf-Christian Achilles <achilles@ira.uka.de> -// Subject: g++ 2.3.1 rejects initialization with object of derived class -// Date: 25 Nov 92 19:21:23 - -extern "C" int printf (const char *, ...); - -class A { -public: - virtual void foo() {}; -}; - -class B : public A { -public: - void foo() {}; -}; - -main () -{ - B b; - A a = b; //unjustified error: unexpected argument to constructor `A' - printf ("PASS\n"); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors5.C b/gcc/testsuite/g++.old-deja/g++.law/ctors5.C deleted file mode 100755 index 3fc5804..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors5.C +++ /dev/null @@ -1,33 +0,0 @@ -// Build don't link: -// GROUPS passed constructors -// ctors file -// Subject: bug in handling static const object of the enclosing class -// Date: Tue, 1 Sep 92 10:38:44 EDT - -class X -{ - private: - int x; - public: - static const X x0; - X( int ); -}; // ERROR - candidate - -class Y -{ - private: - X xx; - public: - Y(); -} -X::X( int xi ) -{// ERROR - return.* - x = xi; -} - -const X X::x0( 0 ); - -Y::Y() -{// ERROR - no mat - xx = X::x0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors6.C b/gcc/testsuite/g++.old-deja/g++.law/ctors6.C deleted file mode 100755 index a46f4e8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors6.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed constructors -#include <complex.h> - -double foo(double_complex *a) -{ - return 0.0; -} - - -double bar(void) -{ - double_complex v[10]; - return foo(v); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors7.C b/gcc/testsuite/g++.old-deja/g++.law/ctors7.C deleted file mode 100755 index 4f056cc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors7.C +++ /dev/null @@ -1,35 +0,0 @@ -// Build don't link: -// GROUPS passed constructors -// ctors file -// Message-Id: <3JUL199214462623@envmsa.eas.asu.edu> -// From: peckham@envmsa.eas.asu.edu (Bill) -// Subject: const constructor causes crash -// Date: Fri, 3 Jul 1992 21:46:00 GMT - -class base_t { -public: - virtual char *name () { return "base_t"; } - - base_t (); - virtual ~base_t (); -}; - -class d1_t : public base_t { -public: - virtual char *name () { return "d1_t"; } - - // The const keyword on this constructor is an error, but it shouldn't - // cause the compiler to crash. - - d1_t () const;// ERROR - .*const.* - virtual ~d1_t (); -}; - -class d2_t : public base_t { -public: - virtual char *name () { return "d2_t"; } - - d2_t (int); - virtual ~d2_t (); -}; - diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors8.C b/gcc/testsuite/g++.old-deja/g++.law/ctors8.C deleted file mode 100755 index ef40d35..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors8.C +++ /dev/null @@ -1,24 +0,0 @@ -// GROUPS passed constructors -// ctor file -// Message-Id: <199212160609.AA18247@phecda.cs.sfu.ca> -// From: Taj Khattra <khattra@cs.sfu.ca> -// Subject: gcc 2.3.1 global ctor bug ? -// Date: Tue, 15 Dec 92 22:09:37 PST - -#include <stdio.h> - -struct foo { - foo() : index(-1) {} - int index; -}; - -foo *arr = new foo[2]; - -int main() -{ - if (arr[0].index == -1 - && arr[1].index == -1) - printf ("PASS\n"); - else - printf ("FAIL\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/ctors9.C b/gcc/testsuite/g++.old-deja/g++.law/ctors9.C deleted file mode 100755 index d926e64..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/ctors9.C +++ /dev/null @@ -1,39 +0,0 @@ -// Build don't link: -// Special g++ Options: -pedantic-errors -// GROUPS passed constructors -// ctors file -// Message-Id: <9301132030.AA05210@cs.rice.edu> -// From: dougm@cs.rice.edu (Doug Moore) -// Subject: 2.3.3: accepts ctor-less derived class of ctor-ful base class -// Date: Wed, 13 Jan 93 14:30:21 CST -// Note: It gives an error now. But not a very good one. - -struct Foo -{ - Foo(int aa); - int a; - const Foo* operator-> () const {return this;} -}; - -Foo::Foo(int aa) -:a(aa) -{ } - - -struct var_Foo: public Foo -{ - var_Foo* operator-> () {return this;} -};// ERROR - base.*// ERROR - in class.* - -int blort(Foo& f) -{ - return f->a; -}; - -int main() -{ - var_Foo b(2);// ERROR - - b->a = 0; - int x = blort(b); - return x; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt1.C b/gcc/testsuite/g++.old-deja/g++.law/cvt1.C deleted file mode 100755 index 3f0866e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt1.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// GROUPS passed conversions -// cvt file -// From: dak@pool.informatik.rwth-aachen.de -// Date: Sun, 21 Nov 93 17:40:32 +0100 -// Subject: g++ mixes up array dimensions with new -// Message-ID: <9311211640.AA11787@messua> - -int main() -{ - int (*a)[5] = new int[6][5]; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt10.C b/gcc/testsuite/g++.old-deja/g++.law/cvt10.C deleted file mode 100755 index c943a39..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt10.C +++ /dev/null @@ -1,60 +0,0 @@ -// Build don't link: -// GROUPS passed conversions -// cvt file -// Message-Id: <CC7oHn.B4F@izf.tno.nl> -// From: tom@izfcs.izf.tno.nl (Tom Vijlbrief) -// Subject: g++ 2.4.5 has problems with NON virtual shared base classes -// Date: Mon, 23 Aug 1993 12:10:34 GMT - - -#include <stdio.h> - -#define FAIL - -class Base { -public: - Base() { printf("Base::Base\n"); } - virtual ~Base() { printf("Base::~Base\n"); } - virtual void v() { printf("Base::v\n"); } -}; - -class Base2 { -public: - Base2() { printf("Base2::Base2\n"); } - virtual ~Base2() { printf("Base2::~Base2\n"); } - virtual void v() { printf("Base2::v\n"); } -}; - -class A: public Base { -public: - A() { printf("A::A\n"); } - ~A() { printf("A::~A\n"); } - virtual void va() { printf("A::va\n"); } -}; - -#ifdef FAIL -class B: public Base { -#else -class B: public Base2 { -#endif -public: - B() { printf("B::B\n"); } - ~B() { printf("B::~B\n"); } - virtual void vb() { printf("B::vb\n"); } -}; - -class C: public A, public B { -public: - C() { printf("C::C\n"); } - ~C() { printf("C::~C\n"); } - void va() { printf("C::va\n"); } -}; - - -int main() -{ - C *cp= new C; - cp->va(); - delete cp; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt11.C b/gcc/testsuite/g++.old-deja/g++.law/cvt11.C deleted file mode 100755 index 7394c1b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt11.C +++ /dev/null @@ -1,30 +0,0 @@ -// Build don't link: -// GROUPS passed conversions -// cvt file -// Date: Tue, 10 Nov 92 11:08:08 PST -// From: rrh@tera.com (Robert R. Henry) -// Message-Id: <9211101908.AA13557@tera.com> -// Subject: type cast of qualified const member breaks g++2.3.1 - -#include <stdio.h> - -class Thing{ -private: int x; - public: const int N = -1; // ERROR - bad initialization - Thing(int y); -}; - -class Bar{ public: void doit(void); }; - -void Bar::doit(void) -{ - int i, j; - i = Thing::N; - printf("i = %d\n", i); - - j = (int)Thing::N; - printf("i = %d\n", j); -} -Thing::Thing(int y) { x = y; } -int main(){ Bar x; x.doit(); } - diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt12.C b/gcc/testsuite/g++.old-deja/g++.law/cvt12.C deleted file mode 100755 index 5ea83db..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt12.C +++ /dev/null @@ -1,29 +0,0 @@ -// GROUPS passed conversions -// cvt file -// Message-Id: <9301071708.AA03432@muresh.et.tudelft.nl> -// From: stravers@muresh.et.tudelft.nl (Paul Stravers) -// Subject: conversion method never called -// Date: Thu, 7 Jan 93 18:08:33 +0100 - -#include <stdio.h> - -class test -{ - double d; - int i; -public: - test(double dd,int ii) {d=dd; i=ii;} // constructor - operator int&() {return i;} // define a conversion from test to int& - int& geti() {return i;} // same thing, but different -}; - -int main() -{ - test t(3.14, 5); // Create an object t of class "test" - int x = (int&)t; // This should call operator int&() but it does not ... - int y = t.geti(); // x and y should both be 5 ... - if (x == 5 && y == 5) - printf ("PASS\n"); - else - printf ("FAIL\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt13.C b/gcc/testsuite/g++.old-deja/g++.law/cvt13.C deleted file mode 100755 index c7b09e9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt13.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// GROUPS passed conversions -// cvt file -// Message-Id: <ISHAI.93Mar26102509@cs73.technion.ac.il> -// From: ishai@cs.technion.ac.il (& Ben-Aroya) -// Subject: Type conversion problem. -// Date: Fri, 26 Mar 1993 08:25:09 GMT - -typedef int array[10]; - -void f(array &arg) -{ -} - -int main() -{ - array var; - f(var); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt14.C b/gcc/testsuite/g++.old-deja/g++.law/cvt14.C deleted file mode 100755 index e2b9bad..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt14.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed conversions -// cvt file -// Message-Id: <9303241504.AA25988@spock.orl.mmc.com> -// Subject: internal compiler error -// Date: Wed, 24 Mar 1993 10:04:06 -0500 -// From: "Malcolm C. Strickland" <chucks@orl.mmc.com> - - -int main() - { - double *d; - d = new double(10); - return 1; - } diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt15.C b/gcc/testsuite/g++.old-deja/g++.law/cvt15.C deleted file mode 100755 index 967cbb6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt15.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -// GROUPS passed conversions -// cvt file -// Message-Id: <9308051530.AA05922@NeoSoft.Com> -// From: daniels@sugar.neosoft.com (Brad Daniels) -// Subject: g++ 2.4.5: Conversion operators to complex types don't work either -// Date: Thu, 5 Aug 93 15:30:04 CDT - -class bar { int x; public: bar() : x(1){} }; - -class foo { - bar a, b; -public: - foo(bar i, bar j) : a(i),b(j) {} - operator const bar() const { return a; } - const bar f() { return *this; } - void g(foo &c) { b = c; } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt16.C b/gcc/testsuite/g++.old-deja/g++.law/cvt16.C deleted file mode 100755 index c539c96..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt16.C +++ /dev/null @@ -1,29 +0,0 @@ -// Build don't link: -// GROUPS passed conversions -// cvt file -// Message-Id: <9304121647.AA25819@tnt> -// From: mclaugh@tnt.acsys.com (Mark A. McLaughlin) -// Subject: g++ bug -// Date: Mon, 12 Apr 93 10:47:01 MDT - -#include <iostream.h> - -class B { -}; - -class A : public B { - short s; -public: - A(short _s = 0) { s = _s; } - operator const short &() const { return s; } -}; - - int -main() { - A a(37); - //cout << a << endl; - cout << (short)a << endl; - - return 0; -} // main - diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt17.C b/gcc/testsuite/g++.old-deja/g++.law/cvt17.C deleted file mode 100755 index b746c98..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt17.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed conversions -// cvt file -// Message-Id: <9305210124.AA02409@kato.cs.brown.edu> -// From: pcm@cs.brown.edu (Peter C. McCluskey) -// Subject: illegal code compiles silently -// Date: Thu, 20 May 93 21:24:22 -0400 - - - -class Point {}; -class Line_Segment{ public: Line_Segment(const Point&){} }; -class Node { public: Point Location(){ Point p; return p; } }; - -int main() -{ - Node** node1; - Line_Segment(node1->Location()); // intended (*node1)// ERROR - .* -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt18.C b/gcc/testsuite/g++.old-deja/g++.law/cvt18.C deleted file mode 100755 index 79ea679..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt18.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: -// GROUPS passed conversions -// cvt file -// Message-Id: <9307090042.AA28565@uluru.Stanford.EDU> -// From: interran@uluru.stanford.edu (John Interrante) -// Subject: gcc 2.4.5 on sparc-sun-sunos4.1.2: automatic conversion functions -// Date: Thu, 8 Jul 93 17:42:12 PDT - -class Token { -public: - operator const void*() const; - int operator !=(int code) const; -private: - int code_; -}; - -extern Token next_token(); - -void foo(Token token) { - if (token && token != '{') {} - - const int inside_body = 1; - if (inside_body && (token = next_token())) {} -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt19.C b/gcc/testsuite/g++.old-deja/g++.law/cvt19.C deleted file mode 100755 index ae07a38..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt19.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't link: -// GROUPS passed conversions -// cvt file -// Message-Id: <1166.9307131600@ace.eng.cam.ac.uk> -// From: ajp@eng.cam.ac.uk -// Date: Tue, 13 Jul 93 17:00:44 BST - - -class B {}; - -class A { - public: - operator const B*() const { - return b; - } - private: - B* b; -}; - - -int main() -{ - A a; - if (a!=0) { - } -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt2.C b/gcc/testsuite/g++.old-deja/g++.law/cvt2.C deleted file mode 100755 index 4c28a7e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt2.C +++ /dev/null @@ -1,42 +0,0 @@ -// GROUPS passed conversions -#include <stdio.h> -#include <stdlib.h> -#include <iostream.h> -#include <fstream.h> - -extern "C" { -int strncmp (const char *, const char *, size_t); -} - -class cvec { -public: - ~cvec(){ delete s; } - cvec(const char*x) { s = new char[strlen(x)+1]; strcpy(s, x); } - cvec(const cvec& c) { s = new char[strlen(c.s)+1]; strcpy(s, c.s); } - operator const char*() { return s; } -private: - char *s; -}; - -cvec -B(const char* a) -{ - return a; -} - -void -A(const char* s) -{ - // s still ok here - ifstream inf(s); - if (strncmp ("aaa", s, 3)) - printf ("FAIL\n"); - else - printf ("PASS\n"); -} - -int main() -{ - A(B("aaa")); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt20.C b/gcc/testsuite/g++.old-deja/g++.law/cvt20.C deleted file mode 100755 index 1ecbfa2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt20.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed conversions -// cvt file -// Message-Id: <9307152250.AA24812@volterra> -// From: rst@ai.mit.edu (Robert S. Thau) -// Subject: g++ won't convert char[] to char*& -// Date: Thu, 15 Jul 93 18:50:59 EDT - - -// Compiles fine with Sun CC 2.1 - -void f(char *& x) -{// ERROR - location of error - x++; -} - -int main() -{ - f ("foo");// ERROR - init of non-const ref from char* -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt21.C b/gcc/testsuite/g++.old-deja/g++.law/cvt21.C deleted file mode 100755 index 8cdd150..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt21.C +++ /dev/null @@ -1,36 +0,0 @@ -// Build don't link: -// GROUPS passed conversions -// cvt file -// Message-Id: <9307200528.AA02094@legolas> -// From: Mark Kuzmycz <kuzmycz@deakin.edu.au> -// Subject: int & conversion operator -// Date: Tue, 20 Jul 93 15:28:47 EST - -class Int -{ - public: - Int(void); - Int(int); - Int(const Int&); - - Int* copy(void) const; - - operator int&(); - - Int& operator ++(void); - Int& operator --(void); - - private: - int value; -}; - -int main() -{ - Int data = 2; - Int test; - - test = data * 12; - data += 1; -} - -// UNKNOWN "FAIL" diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt22.C b/gcc/testsuite/g++.old-deja/g++.law/cvt22.C deleted file mode 100755 index c9a80ba..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt22.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed conversions -// cvt file -// Message-Id: <93Aug2.163542pdt.26892@franklin.parc.xerox.com> -// From: Jesse Hull <jhull@parc.xerox.com> -// Subject: typedef bug -// Date: Mon, 2 Aug 1993 16:35:28 PDT - -typedef int A[10]; - -int main() -{ - int* a1 = new A; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt23.C b/gcc/testsuite/g++.old-deja/g++.law/cvt23.C deleted file mode 100755 index 626d01c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt23.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -// GROUPS passed conversions -// cvt file -// Message-Id: <9308051209.AA15962@NeoSoft.Com> -// From: daniels@sugar.neosoft.com (Brad Daniels) -// Subject: Bug in g++ 2.4.5: Conversion operators to enumerated types don't wor -// Date: Thu, 5 Aug 93 12:09:09 CDT - -enum bar { AAA, BBB }; - -class foo { - bar a, b; -public: - foo(bar i, bar j) : a(i),b(j) {} - operator const bar() const { return a; } - bar f() { return *this; } - void g(foo &c) { b = c; } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt3.C b/gcc/testsuite/g++.old-deja/g++.law/cvt3.C deleted file mode 100755 index 357dd32..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt3.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed conversions -// cvt file -// Message-Id: <9308122113.AA14119@tnt.acsys.com> -// From: mclaugh@tnt.acsys.com (Mark A. McLaughlin) -// Subject: g++ bug -// Date: Thu, 12 Aug 93 15:13:23 MDT - - -class C { }; - -void f(C) { } - -void g(const C & c) { f(c); } - -void h(const C & c) { f(C(c)); } diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt4.C b/gcc/testsuite/g++.old-deja/g++.law/cvt4.C deleted file mode 100755 index d45d789..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt4.C +++ /dev/null @@ -1,27 +0,0 @@ -// GROUPS passed conversions -// cvt file -// Message-Id: <9308091213.AA11572@emmy.Mathematik.Uni-Dortmund.DE> -// From: Michael Strauch <strauch@emmy.mathematik.uni-dortmund.de> -// Subject: Bug in GCC 2.4.5 -// Date: Mon, 9 Aug 93 14:13:50 MESZ - -extern "C" int printf (const char *, ...); - -int destruct = 2; - - class Test{ - protected: - long x; - public: - Test(){;} - Test(long l) {x=l;} - ~Test() {if (--destruct == 0) printf ("PASS\n");} - }; - -int main() - { - long i=1; - Test t; - - t=(Test)i; - } diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt5.C b/gcc/testsuite/g++.old-deja/g++.law/cvt5.C deleted file mode 100755 index a7a0470..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt5.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't link: -// GROUPS passed conversions -// cvt file -// Message-Id: <1992Jul31.142856.10082@ericsson.se> -// From: jonas@ericsson.se (Jonas Nygren) -// Subject: g++ bug -// Date: Fri, 31 Jul 1992 14:28:56 GMT - -class A {}; -class B : public A {}; - -B b; - -class R{ -public: - R() {} - operator B&() { return b; } -}; - -void f(A&) {} - -int main(){ - R r; - - f(r); // problem to cast to B& and then to A& -} - - diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt6.C b/gcc/testsuite/g++.old-deja/g++.law/cvt6.C deleted file mode 100755 index fd0a83e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt6.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't link: -// GROUPS passed conversions -// cvt file -// Message-Id: <9208261851.AA16997@josquin.media.mit.edu> -// From: bilmes@media.mit.edu -// Subject: gcc (g++) 2.2.2 constructing nested class from external scope -// Date: Wed, 26 Aug 92 14:51:17 -0400 - - -class foo { - - class bar { - int i; - public: - bar(int j) { i = j; } - }; - - bar b; -public: - foo() : b(3) {} - void test(bar lb) { b = lb; } -}; - - -int main() { - foo f; - f.test(34); // line 18 -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt7.C b/gcc/testsuite/g++.old-deja/g++.law/cvt7.C deleted file mode 100755 index c9cc1b5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt7.C +++ /dev/null @@ -1,74 +0,0 @@ -// GROUPS passed conversions -// cvt file -// From: krste@icsi.berkeley.edu (Krste Asanovic) -// Date: Mon, 24 Aug 92 19:05:10 PDT -// Message-Id: <9208250205.AA26351@icsib43.ICSI.Berkeley.EDU> -// Subject: implicit int. convs. from member refs. in switch expressions - -#include <stream.h> -#include <stdio.h> - -class A -{ -public: - A(int j) { i = j; } - A(A& a) { i = a.i; } - operator int() { return i; } - - void assign(int v) { i = v; } - int i; -}; - -class B -{ -public: - B(A& inArg) : in(inArg), out(0) {} - - A& in; - A out; - - void run(); -}; - -void -B::run() -{ - // I get a "switch quantity not an integer" error for this statement. - switch (in) - // Replacing above with "switch (int(in))" removes the error. - { - case 0: - out = 1; - break; - default: - out = 0; - break; - } -} - -int main() -{ - A a(1); - - A& ar = a; - - A& ar2 = ar; - - // ....but no errors for this switch statement. - switch (ar2) - { - case 1: - printf ("PASS\n"); - break; - default: - printf ("FAIL\n"); - } - - B b(a); - a.assign(3); - b.run(); - a.assign(0); - b.run(); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt8.C b/gcc/testsuite/g++.old-deja/g++.law/cvt8.C deleted file mode 100755 index f97790a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt8.C +++ /dev/null @@ -1,35 +0,0 @@ -// Build don't link: -// GROUPS passed conversions -// cvt file -// From: solomon@cs.wisc.edu (Marvin Solomon) -// Message-Id: <9209141509.AA23124@gjetost.cs.wisc.edu> -// Subject: g++ 2.2.2 seems to be forgetting a "const" -// Date: Mon, 14 Sep 92 10:09:58 -0500 - -extern "C" void printf(...); - -struct A { - int i; -}; - -struct B { - int i; - operator const A&() const; -}; - -B::operator const A&() const { - static A a; - a.i = i; - printf("convert B to A at %x\n", &a); - return a; -} - -void f(A &a) { // ERROR - in passing argument - printf("A at %x is %d\n", &a, a.i); -} - -int main() { - B b; - b.i = 99; - f(b);// ERROR - .* -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/cvt9.C b/gcc/testsuite/g++.old-deja/g++.law/cvt9.C deleted file mode 100755 index e98508d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/cvt9.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: -// Special g++ Options: -pedantic-errors -// GROUPS passed conversions -// cvt file -// Message-Id: <m0mVSRj-0000cEC@mobius.veritas.com> -// From: joe@veritas.com (Joe Fasano) -// Subject: gcc-2.2.2 bug report -// Date: Thu, 17 Sep 92 13:27 PDT - -typedef int (*widget) (); - -class window { -public: - int Isopen (); -}; - -widget fp = (widget) &window::Isopen; // ERROR - // ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.law/dossier1.C b/gcc/testsuite/g++.old-deja/g++.law/dossier1.C deleted file mode 100755 index 2977f15..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/dossier1.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -// Special g++ Options: -frtti -// GROUPS passed rtti -// dossier file -// Message-Id: <9212021501.AA02484@olympia.miro.com> -// From: rme@miro.com (Richard M. Emberson) -// Subject: bug -// Date: Wed, 2 Dec 92 07:01:30 PST - -class Vector { - int *p; - int sz; -public: - Vector(int ); - ~Vector(); - - int& operator[](int i); -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/dtors1.C b/gcc/testsuite/g++.old-deja/g++.law/dtors1.C deleted file mode 100755 index 5c0999c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/dtors1.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// GROUPS passed destructors -// friends file -// From: offline!marc@ai.mit.edu (Marc Duponcheel) (Marc Duponcheel) -// Date: Sat, 6 Feb 93 23:31:22 PST -// Subject: some 2.2.2 bugs -// Message-ID: <9302070731.AA002jw@offline.UUCP> - -void f() -{ - int i; - i.i::~i();// ERROR - .* -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/dtors2.C b/gcc/testsuite/g++.old-deja/g++.law/dtors2.C deleted file mode 100755 index ebf9612..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/dtors2.C +++ /dev/null @@ -1,40 +0,0 @@ -// GROUPS passed destructors -#include <stdio.h> - -int destruct = 0; - -class bla { - -public: - - inline bla(char * jim) { ; }; - - inline ~bla() { destruct++; if (destruct == 2) printf ("PASS\n");}; -}; - -class ulk { - -public: - - inline ulk() {}; - inline ~ulk() {}; - - void funk(const bla & bob) { ;}; - // ^ interestingly, the code compiles right if - // this & is deleted (and therefore the parameter - // passed as value) -}; - -int main() { - - ulk dumm; - - dumm.funk(bla("laberababa")); // this compiles correctly - - dumm.funk((bla)"laberababa"); // this produces incorrect code - - // the temporary instance of - // the class "bla" is constructed - // but never destructed... - - -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/dtors3.C b/gcc/testsuite/g++.old-deja/g++.law/dtors3.C deleted file mode 100755 index 7ed92fc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/dtors3.C +++ /dev/null @@ -1,37 +0,0 @@ -// GROUPS passed destructors -// dtor file -// Message-Id: <9301242117.AA04053@cs.rice.edu> -// From: dougm@cs.rice.edu (Doug Moore) -// Subject: 2.3.3: premature dtor of temp? -// Date: Sun, 24 Jan 93 15:17:07 CST - -#include <stdio.h> -#include <stdlib.h> - -int killed = 0; - -class Foo -{ - int a; -public: - Foo() - :a(0) {;} - ~Foo() { killed++;} - Foo& operator << (int b) - { - a += b; - if (killed) - { - printf ("FAIL\n"); - exit (0); - } - return *this; - } -}; - -int main() -{ - Foo() << 1 << 3 << 5 << 7; - printf ("PASS\n"); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/dtors4.C b/gcc/testsuite/g++.old-deja/g++.law/dtors4.C deleted file mode 100755 index 6168c0d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/dtors4.C +++ /dev/null @@ -1,22 +0,0 @@ -// GROUPS passed destructors -#include <stdio.h> - -int destruct = 2; - -class a { - public: - char *p; - a(){ ; } - ~a(){ destruct--; if (! destruct) printf ("PASS\n");} -}; - -a test(){ - return a(); -} - -int main(){ - a ai; - - ai = test(); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/dtors5.C b/gcc/testsuite/g++.old-deja/g++.law/dtors5.C deleted file mode 100755 index 3c54561..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/dtors5.C +++ /dev/null @@ -1,33 +0,0 @@ -// GROUPS passed destructors -// dtor file: -// Message-Id: <1992Jun25.181845.18886@leland.Stanford.EDU> -// From: niz@leland.stanford.edu (Jim Nisbet) -// Subject: gcc 2.2.2 -- c++ bug: destructor called twice (example) -// Date: 25 Jun 92 18:18:45 GMT - -#include <stdio.h> - -int things = 0; - -class foo { -public: - foo() { things++; } - foo(const foo&) { things++; } - ~foo() { things--; } - - int i; -}; - -void -sub(foo f) { - ; -}; - - -int main() { - sub(foo()); - if (things == 0) - printf ("PASS\n"); - else - printf ("FAIL\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/enum1.C b/gcc/testsuite/g++.old-deja/g++.law/enum1.C deleted file mode 100755 index c3ef73d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/enum1.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed enums -class X { - struct X1; - enum { A= sizeof(X1 *) }; //Causes a problem. - struct X1 { int i; }; - X1 *f(X1 *); -public: - X(void); -}; - -X::X1 *X::f(X1 *x) { - return x; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/enum2.C b/gcc/testsuite/g++.old-deja/g++.law/enum2.C deleted file mode 100755 index 902d8ed..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/enum2.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't link: -// Special g++ Options: -fshort-enums -// GROUPS passed enums -// enum file -// From: Jeff Gehlhaar <jbg@qualcomm.com> -// Date: Mon, 4 Jan 1993 09:20:50 -0700 -// Subject: Enum bug, affects library -// Message-ID: <9301041720.AA17340@harvey> - -typedef unsigned long __fmtflags; -class ios { - public: - typedef __fmtflags fmtflags; - enum { skipws=01, left=02, right=04, internal=010, - dec=020, oct=040, hex=0100, - showbase=0200, showpoint=0400, uppercase=01000, showpos=02000, - scientific=04000, fixed=010000, unitbuf=020000, stdio=040000, - dont_close=0x80000000 //Don't delete streambuf on stream destruction - }; - - fmtflags setf (fmtflags, fmtflags); -}; - -// from <iostream.h> -inline ios& dec(ios& i) -{ i.setf(ios::dec, ios::dec|ios::hex|ios::oct); return i; } - diff --git a/gcc/testsuite/g++.old-deja/g++.law/enum3.C b/gcc/testsuite/g++.old-deja/g++.law/enum3.C deleted file mode 100755 index 43845e2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/enum3.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// GROUPS passed enums -// enum file -// From: frode@auticon.no -// Date: Wed, 13 Jan 93 9:24:50 PST -// Subject: enum trouble -// Message-ID: <"nac.no.001:13.00.93.18.40.52"@nac.no> - -typedef enum{on, off} TOGGLE; - -class field { -private: - TOGGLE toggle; -public: - virtual void on(void) { toggle = 3; };// ERROR - .* - virtual void off(void) { toggle = on; };// ERROR - .* -}; - -int main() -{ -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/enum4.C b/gcc/testsuite/g++.old-deja/g++.law/enum4.C deleted file mode 100755 index f763656..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/enum4.C +++ /dev/null @@ -1,29 +0,0 @@ -// Build don't link: -// GROUPS passed enums -// enum file -// From: dougm@cs.rice.edu (Doug Moore) -// Date: Thu, 18 Mar 93 00:14:57 CST -// Subject: 2.3.3:Inconsistent behavior for enum conversions -// Message-ID: <9303180614.AA12123@cs.rice.edu> - -enum Enum {enumerator1, enumerator2}; - -struct Struct -{ - int i; - int getI(Enum) {return i;} // ERROR - candidates -}; - -int funct (Enum) -{ - return 0; -} - -int main() -{ - Enum e = enumerator1; - Struct s; - int x = funct(e+1);// ERROR - .* - int y = s.getI(e+1);// ERROR - .* - return x+y; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/enum5.C b/gcc/testsuite/g++.old-deja/g++.law/enum5.C deleted file mode 100755 index 0c8b0dc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/enum5.C +++ /dev/null @@ -1,236 +0,0 @@ -// Build don't link: -// GROUPS passed enums -// excess errors test - XFAIL *-*-* -// enum file -// From: Peter Samuelson <psamuels@osiris.ac.hmc.edu> -// Date: Tue, 2 Nov 1993 23:44:34 -0800 (PST) -// Subject: compiler error 192 -// Message-ID: <199311030744.XAA23409@osiris.ac.hmc.edu> - -#include <iostream.h> -#include <stdlib.h> -#include <string.h> - -/* My program to generate D&D characters -* 10/25/93 -*/ - -//prototypes -int rndshift(); -int dice(int times, int sides); -void initialize(struct Crctr &character); -void cleararray(char thearray[24]); -void input(struct Crctr &character); -void rollscores(struct Crctr &character); -void output(struct Crctr &character); - -int main() -{ - enum goopes - { - cleric, druid, fighter, knight, paladin, avenger, magicuser, thief, - dwarf, halfelf, elf, halfling, mystic, ranger, scout, monster, - immortal, special - }; - - enum alignments - { - lawful, neutral, chaotic - }; - - struct savingthrows - { - int psn_dth, wands, petr_paral, breath, rod_staff_spell; - }; - - struct abilities - { - int str, ite, wis, dex, con, cha; - }; - struct valuables - { - char type[16]; - int value; - }; - struct money - { - int pp, gp, ep, sp, cp; - valuables gems[24], jewelry[24]; - }; - - struct Crctr - { - Crctr() : goop(fighter) {} - - char dm[24], campaign[24], name[24], player[24]; - goopes goop; - alignments alignment; - int level, maxhit, hitpoints, ac; - abitities scores;// ERROR - .* - savingthrows saves; - money wealth; - int experience; - float bonus; - }; - - Crctr character; - - cout << "The D&D Character generator!!" << endl; - - rndshift(); - - initialize(character);// ERROR - .* - input(character); - rollscores(character); - output(character); - - cout << "Thank you for using this program." << endl; - cout << "Copyright 1993, Chase Enterprises, Inc." << endl; - cout << "D&D and Dungeons and Dragons are registered trademarks" << endl; - cout << "of TSR, Inc." << endl; -} //end of main - - -void initialize(Crctr &character) -{ - cleararray(character.dm); - cleararray(character.campaign); - cleararray(character.name); - cleararray(character.player); - character.level = 0; - character.maxhit = 0; - character.hitpoints = 0; - character.ac = 9; - character.experience = 0; - character.bonus = 0.0; -} //end of initialize - -void cleararray(char thearray[]) -{ - for (int i = 0 ; i < 24 ; i++) - thearray[i] = 0; -} //end of cleararray - -void input(Crctr &character) -{ - cout << "Please input name of the Dungeon Master." << endl; - cin >> character.dm; - cout << endl << "Pleas input the name of the campaign." << endl; - cin >> character.campaign; - cout << endl << "Please input the name of the character." << endl; - cin >> character.name; - cout << endl << "Please input player name." << endl; - cin >> character.player; - cout << endl << "Enter desired goop." << endl; - cin >> character.goop; - cout << endl << "Enter desired alignment." << endl; -} //end of input - -void rollscores(Crctr &character) -{ - character.scores.str = dice(3,6); - character.scores.ite = dice(3,6); - character.scores.wis = dice(3,6); - character.scores.dex = dice(3,6); - character.scores.con = dice(3,6); - character.scores.cha = dice(3,6); - character.level = 1; - - switch (character.goop) - { - case fighter: - case dwarf: - case half-elf: - character.maxhit = dice(1,8); - character.hitpoints = character.maxhit; - break; - case cleric: - case elf: - case halfling: - case mystic: - case scout: - character.maxhit = dice(1,6); - character.hitpoints = character.maxhit; - break; - case magic-user: - case thief: - character.maxhit = dice(1,4); - character.hitpoints = character.maxhit; - break; - default: - character.maxhit = 1; - character.hitpoints = character.maxhit; - break; - } -} //end of rollscores - - -void output(Crctr &character) -{ - cout << "Your character is:" << endl; - cout << "Your DM:\t" << character.dm << "\t\t\t" << "Campaign: " - << character.campaign << endl; - cout << "Player's name:\t" << character.player << endl; - cout << "Character Name:\t" << character.name << endl; - cout << "goop:\t" << character.goop << "\t\t\t" << "Alignment:\t" - << character.alignment << endl; - cout << "level:\t" << character.level << endl; - cout << "Max. HP:\t" << character.maxhit << "\t\t\t" << "Current HP:\t" - << character.hitpoints << endl; - cout << "Abilities" << "\t\t\t" << "Saves" << endl; - cout << endl; - cout << "Str:\t" << character.scores.str << "\t\t" << "Poison/Death Ray:\t" - << character.saves.psn_dth << endl; - cout << "Int:\t" << character.scores.ite << "\t\t" << "Wands: \t" - << character.saves.wands << endl; - cout << "Wis:\t" << character.scores.wis << "\t\t" << "Petrification" - << "/Paralysis" << character.saves.petr_paral << endl; - -/* abitities scores; - savingthrows saves; - money wealth; - int experience; - float bonus; -*/ -} - - -int rndshift() -{ -//Chase Tsang 10/25/93 -//cheap way to shift the random number generator sequence -//because I can't change the randomseed -//requires <stdlib.h> and <iostream.h> - -int shiftnumber; -int date; -int luckynumber; - -cout << "Please input the date in 8 digits, no spaces, no other" << endl; -cout << "characters. (ex 10041974 for October 4, 1974)" << endl; -cin >> date; -cout << "Please input your lucky number for today (7 or less" << endl; -cout << "digits, and positive integer, please)" << endl; -cin >> luckynumber; - -shiftnumber = date / luckynumber; - -for (int i = 0; i < shiftnumber; i++) - rand(); -return 0; -} - - - -int dice(int times, int sides) -{ - //dice rolling function, Chase Tsang 10/25/93 - //requires #include <stdlib.h> - - int total = 0; - - for (int i = 0; i < times; i++) - total = total + (rand() % sides) + 1; - - return total; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/enum6.C b/gcc/testsuite/g++.old-deja/g++.law/enum6.C deleted file mode 100755 index 65950e9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/enum6.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// GROUPS passed enums -// enum file -// From: polstra!jdp@uunet.uu.net (John Polstra) -// Date: Mon, 15 Nov 93 12:14 PST -// Subject: GCC 2.5.3 Enum Bitfield Causes Bogus Warning -// Message-ID: <m0ozAJo-0001EgC@seattle.polstra.uucp> - - enum Color { Red, Green, Blue }; - - struct S { - Color c : 8; - } s; - - void foo() - { - s.c = Red; // <== This statement produces the warning message. - } - diff --git a/gcc/testsuite/g++.old-deja/g++.law/enum7.C b/gcc/testsuite/g++.old-deja/g++.law/enum7.C deleted file mode 100755 index 444fa48..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/enum7.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed enums -// friends file -// From: offline!marc@ai.mit.edu (Marc Duponcheel) (Marc Duponcheel) -// Date: Sat, 6 Feb 93 23:31:22 PST -// Subject: some 2.2.2 bugs -// Message-ID: <9302070731.AA002jw@offline.UUCP> - -class X -{ - enum E { A, B }; -static enum E e; -}; -enum X::E X::e = A; diff --git a/gcc/testsuite/g++.old-deja/g++.law/enum8.C b/gcc/testsuite/g++.old-deja/g++.law/enum8.C deleted file mode 100755 index 192a2b4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/enum8.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// Special g++ Options: -fshort-enums -// GROUPS passed enums - enum E { A = 0x80000000 }; diff --git a/gcc/testsuite/g++.old-deja/g++.law/enum9.C b/gcc/testsuite/g++.old-deja/g++.law/enum9.C deleted file mode 100755 index 0a3531e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/enum9.C +++ /dev/null @@ -1,14 +0,0 @@ -// Special g++ Options: -fshort-enums -// GROUPS passed enums - extern "C" int printf (const char *, ...); - - enum E { A = 0x80000000, B = 0 }; - - main() - { - if (sizeof (E) != 4) - printf ("FAIL\n"); - else - printf ("PASS\n"); - return 0; - } diff --git a/gcc/testsuite/g++.old-deja/g++.law/except1.C b/gcc/testsuite/g++.old-deja/g++.law/except1.C deleted file mode 100755 index edfb85f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/except1.C +++ /dev/null @@ -1,29 +0,0 @@ -// Build don't link: -// Special g++ Options: -fexceptions -// GROUPS passed exceptions -// except file -// Message-Id: <9207221230.AA08566@life.ai.mit.edu> -// From: EWALLACE@endvmtkl.vnet.ibm.com -// Subject: Bugs -// Date: Wed, 22 Jul 92 08:29:30 EDT - -extern "C" void puts(const char *); - -class foo { -public: - class error {}; - - void cause_error(void) { throw error(); } -}; - -int main(void) -{ - foo f; - try { - f.cause_error(); - } - catch (foo::error) { - puts("Caught it."); - } - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/except2.C b/gcc/testsuite/g++.old-deja/g++.law/except2.C deleted file mode 100755 index 1bf7108..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/except2.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// Special g++ Options: -fexceptions -g -// GROUPS passed exceptions -// except file -// Message-Id: <9211061330.AA29334@ifad.dk> -// From: erik@ifad.dk (Erik Toubro Nielsen) -// Subject: g++-2.3.1 gets fatal signal with -g and -fhandle-exceptions -// Date: Fri, 6 Nov 92 14:30:33 +0100 - -int main() -{ - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/except3.C b/gcc/testsuite/g++.old-deja/g++.law/except3.C deleted file mode 100755 index 553da6b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/except3.C +++ /dev/null @@ -1,50 +0,0 @@ -// Build don't link: -// Special g++ Options: -fexceptions -// GROUPS passed exceptions -// except file -// Message-Id: <9211301118.AA09810@ss670mp.geco.slb.com> -// From: willoch@ss670mp.oslo.sgp.slb.com (thorbjorn willoch) -// Subject: -fansi-exceptions bug -// Date: Mon, 30 Nov 92 11:18:05 GMT - -extern "C" int printf(const char *, ...); - -class Vector -{ - int* p; - int sz; - public: - Vector(int s) { p = new int[sz=s]; } - ~Vector() {delete [] p; } - int size() {return sz; } - class Range{}; - - - int& operator[](int i); -}; - -int& Vector::operator[](int i) -{ - if(0<=i && i<sz) return p[i]; - throw Range(); -} - -void do_something(Vector& v) -{ - int i = v[v.size()+10]; -} - -main() -{ - Vector v(10); - - try - { - do_something(v); - } - - catch (Vector::Range) - { - printf("Range error exception\n"); - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/except4.C b/gcc/testsuite/g++.old-deja/g++.law/except4.C deleted file mode 100755 index c108c48..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/except4.C +++ /dev/null @@ -1,34 +0,0 @@ -// Build don't link: -// Special g++ Options: -fexceptions -// GROUPS passed exceptions -// except file -// Message-Id: <9307071456.AA05275@davinci.hio.hen.nl> -// From: akkersdi@hio.hen.nl -// Subject: exceptions broken -// Date: Wed, 7 Jul 1993 16:56:52 +0200 (MET DST) - -class ball { -public: int dummy; - ball() : dummy(0) { ; } -}; - -void pitcher() -{ - throw ball(); -} - -void catcher() -{ - try // <=== gcc 2.* fails here - { - pitcher(); - } - catch (ball) { - /* sleepy catcher doing nothing */ ; - } -} - -int main() -{ - catcher(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/except5.C b/gcc/testsuite/g++.old-deja/g++.law/except5.C deleted file mode 100755 index 623d0d8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/except5.C +++ /dev/null @@ -1,39 +0,0 @@ -// Build don't link: -// Special g++ Options: -fexceptions -// GROUPS passed exceptions -// except file -// Message-Id: <199311101607.AA11803@hsi86.hsi.com> -// From: Grigory Tsipenyuk <grigory@hsi.com> -// Subject: exception's bug? -// Date: Wed, 10 Nov 1993 11:07:12 -0500 - -#include <stream.h> -class X { - int *a; - int sz; -public: - class range { }; // exception class - X(int s) { a=new int[sz=s]; } - int& operator[](int i); -}; - -int& X::operator[](int i) -{ - if (i < 0 || i >= sz) { - throw range(); - } - return a[i]; -} - -int -main() -{ - X c(10); - try { - for (int i = 0; i < 12; i++) - c[i] = 1; - } catch (X::range) { - cerr << "invalid range\n"; - } - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/except6.C b/gcc/testsuite/g++.old-deja/g++.law/except6.C deleted file mode 100755 index cca167c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/except6.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't link: -// Special g++ Options: -fexceptions -// GROUPS passed exceptions -// except file -// From: GUSTAVO%DRAGON@orion.cpqd.ansp.br -// Date: 15 Dec 1993 09:33:30 +0000 (C) -// Subject: exception handling problem -// Message-ID: <01H6I5GEAF5UPBJ0UV@VENUS.CPQD.ANSP.BR> - -struct Exception - { - int v; - Exception(int i) { v = i; }; - }; - -void inc(int &i) - { - try { - if (i == 0) - throw Exception(i); - else - i++; - } - catch (Exception v) { - i = v.v; - } - } diff --git a/gcc/testsuite/g++.old-deja/g++.law/friend1.C b/gcc/testsuite/g++.old-deja/g++.law/friend1.C deleted file mode 100755 index 5628e0b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/friend1.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -// GROUPS passed friends -// friends file -// From: rwave!myersn%rwave.roguewave@cs.orst.edu (Nathan Myers) -// Date: Thu, 17 Dec 92 16:33 PST -// Subject: 2.3.2: friend decl of new confuses constructor -// Message-ID: <m0n2Vec-0000GrC@rwave.roguewave.com> - -#include <stddef.h> -#include <new> -struct Foo { - friend void* operator new(size_t) throw (std::bad_alloc); - friend void operator delete(void*) throw (); - Foo(); - ~Foo(); -}; -Foo::Foo() { } -Foo::~Foo() { } diff --git a/gcc/testsuite/g++.old-deja/g++.law/friend4.C b/gcc/testsuite/g++.old-deja/g++.law/friend4.C deleted file mode 100755 index a734fc4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/friend4.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// GROUPS passed friends -// friends file -// From: osinski@cs.nyu.edu (Ed Osinski) -// Date: Fri, 05 Jun 92 20:47:37 -0400 -// Subject: parameter name forgotten in certain friends -// Message-ID: <9206060047.AA05594@MURRAY.CS.NYU.EDU> - -class T2; - -class T { - friend void f (int&); -}; - -class T2 { - friend void f (int& i) { // BOGUS - - i = 1; - }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/friend5.C b/gcc/testsuite/g++.old-deja/g++.law/friend5.C deleted file mode 100755 index 2ecc313..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/friend5.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: -// GROUPS passed friends - extern "C" int good_friend(int); - extern "C" int bad_friend(); - - class assembler { - friend int good_friend(int); - friend int bad_friend(); - void *parts; - }; - - assembler obj; - - int good_friend(int) - { - obj.parts = 0; - } // ERROR - non-void - - int bad_friend() - { - obj.parts = 0; - } // ERROR - non-void - diff --git a/gcc/testsuite/g++.old-deja/g++.law/global-init1.C b/gcc/testsuite/g++.old-deja/g++.law/global-init1.C deleted file mode 100755 index 17dc9c5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/global-init1.C +++ /dev/null @@ -1,20 +0,0 @@ -// GROUPS passed initialization -// global-init file -// Message-Id: <9212021756.AA12639@grumpy.pocs.com> -// From: wp@pocs.com (Wolfgang Polak) -// Subject: Initializers - gcc 2.2.2 (g++), Sparc, SunOS 4.1.1 -// Date: Wed, 2 Dec 92 09:56:01 PST - -#include <stdio.h> -struct S { int a; int c; }; -int i = 3; -S s = {6, i}; -S * the_s () { return &s; }; -int main () -{ - S * cls = the_s (); - if (cls->a != 6) - printf ("FAIL\n"); - else - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/incdec1.C b/gcc/testsuite/g++.old-deja/g++.law/incdec1.C deleted file mode 100755 index ce5903c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/incdec1.C +++ /dev/null @@ -1,47 +0,0 @@ -// Build don't link: -// Special g++ Options: -w -O3 -// GROUPS passed incdec -typedef void* Pix; -class ndbArtPtrVec -{ -public: - ndbArtPtrVec (ndbArtPtrVec&); -}; -class intndbArtPtrVecMap -{ -protected: - int count; - ndbArtPtrVec def; - intndbArtPtrVecMap(ndbArtPtrVec& dflt); - virtual ndbArtPtrVec& operator [] (int key) = 0; - virtual void del(int key) = 0; -public: - virtual Pix first() = 0; - virtual void next(Pix& i) = 0; - virtual int& key(Pix i) = 0; - virtual ndbArtPtrVec& contents(Pix i) = 0; -}; -struct intndbArtPtrVecAVLNode -{ - ndbArtPtrVec cont; - intndbArtPtrVecAVLNode(int h, ndbArtPtrVec& c, - intndbArtPtrVecAVLNode* l=0, intndbArtPtrVecAVLNode* r=0); -}; -class intndbArtPtrVecAVLMap : intndbArtPtrVecMap -{ -protected: - intndbArtPtrVecAVLNode* root; -public: - ndbArtPtrVec& operator [] (int key); - intndbArtPtrVecAVLMap(intndbArtPtrVecAVLMap&); -}; -ndbArtPtrVec& intndbArtPtrVecAVLMap::operator [] (int item) -{ - ++count; - root = new intndbArtPtrVecAVLNode(item, def); -} -intndbArtPtrVecAVLMap::intndbArtPtrVecAVLMap(intndbArtPtrVecAVLMap& b) :intndbArtPtrVecMap(b.def) -{ - for (Pix i = b.first(); i != 0; b.next(i)) - (*this)[b.key(i)] = b.contents(i); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/init1.C b/gcc/testsuite/g++.old-deja/g++.law/init1.C deleted file mode 100755 index 1f23d78..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/init1.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: -// GROUPS passed initialization -class foo { -public: - int data; - foo(int dat) { data = dat; } -}; - -class bar { -public: - foo f[3] = { 1, 2, 3 }; // works: f[0] = 1, f[1] = 2, f[2] = 3 // ERROR - ANSI C++ forbids initialization of member f; -}; - -class bar2 { -public: - foo f[3] = { foo(1), foo(2), foo(3) }; // ERROR - ANSI C++ forbids initialization of member f; - // does not compile -- error: field initializer is not constant -}; - -int main(void) -{ - foo f[3] = { foo(1), foo(2), foo(3) }; - // standard C++ ... and it works too! :) - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/init10.C b/gcc/testsuite/g++.old-deja/g++.law/init10.C deleted file mode 100755 index b6f2085..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/init10.C +++ /dev/null @@ -1,26 +0,0 @@ -// Build don't link: -// GROUPS passed initialization -// init file -// From: Ingo Donasch <ingo@specs.de> -// Date: Wed, 16 Jun 93 13:28:55 +01:00 -// Subject: g++-2.4.2 bug report -// Message-ID: <199306161128.AA22079@opamp.specs.de> - -class b; - -class a { -public: - a(const b*); // needs this parameter -}; - -class b { -private: - a three[3]; -public: - b(); -}; - -b::b() : three(this) -{ // ERROR - bad array initializer -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/init11.C b/gcc/testsuite/g++.old-deja/g++.law/init11.C deleted file mode 100755 index a6d6f01..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/init11.C +++ /dev/null @@ -1,24 +0,0 @@ -// GROUPS passed initialization -// init file -// From: hansen@srd.ull.rdc.toshiba.co.jp -// Date: Mon, 13 Dec 93 18:27:51 +0900 -// Subject: g++ Bug -// Message-ID: <9312130927.AA08192@VLCS151.noname> - -#include <stdio.h> - -int X = 7; - -struct foo { - int a,b,c; -}; - -struct foo Ack = {5, X, 3}; - -int main() -{ - if (Ack.a == 5 && Ack.b == 7 && Ack.c == 3) - printf ("PASS\n"); - else - printf ("FAIL\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/init13.C b/gcc/testsuite/g++.old-deja/g++.law/init13.C deleted file mode 100755 index 40917c8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/init13.C +++ /dev/null @@ -1,19 +0,0 @@ -// GROUPS passed initialization -// init file -// Message-Id: <9306280834.AA20921@slsvitt.us-es.sel.de> -// From: David Binderman 3841 <dcb@us-es.sel.de> -// Subject: Page 289 of the ARM -// Date: Mon, 28 Jun 93 10:34:37 +0200 - -struct T { - int m; - - T( int g):m(g){} -}; - -// T s1[2][2] = {1,2,3,4}; - -int main() { - T s1[2][2] = {1,2,3,4}; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/init14.C b/gcc/testsuite/g++.old-deja/g++.law/init14.C deleted file mode 100755 index 3a9e3e1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/init14.C +++ /dev/null @@ -1,26 +0,0 @@ -// GROUPS passed initialization -// init file -// From: hansen@srd.ull.rdc.toshiba.co.jp -// Message-Id: <9312130927.AA08192@VLCS151.noname> -// Subject: g++ Bug -// Date: Mon, 13 Dec 93 18:27:51 +0900 - -#include <stdio.h> - -int X = 7; - -struct foo { - int a,b,c; -}; - -struct foo Ack = {5, X, 3}; - -int main() -{ - if (Ack.a != 5 - || Ack.b != 7 - || Ack.c != 3) - printf ("FAIL\n"); - else - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/init2.C b/gcc/testsuite/g++.old-deja/g++.law/init2.C deleted file mode 100755 index bfc9014..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/init2.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// GROUPS passed initialization -// init file -// From: lupine!segfault!rfg@uunet.UU.NET -// Date: Sun, 27 Sep 92 14:06:22 MDT -// Subject: Bug in g++ (920220) handling reference initializers. -// Message-ID: <15409.717627982@segfault> - -int * const & fiddle = 0; diff --git a/gcc/testsuite/g++.old-deja/g++.law/init3.C b/gcc/testsuite/g++.old-deja/g++.law/init3.C deleted file mode 100755 index 72b9de8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/init3.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// GROUPS passed initialization -// init file -// From: thayer@moose.cs.columbia.edu (Charles Thayer) -// Date: Wed, 30 Sep 92 02:38:17 EDT -// Subject: small bug -// Message-ID: <9209300638.AA22334@moose.cs.columbia.edu> - -int main() { -int offset; -char buf[offset]=""; // ERROR - ansi forbids variable arrays -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/init4.C b/gcc/testsuite/g++.old-deja/g++.law/init4.C deleted file mode 100755 index 0848762..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/init4.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// Special g++ Options: -pedantic-errors -// GROUPS passed initialization -class Time; -class TimeNote; - -class SvTime -{ -public: - static TimeNote *time_events = 0;// ERROR - .* -}; - -SvTime CurrentTime = {0};// ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.law/init5.C b/gcc/testsuite/g++.old-deja/g++.law/init5.C deleted file mode 100755 index e588234..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/init5.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -// Special g++ Options: -pedantic-errors -// GROUPS passed initialization -// init file -// From: dcb@us-es.sel.de -// Date: Mon, 12 Oct 92 07:51:52 +0100 -// Subject: G++, ARM Page 141 -// Message-ID: <9210120651.AA15257@us-es.sel.de> - -extern int fred( int); - -class X { - public : - void f( int = fred( 0) ) ; // ERROR - previous spec -} ; - -void X::f( int x = fred( 0) ) {// ERROR - .* -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/init6.C b/gcc/testsuite/g++.old-deja/g++.law/init6.C deleted file mode 100755 index bcebd6c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/init6.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// GROUPS passed initialization -class Vector { - double *v; - int size; - -public: - Vector(int n); - ~Vector(); -}; - -exmpl() { Vector x(8)[16]; }// ERROR - .* - diff --git a/gcc/testsuite/g++.old-deja/g++.law/init7.C b/gcc/testsuite/g++.old-deja/g++.law/init7.C deleted file mode 100755 index 2ec97c4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/init7.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS passed initialization -class test - { - public: - int x; - int y; - test (int val) { x = val; y = 0;} - }; - -test ar(34)[5];// ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.law/init8.C b/gcc/testsuite/g++.old-deja/g++.law/init8.C deleted file mode 100755 index 6b52bdc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/init8.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: -// GROUPS passed initialization -// init file -// From: kol@world.std.com (Nikolay Yatsenko) -// Date: Wed, 27 Jan 1993 16:39:13 -0500 -// Subject: g++ bug -// Message-ID: <199301272139.AA25514@world.std.com> - - -const int ic = 1; -void f(int& arg) -{ // ERROR - argument 1 - if (arg) ; -} -const int& icr = ic; - -int main(void) -{ - f(icr); // g++ does not give error here// ERROR - .* - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/init9.C b/gcc/testsuite/g++.old-deja/g++.law/init9.C deleted file mode 100755 index d6cec1b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/init9.C +++ /dev/null @@ -1,35 +0,0 @@ -// GROUPS passed initialization -// init file -// From: Richard Speed <speed@cs.montana.edu> -// Date: Sun, 6 Jun 1993 15:19:41 -0600 (MDT) -// Subject: excess elements in aggr initzer -// Message-ID: <Pine.3.07.9306061541.A10267-b100000@fubar.cs.montana.edu> - -extern "C" void printf (char *, ...); - -class samp { - int a; -public: - samp(int n) { a = n; } - int get_a() { return a; } -}; - -int main() { - samp ob[4] [2] = { // Generated Error - 1, 2, - 3, 4, - 5, 6, - 7, 8, - }; - int i; - - if (ob[0][0].get_a() == 1 && ob[0][1].get_a() == 2 - && ob[1][0].get_a() == 3 && ob[1][1].get_a() == 4 - && ob[2][0].get_a() == 5 && ob[2][1].get_a() == 6 - && ob[3][0].get_a() == 7 && ob[3][1].get_a() == 8) - printf ("PASS\n"); - else - printf ("FAIL\n"); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/inline1.C b/gcc/testsuite/g++.old-deja/g++.law/inline1.C deleted file mode 100755 index 11e8d0a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/inline1.C +++ /dev/null @@ -1,3598 +0,0 @@ -// Build don't link: -// Special g++ Options: -fno-for-scope -// GROUPS passed inlining -# 1 "NISTImages.cc" -# 1 "Vision.h" 1 - - - - - - - - - -extern "C" { -# 1 "/sym/gnu/lib/g++-include/stdio.h" 1 3 - - - - - - - - - - - - - - - - - - - - -#pragma interface - - - - - - - - - - - -# 1 "/sym/gnu/lib/g++-include/_G_config.h" 1 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 33 "/sym/gnu/lib/g++-include/stdio.h" 2 3 - - -extern "C" { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdio.h" 1 3 - -# 1 "/sym/gnu/lib/g++-include/stdarg.h" 1 3 -extern "C" { -# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdarg.h" 1 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/va-sparc.h" 1 3 - - - - - - - - - - - -typedef char * __gnuc_va_list; - - - - - - - - - -# 79 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/va-sparc.h" 3 - - -# 32 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdarg.h" 2 3 - -# 77 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdarg.h" 3 - - - - - - -# 140 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdarg.h" 3 - - - - - -# 2 "/sym/gnu/lib/g++-include/stdarg.h" 2 3 - -} -# 2 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdio.h" 2 3 - - - - - - -extern struct _iobuf { - int _cnt; - unsigned char *_ptr; - unsigned char *_base; - int _bufsiz; - short _flag; - char _file; -} _iob[]; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -extern struct _iobuf *__hide_fopen (); -extern struct _iobuf *__hide_fdopen (); -extern struct _iobuf *__hide_freopen (); -extern struct _iobuf *__hide_popen (); -extern struct _iobuf *tmpfile(); -extern long __hide_ftell (); -extern char *fgets(); -extern char *gets(); -extern char *__hide_sprintf (); -extern char *ctermid(); -extern char *cuserid(); -extern char *__hide_tempnam (); -extern char *tmpnam(); - - - - - - -# 69 "/sym/gnu/lib/g++-include/stdio.h" 2 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -} - -extern "C" { - -int fclose(struct _iobuf *); -struct _iobuf * fdopen(int, const char*); -int fflush(struct _iobuf *); -int fgetc(struct _iobuf *); -char* fgets(char*, int, struct _iobuf *); -struct _iobuf * fopen(const char*, const char*); -int fprintf(struct _iobuf *, const char* ...); -int fputc(int, struct _iobuf *); -int fputs(const char*, struct _iobuf *); -int fread(void*, int , int , struct _iobuf *); - - - -struct _iobuf * freopen(const char*, const char*, struct _iobuf *); - -int fscanf(struct _iobuf *, const char* ...); -int fseek(struct _iobuf *, long, int); -long ftell(struct _iobuf *); -int fwrite(const void*, int , int , struct _iobuf *); -char* gets(char*); -int getw(struct _iobuf *); -int pclose(struct _iobuf *); -void perror(const char*); -struct _iobuf * popen(const char*, const char*); -int printf(const char* ...); -int puts(const char*); -int putw(int, struct _iobuf *); -int rewind(struct _iobuf *); -int scanf(const char* ...); -void setbuf(struct _iobuf *, char*); -void setbuffer(struct _iobuf *, char*, int); -int setlinebuf(struct _iobuf *); -int setvbuf(struct _iobuf *, char*, int, int ); -int sscanf(char*, const char* ...); -struct _iobuf * tmpfile(); -int ungetc(int, struct _iobuf *); -int vfprintf (...) ; -int vprintf (...) ; -char* sprintf (...) ; -char* vsprintf (...) ; - -extern int _filbuf (...) ; -extern int _flsbuf (...) ; - -} - - - - - - - - - - - - - - - - - - -# 11 "Vision.h" 2 - -# 1 "/usr/include/floatingpoint.h" 1 3 - - - - - - - - - - - - - - - - - -# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/ieeefp.h" 1 3 - - - - - - - - - - - - - - - - - -enum fp_direction_type - { - fp_nearest = 0, - fp_tozero = 1, - fp_positive = 2, - fp_negative = 3 - } ; - -# 34 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/ieeefp.h" 3 - -# 43 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/ieeefp.h" 3 - - -# 53 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/ieeefp.h" 3 - -enum fp_precision_type - { - fp_extended = 0, - fp_single = 1, - fp_double = 2, - fp_precision_3 = 3 - } ; - - -# 73 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/ieeefp.h" 3 - -enum fp_exception_type - { - fp_inexact = 0, - fp_division = 1, - fp_underflow = 2, - fp_overflow = 3, - fp_invalid = 4 - } ; - - -enum fp_class_type - { - fp_zero = 0, - fp_subnormal = 1, - fp_normal = 2, - fp_infinity = 3, - fp_quiet = 4, - fp_signaling = 5 - } ; - - -# 18 "/usr/include/floatingpoint.h" 2 3 - - - - -typedef float single; -typedef unsigned long extended[3]; - -typedef long double quadruple; - - - - - - - - -typedef unsigned fp_exception_field_type; - - - - -typedef int sigfpe_code_type; - -typedef void (*sigfpe_handler_type) (); - - - - - - - - -extern enum fp_direction_type fp_direction; - - - - -extern enum fp_precision_type fp_precision; - - - - -extern fp_exception_field_type fp_accrued_exceptions; - - - - - - - - - - - -typedef char decimal_string[512 ]; - - -typedef struct { - enum fp_class_type fpclass; - int sign; - int exponent; - decimal_string ds; - - - int more; - - - int ndigits; - - -} - decimal_record; - -enum decimal_form { - fixed_form, - - - - floating_form - -}; - -typedef struct { - enum fp_direction_type rd; - - enum decimal_form df; - int ndigits; -} - decimal_mode; - -enum decimal_string_form { - invalid_form, - whitespace_form, - fixed_int_form, - fixed_intdot_form, - fixed_dotfrac_form, - fixed_intdotfrac_form, - floating_int_form, - floating_intdot_form, - floating_dotfrac_form, - floating_intdotfrac_form, - inf_form, - infinity_form, - nan_form, - nanstring_form -}; - - - -extern void double_to_decimal(); -extern void quadruple_to_decimal(); -extern char *econvert(); -extern char *fconvert(); -extern char *gconvert(); -extern char *qeconvert(); -extern char *qfconvert(); -extern char *qgconvert(); - - - - - -extern sigfpe_handler_type ieee_handlers[5 ]; - - - - - - - -extern sigfpe_handler_type sigfpe(); - -extern void single_to_decimal(); -extern void extended_to_decimal(); - -extern void decimal_to_single(); -extern void decimal_to_double(); -extern void decimal_to_extended(); -extern void decimal_to_quadruple(); - -extern char *seconvert(); -extern char *sfconvert(); -extern char *sgconvert(); - -extern void string_to_decimal(); -extern void file_to_decimal(); -extern void func_to_decimal(); - - - -extern double atof(); - - - -extern int errno; - -extern double strtod(); - - -# 12 "Vision.h" 2 - -# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/malloc.h" 1 3 - - - - - - - - - - - - - - - - -struct mallinfo { - int arena; - int ordblks; - int smblks; - int hblks; - int hblkhd; - int usmblks; - int fsmblks; - int uordblks; - int fordblks; - int keepcost; - - int mxfast; - int nlblks; - int grain; - int uordbytes; - int allocated; - int treeoverhead; -}; - -typedef void * malloc_t; - -extern malloc_t calloc( ); -extern void free( ); -extern malloc_t malloc( ); -extern malloc_t realloc( ); -extern int mallopt(); -extern struct mallinfo mallinfo(); - - -# 13 "Vision.h" 2 - -long time(long *); -int ieee_handler(); -} - -# 1 "/sym/gnu/lib/g++-include/std.h" 1 3 - - - - - - - - - - - - - - - - - - - - - - - -# 1 "/sym/gnu/lib/g++-include/stddef.h" 1 3 - - -extern "C" { - - - -# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stddef.h" 1 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 41 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stddef.h" 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -typedef int ptrdiff_t; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -typedef __wchar_t wchar_t; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 7 "/sym/gnu/lib/g++-include/stddef.h" 2 3 - - - - -} - -# 24 "/sym/gnu/lib/g++-include/std.h" 2 3 - -# 1 "/sym/gnu/lib/g++-include/stdlib.h" 1 3 - - - - - - - -extern "C" { - -int abs(int); - - -void abort(void); - - - - -double atof(const char*); -int atoi(const char*); -long atol(const char*); - -int atexit(auto void (*p) (void)); -int bsearch (const void *, const void *, int , - int , auto int (*ptf)(const void*, const void*)); -void* calloc(int , int ); -void cfree(void*); - - -void exit(int); - - - - -char* fcvt(double, int, int*, int*); -void free(void*); -char* getenv(const char*); -int getopt(int, char * const *, const char*); -int getpw(int, char*); -char* gcvt(double, int, char*); -char* ecvt(double, int, int*, int*); -extern char** environ; - -long labs(long); -void* malloc(int ); -int malloc_usable_size(void*); -int putenv(const char*); -extern char* optarg; -extern int opterr; -extern int optind; -void qsort(void*, int , int , auto int (*ptf)(void*,void*)); -int rand(void); -void* realloc(void*, int ); -int setkey(const char*); -int srand(unsigned int); -double strtod(const char*, char**); -long strtol(const char*, char**, int); -unsigned long stroul(const char**, int); -int system(const char*); - -long random(void); -void srandom(int); -char* setstate(char*); -char* initstate(unsigned, char*, int); - -double drand48(void); -void lcong48(short*); -long jrand48(short*); -long lrand48(void); -long mrand48(void); -long nrand48(short*); -short* seed48(short*); -void srand48(long); - -char* ctermid(char*); -char* cuserid(char*); -char* tempnam(const char*, const char*); -char* tmpnam(char*); - -} - -# 25 "/sym/gnu/lib/g++-include/std.h" 2 3 - -# 1 "/sym/gnu/lib/g++-include/string.h" 1 3 - - - - - - - - - - - - - - -extern "C" { - -char* strcat(char*, const char*); -char* strchr(const char*, int); -int strcmp(const char*, const char*); -int strcoll(const char*, const char*); -char* strcpy(char*, const char*); -int strcspn(const char*, const char*); -char* strdup(const char*); - - - - -char* strncat(char*, const char*, int ); -int strncmp(const char*, const char*, int ); -char* strncpy(char*, const char*, int ); -char* strpbrk(const char*, const char*); -char* strrchr(const char*, int); -int strspn(const char*, const char*); -char* strstr(const char*, const char *); -char* strtok(char*, const char*); -int strxfrm(char*, const char*, int ); - -char* index(const char*, int); -char* rindex(const char*, int); -} - -# 1 "/sym/gnu/lib/g++-include/memory.h" 1 3 - - - - - - - -extern "C" { - -void* memalign (...) ; -void* memccpy (...) ; -void* memchr (...) ; -int memcmp (...) ; -void* memcpy (...) ; -void* memmove (...) ; -void* memset (...) ; -int ffs (...) ; -int getpagesize (...) ; -void* valloc (...) ; - -void bcopy (...) ; -int bcmp (...) ; -void bzero (...) ; -} - - - - - - - - - - - - - - -# 43 "/sym/gnu/lib/g++-include/string.h" 2 3 - - - -# 26 "/sym/gnu/lib/g++-include/std.h" 2 3 - - -# 1 "/sym/gnu/lib/g++-include/unistd.h" 1 3 - - - - - -extern "C" { - - - - - - - - - - - - - - - - - - -# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/unistd.h" 1 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 1 "/sym/gnu/lib/g++-include/sys/types.h" 1 3 - - -extern "C" -{ - - - - - - - - - - -# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/types.h" 1 3 - - - - - - - - - - - - - - - -# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/stdtypes.h" 1 3 - - - - - - - - - - - - - -typedef int sigset_t; - -typedef unsigned int speed_t; -typedef unsigned long tcflag_t; -typedef unsigned char cc_t; -typedef int pid_t; - -typedef unsigned short mode_t; -typedef short nlink_t; - -typedef long clock_t; -typedef long time_t; - - - - - - - - - - - - - - - - -# 16 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/types.h" 2 3 - - - -# 1 "/usr/include/sys/sysmacros.h" 1 3 - - - - - - - - - - - - - - - - - - - -# 19 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/types.h" 2 3 - - - - - -typedef unsigned char u_char; -typedef unsigned short u_short; -typedef unsigned int u_int; -typedef unsigned long u_long; -typedef unsigned short ushort; -typedef unsigned int uint; - - - - - - - - - - - - - - - -typedef struct _physadr_t { int r[1]; } *physadr_t; -typedef struct label_t { - int val[2]; -} label_t; - - - - - - - -typedef struct _quad_t { long val[2]; } quad_t; -typedef long daddr_t; -typedef char * caddr_t; -typedef unsigned long ino_t; -typedef short dev_t; -typedef long off_t; -typedef unsigned short uid_t; -typedef unsigned short gid_t; -typedef long key_t; -typedef char * addr_t; - - - - - - - - - - - - - - -typedef long fd_mask; - - - - - - - - - -typedef struct fd_set { - fd_mask fds_bits[(((256 )+(( (sizeof (fd_mask) * 8 ) )-1))/( (sizeof (fd_mask) * 8 ) )) ]; -} fd_set; - - - - - - - -# 113 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/types.h" 3 - - - -# 15 "/sym/gnu/lib/g++-include/sys/types.h" 2 3 - - - - - - -} - - - - -# 73 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/unistd.h" 2 3 - - -extern int access( ); -extern unsigned alarm( ); -extern int chdir( ); -extern int __hide_chmod ( ); -extern int __hide_chown ( ); -extern int close( ); -extern char *ctermid( ); -extern char *cuserid( ); -extern int dup( ); -extern int dup2( ); -extern int __hide_execl ( ); -extern int __hide_execle ( ); -extern int __hide_execlp ( ); -extern int execv( ); -extern int execve( ); -extern int execvp( ); -extern pid_t fork( ); -extern long fpathconf( ); -extern char *getcwd( ); -extern gid_t getegid( ); -extern uid_t geteuid( ); -extern gid_t getgid( ); -extern int getgroups( ); -extern char *getlogin( ); -extern pid_t getpgrp( ); -extern pid_t getpid( ); -extern pid_t getppid( ); -extern uid_t getuid( ); -extern int isatty( ); -extern int link( ); -extern off_t lseek( ); -extern long pathconf( ); -extern int pause( ); -extern int pipe( ); -extern int read( ); -extern int rmdir( ); -extern int __hide_setgid ( ); -extern int setpgid( ); -extern pid_t setsid( ); -extern int __hide_setuid ( ); -extern unsigned sleep( ); -extern long sysconf( ); -extern pid_t tcgetpgrp( ); -extern int tcsetpgrp( ); -extern char *ttyname( ); -extern int unlink( ); -extern int write( ); - - - -# 25 "/sym/gnu/lib/g++-include/unistd.h" 2 3 - - - - - - - - - - - - - - - -# 59 "/sym/gnu/lib/g++-include/unistd.h" 3 - - - -extern void _exit(int); - - - - -extern unsigned alarm (...) ; -extern int brk (...) ; -extern int chdir (...) ; -extern int chmod (...) ; -extern int chown (const char*, unsigned short , unsigned short ); -extern int close (...) ; -extern char* crypt (...) ; -extern int dup (...) ; -extern int dup2 (...) ; -extern void encrypt (...) ; -extern int execl (const char*, const char *, ...); -extern int execle (const char*, const char *, ...); -extern int execlp (const char*, const char*, ...); -extern int exect (...) ; -extern int execv (...) ; -extern int execve (...) ; -extern int execvp (...) ; -extern int fchown (int, unsigned short , unsigned short ); -extern int fork (...) ; -extern int fsync (...) ; -extern int ftruncate (...) ; -extern char* getcwd (...) ; -extern int getdomainname (...) ; -extern int getdtablesize (...) ; -extern int getgroups (...) ; -extern unsigned short geteuid (...) ; -extern unsigned short getegid (...) ; -extern unsigned short getgid (...) ; -extern long gethostid (...) ; -extern int gethostname (...) ; -extern int getpgrp (...) ; -extern int getpid (...) ; -extern int getppid (...) ; -extern char* getlogin (...) ; -extern char* getpass (...) ; -extern unsigned short getuid (...) ; -extern int ioctl (int, int, ... ); -extern int isatty (...) ; -extern int link (...) ; -extern int mkstemp (...) ; -extern char* mktemp (...) ; -extern int nice (...) ; -extern int pause (...) ; -extern int pipe (...) ; -extern int readlink (...) ; -extern int rename (...) ; -extern int rmdir (...) ; -extern void* sbrk (...) ; -extern int syscall (...) ; -extern int setgid (unsigned short ); -extern int sethostname (...) ; - - - - -extern int setpgrp (...) ; - -extern int setregid (...) ; -extern int setreuid (...) ; -extern int setuid (unsigned short ); -extern unsigned sleep (...) ; -extern void swab (...) ; -extern int symlink (...) ; -extern long sysconf (...) ; -extern int truncate (...) ; -extern char* ttyname (...) ; -extern int ttyslot (...) ; - -extern int unlink (...) ; -extern int vfork (...) ; -extern int vadvise (...) ; -extern int vhangup (...) ; -extern long lseek (...) ; -extern int read (...) ; -extern int write (...) ; -extern int access (...) ; - -extern int flock (...) ; - - -} - - -# 28 "/sym/gnu/lib/g++-include/std.h" 2 3 - -# 1 "/sym/gnu/lib/g++-include/stdio.h" 1 3 - - - - - - - - - - - - - - - - - - -# 174 "/sym/gnu/lib/g++-include/stdio.h" 3 - -# 29 "/sym/gnu/lib/g++-include/std.h" 2 3 - -# 1 "/sym/gnu/lib/g++-include/errno.h" 1 3 - - -extern "C" { - - - - - -# 1 "/usr/include/errno.h" 1 3 - - - - - - - - - -# 1 "/usr/include/sys/errno.h" 1 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 10 "/usr/include/errno.h" 2 3 - -extern int errno; - - -# 9 "/sym/gnu/lib/g++-include/errno.h" 2 3 - - - - -extern char* sys_errlist[]; -extern int sys_nerr; - -extern int errno; - -void perror(const char*); -char* strerr(int); - - -} - - -# 30 "/sym/gnu/lib/g++-include/std.h" 2 3 - -# 1 "/sym/gnu/lib/g++-include/fcntl.h" 1 3 - - -extern "C" { - - - - - - - - - - -# 1 "/usr/include/fcntl.h" 1 3 - - - - - -# 1 "/usr/include/sys/fcntlcom.h" 1 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -struct flock { - short l_type; - short l_whence; - long l_start; - long l_len; - short l_pid; - short l_xxx; -}; - - - -struct eflock { - short l_type; - short l_whence; - long l_start; - long l_len; - short l_pid; - short l_xxx; - long l_rpid; - long l_rsys; -}; - - - -# 1 "/sym/gnu/lib/g++-include/sys/stat.h" 1 3 - - -extern "C" -{ - - - - - - - - - -# 1 "/usr/include/sys/stat.h" 1 3 - - - - - - - - - - - -struct stat { - dev_t st_dev; - ino_t st_ino; - mode_t st_mode; - short st_nlink; - uid_t st_uid; - gid_t st_gid; - dev_t st_rdev; - off_t st_size; - time_t st_atime; - int st_spare1; - time_t st_mtime; - int st_spare2; - time_t st_ctime; - int st_spare3; - long st_blksize; - long st_blocks; - long st_spare4[2]; -}; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -int __hide_chmod ( ); -int fstat( ); -int mkdir( ); -int mkfifo( ); -int stat( ); -mode_t umask( ); - - - -# 14 "/sym/gnu/lib/g++-include/sys/stat.h" 2 3 - - - - - - -extern int chmod (...) ; -extern int stat (...) ; -extern int lstat (...) ; -extern int fstat (...) ; - - - - - - - - - - - - - - - - - - -} - - -# 149 "/usr/include/sys/fcntlcom.h" 2 3 - - -int __hide_open ( ); -int __hide_creat ( ); -int __hide_fcntl ( ); - - -# 6 "/usr/include/fcntl.h" 2 3 - - - - - -# 14 "/sym/gnu/lib/g++-include/fcntl.h" 2 3 - - - - - - - - -int fcntl(int, int, ...); -int creat (...) ; - -int open (...) ; - - -} - -# 31 "/sym/gnu/lib/g++-include/std.h" 2 3 - - -extern "C" { -int strcasecmp (...) ; -} - - -# 18 "Vision.h" 2 - -# 1 "/sym/gnu/lib/g++-include/math.h" 1 3 - - - - - - - - - - - - - - - - - - - - - -#pragma interface - - - - - - - - - - - -# 64 "/sym/gnu/lib/g++-include/math.h" 3 - -extern "C" { - -double acos(double); -double acosh(double); -double asin(double); -double asinh(double); -double atan(double); -double atan2(double, double); -double atanh(double); -double cbrt(double); -double ceil(double); -double copysign(double,double); -double cos(double); -double cosh(double); -double drem(double,double); -double erf(double); -double erfc(double); -double exp(double); -double expm1(double); -double fabs(double); -double finite(double); -double floor(double); -double fmod(double, double); -double frexp(double, int*); -double gamma(double); -double hypot(double,double); -double infnan(int); - - -int isinf(double); -int isnan(double); - -double j0(double); -double j1(double); -double jn(int, double); -double ldexp(double, int); -double lgamma(double); -double log(double); -double log10(double); -double log1p(double); -double logb(double); -double modf(double, double*); -double pow(double, double); -double rint(double); -double scalb(double, int); -double sin(double); -double sinh(double); -double sqrt(double); -double tan(double); -double tanh(double); -double y0(double); -double y1(double); -double yn(int, double); - -double aint(double); -double anint(double); -int irint(double); -int nint(double); -} - - - - - - - - -struct libm_exception -{ - int type; - char* name; - double arg1, arg2, retval; -}; - - - - - - - - -extern "C" int matherr(libm_exception*); - - - -# 1 "/sym/gnu/lib/g++-include/values.h" 1 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 57 "/sym/gnu/lib/g++-include/values.h" 3 - - - - - - - - - - - - - - - -# 166 "/sym/gnu/lib/g++-include/values.h" 3 - - - - - - - - - -# 150 "/sym/gnu/lib/g++-include/math.h" 2 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 19 "Vision.h" 2 - - -# 1 "MiscUtilities.h" 1 - - - - - -# 1 "/sym/gnu/lib/g++-include/std.h" 1 3 - - - - - - - - - - - - - - - - - - - -# 37 "/sym/gnu/lib/g++-include/std.h" 3 - -# 6 "MiscUtilities.h" 2 - - - - - - - - - -inline int used_mem() { - struct mallinfo mi = mallinfo(); - return mi.usmblks+mi.uordblks; -} -inline void abort(void) { - fprintf((&_iob[2]) ,"abort\n"); - exit(1); -} - -inline volatile void error(char *s) { - fprintf((&_iob[2]) ,"FATAL ERROR: "); - fprintf((&_iob[2]) ,"%s\n",s); - exit(1); -} -template <class Y> -struct NameValuePair { - char *name; - Y y; -}; - -template <class Y> -Y lookup(NameValuePair<Y> *data,char *name) { - while(data->name) { - if(!strcmp(data->name,name)) return data->y; - data++; - } - abort(); - return data->y; -} - -template <class T> -void swap(T &x,T &y) { - T temp = x; - x = y; - y = temp; -} - - -# 21 "Vision.h" 2 - -# 1 "Counted.h" 1 - - - - - -# 1 "/sym/gnu/lib/g++-include/std.h" 1 3 - - - - - - - - - - - - - - - - - - - -# 37 "/sym/gnu/lib/g++-include/std.h" 3 - -# 6 "Counted.h" 2 - - -template <class T> -struct Counted { - private: - int *count; - T *object; - T *operator&() { - return object; - } - void dec_count() { - if(!count) return; - (*count)--; - if(*count<=0) { - delete count; - delete object; - count=0; - object=0; - } - } - void inc_count() { - if(!count) return; - (*count)++; - } - public: - Counted() { - count=0; - object=0; - } - Counted(T *object):object(object) { - count = new int(1); - } - ~Counted() { - dec_count(); - } - Counted(Counted &other) { - count=other.count; - object=other.object; - inc_count(); - } - Counted &operator=(Counted &other) { - other.inc_count(); - dec_count(); - count=other.count; - object=other.object; - return *this; - } - - T &operator*() {if(!object) abort(); else return *object; return *object;} - T *operator->() {if(!object) abort(); else return object; return object;} - operator T&() {if(!object) abort(); else return *object; return *object;} - - -}; - - -# 22 "Vision.h" 2 - -# 1 "Art.h" 1 - - - - - - -extern "C" { void abort(); } - - - - - - - - - - - - -template <class X> -inline void art_initialize(X *,int) {} - -# 39 "Art.h" - - - - - - -template <class T> -class Art { -protected: - int mark_temp; - T *data; - int dims[1]; - void constructor(int d) { - if(d<0) abort() ; - mark_temp=0; - dims[0]=d; - if(d>0) { - data=new T[d]; - if(!data) abort() ; - } else data=0; - art_initialize(data,d); - } - void destructor() { - if(!data) return; - delete [] data; - mark_temp=0; - data=0; - dims[0]=0; - } - void copy(Art &other) { - int d0=dims[0]<?other.dims[0]; - for(int i=0;i<d0;i++) data[i]=other.data[i]; - } -public: - void copyclear(Art &other) { - dims[0]=other.dims[0]; - data=other.data; - other.dims[0]=0; - other.data=0; - } -private: - void copyconstructor(Art &other) { - mark_temp=0; - if(other.mark_temp) { - copyclear(other); - } else { - constructor(other.dims[0]); - copy(other); - } - } - public: - Art() {constructor(0);} - Art(int d) {constructor(d);} - Art(Art &other) {copyconstructor(other);} - ~Art() {destructor();} - - Art &operator=(Art &other) { - destructor(); - copyconstructor(other); - return *this; - } - int dim(int i) {return dims[i];} - T &operator()(int i) { - if(unsigned(i)>=unsigned(dims[0])) abort() ; - return data[i]; - } - T &sub(int i) {return data[i];} - void resize(int nd) { - if(nd<0) abort() ; - Art t(nd); - int limit=nd<?dims[0]; - for(int i=0;i<limit;i++) t.data[i]=data[i]; - t.mark_temp=1; - *this=t; - } - Art &temp() { mark_temp=1; return *this; } - T *pointer() {return data;} - void fill(T value) {for(int i=0;i<dims[0];i++) data[i]=value;} - - int length() {return dims[0];} - T &operator[](int i) {return operator()(i);} -}; - - - - - - - - -template <class T> -class Stk { -protected: - Art<T> stack; - int fill; -public: - Stk() {stack.resize(4); fill=0;} - Stk(Stk &other) { - stack=other.stack; - fill=other.fill; - } - int dim(int i) {return stack.dim(i);} - void push(const T &element) { - if(fill>=stack.dim(0)) stack.resize(2*fill); - stack.sub(fill++)=element; - } - T &tos() { - return stack(fill-1); - } - T &pop() { - return stack(--fill); - } - T &operator()(int i) {return stack(i);} - T &sub(int i) {return stack.sub(i);} - void clear() { - stack.resize(0); - stack.resize(4); - fill=0; - } - void compact() { - stack.resize(fill+1); - } - Stk temp() { stack.temp(); return *this; } - T *pointer() {return stack.pointer();} - operator Art<T>&() {return stack;} - - int length() {return fill;} - T &operator[](int i) {return operator()(i);} -}; - - - - - -template <class T> -class Art2 { -protected: - int mark_temp; - T **data; - int dims[2]; - int total_length; - void constructor(int d0,int d1) { - if(d0<0||d1<0) abort() ; - mark_temp=0; - dims[0]=d0; - dims[1]=d1; - total_length=dims[0]*dims[1]; - if(d0>0) { - data=new T*[d0]; - if(!data) abort() ; - } else data=0; - if(d0>0&&d1>0) { - T *p=new T[d0*d1]; - if(!p) abort() ; - for(int i=0;i<d0;i++) data[i]=p+i*d1; - art_initialize(data[0],d0*d1); - } - } - void destructor() { - if(dims[0]<1) return; - if(!data) return; - delete [] data[0]; - delete [] data; - mark_temp=0; - data=0; - dims[0]=0; - dims[1]=0; - } - void copy(Art2 &other) { - int d0=dims[0]<?other.dims[0]; - int d1=dims[1]<?other.dims[1]; - for(int i=0;i<d0;i++) for(int j=0;j<d1;j++) - data[i][j]=other.data[i][j]; - } -public: - void copyclear(Art2 &other) { - dims[0]=other.dims[0]; - dims[1]=other.dims[1]; - total_length=dims[0]*dims[1]; - data=other.data; - other.dims[0]=0; - other.dims[1]=0; - other.total_length=0; - other.data=0; - } -private: - void copyconstructor(Art2 &other) { - mark_temp=0; - if(other.mark_temp) { - copyclear(other); - } else { - constructor(other.dims[0],other.dims[1]); - copy(other); - } - } - public: - Art2() {constructor(0,0);} - Art2(int d0,int d1) {constructor(d0,d1);} - Art2(const Art2 &other) {copyconstructor((Art2&)other);} - ~Art2() {destructor();} - - Art2 &operator=(Art2 &other) { - destructor(); - copyconstructor(other); - return *this; - } - int dim(int i) {return dims[i];} - T &operator()(int i,int j) { - if(unsigned(i)>=unsigned(dims[0])||unsigned(j)>=unsigned(dims[1])) - abort() ; - return data[i][j]; - } - T &sub(int i,int j) {return data[i][j];} - void resize(int nd0,int nd1) { - if(nd0<0||nd1<0) abort() ; - Art2 t(nd0,nd1); - int limit0=nd0<?dims[0]; - int limit1=nd1<?dims[1]; - for(int i=0;i<limit0;i++) for(int j=0;j<limit1;j++) t.data[i][j]=data[i][j]; - t.mark_temp=1; - *this=t; - } - Art2 &temp() { mark_temp=1; return *this; } - T **pointer() {return data;} - void fill(T value) { - for(int i=0;i<dims[0];i++) for(int j=0;j<dims[1];j++) - data[i][j]=value; - } - - - - int length() {return total_length;} - T &sub(int i) {return data[0][i];} - T &operator()(int i) { - if(unsigned(i)>=total_length) abort() ; - return data[0][i]; - } -}; - -template <class T> -inline void art_swap(T &x,T &y) { - T temp = x; - x = y; - y = temp; -} - -template <class T> -inline void reverse(Art<T> &a) { - int i; - for(i=a.length()/2;i>=0;i--) art_swap(a.sub(i),a.sub(a.length()-i-1)); -} - -template <class T> -inline void reverse(Stk<T> &a) { - reverse(a.stack); -} - -template <class T> -inline void bag_remove(Stk<T> &a,T &element) { - for(int i=0;i<a.length()-1;i++) { - if(a(i)==element) { - a.sub(i)=a.tos(); - a.pop(); - } - } - if(i<a.length()&&a.sub(i)==element) a.pop(); -} - -template <class T> -inline void ordered_remove(Stk<T> &a,T &element) { - int source=0,dest=0; - while(source<a.length()) { - if(a(source)!=element) { - a(dest)=a(source); - dest++; - } - source++; - } - a.stack.resize(dest); -} - -template <class T> -inline Art<T> concatenate(Art<T> &a,Art<T> &b) { - int i,k; - k=a.length(); - Art<T> result(k+b.length()); - for(i=0;i<a.length();i++) result.sub(i)=a.sub(i); - for(i=0;i<b.length();i++) result.sub(i+k)=b.sub(i); - return result.temp(); -} - -template <class T> -inline Stk<T> concatenate(Stk<T> &a,Stk<T> &b) { - int i; - Stk<T> result; - for(i=0;i<a.length();i++) result.push(a.sub(i)); - for(i=0;i<b.length();i++) result.push(b.sub(i)); - return result.temp(); -} - - -# 23 "Vision.h" 2 - -# 1 "Geo.h" 1 - - - - - -# 1 "/sym/gnu/lib/g++-include/math.h" 1 3 - - - - - - - - - - - - - - - - - - - -# 215 "/sym/gnu/lib/g++-include/math.h" 3 - -# 6 "Geo.h" 2 - - -extern "C" { -void abort(void); -} - - - - - - - - - - - - - - -template <class T,int n> -class vec { -protected: - T v[n]; -public: - int length() {return n;} - int dim(int) {return n;} - vec() {} - vec(T v0) { v[0]=v0; } - vec(T v0,T v1) { v[0]=v0; v[1]=v1; } - vec(T v0,T v1,T v2) { v[0]=v0; v[1]=v1; v[2]=v2; } - vec(T v0,T v1,T v2,T v3) { v[0]=v0; v[1]=v1; v[2]=v2; v[3]=v3; } - vec(T v0,T v1,T v2,T v3,T v4) { v[0]=v0; v[1]=v1; v[2]=v2; v[3]=v3; v[4]=v4; } - - T &operator[](int i) {return v[i];} - T &sub(int i) {return v[i];} - T &operator()(int i) { - if(unsigned(i)>=n) abort(); - return v[i]; - } - - - - - - - - - - - - - T operator*(vec &other) { - T result=0; - for(int i=0;i<n;i++) result=result+sub(i)*other.sub(i); - return result; - } - - - vec operator-() { - vec result; - for(int i=0;i<n;i++) result.sub(i)= -sub(i); - return result; - } - vec operator*(T other) { - vec result; - for(int i=0;i<n;i++) result.sub(i)=sub(i)*other; - return result; - } - vec operator/(T other) { - vec result; - for(int i=0;i<n;i++) result.sub(i)=sub(i)/other; - return result; - } - vec operator+(vec &other) { - vec result; - for(int i=0;i<n;i++) result.sub(i)=sub(i)+other.sub(i); - return result; - } - vec operator-(vec &other) { - vec result; - for(int i=0;i<n;i++) result.sub(i)=sub(i)-other.sub(i); - return result; - } - vec operator<?(vec &other) { - vec result; - for(int i=0;i<n;i++) result.sub(i)=sub(i)<?other.sub(i); - return result; - } - vec operator>?(vec &other) { - vec result; - for(int i=0;i<n;i++) result.sub(i)=sub(i)>?other.sub(i); - return result; - } - - - int operator==(vec &other) { - for(int i=0;i<n;i++) if(sub(i)!=other.sub(i)) return 0; - return 1; - } - int operator!=(vec &other) { - for(int i=0;i<n;i++) if(sub(i)!=other.sub(i)) return 1; - return 0; - } - int operator<(vec &other) { - for(int i=0;i<n;i++) if(sub(i)>=other.sub(i)) return 0; - return 1; - } - int operator>(vec &other) { - for(int i=0;i<n;i++) if(sub(i)<=other.sub(i)) return 0; - return 1; - } - int operator<=(vec &other) { - for(int i=0;i<n;i++) if(sub(i)>other.sub(i)) return 0; - return 1; - } - int operator>=(vec &other) { - for(int i=0;i<n;i++) if(sub(i)<other.sub(i)) return 0; - return 1; - } -}; - -template <class T> -inline float euclidean_norm(T &v) { - float total=0.0; - for(int i=0;i<v.dim(0);i++) total+=v(i)*v(i); - return sqrt(total); -} - -template <class T> -inline float euclidean_distance(T &u,T &v) { - float total=0.0; - for(int i=0;i<u.dim(0);i++) { - float d=u(i)-v(i); - total+=d*d; - } - return sqrt(total); -} - - - - - -template <class T,int n> -class mat:vec<T,n*n> { -protected: -public: - int dim(int) {return n;} - T &operator[](int i) {return v[i];} - T &sub(int i,int j) {return v[i*n+j];} - T &operator()(int i,int j) { - if(unsigned(i)>=n||unsigned(j)>=n) abort(); - return sub(i,j); - } - mat operator*(mat &other) { - mat result; - for(int i=0;i<n;i++) for(int j=0;j<n;j++) { - T total=0; - for(int k=0;k<n;k++) total=total+sub(i,k)*other.sub(k,j); - result.sub(i,j)=total; - } - return result; - } - vec<T,n> operator*(vec<T,n> &other) { - vec<T,n> result; - for(int i=0;i<n;i++) { - T total=0; - for(int k=0;k<n;k++) total=total+sub(i,k)*other.sub(k); - result.sub(i)=total; - } - return result; - } -}; - - - - - -typedef vec<float,2> vec2; -typedef vec<float,3> vec3; -typedef vec<float,4> vec4; - -typedef mat<float,2> mat2; -typedef mat<float,3> mat3; -typedef mat<float,4> mat4; - -typedef vec<int,2> ivec2; - - - - - - - -inline float norm_angle(float p) { - while(p<0) p+=2* 3.14159265358979323846 ; while(p>=2* 3.14159265358979323846 ) p-=2* 3.14159265358979323846 ; return p; -} -inline float norm_angle0(float p) { - while(p<- 3.14159265358979323846 ) p+=2* 3.14159265358979323846 ; while(p>= 3.14159265358979323846 ) p-=2* 3.14159265358979323846 ; return p; -} -inline float norm_orientation(float p) { - while(p<0) p+= 3.14159265358979323846 ; while(p>= 3.14159265358979323846 ) p-= 3.14159265358979323846 ; return p; -} -inline float norm_orientation0(float p) { - while(p<- 3.14159265358979323846 /2) p+= 3.14159265358979323846 ; while(p>= 3.14159265358979323846 /2) p-= 3.14159265358979323846 ; return p; -} -inline float orientation_difference(float p,float q) { - fabs(norm_orientation0(p-q)); -} - - - - - - - - - - - - - - -inline vec2 cmul(vec2 &p,vec2 &q) { - return vec2(p.sub(0)*q.sub(0)-p.sub(1)*q.sub(1), - p.sub(0)*q.sub(1)+p.sub(1)*q.sub(0)); -} - -inline vec2 cdiv(vec2 &p,vec2 &q) { - float n=q*q; - return vec2((p.sub(0)*q.sub(0)+p.sub(1)*q.sub(1))/n, - (p.sub(1)*q.sub(0)-p.sub(0)*q.sub(1))/n); -} - -inline vec2 csqrt(vec2 &x) { - if (x.sub(0)==0.0&&x.sub(1)==0.0) - return vec2(0.0,0.0); - else { - float a=sqrt((fabs(x.sub(0))+hypot(x.sub(0),x.sub(1)))*0.5); - float b=0.5*(x.sub(1)/a); - if(x.sub(0)>0.0) return vec2(a, b); - else if(x.sub(1)>=0.0) return vec2(a,b); - else return vec2(-a,-b); - } -} -inline vec2 cpow(vec2& x, double p) { - float h=hypot(x.sub(0),x.sub(1)); - if (h<=0.0) abort(); - float lr=pow(h,p); - float a=atan2(x.sub(1),x.sub(0)); - float li=p*a; - return vec2(lr*cos(li),lr*sin(li)); -} - - - -inline float cross(vec2 p,vec2 q) { - return p.sub(0)*q.sub(1)-p.sub(1)*q.sub(0); -} - - - - - -struct TRS2 { - vec2 t; - vec2 r; - TRS2(vec2 t=vec2(0.0,0.0),vec2 r=vec2(1.0,0.0)):t(t),r(r) { - } - vec2 operator()(vec2 &arg) { - return cmul(r,arg)+t; - } - float rotation() { - return atan2(r(1),r(0)); - } -}; - - - -# 24 "Vision.h" 2 - - - - -# 1 "VisionTypes.h" 1 - - - - -typedef Art2<float> FImage; -typedef Art2<int> IImage; -typedef Art2<unsigned char> CImage; - -struct FImageOp {virtual FImage operator()(FImage &) = 0;}; -struct FImageOp2 {virtual FImage operator()(FImage &,FImage &) = 0;}; -struct CImageOp {virtual CImage operator()(CImage &) = 0;}; -struct CImageOp2 {virtual CImage operator()(CImage &,CImage &) = 0;}; - - - - - -struct PFeature { - ivec2 p; - float a; - short group; - short type; - PFeature() {} - PFeature(ivec2 p,float a,int group,int type):p(p),a(a),group(group),type(type) {} -}; - -typedef Stk<PFeature> PFeatureStk; - -struct FIExtractor {virtual PFeatureStk operator()(FImage &) = 0;}; -struct CIExtractor {virtual PFeatureStk operator()(CImage &) = 0;}; -# 28 "Vision.h" 2 - -# 1 "ImageDatabase.h" 1 - - - - - -# 1 "Art.h" 1 - - -# 339 "Art.h" - -# 6 "ImageDatabase.h" 2 - - -typedef Art2<unsigned char> CImage; - - - - - - - - -struct ImageDatabase { - - - - - virtual int length() = 0; - virtual int nclassifications() = 0; - virtual int nusers() = 0; - - - - - virtual int classification(int offset) = 0; - virtual int user(int offset) = 0; - - virtual CImage cimage(int offset) {abort();} - virtual PFeatureStk features(int offset) {abort();} - - - - - - - virtual int user_offset(int user) = 0; - virtual int user_length(int user) = 0; -}; - -ImageDatabase *make_NISTDigitImages(); - - - - - -struct ImageDatabaseIterator { - virtual int done() = 0; - virtual void next() = 0; - virtual operator int() = 0; - virtual void mark_upto_here() {} -}; - -ImageDatabaseIterator *make_IDI_Sequential(ImageDatabase *digits,int current,int stride); -ImageDatabaseIterator *make_IDI_OnePerUser(ImageDatabase *digits,int current); -ImageDatabaseIterator *make_IDI_FromFile(char *name); - - -# 29 "Vision.h" 2 - - - -# 1 "NISTImages.cc" 2 - - - - - - - - - - -# 1 "/sym/gnu/lib/g++-include/std.h" 1 3 - - - - - - - - - - - - - - - - - - - -# 37 "/sym/gnu/lib/g++-include/std.h" 3 - -# 11 "NISTImages.cc" 2 - -# 1 "Art.h" 1 - - -# 339 "Art.h" - -# 12 "NISTImages.cc" 2 - - -extern "C" { -# 1 "./nist/ihead.h" 1 - - - - - - - - - - - - - - -typedef struct ihead{ - char id[ 80 ]; - char created[ 26 ]; - char width[ 8 ]; - char height[ 8 ]; - char depth[ 8 ]; - char density[ 8 ]; - char compress[ 8 ]; - char complen[ 8 ]; - char align[ 8 ]; - char unitsize[ 8 ]; - char sigbit; - char byte_order; - char pix_offset[ 8 ]; - char whitepix[ 8 ]; - char issigned; - char rm_cm; - char tb_bt; - char lr_rl; - char parent[ 80 ]; - char par_x[ 8 ]; - char par_y[ 8 ]; -}IHEAD; - - - - - - - - - - - - - - - - - - - - - -# 15 "NISTImages.cc" 2 - -int readihdrfile(); - -} - -typedef Art2<unsigned char> CImage; - -Stk<char*> mis_files; - -extern "C" { - char *re_comp(char *); - int re_exec(char *); -} - -struct NISTCharFile { - private: - NISTCharFile(NISTCharFile &); - void operator=(NISTCharFile &); - public: - IHEAD *bit_header; - int bit_w,bit_h; - char *bit_data; - int field_w,field_h; - Stk<int> classes; - - static void maybe_read_mis_files() { - if(mis_files.length()>0) return; - struct _iobuf *stream = fopen("/com/nist/mis-files" ,"r"); - if(!stream) abort() ; - char buf[1024]; - while(fgets(buf,sizeof buf,stream)) { - buf[strlen(buf)-1]='\0'; - mis_files.push(strdup(buf)); - } - fclose(stream); - } - - static char *find_matching_mis_file_prefix(char *pattern) { - if(re_comp(pattern)) abort() ; - int i; - for(i=0;i<mis_files.length();i++) { - if(re_exec(mis_files(i))) break; - } - if(i<mis_files.length()) return mis_files(i); - else return 0; - } - - static int part_of_user(int user) { - int part; - if(user<500) part=0; - else if(user<1000) part=1; - else if(user<1500) part=2; - else part=3; - return part; - } - - static char type_of_itype(int itype) { - char type; - switch(itype) { - case 0: type='d'; break; - case 1: type='u'; break; - case 2: type='l'; break; - default: abort() ; - }; - return type; - } - - NISTCharFile(int user,char itype) { - maybe_read_mis_files(); - int type = type_of_itype(itype); - int part = part_of_user(user); - - char buf[512]; - sprintf(buf,"/com/nist3/data/" "hsf_%d/f%04d_.*/%c%04d_.*",part,user,type,user); - char *prefix = find_matching_mis_file_prefix(buf); - ; - - if(!prefix) { - bit_w = 0; - bit_h = 0; - field_w = 0; - field_h = 0; - return; - } - - char file[512]; - - strcpy(file,prefix); strcat(file,".mis"); - if(!readihdrfile(file,&bit_header,&bit_data,&bit_w,&bit_h)) - abort() ; - field_w=atoi(bit_header->par_x); - field_h=atoi(bit_header->par_y); - - strcpy(file,prefix); strcat(file,".cls"); - struct _iobuf *stream = fopen(file,"r"); - if(!stream) - abort() ; - int total=atoi(fgets(buf,sizeof buf,stream)); - if(total!=bit_h/field_h) - abort() ; - while(fgets(buf,sizeof buf,stream)) classes.push(strtol(buf,0,16)); - fclose(stream); - } - - ~NISTCharFile() { - free(bit_header); - free(bit_data); - } - - int length() { - return bit_h/field_h; - } - - CImage image(int i0) { - ; - CImage result(field_w,field_h); - int bit_w8=bit_w/8; - int offset=i0*field_h; - if(offset>=bit_h) abort() ; - int i,j; - - - for(i=0;i<field_w;i++) for(j=0;j<field_h;j++) { - int jj=j+offset; - result(i,field_h-j-1)=(!!(bit_data[bit_w8*jj+(i>>3)]&(1<<(7-i&7)))) ; - } - - return result.temp(); - } - - int classification(int i) { - return classes(i); - } -}; - -int *NISTDigitImages_table; - -struct NISTDigitImages:ImageDatabase { - private: - NISTDigitImages(NISTDigitImages&); - void operator=(NISTDigitImages&); - public: - enum {table_size=2101}; - - int nclassifications() {return 10;} - int nusers() {return 2200;} - - static void init_table() { - struct _iobuf *stream=fopen("/com/nist/nist-digits" ,"r"); - NISTDigitImages_table = new int[table_size]; - if(!stream) abort() ; - int i=1; - while(fscanf(stream,"%d",&NISTDigitImages_table[i])==1) i++; - if(i!=table_size) abort() ; - fclose(stream); - int total=0; - for(i=1;i<table_size;i++) NISTDigitImages_table[i]+=NISTDigitImages_table[i-1]; - } - - static int locate(int v) { - int low=0; - int high=table_size; - if(v>=NISTDigitImages_table[table_size-1]) abort() ; - while(low+1<high) { - int mid=(low+high)/2; - if(NISTDigitImages_table[mid]<=v) low=mid; - else high=mid; - } - while(low<table_size-1&&NISTDigitImages_table[low+1]<=v) low++; - return low; - } - - int user_offset(int user) { - if(unsigned(user)>=2100) abort() ; - return NISTDigitImages_table[user]; - } - - int user_length(int user) { - if(unsigned(user)>=2100) abort() ; - return NISTDigitImages_table[user+1]-NISTDigitImages_table[user]; - } - - int current_user; - NISTCharFile *current_file; - - private: - void get_cache(int user) { - if(user!=current_user) { - delete current_file; - current_file = new NISTCharFile(user,0); - current_user = user; - } - } - - public: - NISTDigitImages() { - ; - if(!NISTDigitImages_table) init_table(); - current_user=0; - current_file=new NISTCharFile(0,0); - ; - } - - ~NISTDigitImages() { - delete current_file; - } - - int length() {return NISTDigitImages_table[table_size-1];} - - int user(int i) { - return locate(i); - } - - CImage image(int i) { - int user = locate(i); - get_cache(user); - int offset = i-NISTDigitImages_table[user]; - return current_file->image(offset); - } - - int classification(int i) { - int user = locate(i); - get_cache(user); - int offset = i-NISTDigitImages_table[user]; - return current_file->classification(offset); - } -}; - -ImageDatabase *make_NISTDigitImages() { - return new NISTDigitImages(); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/inline2.C b/gcc/testsuite/g++.old-deja/g++.law/inline2.C deleted file mode 100755 index 2eb5b38..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/inline2.C +++ /dev/null @@ -1,3601 +0,0 @@ -// excess errors test - XFAIL - *-*-* -// Build don't link: -// Special g++ Options: -O2 -// GROUPS passed inlining -# 1 "NISTImages.cc" -# 1 "Vision.h" 1 - - - - - - - - - -extern "C" { -# 1 "/sym/gnu/lib/g++-include/stdio.h" 1 3 - - - - - - - - - - - - - - - - - - - - -#pragma interface - - - - - - - - - - - -# 1 "/sym/gnu/lib/g++-include/_G_config.h" 1 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 33 "/sym/gnu/lib/g++-include/stdio.h" 2 3 - - -extern "C" { - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdio.h" 1 3 - -# 1 "/sym/gnu/lib/g++-include/stdarg.h" 1 3 -extern "C" { -# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdarg.h" 1 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/va-sparc.h" 1 3 - - - - - - - - - - - -typedef char * __gnuc_va_list; - - - - - - - - - -# 79 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/va-sparc.h" 3 - - -# 32 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdarg.h" 2 3 - -# 77 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdarg.h" 3 - - - - - - -# 140 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdarg.h" 3 - - - - - -# 2 "/sym/gnu/lib/g++-include/stdarg.h" 2 3 - -} -# 2 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stdio.h" 2 3 - - - - - - -extern struct _iobuf { - int _cnt; - unsigned char *_ptr; - unsigned char *_base; - int _bufsiz; - short _flag; - char _file; -} _iob[]; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -extern struct _iobuf *__hide_fopen (); -extern struct _iobuf *__hide_fdopen (); -extern struct _iobuf *__hide_freopen (); -extern struct _iobuf *__hide_popen (); -extern struct _iobuf *tmpfile(); -extern long __hide_ftell (); -extern char *fgets(); -extern char *gets(); -extern char *__hide_sprintf (); -extern char *ctermid(); -extern char *cuserid(); -extern char *__hide_tempnam (); -extern char *tmpnam(); - - - - - - -# 69 "/sym/gnu/lib/g++-include/stdio.h" 2 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -} - -extern "C" { - -int fclose(struct _iobuf *); -struct _iobuf * fdopen(int, const char*); -int fflush(struct _iobuf *); -int fgetc(struct _iobuf *); -char* fgets(char*, int, struct _iobuf *); -struct _iobuf * fopen(const char*, const char*); -int fprintf(struct _iobuf *, const char* ...); -int fputc(int, struct _iobuf *); -int fputs(const char*, struct _iobuf *); -int fread(void*, int , int , struct _iobuf *); - - - -struct _iobuf * freopen(const char*, const char*, struct _iobuf *); - -int fscanf(struct _iobuf *, const char* ...); -int fseek(struct _iobuf *, long, int); -long ftell(struct _iobuf *); -int fwrite(const void*, int , int , struct _iobuf *); -char* gets(char*); -int getw(struct _iobuf *); -int pclose(struct _iobuf *); -void perror(const char*); -struct _iobuf * popen(const char*, const char*); -int printf(const char* ...); -int puts(const char*); -int putw(int, struct _iobuf *); -int rewind(struct _iobuf *); -int scanf(const char* ...); -void setbuf(struct _iobuf *, char*); -void setbuffer(struct _iobuf *, char*, int); -int setlinebuf(struct _iobuf *); -int setvbuf(struct _iobuf *, char*, int, int ); -int sscanf(char*, const char* ...); -struct _iobuf * tmpfile(); -int ungetc(int, struct _iobuf *); -int vfprintf (...) ; -int vprintf (...) ; -char* sprintf (...) ; -char* vsprintf (...) ; - -extern int _filbuf (...) ; -extern int _flsbuf (...) ; - -} - - - - - - - - - - - - - - - - - - -# 11 "Vision.h" 2 - -# 1 "/usr/include/floatingpoint.h" 1 3 - - - - - - - - - - - - - - - - - -# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/ieeefp.h" 1 3 - - - - - - - - - - - - - - - - - -enum fp_direction_type - { - fp_nearest = 0, - fp_tozero = 1, - fp_positive = 2, - fp_negative = 3 - } ; - -# 34 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/ieeefp.h" 3 - -# 43 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/ieeefp.h" 3 - - -# 53 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/ieeefp.h" 3 - -enum fp_precision_type - { - fp_extended = 0, - fp_single = 1, - fp_double = 2, - fp_precision_3 = 3 - } ; - - -# 73 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/ieeefp.h" 3 - -enum fp_exception_type - { - fp_inexact = 0, - fp_division = 1, - fp_underflow = 2, - fp_overflow = 3, - fp_invalid = 4 - } ; - - -enum fp_class_type - { - fp_zero = 0, - fp_subnormal = 1, - fp_normal = 2, - fp_infinity = 3, - fp_quiet = 4, - fp_signaling = 5 - } ; - - -# 18 "/usr/include/floatingpoint.h" 2 3 - - - - -typedef float single; -typedef unsigned long extended[3]; - -typedef long double quadruple; - - - - - - - - -typedef unsigned fp_exception_field_type; - - - - -typedef int sigfpe_code_type; - -typedef void (*sigfpe_handler_type) (); - - - - - - - - -extern enum fp_direction_type fp_direction; - - - - -extern enum fp_precision_type fp_precision; - - - - -extern fp_exception_field_type fp_accrued_exceptions; - - - - - - - - - - - -typedef char decimal_string[512 ]; - - -typedef struct { - enum fp_class_type fpclass; - int sign; - int exponent; - decimal_string ds; - - - int more; - - - int ndigits; - - -} - decimal_record; - -enum decimal_form { - fixed_form, - - - - floating_form - -}; - -typedef struct { - enum fp_direction_type rd; - - enum decimal_form df; - int ndigits; -} - decimal_mode; - -enum decimal_string_form { - invalid_form, - whitespace_form, - fixed_int_form, - fixed_intdot_form, - fixed_dotfrac_form, - fixed_intdotfrac_form, - floating_int_form, - floating_intdot_form, - floating_dotfrac_form, - floating_intdotfrac_form, - inf_form, - infinity_form, - nan_form, - nanstring_form -}; - - - -extern void double_to_decimal(); -extern void quadruple_to_decimal(); -extern char *econvert(); -extern char *fconvert(); -extern char *gconvert(); -extern char *qeconvert(); -extern char *qfconvert(); -extern char *qgconvert(); - - - - - -extern sigfpe_handler_type ieee_handlers[5 ]; - - - - - - - -extern sigfpe_handler_type sigfpe(); - -extern void single_to_decimal(); -extern void extended_to_decimal(); - -extern void decimal_to_single(); -extern void decimal_to_double(); -extern void decimal_to_extended(); -extern void decimal_to_quadruple(); - -extern char *seconvert(); -extern char *sfconvert(); -extern char *sgconvert(); - -extern void string_to_decimal(); -extern void file_to_decimal(); -extern void func_to_decimal(); - - - -extern double atof(); - - - -extern int errno; - -extern double strtod(); - - -# 12 "Vision.h" 2 - -# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/malloc.h" 1 3 - - - - - - - - - - - - - - - - -struct mallinfo { - int arena; - int ordblks; - int smblks; - int hblks; - int hblkhd; - int usmblks; - int fsmblks; - int uordblks; - int fordblks; - int keepcost; - - int mxfast; - int nlblks; - int grain; - int uordbytes; - int allocated; - int treeoverhead; -}; - -typedef void * malloc_t; - -extern malloc_t calloc( ); -extern void free( ); -extern malloc_t malloc( ); -extern malloc_t realloc( ); -extern int mallopt(); -extern struct mallinfo mallinfo(); - - -# 13 "Vision.h" 2 - -long time(long *); -int ieee_handler(); -} - -# 1 "/sym/gnu/lib/g++-include/std.h" 1 3 - - - - - - - - - - - - - - - - - - - - - - - -# 1 "/sym/gnu/lib/g++-include/stddef.h" 1 3 - - -extern "C" { - - - -# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stddef.h" 1 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 41 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/stddef.h" 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -typedef int ptrdiff_t; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -typedef int int ; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -typedef __wchar_t wchar_t; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 7 "/sym/gnu/lib/g++-include/stddef.h" 2 3 - - - - -} - -# 24 "/sym/gnu/lib/g++-include/std.h" 2 3 - -# 1 "/sym/gnu/lib/g++-include/stdlib.h" 1 3 - - - - - - - -extern "C" { - -int abs(int); - - -void volatile abort(void); - - - - -double atof(const char*); -int atoi(const char*); -long atol(const char*); - -int atexit(auto void (*p) (void)); -int bsearch (const void *, const void *, int , - int , auto int (*ptf)(const void*, const void*)); -void* calloc(int , int ); -void cfree(void*); - - -void volatile exit(int); - - - - -char* fcvt(double, int, int*, int*); -void free(void*); -char* getenv(const char*); -int getopt(int, char * const *, const char*); -int getpw(int, char*); -char* gcvt(double, int, char*); -char* ecvt(double, int, int*, int*); -extern char** environ; - -long labs(long); -void* malloc(int ); -int malloc_usable_size(void*); -int putenv(const char*); -extern char* optarg; -extern int opterr; -extern int optind; -void qsort(void*, int , int , auto int (*ptf)(void*,void*)); -int rand(void); -void* realloc(void*, int ); -int setkey(const char*); -int srand(unsigned int); -double strtod(const char*, char**); -long strtol(const char*, char**, int); -unsigned long stroul(const char**, int); -int system(const char*); - -long random(void); -void srandom(int); -char* setstate(char*); -char* initstate(unsigned, char*, int); - -double drand48(void); -void lcong48(short*); -long jrand48(short*); -long lrand48(void); -long mrand48(void); -long nrand48(short*); -short* seed48(short*); -void srand48(long); - -char* ctermid(char*); -char* cuserid(char*); -char* tempnam(const char*, const char*); -char* tmpnam(char*); - -} - -# 25 "/sym/gnu/lib/g++-include/std.h" 2 3 - -# 1 "/sym/gnu/lib/g++-include/string.h" 1 3 - - - - - - - - - - - - - - -extern "C" { - -char* strcat(char*, const char*); -char* strchr(const char*, int); -int strcmp(const char*, const char*); -int strcoll(const char*, const char*); -char* strcpy(char*, const char*); -int strcspn(const char*, const char*); -char* strdup(const char*); - - - - -int strlen(const char*); -char* strncat(char*, const char*, int ); -int strncmp(const char*, const char*, int ); -char* strncpy(char*, const char*, int ); -char* strpbrk(const char*, const char*); -char* strrchr(const char*, int); -int strspn(const char*, const char*); -char* strstr(const char*, const char *); -char* strtok(char*, const char*); -int strxfrm(char*, const char*, int ); - -char* index(const char*, int); -char* rindex(const char*, int); -} - -# 1 "/sym/gnu/lib/g++-include/memory.h" 1 3 - - - - - - - -extern "C" { - -void* memalign (...) ; -void* memccpy (...) ; -void* memchr (...) ; -int memcmp (...) ; -void* memcpy (...) ; -void* memmove (...) ; -void* memset (...) ; -int ffs (...) ; -int getpagesize (...) ; -void* valloc (...) ; - -void bcopy (...) ; -int bcmp (...) ; -void bzero (...) ; -} - - - - - - - - - - - - - - -# 43 "/sym/gnu/lib/g++-include/string.h" 2 3 - - - -# 26 "/sym/gnu/lib/g++-include/std.h" 2 3 - - -# 1 "/sym/gnu/lib/g++-include/unistd.h" 1 3 - - - - - -extern "C" { - - - - - - - - - - - - - - - - - - -# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/unistd.h" 1 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 1 "/sym/gnu/lib/g++-include/sys/types.h" 1 3 - - -extern "C" -{ - - - - - - - - - - -# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/types.h" 1 3 - - - - - - - - - - - - - - - -# 1 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/stdtypes.h" 1 3 - - - - - - - - - - - - - -typedef int sigset_t; - -typedef unsigned int speed_t; -typedef unsigned long tcflag_t; -typedef unsigned char cc_t; -typedef int pid_t; - -typedef unsigned short mode_t; -typedef short nlink_t; - -typedef long clock_t; -typedef long time_t; - - - - - - - - - - - - - - - - -# 16 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/types.h" 2 3 - - - -# 1 "/usr/include/sys/sysmacros.h" 1 3 - - - - - - - - - - - - - - - - - - - -# 19 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/types.h" 2 3 - - - - - -typedef unsigned char u_char; -typedef unsigned short u_short; -typedef unsigned int u_int; -typedef unsigned long u_long; -typedef unsigned short ushort; -typedef unsigned int uint; - - - - - - - - - - - - - - - -typedef struct _physadr_t { int r[1]; } *physadr_t; -typedef struct label_t { - int val[2]; -} label_t; - - - - - - - -typedef struct _quad_t { long val[2]; } quad_t; -typedef long daddr_t; -typedef char * caddr_t; -typedef unsigned long ino_t; -typedef short dev_t; -typedef long off_t; -typedef unsigned short uid_t; -typedef unsigned short gid_t; -typedef long key_t; -typedef char * addr_t; - - - - - - - - - - - - - - -typedef long fd_mask; - - - - - - - - - -typedef struct fd_set { - fd_mask fds_bits[(((256 )+(( (sizeof (fd_mask) * 8 ) )-1))/( (sizeof (fd_mask) * 8 ) )) ]; -} fd_set; - - - - - - - -# 113 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/sys/types.h" 3 - - - -# 15 "/sym/gnu/lib/g++-include/sys/types.h" 2 3 - - - - - - -} - - - - -# 73 "/sym/gnu/lib/gcc-lib/sparc-sun-sunos4.1/2.3.1/include/unistd.h" 2 3 - - -extern void _exit( ); -extern int access( ); -extern unsigned alarm( ); -extern int chdir( ); -extern int __hide_chmod ( ); -extern int __hide_chown ( ); -extern int close( ); -extern char *ctermid( ); -extern char *cuserid( ); -extern int dup( ); -extern int dup2( ); -extern int __hide_execl ( ); -extern int __hide_execle ( ); -extern int __hide_execlp ( ); -extern int execv( ); -extern int execve( ); -extern int execvp( ); -extern pid_t fork( ); -extern long fpathconf( ); -extern char *getcwd( ); -extern gid_t getegid( ); -extern uid_t geteuid( ); -extern gid_t getgid( ); -extern int getgroups( ); -extern char *getlogin( ); -extern pid_t getpgrp( ); -extern pid_t getpid( ); -extern pid_t getppid( ); -extern uid_t getuid( ); -extern int isatty( ); -extern int link( ); -extern off_t lseek( ); -extern long pathconf( ); -extern int pause( ); -extern int pipe( ); -extern int read( ); -extern int rmdir( ); -extern int __hide_setgid ( ); -extern int setpgid( ); -extern pid_t setsid( ); -extern int __hide_setuid ( ); -extern unsigned sleep( ); -extern long sysconf( ); -extern pid_t tcgetpgrp( ); -extern int tcsetpgrp( ); -extern char *ttyname( ); -extern int unlink( ); -extern int write( ); - - - -# 25 "/sym/gnu/lib/g++-include/unistd.h" 2 3 - - - - - - - - - - - - - - - -# 59 "/sym/gnu/lib/g++-include/unistd.h" 3 - - - -extern void volatile _exit(int); - - - - -extern unsigned alarm (...) ; -extern int brk (...) ; -extern int chdir (...) ; -extern int chmod (...) ; -extern int chown (const char*, unsigned short , unsigned short ); -extern int close (...) ; -extern char* crypt (...) ; -extern int dup (...) ; -extern int dup2 (...) ; -extern void encrypt (...) ; -extern int execl (const char*, const char *, ...); -extern int execle (const char*, const char *, ...); -extern int execlp (const char*, const char*, ...); -extern int exect (...) ; -extern int execv (...) ; -extern int execve (...) ; -extern int execvp (...) ; -extern int fchown (int, unsigned short , unsigned short ); -extern int fork (...) ; -extern int fsync (...) ; -extern int ftruncate (...) ; -extern char* getcwd (...) ; -extern int getdomainname (...) ; -extern int getdtablesize (...) ; -extern int getgroups (...) ; -extern unsigned short geteuid (...) ; -extern unsigned short getegid (...) ; -extern unsigned short getgid (...) ; -extern long gethostid (...) ; -extern int gethostname (...) ; -extern int getpgrp (...) ; -extern int getpid (...) ; -extern int getppid (...) ; -extern char* getlogin (...) ; -extern char* getpass (...) ; -extern unsigned short getuid (...) ; -extern int ioctl (int, int, ... ); -extern int isatty (...) ; -extern int link (...) ; -extern int mkstemp (...) ; -extern char* mktemp (...) ; -extern int nice (...) ; -extern int pause (...) ; -extern int pipe (...) ; -extern int readlink (...) ; -extern int rename (...) ; -extern int rmdir (...) ; -extern void* sbrk (...) ; -extern int syscall (...) ; -extern int setgid (unsigned short ); -extern int sethostname (...) ; - - - - -extern int setpgrp (...) ; - -extern int setregid (...) ; -extern int setreuid (...) ; -extern int setuid (unsigned short ); -extern unsigned sleep (...) ; -extern void swab (...) ; -extern int symlink (...) ; -extern long sysconf (...) ; -extern int truncate (...) ; -extern char* ttyname (...) ; -extern int ttyslot (...) ; - -extern int unlink (...) ; -extern int vfork (...) ; -extern int vadvise (...) ; -extern int vhangup (...) ; -extern long lseek (...) ; -extern int read (...) ; -extern int write (...) ; -extern int access (...) ; - -extern int flock (...) ; - - -} - - -# 28 "/sym/gnu/lib/g++-include/std.h" 2 3 - -# 1 "/sym/gnu/lib/g++-include/stdio.h" 1 3 - - - - - - - - - - - - - - - - - - -# 174 "/sym/gnu/lib/g++-include/stdio.h" 3 - -# 29 "/sym/gnu/lib/g++-include/std.h" 2 3 - -# 1 "/sym/gnu/lib/g++-include/errno.h" 1 3 - - -extern "C" { - - - - - -# 1 "/usr/include/errno.h" 1 3 - - - - - - - - - -# 1 "/usr/include/sys/errno.h" 1 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 10 "/usr/include/errno.h" 2 3 - -extern int errno; - - -# 9 "/sym/gnu/lib/g++-include/errno.h" 2 3 - - - - -extern char* sys_errlist[]; -extern int sys_nerr; - -extern int errno; - -void perror(const char*); -char* strerr(int); - - -} - - -# 30 "/sym/gnu/lib/g++-include/std.h" 2 3 - -# 1 "/sym/gnu/lib/g++-include/fcntl.h" 1 3 - - -extern "C" { - - - - - - - - - - -# 1 "/usr/include/fcntl.h" 1 3 - - - - - -# 1 "/usr/include/sys/fcntlcom.h" 1 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -struct flock { - short l_type; - short l_whence; - long l_start; - long l_len; - short l_pid; - short l_xxx; -}; - - - -struct eflock { - short l_type; - short l_whence; - long l_start; - long l_len; - short l_pid; - short l_xxx; - long l_rpid; - long l_rsys; -}; - - - -# 1 "/sym/gnu/lib/g++-include/sys/stat.h" 1 3 - - -extern "C" -{ - - - - - - - - - -# 1 "/usr/include/sys/stat.h" 1 3 - - - - - - - - - - - -struct stat { - dev_t st_dev; - ino_t st_ino; - mode_t st_mode; - short st_nlink; - uid_t st_uid; - gid_t st_gid; - dev_t st_rdev; - off_t st_size; - time_t st_atime; - int st_spare1; - time_t st_mtime; - int st_spare2; - time_t st_ctime; - int st_spare3; - long st_blksize; - long st_blocks; - long st_spare4[2]; -}; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -int __hide_chmod ( ); -int fstat( ); -int mkdir( ); -int mkfifo( ); -int stat( ); -mode_t umask( ); - - - -# 14 "/sym/gnu/lib/g++-include/sys/stat.h" 2 3 - - - - - - -extern int chmod (...) ; -extern int stat (...) ; -extern int lstat (...) ; -extern int fstat (...) ; - - - - - - - - - - - - - - - - - - -} - - -# 149 "/usr/include/sys/fcntlcom.h" 2 3 - - -int __hide_open ( ); -int __hide_creat ( ); -int __hide_fcntl ( ); - - -# 6 "/usr/include/fcntl.h" 2 3 - - - - - -# 14 "/sym/gnu/lib/g++-include/fcntl.h" 2 3 - - - - - - - - -int fcntl(int, int, ...); -int creat (...) ; - -int open (...) ; - - -} - -# 31 "/sym/gnu/lib/g++-include/std.h" 2 3 - - -extern "C" { -int strcasecmp (...) ; -} - - -# 18 "Vision.h" 2 - -# 1 "/sym/gnu/lib/g++-include/math.h" 1 3 - - - - - - - - - - - - - - - - - - - - - -#pragma interface - - - - - - - - - - - -# 64 "/sym/gnu/lib/g++-include/math.h" 3 - -extern "C" { - -double acos(double); -double acosh(double); -double asin(double); -double asinh(double); -double atan(double); -double atan2(double, double); -double atanh(double); -double cbrt(double); -double ceil(double); -double copysign(double,double); -double cos(double); -double cosh(double); -double drem(double,double); -double erf(double); -double erfc(double); -double exp(double); -double expm1(double); -double fabs(double); -double finite(double); -double floor(double); -double fmod(double, double); -double frexp(double, int*); -double gamma(double); -double hypot(double,double); -double infnan(int); - - -int isinf(double); -int isnan(double); - -double j0(double); -double j1(double); -double jn(int, double); -double ldexp(double, int); -double lgamma(double); -double log(double); -double log10(double); -double log1p(double); -double logb(double); -double modf(double, double*); -double pow(double, double); -double rint(double); -double scalb(double, int); -double sin(double); -double sinh(double); -double sqrt(double); -double tan(double); -double tanh(double); -double y0(double); -double y1(double); -double yn(int, double); - -double aint(double); -double anint(double); -int irint(double); -int nint(double); -} - - - - - - - - -struct libm_exception -{ - int type; - char* name; - double arg1, arg2, retval; -}; - - - - - - - - -extern "C" int matherr(libm_exception*); - - - -# 1 "/sym/gnu/lib/g++-include/values.h" 1 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 57 "/sym/gnu/lib/g++-include/values.h" 3 - - - - - - - - - - - - - - - -# 166 "/sym/gnu/lib/g++-include/values.h" 3 - - - - - - - - - -# 150 "/sym/gnu/lib/g++-include/math.h" 2 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -# 19 "Vision.h" 2 - - -# 1 "MiscUtilities.h" 1 - - - - - -# 1 "/sym/gnu/lib/g++-include/std.h" 1 3 - - - - - - - - - - - - - - - - - - - -# 37 "/sym/gnu/lib/g++-include/std.h" 3 - -# 6 "MiscUtilities.h" 2 - - - - - - - - - -inline int used_mem() { - struct mallinfo mi = mallinfo(); - return mi.usmblks+mi.uordblks; -} -inline volatile void abort() { - fprintf((&_iob[2]) ,"abort\n"); - exit(1); -} - -inline volatile void error(char *s) { - fprintf((&_iob[2]) ,"FATAL ERROR: "); - fprintf((&_iob[2]) ,"%s\n",s); - exit(1); -} -template <class Y> -struct NameValuePair { - char *name; - Y y; -}; - -template <class Y> -Y lookup(NameValuePair<Y> *data,char *name) { - while(data->name) { - if(!strcmp(data->name,name)) return data->y; - data++; - } - abort(); - return data->y; -} - -template <class T> -void swap(T &x,T &y) { - T temp = x; - x = y; - y = temp; -} - - -# 21 "Vision.h" 2 - -# 1 "Counted.h" 1 - - - - - -# 1 "/sym/gnu/lib/g++-include/std.h" 1 3 - - - - - - - - - - - - - - - - - - - -# 37 "/sym/gnu/lib/g++-include/std.h" 3 - -# 6 "Counted.h" 2 - - -template <class T> -struct Counted { - private: - int *count; - T *object; - T *operator&() { - return object; - } - void dec_count() { - if(!count) return; - (*count)--; - if(*count<=0) { - delete count; - delete object; - count=0; - object=0; - } - } - void inc_count() { - if(!count) return; - (*count)++; - } - public: - Counted() { - count=0; - object=0; - } - Counted(T *object):object(object) { - count = new int(1); - } - ~Counted() { - dec_count(); - } - Counted(Counted &other) { - count=other.count; - object=other.object; - inc_count(); - } - Counted &operator=(Counted &other) { - other.inc_count(); - dec_count(); - count=other.count; - object=other.object; - return *this; - } - - T &operator*() {if(!object) abort(); else return *object; return *object;} - T *operator->() {if(!object) abort(); else return object; return object;} - operator T&() {if(!object) abort(); else return *object; return *object;} - - -}; - - -# 22 "Vision.h" 2 - -# 1 "Art.h" 1 - - - - - - -extern "C" { void abort(); } - - - - - - - - - - - - -template <class X> -inline void art_initialize(X *,int) {} - -# 39 "Art.h" - - - - - - -template <class T> -class Art { -protected: - int mark_temp; - T *data; - int dims[1]; - void constructor(int d) { - if(d<0) abort() ; - mark_temp=0; - dims[0]=d; - if(d>0) { - data=new T[d]; - if(!data) abort() ; - } else data=0; - art_initialize(data,d); - } - void destructor() { - if(!data) return; - delete [] data; - mark_temp=0; - data=0; - dims[0]=0; - } - void copy(Art &other) { - int d0=dims[0]<?other.dims[0]; - for(int i=0;i<d0;i++) data[i]=other.data[i]; - } -public: - void copyclear(Art &other) { - dims[0]=other.dims[0]; - data=other.data; - other.dims[0]=0; - other.data=0; - } -private: - void copyconstructor(Art &other) { - mark_temp=0; - if(other.mark_temp) { - copyclear(other); - } else { - constructor(other.dims[0]); - copy(other); - } - } - public: - Art() {constructor(0);} - Art(int d) {constructor(d);} - Art(Art &other) {copyconstructor(other);} - ~Art() {destructor();} - - Art &operator=(Art &other) { - destructor(); - copyconstructor(other); - return *this; - } - int dim(int i) {return dims[i];} - T &operator()(int i) { - if(unsigned(i)>=unsigned(dims[0])) abort() ; - return data[i]; - } - T &sub(int i) {return data[i];} - void resize(int nd) { - if(nd<0) abort() ; - Art t(nd); - int limit=nd<?dims[0]; - for(int i=0;i<limit;i++) t.data[i]=data[i]; - t.mark_temp=1; - *this=t; - } - Art &temp() { mark_temp=1; return *this; } - T *pointer() {return data;} - void fill(T value) {for(int i=0;i<dims[0];i++) data[i]=value;} - - int length() {return dims[0];} - T &operator[](int i) {return operator()(i);} -}; - - - - - - - - -template <class T> -class Stk { -protected: - Art<T> stack; - int fill; -public: - Stk() {stack.resize(4); fill=0;} - Stk(Stk &other) { - stack=other.stack; - fill=other.fill; - } - int dim(int i) {return stack.dim(i);} - void push(T &element) { - if(fill>=stack.dim(0)) stack.resize(2*fill); - stack.sub(fill++)=element; - } - T &tos() { - return stack(fill-1); - } - T &pop() { - return stack(--fill); - } - T &operator()(int i) {return stack(i);} - T &sub(int i) {return stack.sub(i);} - void clear() { - stack.resize(0); - stack.resize(4); - fill=0; - } - void compact() { - stack.resize(fill+1); - } - Stk temp() { stack.temp(); return *this; } - T *pointer() {return stack.pointer();} - operator Art<T>&() {return stack;} - - int length() {return fill;} - T &operator[](int i) {return operator()(i);} -}; - - - - - -template <class T> -class Art2 { -protected: - int mark_temp; - T **data; - int dims[2]; - int total_length; - void constructor(int d0,int d1) { - if(d0<0||d1<0) abort() ; - mark_temp=0; - dims[0]=d0; - dims[1]=d1; - total_length=dims[0]*dims[1]; - if(d0>0) { - data=new T*[d0]; - if(!data) abort() ; - } else data=0; - if(d0>0&&d1>0) { - T *p=new T[d0*d1]; - if(!p) abort() ; - for(int i=0;i<d0;i++) data[i]=p+i*d1; - art_initialize(data[0],d0*d1); - } - } - void destructor() { - if(dims[0]<1) return; - if(!data) return; - delete [] data[0]; - delete [] data; - mark_temp=0; - data=0; - dims[0]=0; - dims[1]=0; - } - void copy(Art2 &other) { - int d0=dims[0]<?other.dims[0]; - int d1=dims[1]<?other.dims[1]; - for(int i=0;i<d0;i++) for(int j=0;j<d1;j++) - data[i][j]=other.data[i][j]; - } -public: - void copyclear(Art2 &other) { - dims[0]=other.dims[0]; - dims[1]=other.dims[1]; - total_length=dims[0]*dims[1]; - data=other.data; - other.dims[0]=0; - other.dims[1]=0; - other.total_length=0; - other.data=0; - } -private: - void copyconstructor(Art2 &other) { - mark_temp=0; - if(other.mark_temp) { - copyclear(other); - } else { - constructor(other.dims[0],other.dims[1]); - copy(other); - } - } - public: - Art2() {constructor(0,0);} - Art2(int d0,int d1) {constructor(d0,d1);} - Art2(Art2 &other) {copyconstructor(other);} - ~Art2() {destructor();} - - Art2 &operator=(Art2 &other) { - destructor(); - copyconstructor(other); - return *this; - } - int dim(int i) {return dims[i];} - T &operator()(int i,int j) { - if(unsigned(i)>=unsigned(dims[0])||unsigned(j)>=unsigned(dims[1])) - abort() ; - return data[i][j]; - } - T &sub(int i,int j) {return data[i][j];} - void resize(int nd0,int nd1) { - if(nd0<0||nd1<0) abort() ; - Art2 t(nd0,nd1); - int limit0=nd0<?dims[0]; - int limit1=nd1<?dims[1]; - for(int i=0;i<limit0;i++) for(int j=0;j<limit1;j++) t.data[i][j]=data[i][j]; - t.mark_temp=1; - *this=t; - } - Art2 &temp() { mark_temp=1; return *this; } - T **pointer() {return data;} - void fill(T value) { - for(int i=0;i<dims[0];i++) for(int j=0;j<dims[1];j++) - data[i][j]=value; - } - - - - int length() {return total_length;} - T &sub(int i) {return data[0][i];} - T &operator()(int i) { - if(unsigned(i)>=total_length) abort() ; - return data[0][i]; - } -}; - -template <class T> -inline void art_swap(T &x,T &y) { - T temp = x; - x = y; - y = temp; -} - -template <class T> -inline void reverse(Art<T> &a) { - int i; - for(i=a.length()/2;i>=0;i--) art_swap(a.sub(i),a.sub(a.length()-i-1)); -} - -template <class T> -inline void reverse(Stk<T> &a) { - reverse(a.stack); -} - -template <class T> -inline void bag_remove(Stk<T> &a,T &element) { - for(int i=0;i<a.length()-1;i++) { - if(a(i)==element) { - a.sub(i)=a.tos(); - a.pop(); - } - } - if(i<a.length()&&a.sub(i)==element) a.pop(); -} - -template <class T> -inline void ordered_remove(Stk<T> &a,T &element) { - int source=0,dest=0; - while(source<a.length()) { - if(a(source)!=element) { - a(dest)=a(source); - dest++; - } - source++; - } - a.stack.resize(dest); -} - -template <class T> -inline Art<T> concatenate(Art<T> &a,Art<T> &b) { - int i,k; - k=a.length(); - Art<T> result(k+b.length()); - for(i=0;i<a.length();i++) result.sub(i)=a.sub(i); - for(i=0;i<b.length();i++) result.sub(i+k)=b.sub(i); - return result.temp(); -} - -template <class T> -inline Stk<T> concatenate(Stk<T> &a,Stk<T> &b) { - int i; - Stk<T> result; - for(i=0;i<a.length();i++) result.push(a.sub(i)); - for(i=0;i<b.length();i++) result.push(b.sub(i)); - return result.temp(); -} - - -# 23 "Vision.h" 2 - -# 1 "Geo.h" 1 - - - - - -# 1 "/sym/gnu/lib/g++-include/math.h" 1 3 - - - - - - - - - - - - - - - - - - - -# 215 "/sym/gnu/lib/g++-include/math.h" 3 - -# 6 "Geo.h" 2 - - -extern "C" { -void abort(); -} - - - - - - - - - - - - - - -template <class T,int n> -class vec { -protected: - T v[n]; -public: - int length() {return n;} - int dim(int) {return n;} - vec() {} - vec(T v0) { v[0]=v0; } - vec(T v0,T v1) { v[0]=v0; v[1]=v1; } - vec(T v0,T v1,T v2) { v[0]=v0; v[1]=v1; v[2]=v2; } - vec(T v0,T v1,T v2,T v3) { v[0]=v0; v[1]=v1; v[2]=v2; v[3]=v3; } - vec(T v0,T v1,T v2,T v3,T v4) { v[0]=v0; v[1]=v1; v[2]=v2; v[3]=v3; v[4]=v4; } - - T &operator[](int i) {return v[i];} - T &sub(int i) {return v[i];} - T &operator()(int i) { - if(unsigned(i)>=n) abort(); - return v[i]; - } - - - - - - - - - - - - - T operator*(vec &other) { - T result=0; - for(int i=0;i<n;i++) result=result+sub(i)*other.sub(i); - return result; - } - - - vec operator-() { - vec result; - for(int i=0;i<n;i++) result.sub(i)= -sub(i); - return result; - } - vec operator*(T other) { - vec result; - for(int i=0;i<n;i++) result.sub(i)=sub(i)*other; - return result; - } - vec operator/(T other) { - vec result; - for(int i=0;i<n;i++) result.sub(i)=sub(i)/other; - return result; - } - vec operator+(vec &other) { - vec result; - for(int i=0;i<n;i++) result.sub(i)=sub(i)+other.sub(i); - return result; - } - vec operator-(vec &other) { - vec result; - for(int i=0;i<n;i++) result.sub(i)=sub(i)-other.sub(i); - return result; - } - vec operator<?(vec &other) { - vec result; - for(int i=0;i<n;i++) result.sub(i)=sub(i)<?other.sub(i); - return result; - } - vec operator>?(vec &other) { - vec result; - for(int i=0;i<n;i++) result.sub(i)=sub(i)>?other.sub(i); - return result; - } - - - int operator==(vec &other) { - for(int i=0;i<n;i++) if(sub(i)!=other.sub(i)) return 0; - return 1; - } - int operator!=(vec &other) { - for(int i=0;i<n;i++) if(sub(i)!=other.sub(i)) return 1; - return 0; - } - int operator<(vec &other) { - for(int i=0;i<n;i++) if(sub(i)>=other.sub(i)) return 0; - return 1; - } - int operator>(vec &other) { - for(int i=0;i<n;i++) if(sub(i)<=other.sub(i)) return 0; - return 1; - } - int operator<=(vec &other) { - for(int i=0;i<n;i++) if(sub(i)>other.sub(i)) return 0; - return 1; - } - int operator>=(vec &other) { - for(int i=0;i<n;i++) if(sub(i)<other.sub(i)) return 0; - return 1; - } -}; - -template <class T> -inline float euclidean_norm(T &v) { - float total=0.0; - for(int i=0;i<v.dim(0);i++) total+=v(i)*v(i); - return sqrt(total); -} - -template <class T> -inline float euclidean_distance(T &u,T &v) { - float total=0.0; - for(int i=0;i<u.dim(0);i++) { - float d=u(i)-v(i); - total+=d*d; - } - return sqrt(total); -} - - - - - -template <class T,int n> -class mat:vec<T,n*n> { -protected: -public: - int dim(int) {return n;} - T &operator[](int i) {return v[i];} - T &sub(int i,int j) {return v[i*n+j];} - T &operator()(int i,int j) { - if(unsigned(i)>=n||unsigned(j)>=n) abort(); - return sub(i,j); - } - mat operator*(mat &other) { - mat result; - for(int i=0;i<n;i++) for(int j=0;j<n;j++) { - T total=0; - for(int k=0;k<n;k++) total=total+sub(i,k)*other.sub(k,j); - result.sub(i,j)=total; - } - return result; - } - vec<T,n> operator*(vec<T,n> &other) { - vec<T,n> result; - for(int i=0;i<n;i++) { - T total=0; - for(int k=0;k<n;k++) total=total+sub(i,k)*other.sub(k); - result.sub(i)=total; - } - return result; - } -}; - - - - - -typedef vec<float,2> vec2; -typedef vec<float,3> vec3; -typedef vec<float,4> vec4; - -typedef mat<float,2> mat2; -typedef mat<float,3> mat3; -typedef mat<float,4> mat4; - -typedef vec<int,2> ivec2; - - - - - - - -inline float norm_angle(float p) { - while(p<0) p+=2* 3.14159265358979323846 ; while(p>=2* 3.14159265358979323846 ) p-=2* 3.14159265358979323846 ; return p; -} -inline float norm_angle0(float p) { - while(p<- 3.14159265358979323846 ) p+=2* 3.14159265358979323846 ; while(p>= 3.14159265358979323846 ) p-=2* 3.14159265358979323846 ; return p; -} -inline float norm_orientation(float p) { - while(p<0) p+= 3.14159265358979323846 ; while(p>= 3.14159265358979323846 ) p-= 3.14159265358979323846 ; return p; -} -inline float norm_orientation0(float p) { - while(p<- 3.14159265358979323846 /2) p+= 3.14159265358979323846 ; while(p>= 3.14159265358979323846 /2) p-= 3.14159265358979323846 ; return p; -} -inline float orientation_difference(float p,float q) { - fabs(norm_orientation0(p-q)); -} - - - - - - - - - - - - - - -inline vec2 cmul(vec2 &p,vec2 &q) { - return vec2(p.sub(0)*q.sub(0)-p.sub(1)*q.sub(1), - p.sub(0)*q.sub(1)+p.sub(1)*q.sub(0)); -} - -inline vec2 cdiv(vec2 &p,vec2 &q) { - float n=q*q; - return vec2((p.sub(0)*q.sub(0)+p.sub(1)*q.sub(1))/n, - (p.sub(1)*q.sub(0)-p.sub(0)*q.sub(1))/n); -} - -inline vec2 csqrt(vec2 &x) { - if (x.sub(0)==0.0&&x.sub(1)==0.0) - return vec2(0.0,0.0); - else { - float a=sqrt((fabs(x.sub(0))+hypot(x.sub(0),x.sub(1)))*0.5); - float b=0.5*(x.sub(1)/a); - if(x.sub(0)>0.0) return vec2(a, b); - else if(x.sub(1)>=0.0) return vec2(a,b); - else return vec2(-a,-b); - } -} -inline vec2 cpow(vec2& x, double p) { - float h=hypot(x.sub(0),x.sub(1)); - if (h<=0.0) abort(); - float lr=pow(h,p); - float a=atan2(x.sub(1),x.sub(0)); - float li=p*a; - return vec2(lr*cos(li),lr*sin(li)); -} - - - -inline float cross(vec2 p,vec2 q) { - return p.sub(0)*q.sub(1)-p.sub(1)*q.sub(0); -} - - - - - -struct TRS2 { - vec2 t; - vec2 r; - TRS2(vec2 t=vec2(0.0,0.0),vec2 r=vec2(1.0,0.0)):t(t),r(r) { - } - vec2 operator()(vec2 &arg) { - return cmul(r,arg)+t; - } - float rotation() { - return atan2(r(1),r(0)); - } -}; - - - -# 24 "Vision.h" 2 - - - - -# 1 "VisionTypes.h" 1 - - - - -typedef Art2<float> FImage; -typedef Art2<int> IImage; -typedef Art2<unsigned char> CImage; - -struct FImageOp {virtual FImage operator()(FImage &) = 0;}; -struct FImageOp2 {virtual FImage operator()(FImage &,FImage &) = 0;}; -struct CImageOp {virtual CImage operator()(CImage &) = 0;}; -struct CImageOp2 {virtual CImage operator()(CImage &,CImage &) = 0;}; - - - - - -struct PFeature { - ivec2 p; - float a; - short group; - short type; - PFeature() {} - PFeature(ivec2 p,float a,int group,int type):p(p),a(a),group(group),type(type) {} -}; - -typedef Stk<PFeature> PFeatureStk; - -struct FIExtractor {virtual PFeatureStk operator()(FImage &) = 0;}; -struct CIExtractor {virtual PFeatureStk operator()(CImage &) = 0;}; -# 28 "Vision.h" 2 - -# 1 "ImageDatabase.h" 1 - - - - - -# 1 "Art.h" 1 - - -# 339 "Art.h" - -# 6 "ImageDatabase.h" 2 - - -typedef Art2<unsigned char> CImage; - - - - - - - - -struct ImageDatabase { - - - - - virtual int length() = 0; - virtual int nclassifications() = 0; - virtual int nusers() = 0; - - - - - virtual int classification(int offset) = 0; - virtual int user(int offset) = 0; - - virtual CImage cimage(int offset) {abort();} - virtual PFeatureStk features(int offset) {abort();} - - - - - - - virtual int user_offset(int user) = 0; - virtual int user_length(int user) = 0; -}; - -ImageDatabase *make_NISTDigitImages(); - - - - - -struct ImageDatabaseIterator { - virtual int done() = 0; - virtual void next() = 0; - virtual operator int() = 0; - virtual void mark_upto_here() {} -}; - -ImageDatabaseIterator *make_IDI_Sequential(ImageDatabase *digits,int current,int stride); -ImageDatabaseIterator *make_IDI_OnePerUser(ImageDatabase *digits,int current); -ImageDatabaseIterator *make_IDI_FromFile(char *name); - - -# 29 "Vision.h" 2 - - - -# 1 "NISTImages.cc" 2 - - - - - - - - - - -# 1 "/sym/gnu/lib/g++-include/std.h" 1 3 - - - - - - - - - - - - - - - - - - - -# 37 "/sym/gnu/lib/g++-include/std.h" 3 - -# 11 "NISTImages.cc" 2 - -# 1 "Art.h" 1 - - -# 339 "Art.h" - -# 12 "NISTImages.cc" 2 - - -extern "C" { -# 1 "./nist/ihead.h" 1 - - - - - - - - - - - - - - -typedef struct ihead{ - char id[ 80 ]; - char created[ 26 ]; - char width[ 8 ]; - char height[ 8 ]; - char depth[ 8 ]; - char density[ 8 ]; - char compress[ 8 ]; - char complen[ 8 ]; - char align[ 8 ]; - char unitsize[ 8 ]; - char sigbit; - char byte_order; - char pix_offset[ 8 ]; - char whitepix[ 8 ]; - char issigned; - char rm_cm; - char tb_bt; - char lr_rl; - char parent[ 80 ]; - char par_x[ 8 ]; - char par_y[ 8 ]; -}IHEAD; - - - - - - - - - - - - - - - - - - - - - -# 15 "NISTImages.cc" 2 - -int readihdrfile(); - -} - -typedef Art2<unsigned char> CImage; - -Stk<char*> mis_files; - -extern "C" { - char *re_comp(char *); - int re_exec(char *); -} - -struct NISTCharFile { - private: - NISTCharFile(NISTCharFile &); - void operator=(NISTCharFile &); - public: - IHEAD *bit_header; - int bit_w,bit_h; - char *bit_data; - int field_w,field_h; - Stk<int> classes; - - static void maybe_read_mis_files() { - if(mis_files.length()>0) return; - struct _iobuf *stream = fopen("/com/nist/mis-files" ,"r"); - if(!stream) abort() ; - char buf[1024]; - while(fgets(buf,sizeof buf,stream)) { - buf[strlen(buf)-1]='\0'; - mis_files.push(strdup(buf)); - } - fclose(stream); - } - - static char *find_matching_mis_file_prefix(char *pattern) { - if(re_comp(pattern)) abort() ; - for(int i=0;i<mis_files.length();i++) { - if(re_exec(mis_files(i))) break; - } - if(i<mis_files.length()) return mis_files(i); - else return 0; - } - - static int part_of_user(int user) { - int part; - if(user<500) part=0; - else if(user<1000) part=1; - else if(user<1500) part=2; - else part=3; - return part; - } - - static char type_of_itype(int itype) { - char type; - switch(itype) { - case 0: type='d'; break; - case 1: type='u'; break; - case 2: type='l'; break; - default: abort() ; - }; - return type; - } - - NISTCharFile(int user,char itype) { - maybe_read_mis_files(); - int type = type_of_itype(itype); - int part = part_of_user(user); - - char buf[512]; - sprintf(buf,"/com/nist3/data/" "hsf_%d/f%04d_.*/%c%04d_.*",part,user,type,user); - char *prefix = find_matching_mis_file_prefix(buf); - ; - - if(!prefix) { - bit_w = 0; - bit_h = 0; - field_w = 0; - field_h = 0; - return; - } - - char file[512]; - - strcpy(file,prefix); strcat(file,".mis"); - if(!readihdrfile(file,&bit_header,&bit_data,&bit_w,&bit_h)) - abort() ; - field_w=atoi(bit_header->par_x); - field_h=atoi(bit_header->par_y); - - strcpy(file,prefix); strcat(file,".cls"); - struct _iobuf *stream = fopen(file,"r"); - if(!stream) - abort() ; - int total=atoi(fgets(buf,sizeof buf,stream)); - if(total!=bit_h/field_h) - abort() ; - while(fgets(buf,sizeof buf,stream)) classes.push(strtol(buf,0,16)); - fclose(stream); - } - - ~NISTCharFile() { - free(bit_header); - free(bit_data); - } - - int length() { - return bit_h/field_h; - } - - CImage image(int i) { - ; - CImage result(field_w,field_h); - int bit_w8=bit_w/8; - int offset=i*field_h; - if(offset>=bit_h) abort() ; - int i,j; - - - for(i=0;i<field_w;i++) for(j=0;j<field_h;j++) { - int jj=j+offset; - result(i,field_h-j-1)=(!!(bit_data[bit_w8*jj+(i>>3)]&(1<<(7-i&7)))) ; - } - - return result.temp(); - } - - int classification(int i) { - return classes(i); - } -}; - -int *NISTDigitImages_table; - -struct NISTDigitImages:ImageDatabase { - private: - NISTDigitImages(NISTDigitImages&); - void operator=(NISTDigitImages&); - public: - enum {table_size=2101}; - - int nclassifications() {return 10;} - int nusers() {return 2200;} - - static void init_table() { - struct _iobuf *stream=fopen("/com/nist/nist-digits" ,"r"); - NISTDigitImages_table = new int[table_size]; - if(!stream) abort() ; - int i=1; - while(fscanf(stream,"%d",&NISTDigitImages_table[i])==1) i++; - if(i!=table_size) abort() ; - fclose(stream); - int total=0; - for(i=1;i<table_size;i++) NISTDigitImages_table[i]+=NISTDigitImages_table[i-1]; - } - - static int locate(int v) { - int low=0; - int high=table_size; - if(v>=NISTDigitImages_table[table_size-1]) abort() ; - while(low+1<high) { - int mid=(low+high)/2; - if(NISTDigitImages_table[mid]<=v) low=mid; - else high=mid; - } - while(low<table_size-1&&NISTDigitImages_table[low+1]<=v) low++; - return low; - } - - int user_offset(int user) { - if(unsigned(user)>=2100) abort() ; - return NISTDigitImages_table[user]; - } - - int user_length(int user) { - if(unsigned(user)>=2100) abort() ; - return NISTDigitImages_table[user+1]-NISTDigitImages_table[user]; - } - - int current_user; - NISTCharFile *current_file; - - private: - void get_cache(int user) { - if(user!=current_user) { - delete current_file; - current_file = new NISTCharFile(user,0); - current_user = user; - } - } - - public: - NISTDigitImages() { - ; - if(!NISTDigitImages_table) init_table(); - current_user=0; - current_file=new NISTCharFile(0,0); - ; - } - - ~NISTDigitImages() { - delete current_file; - } - - int length() {return NISTDigitImages_table[table_size-1];} - - int user(int i) { - return locate(i); - } - - CImage image(int i) { - int user = locate(i); - get_cache(user); - int offset = i-NISTDigitImages_table[user]; - return current_file->image(offset); - } - - int classification(int i) { - int user = locate(i); - get_cache(user); - int offset = i-NISTDigitImages_table[user]; - return current_file->classification(offset); - } -}; - -ImageDatabase *make_NISTDigitImages() { - return new NISTDigitImages(); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/inline4.C b/gcc/testsuite/g++.old-deja/g++.law/inline4.C deleted file mode 100755 index e7c664c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/inline4.C +++ /dev/null @@ -1,20 +0,0 @@ -// GROUPS passed inlining -// inline file -// Message-Id: <9306020823.AA14027@joker> -// From: stefan@mpi-sb.mpg.de -// Subject: gcc-2.4.2 template function bug (1) -// Date: Wed, 2 Jun 93 10:23:14 +0200 - -extern "C" int printf (const char *, ...); - -template <class T> inline T func(const T& x) { return x; } - -inline int func(const int& x) { return x; } - - -int main() -{ int x; - func(x); - printf ("PASS\n"); - } - diff --git a/gcc/testsuite/g++.old-deja/g++.law/inline6.C b/gcc/testsuite/g++.old-deja/g++.law/inline6.C deleted file mode 100755 index f530679..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/inline6.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: -// GROUPS passed inlining -// inline file -// Message-Id: <199307162240.AA04019@world.std.com> -// From: kol@world.std.com (Nikolay Yatsenko) -// Subject: g++ bug: crash with extern C friend -// Date: Fri, 16 Jul 1993 18:40:48 -0400 - -inline void Ignore(){} - -extern "C" void foo() {} // but without extern C g++ compiles it - -struct A -{ - void f() {Ignore();} - friend void foo (); -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/inline7.C b/gcc/testsuite/g++.old-deja/g++.law/inline7.C deleted file mode 100755 index 0a1d373..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/inline7.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// GROUPS passed inlining - template <class Type> -struct A { - typedef int X; - A() {} - virtual ~A() { } -}; - template <class Type> -struct B : public A<Type> { - B() { } -}; -B<int>::X x; diff --git a/gcc/testsuite/g++.old-deja/g++.law/memoized1.C b/gcc/testsuite/g++.old-deja/g++.law/memoized1.C deleted file mode 100755 index 16e63e2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/memoized1.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't link: -// Special g++ Options: -fsave-memoized -// GROUPS passed memoized -class CArray -{ -public: - CArray(); -}; -class CBTree : public CArray -{ -}; -class CData -{ -public: - virtual ~CData(); -}; -class CStr : public CData -{ - inline int Read(); - inline int Write() const; -}; -class CResource : private CBTree -{ - struct SResourceNode - { - CStr xKey; - }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/mentor1.C b/gcc/testsuite/g++.old-deja/g++.law/mentor1.C deleted file mode 100755 index a9362e0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/mentor1.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// Special g++ Options: -O -// GROUPS passed mentor -struct Word { - struct S1 *p1; -}; -struct S1 { - Word o; - void shift_left(int delta, int ct); -}; -inline void S1::shift_left(int delta, int ct) -{ - int cnt = ct; - for (S1 *to_p = this, *from_p = to_p + delta; cnt--;) *to_p++ = *from_p++; -} - -void dispose_t(S1 *tp, int from_index, int ct, const int d_last_t) -{ - int new_ct = d_last_t + 1 - ct; - tp[0].o.p1[from_index].shift_left(ct, new_ct - from_index); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/missed-error1.C b/gcc/testsuite/g++.old-deja/g++.law/missed-error1.C deleted file mode 100755 index 5091e7d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/missed-error1.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// GROUPS passed missed-error -// missed-error file -// From: John Carr <jfc@Athena.MIT.EDU> -// Date: Tue, 02 Feb 1993 07:38:53 EST -// Subject: Re: g++ ignores language context of function pointers -// Message-ID: <9302021238.AA01513@Achates.MIT.EDU> - -typedef void (*pfv)(); -void f (); - -extern "C" -{ - typedef void (*pcfv)(void); - void cf (void); -} - -pfv p = f; -pfv p2 = cf; // ERROR - mismatch XFAIL *-*-* -pcfv p3 = f; // ERROR - mismatch XFAIL *-*-* -pcfv p4 = cf; diff --git a/gcc/testsuite/g++.old-deja/g++.law/missed-error2.C b/gcc/testsuite/g++.old-deja/g++.law/missed-error2.C deleted file mode 100755 index 18a026d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/missed-error2.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't link: -// GROUPS passed missed-error -// missed-error file -// From: ndc!don@csvax.cs.caltech.edu (Don Erway) -// Date: Thu, 21 May 92 15:40:45 PDT -// Subject: More on [g++ 2.1 : overloaded function selection incorrect] -// Message-ID: <9205212240.AA17934@ndc.com> - -#include <iostream.h> - -inline int max(int a, int b) {return a > b ? a : b;}; // ERROR - candidate -inline double max(double a, double b) {return a > b ? a : b;}; // ERROR - candidate - -int main() { - static void foo(int i, int j, double x, double y) ;// ERROR - .* - - foo(4, -37, 14.39, 14.38); -} - -// 971006 we no longer give an error for this since we emit a hard error -// about the declaration above -static void foo(int i, int j, double x, double y) { - - cout << "Max(int): " << max(i,j) << " Max(double): " << -max(x,y) << '\n'; - cout << "Max(int, double): " << max(i, y) << '\n';// ERROR - -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/missed-error3.C b/gcc/testsuite/g++.old-deja/g++.law/missed-error3.C deleted file mode 100755 index 017ce5d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/missed-error3.C +++ /dev/null @@ -1,124 +0,0 @@ -// Build don't link: -// GROUPS passed missed-error -// missed-error file -// From: Neil Wilson <csf004@cch.coventry.ac.uk> -// Date: Tue, 28 Apr 92 13:53:54 WET DST -// Subject: g++ version 2.1 bugs -// Message-ID: <15717.9204281253@cch.coventry.ac.uk> - - -// enum bool { FALSE = 0, TRUE = 1 }; - -typedef int T; - -class Traversable { -public: - virtual const T item() const = 0; - virtual const bool off() const = 0; - virtual ~Traversable() { }; -}; - -class Chain : public Traversable { -public: - virtual const int count() const = 0; - virtual const bool empty() const = 0; - virtual void forth() const = 0; - virtual const bool isfirst() const = 0; - virtual const bool islast() const = 0; - virtual const int position() const = 0; - virtual const T first() const = 0; - virtual const T last() const = 0; - virtual const T i_th(const int index) const = 0; - virtual void start() const = 0; - virtual void back() const = 0; - virtual void finish() const = 0; - virtual void move(const int index) const = 0; - virtual void go(const int index) const = 0; - virtual void put(const T value) = 0; - virtual void put_i_th(const T value, const int index) = 0; - virtual void swap(const int index) = 0; - virtual void wipe_out() = 0; -}; -class List : public Chain { -protected: - int item_count; - int cursor_position; - virtual void go_offleft() const = 0; - virtual void go_offright() const = 0; - virtual void copy(const List& other) = 0; -public: - List() : item_count(0), cursor_position(0) { }; - virtual const int count() const; - virtual const bool empty() const; - virtual const bool isfirst() const; - virtual const bool islast() const; - virtual const bool offleft() const; - virtual const bool offright() const; - virtual const bool off() const; - virtual const int position() const; - virtual const T first() const; - virtual const T last() const; - virtual const T i_th(const int index) const; - virtual void start() const; - virtual void forth() const; - virtual void back() const; - virtual void finish() const; - virtual void move(const int index) const; - virtual void go(const int index) const; - friend const bool operator==(const List& left, - const List& right); - friend const bool operator!=(const List& left, - const List& right); - virtual void put_i_th(const T value, const int index); - virtual void swap(const int index); -}; -typedef int T; -class Array { -private: - int lower_index; - int upper_index; - T *array; -protected: - virtual void allocate(const int minindex, const int maxindex); - virtual void copy(const Array&other); -public: - Array(const int minindex, const int maxindex); - Array(const Array& other); - virtual const int count() const; - virtual const int lower() const; - virtual const int upper() const; - virtual const T item(const int index) const; - const T Array::operator[](const int index); // ERROR - qualification ignored - virtual const bool valid_index(const int index) const; - virtual const bool empty() const; - friend const bool operator==(const Array& left, const Array& right); - friend const bool operator!=(const Array& left, const Array& right); - virtual void put(const T value, const int index); - virtual void wipe_out(); - Array& operator=(const Array& other); - virtual ~Array(); -}; -class Fixed_List: public List, private Array { -protected: - virtual void go_offleft() const; - virtual void go_offright() const; - virtual void copy(const List& other); -public: - Fixed_List(const List& other); - Fixed_List(const int size): Array(1, size) { }; - virtual const bool empty() const; - virtual const int count() const; - virtual const T item() const; - virtual const T i_th(const int index) const; - virtual void move(const int index) const; - virtual void put(const T value); - virtual void put_i_th(const T value, const int index); - virtual void wipe_out() { }; - Fixed_List& operator=(const List& other); -}; - -void Fixed_List::go_offleft() const -{ - cursor_position = 0;// ERROR - -}; - diff --git a/gcc/testsuite/g++.old-deja/g++.law/missing1.C b/gcc/testsuite/g++.old-deja/g++.law/missing1.C deleted file mode 100755 index e6505f5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/missing1.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// GROUPS passed missing -// missing file -// Message-Id: <9207100259.AA11702@quaestor> -// From: adam@inference.com (David Adam) -// Subject: G++ does not allow parens around declarators. -// Date: Thu, 9 Jul 92 19:59:51 PDT - -void foo() -{ - long (bar)[5]; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/nest1.C b/gcc/testsuite/g++.old-deja/g++.law/nest1.C deleted file mode 100755 index e8fa80c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/nest1.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed nest -// nest file -// From: gs4t@virginia.edu (Gnanasekaran Swaminathan) -// Date: Wed, 30 Dec 1992 20:38:07 GMT -// Subject: Local type names bug in g++ 2.3.3 -// Message-ID: <1992Dec30.203807.17504@murdoch.acc.Virginia.EDU> - -typedef char* T; // ERROR - previous declaration - -struct Y { - T a; - typedef long T; // error. See ARM p189-191 for details// ERROR - - T b; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/nest2.C b/gcc/testsuite/g++.old-deja/g++.law/nest2.C deleted file mode 100755 index adc0556..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/nest2.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// GROUPS passed nest -struct B -{ - class B_I { }; -}; - -struct D : public B -{ - B_I foo; - class I : public B_I { }; -}; - diff --git a/gcc/testsuite/g++.old-deja/g++.law/nest3.C b/gcc/testsuite/g++.old-deja/g++.law/nest3.C deleted file mode 100755 index eac308e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/nest3.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: -// GROUPS passed nest -#include <iostream.h> - -struct inner { - static void f() { cout << "inner::f()\n";} -}; - -struct outer { - - struct inner { - static void f() { cout << "outer::inner::f()\n";} - }; - - static void f() { - inner::f(); //call of outer::inner::f() - ::inner::f(); //(try to) call inner::f() => parse error - } -}; - -int main() { - outer::f(); - cout << endl; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/nest4.C b/gcc/testsuite/g++.old-deja/g++.law/nest4.C deleted file mode 100755 index 98b085f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/nest4.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed nest -// nest file -// From: Neal Young <ney@princeton.edu> -// Date: Mon, 11 Oct 93 17:03:59 EDT -// Subject: g++ 2.4.5 bug report: local class decl can't access local static var -// Message-ID: <9310112103.AA06326@cs> - -void f() -{ - static int s; - - struct local { - int j() { return s; } // should be okay, see 1991 ref. man. r.9.8 - }; -} - -int main() -{ -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/nest5.C b/gcc/testsuite/g++.old-deja/g++.law/nest5.C deleted file mode 100755 index 99e8508..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/nest5.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: -// GROUPS passed nest -// nest file -// From: tal@vlsi.cs.caltech.edu -// Date: Mon, 11 Oct 93 16:26:02 -0700 -// Subject: Serious bug: g++2.4.5 -Doesn't support local classes -// Message-ID: <9310112325.AA13386@vlsi.cs.caltech.edu> - -void foo() { - class Wrapper { - public: - void F (void * Wrapperptr) - { - Wrapper * wrapptr = ( Wrapper *) Wrapperptr; - } - }; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators10.C b/gcc/testsuite/g++.old-deja/g++.law/operators10.C deleted file mode 100755 index c87880f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators10.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: -// GROUPS passed operators -// opr-eq file -// Message-Id: <9306040324.AA22954@balder.cs.wisc.edu> -// From: so@cs.wisc.edu (Bryan So) -// Subject: g++ bug -// Date: Thu, 3 Jun 93 22:24:13 -0500 - -template <class T> -struct Test { - int data; - Test& operator=(int i) { data = i; return *this; } -}; - - -int main() -{ - Test<int> i, j; - - i = j; - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators11.C b/gcc/testsuite/g++.old-deja/g++.law/operators11.C deleted file mode 100755 index 16eccea..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators11.C +++ /dev/null @@ -1,36 +0,0 @@ -// Build don't link: -// GROUPS passed operators -// opr-eq file -// Message-Id: <CCJrut.9M7@csc.ti.com> -// From: rowlands@hc.ti.com (Jon Rowlands) -// Subject: g++ 2.4.5: assignment operator in base class -// Date: Mon, 30 Aug 1993 00:54:29 GMT - -class B { -public: - B & operator = (B); // delete this line and problem goes away -}; - -class D : public B { -public: - D(); - D(int); - D(B); -}; - -int -main() { - B b; - D d; - - d = d; - - d = 0; // t.cxx:20: assignment not defined for type `D' - d = D(0); - - d = b; // t.cxx:23: assignment not defined for type `D' - d = D(b); - - return(0); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators12.C b/gcc/testsuite/g++.old-deja/g++.law/operators12.C deleted file mode 100755 index cd5312b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators12.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed operators -// opr-eq file -// Message-Id: <199311181618.AA27761@oil.cs.columbia.edu> -// From: Sam Fenster <fenster@cs.columbia.edu> -// Subject: g++ 2.5.3 can't disable assignment -// Date: Thu, 18 Nov 1993 11:18:18 -0500 - -class B - { - B &operator = (const B &); //Disable assignment! - public: - virtual ~B () {} - }; - -class D: public B - { - public: - D () {} - }; diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators13.C b/gcc/testsuite/g++.old-deja/g++.law/operators13.C deleted file mode 100755 index f423238..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators13.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: -// GROUPS passed operators -// opr-eq file -// Message-Id: <1993Nov18.210502.28842@midway.uchicago.edu> -// From: mps@dent.uchicago.edu (Michael Spertus) -// Subject: g++ 2.5.4 bug : operator= -// Date: Thu, 18 Nov 1993 21:05:02 GMT - -class T { -}; - -class EP { -public: - void operator=(T *); -}; - - -void EP::operator=(T *) { } - -int main() -{ - EP ep1, ep2; - ep1 = ep2; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators14.C b/gcc/testsuite/g++.old-deja/g++.law/operators14.C deleted file mode 100755 index 22e1256..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators14.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed operators -void foo (int * a, int * b, int * c) {} - -int main() { - int a,b,c; - foo (&a, &b, &c); - (a = b) = c; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators15.C b/gcc/testsuite/g++.old-deja/g++.law/operators15.C deleted file mode 100755 index 08d952d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators15.C +++ /dev/null @@ -1,27 +0,0 @@ -// GROUPS passed operators -// opr-del file -// Message-Id: <199301272137.AA25213@world.std.com> -// From: kol@world.std.com (Nikolay Yatsenko) -// Subject: bug report -// Date: Wed, 27 Jan 1993 16:37:30 -0500 - -extern "C" int printf(const char* ...); - -int delete_counter = -1; - -struct T{ - void operator delete (void * p) {delete_counter ++; ::delete p;} -}; - -int main(void) -{ - T * ps1 = new T; - - ::delete ps1; // Wrong T::operator delete() is called here - - if (delete_counter != -1) - printf ("FAIL\n"); - else - printf ("PASS\n"); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators16.C b/gcc/testsuite/g++.old-deja/g++.law/operators16.C deleted file mode 100755 index 3298e30..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators16.C +++ /dev/null @@ -1,29 +0,0 @@ -// GROUPS passed operators -// copy file -// From: gfm@mencon.mencon.oz.au (Graham Menhennitt) -// Date: Thu, 29 Apr 93 20:53:07 EST -// Subject: 4 bugs in g++ 2.3.3 -// Message-ID: <9304291053.AA00090@mencon> - -#include <stdio.h> - -int pass = 0; -struct A { - A(void) {} - A(const A& a) { ; } - A& operator = (const A& a) { pass = 1; } -}; - -struct B { - B(const A& aa) { B::a = aa; } - A a; -}; - -int main(void) -{ - B(A()); - if (pass) - printf ("PASS\n"); - else - printf ("FAIL\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators17.C b/gcc/testsuite/g++.old-deja/g++.law/operators17.C deleted file mode 100755 index e652d9c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators17.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// Special g++ Options: -Wall -pedantic-errors -// GROUPS passed operators -// copy file -// From: gfm@mencon.mencon.oz.au (Graham Menhennitt) -// Date: Thu, 29 Apr 93 20:53:07 EST -// Subject: 4 bugs in g++ 2.3.3 -// Message-ID: <9304291053.AA00090@mencon> - - struct A { - A& operator = (const A& a) {}// ERROR - - }; diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators18.C b/gcc/testsuite/g++.old-deja/g++.law/operators18.C deleted file mode 100755 index 74ea159..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators18.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: -// GROUPS passed operators -// opr-ampr file -// From: mecklen@oops.cs.utah.edu (Robert Mecklenburg) -// Date: Thu, 8 Oct 92 16:33:08 -0600 -// Subject: Type conversion and overloading bugs in 2.2.2 -// Message-ID: <9210082233.AA28203@hellgate.utah.edu> - - enum E { a, b, c }; - struct Estr { - E value; - Estr() {} - Estr( int i ) : value( (E)i ) {} - operator E() { return value; } - }; - extern Estr baz(); - int bazz() { return baz() & 2; } diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators19.C b/gcc/testsuite/g++.old-deja/g++.law/operators19.C deleted file mode 100755 index 3756041..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators19.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// GROUPS passed operators -// opr-ampr file -// From: Jarkko Sonninen <Jarkko.Sonninen@lut.fi> -// Date: Thu, 7 Oct 1993 08:25:26 +0200 -// Subject: type of base class member -// Message-ID: <199310070625.AA18653@kaisa.it.lut.fi> - -class A { - public: - int j; -}; - -class B: public A { - public: - B () { - !(A::j); - }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators2.C b/gcc/testsuite/g++.old-deja/g++.law/operators2.C deleted file mode 100755 index 82954ff..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators2.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed operators -// opr-conv file -// Message-Id: <199301260142.AA13995@world.std.com> -// From: gparker@world.std.com (Glenn P Parker) -// Subject: gcc bug -// Date: Mon, 25 Jan 1993 20:42:35 -0500 - -int main(void) -{ - int i = int(); // g++ 2.3.3 cannot compile it. - - return 0; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators21.C b/gcc/testsuite/g++.old-deja/g++.law/operators21.C deleted file mode 100755 index a4aac7d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators21.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed operators - -struct A { - int x; -}; - -int operator()(A x,float y) {// ERROR - .* - return 1; -} - -int main() { - A x; - x(1.0); // ERROR - no match -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators22.C b/gcc/testsuite/g++.old-deja/g++.law/operators22.C deleted file mode 100755 index e550dac..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators22.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed operators -template <class T> -class t { -public: - t() {} -}; - -class m { - t<int> c; -public: - m() : c() {} -}; - -m *p() {return new m;} diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators23.C b/gcc/testsuite/g++.old-deja/g++.law/operators23.C deleted file mode 100755 index 6403655..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators23.C +++ /dev/null @@ -1,35 +0,0 @@ -// GROUPS passed operators -// opr-new file -// From: (The Crossjammer) <xjam@cork.cs.berkeley.edu> -// Date: Mon, 23 Nov 92 23:35:26 PST -// Subject: g++-2.3.1 : Incorrectly calls overloaded operator new -// Message-ID: <9211240735.AA06872@cork.CS.Berkeley.EDU> - - -#include <stdio.h> -#include <stdlib.h> - -class blah { - int j; - public: - blah(); - void *operator new(size_t size); -}; - -inline blah::blah() : j(0) { - -} - - -void *blah::operator new(size_t size) { - printf ("FAIL\n"); - exit (1); - return NULL; -} - -int main(int arg, char** argv) { - blah* blahPtr; - - blahPtr = new blah[100]; - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators24.C b/gcc/testsuite/g++.old-deja/g++.law/operators24.C deleted file mode 100755 index 46346e5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators24.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed operators -// opr-new file -// From: rwave!myersn%rwave.roguewave@cs.orst.edu (Nathan Myers) -// Date: Wed, 16 Dec 92 11:55 PST -// Subject: 2.3.2: friend decl breaks member op new -// Message-ID: <m0n24qP-0000GmC@rwave.roguewave.com> - -#include <stddef.h> -struct Link { - void* operator new(size_t, int); - friend void* __builtin_new(size_t); // This declaration triggers the bug -}; -void f() { new(2) Link; } diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators25.C b/gcc/testsuite/g++.old-deja/g++.law/operators25.C deleted file mode 100755 index 4b701b6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators25.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed operators -// opr-new file -// From: gparker@world.std.com (Glenn P Parker) -// Date: Mon, 25 Jan 1993 20:43:43 -0500 -// Subject: gcc bug -// Message-ID: <199301260143.AA14133@world.std.com> - -typedef int (**PPF)(int); - -int main(void) -{ - PPF pf2 = new (int (*) (int)); // internal compiler error on this line. - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators27.C b/gcc/testsuite/g++.old-deja/g++.law/operators27.C deleted file mode 100755 index 6a07176..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators27.C +++ /dev/null @@ -1,33 +0,0 @@ -// GROUPS passed operators -// opr-new file -// From: David Binderman 3841 <dcb@us-es.sel.de> -// Date: Mon, 21 Jun 93 11:42:11 +0200 -// Subject: G++ 2.4.3 and operator new -// Message-ID: <9306210942.AA10276@slsvitt.us-es.sel.de> - -int FLAG=0; - -#include <new> - -extern "C" int printf( const char *, ...); - -void * operator new(size_t, const std::nothrow_t&) throw() { FLAG=1; return 0; } - -class K { -private: - int i; -public: - K( int j) { - i = j; - } -}; - -int main(void) -{ - K * pK = new (std::nothrow) K( 10); - if ( FLAG != 1 ) - printf ("FAIL\n"); - else - printf ("PASS\n"); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators28.C b/gcc/testsuite/g++.old-deja/g++.law/operators28.C deleted file mode 100755 index 3600fb2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators28.C +++ /dev/null @@ -1,30 +0,0 @@ -// Build don't link: -// GROUPS passed operators -#include <sys/types.h> -#include <stdio.h> - -class new_test -{ - int type; -public: - void* operator new(size_t sz, int count, int type); -}; - -void* new_test::operator new(size_t sz, int count, int type) -{ - void *p; - - printf("%d %d %d\n", sz, count, type); - - p = new char[sz * count]; - ((new_test *)p)->type = type; - return p; -}; - -int main() -{ - new_test *test; - int count = 13; - - test = new(count, 1) new_test; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators29.C b/gcc/testsuite/g++.old-deja/g++.law/operators29.C deleted file mode 100755 index c24bbe4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators29.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: -// GROUPS passed operators -// (Message bugs/opr-del:4) -// From: jamshid@ses.com (Jamshid Afshar) -// Date: Fri, 25 Feb 94 18:44:01 CST -// Subject: Re: delete on "smart pointers" -// Message-ID: <9402262328.AA16321@pancake> -// -// Who was apparently replying to kuhlins@hawk.wifo.uni-mannheim.de - - -template<class T> class Ptr { -public: - Ptr(T*); - operator T*(); -}; - -int main() { - Ptr<int> ip = new int(2); - delete ip; - operator delete(ip); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators3.C b/gcc/testsuite/g++.old-deja/g++.law/operators3.C deleted file mode 100755 index e4a8341..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators3.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: -// GROUPS passed operators -// opr-pl file -// Message-Id: <9212010409.AA24967@zeus.research.otc.com.au> -// From: grahamd@zeus.research.otca.oz.au (Graham Dumpleton) -// Subject: Failure to use conversion operator. -// Date: Tue, 1 Dec 92 15:11:18 EST - -class BUG1 -{ - public: - - operator char*() const { return myData; } - char* myData; -}; - -void bug1() -{ - BUG1 bug1; - bug1.myData = "0123456789"; - char* s = bug1 + 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators30.C b/gcc/testsuite/g++.old-deja/g++.law/operators30.C deleted file mode 100755 index 4236dc5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators30.C +++ /dev/null @@ -1,25 +0,0 @@ -// GROUPS passed operators -// opr-mm file -// Date: Thu, 2 Jun 94 10:00:29 +0200 -// From: chatty@cenatls.cena.dgac.fr (Stephane Chatty) -// Message-Id: <9406020800.AA14201@geant.cenatls.cena.dgac.fr> -// Subject: result of operator -- with g++-2.5.8 - -#include <stdio.h> - -void nop() -{ -} - -int main () -{ - int a = 2; - - if (----a == 0) - nop (); - - if (a == 0) - printf("PASS\n"); - else - printf("FAIL\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators31.C b/gcc/testsuite/g++.old-deja/g++.law/operators31.C deleted file mode 100755 index a2ba720..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators31.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// GROUPS passed operators -// opr-del file -// From: Eberhard Mattes <mattes@azu.informatik.uni-stuttgart.de> -// Date: Thu, 4 Aug 94 08:19:20 +0200 -// Subject: delete [] A::s -// Message-ID: <9408040619.AA27602@azu.informatik.uni-stuttgart.de> - -class A -{ - char *s; -public: - void f (); -}; - -void A::f () -{ - delete [] A::s; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators32.C b/gcc/testsuite/g++.old-deja/g++.law/operators32.C deleted file mode 100755 index 26e4398..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators32.C +++ /dev/null @@ -1,55 +0,0 @@ -// Build don't link: -// GROUPS passed operators -#include <iostream.h> - -// -// frees space allocated for N-D array -// - -template <class T> -void free(long rows, T** array) -{ -for( long i = 0; i < rows; i++ ) - delete [] array[i]; // delete row -delete [] array; // delete outer array -} - -template <class T> -T* allocate1d(long size, T*& array) -{ -return array = new T[size]; -} - -template <class T> -T** allocate2d(long d1, long d2, T**& array) -{ -if( allocate1d(d1, array) != 0 ) - { - for( long i = 0; i < d1; i++ ) - { - if( allocate1d(d2, array[i]) == 0 ) - { - free(i,array); - return array; - } - } - } -return array; -} - -int main() -{ -long d1 = 3, d2 = 4; -class foo -{ -public: -foo() {cout << "foo created" << endl; } - -~foo() {cout << "foo deleted" << endl; } -}; - -foo **f2; -allocate2d(d1, d2, f2);// ERROR - type.*// ERROR - trying to.* -free(d1, f2);// ERROR - type.*// ERROR - trying to.* - -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators33.C b/gcc/testsuite/g++.old-deja/g++.law/operators33.C deleted file mode 100755 index bdf5147..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators33.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't link: -// GROUPS passed operators -// opr-new file -// From: flisakow@cae.wisc.edu -// Date: Thu, 1 Sep 94 18:21:09 CDT -// Subject: g++ bug? -// Message-ID: <9409012321.AA05346@hprisc-19.cae.wisc.edu> - -#include <stdio.h> - - -struct fcell { - FILE *fd; - struct fcell *next; -}; - - -class FStack { -public: - struct fcell *top; - FStack() { top = NULL ; } ; - inline void push(FILE * fd1, int line_num, char *fname = NULL) { - struct fcell *tmp = new struct fcell; - tmp->fd = fd1; - tmp->next = top; - top = tmp ; - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators34.C b/gcc/testsuite/g++.old-deja/g++.law/operators34.C deleted file mode 100755 index 316500e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators34.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// GROUPS passed operators -class A { - public: - A() { - } -}; - -static class A *A_new_() { - return new class A; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators4.C b/gcc/testsuite/g++.old-deja/g++.law/operators4.C deleted file mode 100755 index 044249f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators4.C +++ /dev/null @@ -1,31 +0,0 @@ -// GROUPS passed operators -// opr-del file -// From: rollins@bart.ee.queensu.ca (Mark Rollins) -// Date: Thu, 3 Sep 1992 22:01:03 -0400 Fri, 4 Sep 1992 02:00:25 GMT -// Subject: delete [size] pointer; Problem -// Message-ID: <92Sep3.220137edt.30@jarvis.csri.toronto.edu> - -#include <complex> -typedef complex<double> Complex; -#include <stdio.h> - -class Vector { - int size; - Complex *v; - public: - Vector(int s=1) { size = s; v = new Complex[size];}; - ~Vector() { delete [size] v;}// ERROR - warning -}; - -void foo(int s) -{ - Vector junk(s); -} - -int main() -{ - Vector* test; - for (int i=0;i<40;i++) // was 100000 - foo(1000); - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators6.C b/gcc/testsuite/g++.old-deja/g++.law/operators6.C deleted file mode 100755 index f66f649..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators6.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: -// GROUPS passed operators -// opr-as file -// From: Klaus Ahrens <ahrens@informatik.hu-berlin.de> -// Date: Fri, 26 Mar 93 12:50:37 mez -// Subject: no default assignment -// Message-ID: <199303261149.TA23114@mail.Germany.EU.net> - -class A { -public: - A(int){} - A& operator=(const A&){return *this;} -}; - -class B: public A { -public: - B(int i): A(i) {} -}; - -int main() -{ - B b=1; - b=1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators8.C b/gcc/testsuite/g++.old-deja/g++.law/operators8.C deleted file mode 100755 index 5fd94bd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators8.C +++ /dev/null @@ -1,49 +0,0 @@ -// GROUPS passed operators -#include <stdio.h> - -class shape { - public: - virtual void vDisplay(void) const = 0; - protected: - int X; - int Y; -}; - -class square :public shape { - public: - square(int x, int y, int width_) { - X = x; - Y = y; - width = width_; - } - void vDisplay(void) const { - printf ("PASS\n"); - } - protected: - int width; -}; - - -class triangle :public shape { - public: - triangle(int x, int y, int width_, int height_) { - X = x; - Y = y; - width = width_; - height = height_; - } - void vDisplay(void) const { - printf ("FAIL\n"); - } - protected: - int width; - int height; -}; - -int main() { - shape* s1 = new square(4,4,5); - shape* s2 = new triangle(6,6,2,3); - *s1 = *s2; - s1->vDisplay(); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/operators9.C b/gcc/testsuite/g++.old-deja/g++.law/operators9.C deleted file mode 100755 index 8aeac84..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/operators9.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// GROUPS passed operators -// opr-eq file -// Message-Id: <9301141514.AA05925@mi.el.utwente.nl> -// From: klamer@mi.el.utwente.nl (Klamer Schutte) -// Subject: 2.3.3: failed to detect error -// Date: Thu, 14 Jan 93 16:14:21 +0100 - -class B -{ -public: - operator=(B &); // ERROR - no type or storage class -}; - -void -test(B &b1, const B &b2) -{ - b1 = b2;// ERROR - .* -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/parsing1.C b/gcc/testsuite/g++.old-deja/g++.law/parsing1.C deleted file mode 100755 index 7b032e3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/parsing1.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// GROUPS passed parsing -// parsing folder -// From: hendrik%vedge.UUCP@iro.umontreal.ca -// Date: Wed, 23 Sep 92 17:10:28 -0400 -// Subject: parenthesized method -// Message-ID: <9209232110.AA02533@.> - - -class goo{ -public: - void noo_bloo(); -}; - -void choo(goo* too) -{ (too->noo_bloo)(); -} - -void choo_too(goo* too) -{ too->noo_bloo(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/parsing10.C b/gcc/testsuite/g++.old-deja/g++.law/parsing10.C deleted file mode 100755 index 9fee9eb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/parsing10.C +++ /dev/null @@ -1,32 +0,0 @@ -// Build don't link: -// GROUPS passed parsing -// parsing folder -// From: Eirik Fuller <eirik@elf.ithaca.ny.us> -// Date: Wed, 15 Dec 1993 17:06:11 -0500 -// Subject: parse error -// Message-ID: <199312152206.AA06584@tonttu.TC.Cornell.EDU> - - -class s; - -template <class T> -class t -{ -public: - void f(T *t); -}; - -class l -{ -public: - void s() {}; -}; - -extern t<l> g; - -class p -{ -public: - void *h; - s *a() {return (s *) h;}; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/parsing2.C b/gcc/testsuite/g++.old-deja/g++.law/parsing2.C deleted file mode 100755 index 5570ad9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/parsing2.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS passed parsing -// parsing folder -// From: jonathan@Pescadero.Stanford.EDU -// Date: Tue, 15 Sep 92 14:15:29 PDT -// Subject: Function taking as argument a pointer to a pointer to a function -// that returns int causes coredump in cc1plus -// Message-ID: <9209152115.AA07423@Pescadero.Stanford.EDU> - - unsigned char FindMdc ( int (**)() ); - unsigned char FindMdc2 ( int (**funcname)() ); diff --git a/gcc/testsuite/g++.old-deja/g++.law/parsing3.C b/gcc/testsuite/g++.old-deja/g++.law/parsing3.C deleted file mode 100755 index 8efee5b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/parsing3.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed parsing -// parsing folder -// From: tll@cco.caltech.edu (Tal Lewis Lancaster) -// Date: 18 Mar 1993 17:09:43 GMT -// Subject: Re: unexpected difference between gcc and g++ (both 2.3.3) -// Message-ID: <1oaacnINNt20@gap.caltech.edu> - -/* Notice that this case parses fine */ -int (* volatile y)[10]; - -void foo2() { - /* The parser can't handle it now */ - int (* volatile x)[10]; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/parsing4.C b/gcc/testsuite/g++.old-deja/g++.law/parsing4.C deleted file mode 100755 index e834d6f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/parsing4.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed parsing -// parsing folder -// From: Glenn Engel <glenne@lsid.hp.com> -// Date: Fri, 29 Jan 93 18:42:03 PST -// Subject: Parse Error -// Message-ID: <9301300242.AA15550@hplslk.lsid.hp.com> - -int test1(void (**roc)(int,int)); // parse error -int test2(int id,void (**orc)(int,int)); // works diff --git a/gcc/testsuite/g++.old-deja/g++.law/parsing5.C b/gcc/testsuite/g++.old-deja/g++.law/parsing5.C deleted file mode 100755 index f3f8473..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/parsing5.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS passed parsing -// From: Teemu Torma <Teemu.Torma@frend.fi> -// Date: Mon, 15 Jun 92 18:42:25 +0300 -// Subject: G++ 2.2.2: Strange parse error -// Message-ID: <"relay.fren.501:15.05.92.15.42.30"@frend.fi> - -long (*foo1 ()) (); // This is ok. - -typedef long INT; -INT (*foo2 ()) (); // This is not, g++ says "parse error before `('" diff --git a/gcc/testsuite/g++.old-deja/g++.law/parsing6.C b/gcc/testsuite/g++.old-deja/g++.law/parsing6.C deleted file mode 100755 index 63a660e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/parsing6.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed parsing -// parsing folder -// From: "James S. Vera" <vera@fanaraaken.stanford.edu> -// Date: Thu, 01 Jul 1993 16:36:32 -0700 -// Subject: Mildly complicated type not understood, 2.4.5 -// Message-ID: <9307012336.AA13841@fanaraaken.Stanford.EDU> - -typedef int (*cow[3])(...); - -int main() { - cow fs; - int (*pig[3])(...); // line 5 - -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/parsing7.C b/gcc/testsuite/g++.old-deja/g++.law/parsing7.C deleted file mode 100755 index 1b73c95..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/parsing7.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: -// GROUPS passed parsing -// parsing folder -// From: szahn%Robinie@goesser.sie.siemens.co.at (Hr. Zahn) -// Date: Mon, 5 Jul 93 10:45:51 +0200 -// Subject: Bug report g++ 2.4.5, unexpected syntax errors -// Message-ID: <9307050845.AA00499@ets5.uebemc.siemens.de> - -int f1( - int (**a1)() - ); - -int f2( - int (**a1)() - ); - - -int f3( - int (**a1)( int a, int b ) - ); - -int f4( - int (**a1)( int a, int b ) - ); diff --git a/gcc/testsuite/g++.old-deja/g++.law/parsing8.C b/gcc/testsuite/g++.old-deja/g++.law/parsing8.C deleted file mode 100755 index d897849..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/parsing8.C +++ /dev/null @@ -1,31 +0,0 @@ -// Build don't link: -// GROUPS passed parsing -// parsing folder -// From: nag@soft.flab.fujitsu.co.jp -// Date: Thu, 08 Jul 1993 10:54:59 +0900 -// Subject: g++ cannot understand `void (**f)()' -// Message-ID: <9307080155.AA00496@kumade.soft.flab.fujitsu.co.jp> - - void - func() { - int ( * * i )[ 2 ]; - } - -// Looks like this is probably the same problem -// parsing folder -// From: nag@soft.flab.fujitsu.co.jp -// Date: Thu, 08 Jul 1993 10:54:59 +0900 -// Subject: g++ cannot understand `void (**f)()' -// Message-ID: <9307080155.AA00496@kumade.soft.flab.fujitsu.co.jp> -int main() -{ - void (**f)(); -} - - -// Same as -// From: Chris Dodd <dodd@csl.sri.com> -// Date: Fri, 16 Jul 93 17:05:04 -0700 -// Subject: bug in declaration parsing in g++ 2.4.5 -// Message-ID: <9307170005.AA03857@pekoe.csl.sri.com> - diff --git a/gcc/testsuite/g++.old-deja/g++.law/parsing9.C b/gcc/testsuite/g++.old-deja/g++.law/parsing9.C deleted file mode 100755 index 0cd22fd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/parsing9.C +++ /dev/null @@ -1,32 +0,0 @@ -// Build don't link: -// GROUPS passed parsing -// From: Jason Merrill <jason@cygnus.com> -// Date: Fri, 13 Aug 93 12:49:11 PDT -// Subject: 2.4.5 won't compile array of pointers to functions returning T -// Message-ID: <9308131949.AA26348@cygnus.com> -// From: "Robert M. Keller" <keller@jarthur.Claremont.EDU> -// Subject: g++ bug -// Date: Fri, 13 Aug 93 10:09:27 PDT - -/* Testing declaration of "array of pointers to functions returning T" */ - -typedef int T; - -T foo() -{ return 10; } - -T bar() -{ return 20; } - -T baz() -{ return 30; } - -int main() -{ -T (*apfrt[10])(); - -apfrt[0] = foo; -apfrt[1] = bar; -apfrt[2] = baz; - -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/patches1.C b/gcc/testsuite/g++.old-deja/g++.law/patches1.C deleted file mode 100755 index 3ec9321..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/patches1.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: -// GROUPS passed patches -// patches file -// From: david.binderman@pmsr.philips.co.uk -// Date: Wed, 6 Oct 93 17:05:54 BST -// Subject: Reno 1.2 bug fix -// Message-ID: <9310061605.AA04160@pmsr.philips.co.uk> - -int type(float) { return 1; } -int type(double) { return 2; } -int type(long double) { return 3; } - -extern "C" int printf( const char *, ...); - -int main() -{ - int i = 0; - if (type(0.0) != 2) - ++i; - if (i > 0) - printf ("FAIL\n"); - else - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/pic1.C b/gcc/testsuite/g++.old-deja/g++.law/pic1.C deleted file mode 100755 index 818d3d0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/pic1.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// GROUPS passed operators -// pic file -// Message-Id: <199406132030.NAA23508@dewitt.eecs.berkeley.edu> -// Subject: gcc-2.5.8 -fpic fails to compile extern const char static initializer -// Date: Mon, 13 Jun 1994 13:30:14 -0700 -// From: Christopher Hylands <cxh@dewitt.eecs.berkeley.edu> - -extern const char SDFdomainName[] = "SDF"; diff --git a/gcc/testsuite/g++.old-deja/g++.law/profile1.C b/gcc/testsuite/g++.old-deja/g++.law/profile1.C deleted file mode 100755 index b26bb02..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/profile1.C +++ /dev/null @@ -1,9 +0,0 @@ -// Special g++ Options: -pg -// GROUPS passed profiling -// Skip if not native -// excess errors test - XFAIL m68k-motorola-sysv m88k-motorola-sysv3 mips*-*-* alpha*-*-* i[3456]86-*-sco3.2v5* -#include <stdio.h> -main() -{ - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/refs1.C b/gcc/testsuite/g++.old-deja/g++.law/refs1.C deleted file mode 100755 index 0efe9db..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/refs1.C +++ /dev/null @@ -1,42 +0,0 @@ -// GROUPS passed references -// (Message bugs/refs:1) -// From: tal@vlsi.cs.caltech.edu -// Date: Fri, 25 Feb 94 23:55:50 -0800 -// Subject: g++-2.5.8 produces incorrect code for references -// Message-ID: <9402260755.AA27693@vlsi.cs.caltech.edu> - -#include <stdio.h> - -class C { -private: - char** list; -public: - C(char** ); - void count (int&); -}; - -C::C (char** l) { - list = l; -} - -void C::count (int& total) { - if (*list == NULL) - return; - else { - list++; - count (++total); // THIS IS WHERE THE TROUBLE STARTS - } -} - -char * foo[] = { - "one", "two", "three", NULL}; - -int main() { - C c(foo); - int i = 0; - c.count(i); - if (i == 3) - printf ("PASS\n"); - else - printf ("FAIL\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/refs2.C b/gcc/testsuite/g++.old-deja/g++.law/refs2.C deleted file mode 100755 index b310bf6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/refs2.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS passed references -int func(int& i) -{ - static int& v = i; - return v; -} - -int main() -{ -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/refs3.C b/gcc/testsuite/g++.old-deja/g++.law/refs3.C deleted file mode 100755 index e77dd7f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/refs3.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// GROUPS passed references -const int& min(const int& n, const int& m) -{ - return n < m ? n : m; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/refs4.C b/gcc/testsuite/g++.old-deja/g++.law/refs4.C deleted file mode 100755 index 40e199a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/refs4.C +++ /dev/null @@ -1,21 +0,0 @@ -// GROUPS passed references -extern "C" void printf (char *, ...); - -const int& min(const int& tX, const int& tY) -{ - return tX < tY ? tX : tY; -} - -void foo(const int m, const int n) -{ - if (m == 1 && n == 100) - printf("PASS\n"); - else - printf("FAIL\n"); -} - -int main() -{ - foo(min(2, 1), min(100, 200)); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/scope1.C b/gcc/testsuite/g++.old-deja/g++.law/scope1.C deleted file mode 100755 index aa70fde..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/scope1.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed scoping -// scoping file -// From: kol@world.std.com (Nikolay Yatsenko) -// Date: Fri, 16 Jul 1993 18:48:32 -0400 -// Subject: g++ gives wrong error for local structure -// Message-ID: <199307162248.AA05360@world.std.com> - -int main(void) -{ - struct A{ - public: int i; - void set (int i) - {A::i = i;} // g++ gives wrong error - }; - - A a; - a.set(17); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/scope2.C b/gcc/testsuite/g++.old-deja/g++.law/scope2.C deleted file mode 100755 index bfefb61..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/scope2.C +++ /dev/null @@ -1,44 +0,0 @@ -// GROUPS passed scoping -// scoping file -// From: svkakkad@cs.utexas.edu (Sheetal V. Kakkad) -// Date: Tue, 5 Oct 93 12:38:49 -0500 -// Subject: G++ 2.4.5 - global delete operator not called when using "::delete" -// Message-ID: <9310051738.AA14586@boogie.cs.utexas.edu> - -#include <stdio.h> -#include <stddef.h> -#include <stdlib.h> - -class foo -{ - public: - foo () { ; } - ~foo () { ; } - void *operator new (size_t); - void operator delete (void *); -}; - -void *foo::operator new (size_t size) -{ - return malloc (size); -} - -int overloaded_delete = 0; - -void foo::operator delete (void *data) -{ - free ((char *) data); - overloaded_delete++; -} - -int main () -{ - foo *f = new foo; - foo *ff = ::new foo; - ::delete ff; // should call the default delete operator - delete f; - if (overloaded_delete == 1) - printf ("PASS\n"); - else - printf ("FAIL\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/scope3.C b/gcc/testsuite/g++.old-deja/g++.law/scope3.C deleted file mode 100755 index 0f36e1b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/scope3.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: -// GROUPS passed scoping -// local-class file -// From: dcb@us-es.sel.de -// Date: Fri, 27 Nov 92 15:34:28 +0100 -// Subject: GNU G++ 2.3.1 bug report -// Message-ID: <9211271434.AA15612@us-es.sel.de> - - -void f() -{ - { - struct A { - A() {}; - } a; - }; - { - struct A { - A() {}; - } a ; - }; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/scope4.C b/gcc/testsuite/g++.old-deja/g++.law/scope4.C deleted file mode 100755 index 1cfb54e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/scope4.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed scoping -// local-class file -// From: daniels@sugar.neosoft.com (Brad Daniels) -// Date: Thu, 5 Aug 93 15:36:36 CDT -// Subject: Bug in g++ 2.4.5: Can't touch nested class identifier inside its members -// Message-ID: <9308051536.AA06115@NeoSoft.Com> - -void f() { - class foo { - int x; - public: - foo() : x(1) {} - int bar() { foo p; return p.x; } - }; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/scope5.C b/gcc/testsuite/g++.old-deja/g++.law/scope5.C deleted file mode 100755 index d7bcb63..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/scope5.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: -// GROUPS passed scoping -// local-class file -// From: schlaege@methusalix.ert.rwth-aachen.de (Chris Schlaeger H Zivojnovic) -// Date: Tue, 10 Aug 93 16:50:33 +0200 -// Subject: Bug report -// Message-ID: <9308101450.AA28016@methusalix.ert.rwth-aachen.de> - -int main() -{ - class foo - { - int i; - } ; - class bar - { - public: - bar() { y = 0; } - void f() { foo x; } - private: - int y; - } ; - - bar c; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/shadow1.C b/gcc/testsuite/g++.old-deja/g++.law/shadow1.C deleted file mode 100755 index 5338bea..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/shadow1.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't link: -// Special g++ Options: -Wshadow -// GROUPS passed shadow-warnings -// shadow file -// Message-Id: <9211061827.AA03517@harvey> -// From: Jeff Gehlhaar <jbg@qualcomm.com> -// Subject: GCC Bug.. -// Date: Fri, 6 Nov 1992 10:27:10 -0700 - -class Class -{ -public: - Class(void); // constructor - int Shadow(void); // member function -private: - long value; -}; - -Class::Class(void) -{ - value = 0; -} - -static inline unsigned char -Function(int Shadow) -{ - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/shadow2.C b/gcc/testsuite/g++.old-deja/g++.law/shadow2.C deleted file mode 100755 index 899fe93..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/shadow2.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't link: -// Special g++ Options: -Wshadow -// GROUPS passed shadow-warnings -// (Message bugs/shadow:2) -// From: michael@utex.rni.sub.org (Michael Utech) -// Date: Sat, 22 Jan 1994 04:28:00 +0100 -// Subject: very minor problem/bug in gcc-2.5.4, -Wshadow -// Message-ID: <m0pNZ1T-0008QUC@utex.rni.sub.org> - -class X -{ - int count; -public: - X() {} // necessary to produce the `count' warning -}; - -template <class T> -class Y -{ - T t; -public: - int f (int count) { return (count); } -}; - -main () -{ - Y<char> y; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/static-mem2.C b/gcc/testsuite/g++.old-deja/g++.law/static-mem2.C deleted file mode 100755 index 3a4489e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/static-mem2.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't link: -// GROUPS passed static-mem - -class desc; - -class a_desc { - public: - - static desc the_desc; - - virtual desc *get_desc(); -}; - -class desc : public a_desc { - public: - - static desc the_desc; - - desc(int); - - desc *get_desc(); -}; - - -desc desc::the_desc(1); - -desc a_desc::the_desc(0); diff --git a/gcc/testsuite/g++.old-deja/g++.law/static-mem3.C b/gcc/testsuite/g++.old-deja/g++.law/static-mem3.C deleted file mode 100755 index 39e4fc2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/static-mem3.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: -// GROUPS passed static-mem -// static-mem file -// Message-Id: <9406021639.AA00789@oz.NeXT.COM> -// From: Sumana Srinivasan <Sumana_Srinivasan@next.com> -// Date: Thu, 2 Jun 94 09:39:09 -0700 -// Subject: static members function pointers - -class CRTFooBar; - -class CRTFoo { -public: - static const CRTFooBar & defaultFooBar( ); - - CRTFoo( const CRTFoo & ); - CRTFoo( ); - CRTFoo( const char *, - const CRTFooBar &tp = CRTFoo::defaultFooBar(), - int = 0 ); - CRTFoo &setFoo( double, - const CRTFooBar & = CRTFoo::defaultFooBar() ); - -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/static-mem4.C b/gcc/testsuite/g++.old-deja/g++.law/static-mem4.C deleted file mode 100755 index 09e1637..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/static-mem4.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// GROUPS passed static-mem -struct test { - void test_member() { - static test& ds = *this; // FIX: static test* ds = this; - } -}; - - -int main() -{ - test t; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/static-mem5.C b/gcc/testsuite/g++.old-deja/g++.law/static-mem5.C deleted file mode 100755 index 2ce0df1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/static-mem5.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: -// Special g++ Options: -w -// GROUPS passed static-mem -// static-mem file -// From: bunch@tazboy.jpl.nasa.gov (Walt Bunch) -// Date: Thu, 23 Jun 94 14:58:35 UNI -// Subject: bug report -// Message-ID: <9406232258.AA03897@tazboy.JPL.NASA.GOV> - - -class A -{ -public: - static void F (int i) {} - static void A::G (int i) {} -}; - -main () -{ - A::F (17); - A::G (42); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/template1.C b/gcc/testsuite/g++.old-deja/g++.law/template1.C deleted file mode 100755 index bde1537..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/template1.C +++ /dev/null @@ -1,30 +0,0 @@ -// Build don't link: -// GROUPS passed templates - -class String { - char s[100]; -}; - -template <class Element> -class Art { -public: - Element *data; - Art() { data=new Element[100]; } -}; - -template <class Key,class Value> -class Assoc { -public: - struct KeyValue { - Key key; - Value value; - int filled; - }; - - Art<KeyValue> data; - int fill; -}; - -int main() { - Assoc<String,String> table; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/template2.C b/gcc/testsuite/g++.old-deja/g++.law/template2.C deleted file mode 100755 index 7fa2c76..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/template2.C +++ /dev/null @@ -1,17 +0,0 @@ -// GROUPS passed templates -// Special g++ Options: -fguiding-decls -extern "C" void printf (char *, ...); - -template<class T> T max(T a, T b) { return a > b ? a : b; } - -int max(int, int); - -main() -{ - int j; - - j = max(1,2); - j = max (1, 'c'); - printf ("PASS\n"); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/template3.C b/gcc/testsuite/g++.old-deja/g++.law/template3.C deleted file mode 100755 index 7523824..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/template3.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template< class R, class T1 = R, class T2 = T1 > -struct plus - { - R operator()( const T1& x, const T2& y ) const - { - return x + y; - } - }; - -int -main() - { - plus< int > p; - return 0; - } diff --git a/gcc/testsuite/g++.old-deja/g++.law/temps1.C b/gcc/testsuite/g++.old-deja/g++.law/temps1.C deleted file mode 100755 index aa3e8e8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/temps1.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -// GROUPS passed temps -// temps file -// Date: Mon, 07 Sep 1992 13:12:28 EDT -// From: richard@ttt.kth.se -struct foo -{ - char *s; - foo(char *x) { s=x; } -}; - -struct cookie -{ - foo * v; - cookie ( foo * x) { v=x; } -}; - -cookie cat(&foo("apabepa"));// ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.law/temps2.C b/gcc/testsuite/g++.old-deja/g++.law/temps2.C deleted file mode 100755 index 4e21672..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/temps2.C +++ /dev/null @@ -1,54 +0,0 @@ -// GROUPS passed temps -// temps file -// Message-Id: <9212181914.AA05066@sparc1.cnm.us.es> -// From: juando@cnm.us.es (Juan Domingo Martin Gomez) -// Subject: Temporaries destroyed too soon -// Date: Fri, 18 Dec 92 20:14:45 +0100 - -#include <stdio.h> - -int status = 0; -int fail = 0; - -class Foo -{ -public: - Foo(); - ~Foo(); - - Foo &method(); -}; - -Foo f1() -{ - return Foo(); -} - -Foo::Foo() -{ -} - -Foo::~Foo() -{ - if (status == 2) - fail = 0; - else - fail = 1; -} - -Foo &Foo::method() -{ - status++; - return *this; -} - -int main() -{ - // f1() returns a temporary object. The member function - // method() returns a reference to the same object. - f1().method().method(); - if (fail) - printf ("FAIL\n"); - else - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/temps3.C b/gcc/testsuite/g++.old-deja/g++.law/temps3.C deleted file mode 100755 index 48e4498..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/temps3.C +++ /dev/null @@ -1,28 +0,0 @@ -// GROUPS passed temps -// temps file -// Message-Id: <9308231535.AA19432@geant.cenatls.cena.dgac.fr> -// From: chatty@geant.cenatls.cena.dgac.fr (Stephane CHATTY) -// Subject: g++ 2.4.5 does not destroy temporaries -// Date: Mon, 23 Aug 93 17:35:34 +0200 - -#include <stdio.h> - -class A { -public: - int a; - A (int i) : a (i) { ;} - A (const A& aa) : a (aa.a) { ;} - ~A () { printf ("PASS\n");; } -}; - -A -foo () -{ - return A (10); -} - -int main () -{ - int x = foo ().a; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/temps4.C b/gcc/testsuite/g++.old-deja/g++.law/temps4.C deleted file mode 100755 index 2abf56d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/temps4.C +++ /dev/null @@ -1,38 +0,0 @@ -// Special g++ Options: -felide-constructors -// GROUPS passed temps -// temps file -// Message-Id: <9311102043.AA22871@ses.com> -// From: jamshid@ses.com (Jamshid Afshar) -// Subject: elide-constructors (aka return value optimization) -// Date: Wed, 10 Nov 93 14:43:54 CST - -#include <stdio.h> - -class X { - int i; - public: - X(); - X(const X&); - X(int); - ~X(); -}; - -int did_it = 0; - -X::X() { ; } -X::X(const X&) { did_it = 1; } -X::X(int) { ; } -X::~X() { ; } - -X foo() { - X x(1); - return x; -} - -main() { - X x = foo(); - if (did_it) - printf ("FAIL\n"); - else - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/temps5.C b/gcc/testsuite/g++.old-deja/g++.law/temps5.C deleted file mode 100755 index 7c591a4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/temps5.C +++ /dev/null @@ -1,41 +0,0 @@ -// GROUPS passed temps -// temps file -// Message-Id: <9311171029.AA00592@mencon> -// From: gfm@mencon.mencon.oz.au (Graham Menhennitt) -// Subject: gcc 2.5.3 - bug deleting object that is still referred to -// Date: Wed, 17 Nov 93 21:29:23 EST - -#include <stdio.h> - -class C { -public: - C(int i) : val(i) { ; } - C(const C& c) : val(c.val) { ; } - ~C(void) { val = 999; } - C& operator = (const C& c) { val = c.val; return *this; } - - C& inc(int i) { val += i; return *this; } - - int val; -}; - -C -f(void) -{ - return C(3); -} - -C -f(int i) -{ - return f().inc(i); -} - -int -main(void) -{ - if (f (2).val != 5) - printf ("FAIL\n"); - else - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/temps6.C b/gcc/testsuite/g++.old-deja/g++.law/temps6.C deleted file mode 100755 index 7d2952a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/temps6.C +++ /dev/null @@ -1,24 +0,0 @@ -// GROUPS passed temps -// Date: Tue, 22 Mar 94 12:46:28 +0100 -// From: dak@pool.informatik.rwth-aachen.de -// Message-Id: <9403221146.AA07815@messua> -// Subject: Bad code for pointer to member use as reference in g++ 2.5.8 - -#include <stdio.h> -struct str { - int i; -} xxx = {0}; - -int& test(str *arg1, int str::*arg2) -{ - return (arg1->*arg2); -} - -int main() -{ - test(&xxx, &str::i) = 5; - if (xxx.i == 0) - printf ("FAIL\n"); - else - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/temps7.C b/gcc/testsuite/g++.old-deja/g++.law/temps7.C deleted file mode 100755 index ddf028e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/temps7.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS passed temps - -template <class B > -class A { -public: - class C {}; -}; - -template class A<int>::C; - diff --git a/gcc/testsuite/g++.old-deja/g++.law/typeck1.C b/gcc/testsuite/g++.old-deja/g++.law/typeck1.C deleted file mode 100755 index f0ee773..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/typeck1.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -// GROUPS passed typeck -// typeck file -// From: vern@daffy.ee.lbl.gov (Vern Paxson) -// Date: 24 Sep 1992 23:11:22 GMT -// Subject: 2.2.2 type-checking error (?) when comparing pointers -// Message-ID: <26475@dog.ee.lbl.gov> - - - class a { }; - class foo : a { }; - class bar : a { }; - - int test( const foo* f, const bar* b ) - { - return f == b;// ERROR - - } - diff --git a/gcc/testsuite/g++.old-deja/g++.law/typeck2.C b/gcc/testsuite/g++.old-deja/g++.law/typeck2.C deleted file mode 100755 index 24f3cb1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/typeck2.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed typeck -// typeck file -// From: Jutta Degener <jutta@cs.tu-berlin.de> -// Date: Wed, 9 Jun 1993 17:58:35 +0200 (MET DST) -// Subject: 2.4.3: Type of new <typedef'ed array> -// Message-ID: <199306091558.AA19075@mail.cs.tu-berlin.de> - - typedef int arr[10]; -int main() - { - int * p = new int[10]; - int * q = new arr; /* g++ complains, but shouldn't */ - int (* r)[10] = new arr; /* g++ doesn't complain, but should */// ERROR - - } - diff --git a/gcc/testsuite/g++.old-deja/g++.law/typeck3.C b/gcc/testsuite/g++.old-deja/g++.law/typeck3.C deleted file mode 100755 index 76c3684..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/typeck3.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: -// GROUPS passed typeck -// typeck file -// From: Dror Caspi <dror@fibronics.co.il> -// Date: Wed, 9 Jun 1993 17:43:48 +0300 -// Subject: function typedefs in classes -// Message-ID: <199306091443.AA03735@zorba.fibronics.co.il> - -class a -{ - public: - typedef void (X)(); - - X x; // Member function of type X -}; - -class b -{ - public: - typedef void (X)(); //!!!!!! g++ says : syntax error before `;' - - X x; // Member function of type X -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/typeck4.C b/gcc/testsuite/g++.old-deja/g++.law/typeck4.C deleted file mode 100755 index 9b510c0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/typeck4.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// GROUPS passed typeck -class A { - public: - const int &operator[]( int i ); - private: - int k; -}; - -const int& A::operator[]( int i ) -{ - return k; -} - - -void ff( A &anA ) -{ - int &ani = anA[0];// ERROR - - - ani = 7; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/union1.C b/gcc/testsuite/g++.old-deja/g++.law/union1.C deleted file mode 100755 index ce7c3d7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/union1.C +++ /dev/null @@ -1,29 +0,0 @@ -// Build don't link: -// GROUPS passed unions -// anon-union file -// From: "Terry R. Coley" <terry@wag.caltech.edu> -// Date: Tue, 25 Aug 1992 17:33:29 -0700 -// Subject: possible bug in gcc/g++ -// Message-ID: <199208260033.AA19417@brahms.wag.caltech.edu> - -typedef enum { BADBINOP = 0, PLUS, MINUS, MULT, DIV, POWR } binoptype; -typedef enum { BADUNOP = 0, NEG = POWR+1, SIN, COS, TAN } unoptype; - -typedef struct { - char *s; - union { - binoptype bop; - unoptype uop; - }; -} -op_to_charp; - -op_to_charp BINOPS[] = { {"+", PLUS}, - {"-", MINUS}, - {"*", MULT}, - {"/", DIV}, - {"^", POWR} }; - -int main() { - int dummy; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/union2.C b/gcc/testsuite/g++.old-deja/g++.law/union2.C deleted file mode 100755 index 9f812d7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/union2.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: -// GROUPS passed unions -// anon-union file -// From: gerlek@dat.cse.ogi.edu (Michael Gerlek) -// Date: Tue, 8 Dec 92 12:56 PST -// Subject: private anonymous unions have public members? (gcc-2.3.1) -// Message-ID: <m0mzByL-0000hoC@dat.cse.ogi.edu> - -class A { -public: - int x; -private: - int y; - union { - int z; - }; -}; - -void f() { - A a; - - a.x = 0; - a.y = 1;// ERROR - .* - a.z = 2;// ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/union3.C b/gcc/testsuite/g++.old-deja/g++.law/union3.C deleted file mode 100755 index 62e8947..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/union3.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// GROUPS passed unions -// anon-union file -// From: dcb@us-es.sel.de (David Binderman 3841) -// Date: Tue, 30 Mar 93 09:06:15 +0200 -// Subject: Page 183 of the ARM -// Message-ID: <9303300706.AA17079@slsvitt> - -static union { - char* uC; -private: - int uI;// ERROR - -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/union4.C b/gcc/testsuite/g++.old-deja/g++.law/union4.C deleted file mode 100755 index 2178697..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/union4.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// GROUPS passed unions -// anon-union file -// From: hossein@veritas.com (Hossein Raassi) -// Date: Wed, 15 Dec 93 13:52 PST -// Subject: Internal Error -// Message-ID: <m0pA49A-0000LdC@piano.veritas.com> - -static union { - struct SS { - int ss; - }; -};// ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.law/unsorted1.C b/gcc/testsuite/g++.old-deja/g++.law/unsorted1.C deleted file mode 100755 index eae69e8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/unsorted1.C +++ /dev/null @@ -1,31 +0,0 @@ -// Build don't link: -// Special g++ Options: -O -// GROUPS passed unsorted -// unsorted.2 file -// From: skipnyc!skipsun!skip@fsg.com (Skip Gilbrech) -// Date: Wed, 10 Jun 92 6:55:18 EDT -// Subject: Problem with derived class access adjustment and -O -// Message-ID: <9206101055.AA20593@skipsun.UUCP> - - -class A { - public: - virtual void func() = 0; -}; - -class B : public A { - public: - void func() {} -}; - -class C : private B { - public: - B::func; -}; - -class D { - C c; - public: - void func() { c.func(); } -}; - diff --git a/gcc/testsuite/g++.old-deja/g++.law/unsorted2.C b/gcc/testsuite/g++.old-deja/g++.law/unsorted2.C deleted file mode 100755 index b3c13a4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/unsorted2.C +++ /dev/null @@ -1,26 +0,0 @@ -// Build don't link: -// GROUPS passed unsorted -// code-gen file -// From: klaus@steinitz.mathematik.uni-dortmund.de -// Date: Mon, 15 Nov 1993 16:51:11 +0100 -// Message-ID: <9311151551.AA17761@steinitz.mathematik.uni-dortmund.de> - -template <int A,int B> -class X -{ -}; - -template <int A,int B,int C> -X<A,C> f(X<A,B>,X<B,C>) -{ - X<A,C> result; - return result; -} - -int main() -{ - X<1,3> x; - X<1,2> y; - X<2,3> z; - x=f(y,z); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/vbase1.C b/gcc/testsuite/g++.old-deja/g++.law/vbase1.C deleted file mode 100755 index 42282d5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/vbase1.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't link: -// GROUPS passed vbase -// vbase file -// From: pino@hubble.eecs.berkeley.edu (Jose Luis Pino) -// Date: 28 Jul 1994 05:17:39 GMT -// Subject: g++ 2.6 bug: virtual base class & protected methods -// Message-ID: <317f1j$o9c@agate.berkeley.edu> - - -#include <iostream.h> - -class a { -protected: - virtual void foo() { cout << "Class A\n";} -}; - -class b : public virtual a {}; - -class c : public b { -public: - void bar() { b::foo();} -}; - -int main() { - c test; - test.bar(); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/virtual1.C b/gcc/testsuite/g++.old-deja/g++.law/virtual1.C deleted file mode 100755 index 8192273..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/virtual1.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// Special g++ Options: -Woverloaded-virtual -// GROUPS passed virtual-warnings -// copy file -// From: gfm@mencon.mencon.oz.au (Graham Menhennitt) -// Date: Thu, 29 Apr 93 20:53:07 EST -// Subject: 4 bugs in g++ 2.3.3 -// Message-ID: <9304291053.AA00090@mencon> - - struct A { - virtual ~A(void); - }; - - struct B { - friend class A; - virtual void f(void); - }; - - struct C : public A { - virtual void f(void); - }; diff --git a/gcc/testsuite/g++.old-deja/g++.law/virtual2.C b/gcc/testsuite/g++.old-deja/g++.law/virtual2.C deleted file mode 100755 index fa9bb69..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/virtual2.C +++ /dev/null @@ -1,31 +0,0 @@ -// GROUPS passed virtual-functions -// Not in g++ bugs snapshot -// From: grande@isi.edu (Jim Grande) -// Subject: g++ 2.3.3 (HPPA) virt class definition dumps core -// Date: 5 Mar 1993 22:51:14 -0500 -// Message-ID: <23611@venera.isi.edu> - -#include <stdio.h> - -class doubleclass -{ - public: - double d; - doubleclass(double x = 0) { d = x; }; -}; - -class test -{ - doubleclass doublec; -}; - -class vderived : virtual public test -{ -}; - -int main() -{ - vderived v; - - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/virtual3.C b/gcc/testsuite/g++.old-deja/g++.law/virtual3.C deleted file mode 100755 index d131da4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/virtual3.C +++ /dev/null @@ -1,47 +0,0 @@ -// GROUPS passed virtual-functions -// virtual file -// From: allan@ramjet.multinet.DE (Allan Brighton) -// Subject: pos. bug in gcc-2.5.2 on hp -// Date: 4 Nov 1993 22:57:36 -0500 -// Message-ID: <9311041820.AA05942@ramjet.multinet.DE> - -#include <iostream.h> -#include <strstream.h> - - -class BugStream : public ostrstream { -public: - BugStream() {} - BugStream& eval(); -}; - - -static struct Eval_ { } eval; -BugStream& operator<<(ostream& os, Eval_); - -BugStream& BugStream::eval() -{ - // make sure str is null terminated - *this << ends; - - // eval the command and set the status - char* s = str(); - cerr << s << endl; - - // reset the stream for the next command - clear(0); - rdbuf()->freeze(0); - seekp(0); - - return *this; -} - -BugStream& operator<<(ostream& os, Eval_) -{ - return ((BugStream&)os).eval(); -} - -int main() { - BugStream bs; - bs << "PASS" << eval; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/virtual4.C b/gcc/testsuite/g++.old-deja/g++.law/virtual4.C deleted file mode 100755 index 47af3aa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/virtual4.C +++ /dev/null @@ -1,31 +0,0 @@ -// GROUPS passed virtual-functions -#include <stdio.h> -#include <stdlib.h> - -int aset = 0; -class A -{ - public: - void Set() { SetProp(); } - virtual void SetProp() { aset++;} -}; - -class B:public A -{ - public: - void SetProp() { if (!aset) { printf ("FAIL\n"); exit (0);} aset--;} -}; - -int main() -{ - A a; - B b; - A *c=new A; - A *d=new B; - - a.Set(); - b.Set(); - c->Set(); - d->Set(); - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility10.C b/gcc/testsuite/g++.old-deja/g++.law/visibility10.C deleted file mode 100755 index 14dfa33..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility10.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// GROUPS passed visibility - -#include <iostream.h> - -class base { -public: - void f1 () { cout << "f1" << endl; }; - void f2 () { cout << "f2" << endl; }; -}; - -class deriv : public base { - void base :: f1();// ERROR - .* -}; - -int main () -{ - deriv d; - - d.f2(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility11.C b/gcc/testsuite/g++.old-deja/g++.law/visibility11.C deleted file mode 100755 index eeda777..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility11.C +++ /dev/null @@ -1,52 +0,0 @@ -// Build don't link: -// Special g++ Options: -w -// GROUPS passed visibility -// visibility file -// From: Alan Shepherd <a.shepherd@nexor.co.uk> -// Date: Tue, 22 Jun 1993 14:53:23 +0100 -// Subject: bug with MI in gcc-2.4.5 -// Message-ID: <9659.740757203@nexor.co.uk> - -class A -{ - int a; - -protected: - - virtual void State(int b) { a = b; } - -}; - -class B : public A -{ - char* foo; - -public: - - B(const char*); -}; - -class C : public A -{ - char* foo2; - -public: - - C(const char*); -}; - -class D : public B, public C -{ -public: - D(); -protected: - - virtual void State(int a) - { - B::State(a); - C::State(a); - } -}; - - - diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility12.C b/gcc/testsuite/g++.old-deja/g++.law/visibility12.C deleted file mode 100755 index c3a9963..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility12.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// visibility file -// From: Mark Rawling <Mark.Rawling@mel.dit.csiro.au> -// Date: Wed, 30 Jun 93 15:28:34 +1000 -// Subject: member access rule bug -// Message-ID: <9306300528.AA17185@coda.mel.dit.CSIRO.AU> -struct a { - int aa; - }; - -class b : private a { - }; - -class c : public b { - int xx(void) { return (aa); } // aa should be invisible// ERROR - .* - }; - diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility13.C b/gcc/testsuite/g++.old-deja/g++.law/visibility13.C deleted file mode 100755 index fa5e5dd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility13.C +++ /dev/null @@ -1,108 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// visibility file -// From: dinh@cs.ucla.edu (Dinh Le) -// Date: Mon, 12 Jul 93 22:21:06 -0700 -// Subject: class, template and their scoping problem -// Message-ID: <9307130521.AA18312@oahu.cs.ucla.edu> - -#include <iostream.h> -#include <assert.h> - -// --------------- Array.h && Array.cc ------------------ - -const int ArraySize = 12; - -template <class Type> -class Array { // ERROR - .struct Array_RC redecl.* -friend class Array_RC; -public: - Array(const Type *ar, int sz) { init(ar,sz); } - virtual ~Array() { delete [] ia; } - virtual void print(ostream& = cout); - virtual Type& operator[](int ix) { return ia[ix]; } -private: - void init(const Type*, int); - int size; - int *ia; -}; - -template <class Type> -ostream& operator<<( ostream& os, Array<Type>& ar ) -{ - ar.print(os); - return os; -} - -template <class Type> -void Array<Type>::print(ostream& os) -{ - const int lineLength = 12; - - os << "( " << size << " )< "; - for (int ix = 0; ix < size; ++ix) { - if (ix % lineLength == 0 && ix) os << "\n\t"; - os << ia[ ix ]; - - if (ix % lineLength != lineLength-1 && - ix != size-1) - os << ", "; - } - os << " >\n"; -} - -template <class Type> -void Array<Type>::init(const Type *array, int sz) -{ - ia = new Type[size = sz]; - - for (int ix = 0; ix < size; ++ix) - ia[ix] = (array!=0) ? array[ix] : (Type)0; -} - -// --------------- Array_RC.h && Array_RC.cc ---------------- - -template <class Type> -class Array_RC : public Array<Type> {// ERROR - previous declaration.* -public: - Array_RC(const Type *ar, int sz); - Type& operator[](int ix); -}; - -template <class Type> -Array_RC<Type>::Array_RC(const Type *ar, int sz) : Array<Type>(ar, sz) {} - -template <class Type> -Type &Array_RC<Type>::operator[](int ix) { - assert(ix >= 0 && ix < size);// ERROR - member .size.* - return ia[ix];// ERROR - member .ia.* -} - -// ------------------- Test routine ---------------------- - -template <class Type> -void try_array( Array<Type> &iA ) -{ - cout << "try_array: initial array values:\n"; - cout << iA << endl; -} - -template <class Type> -inline void -try_array( Array_RC<Type> &rc ) -{ - try_array( ((Array<Type>&)rc) ); -} - -int main() -{ - static int ia[10] = { 12, 7, 14, 9, 128, 17, 6, 3, 27, 5 }; - Array_RC<int> iA(ia, 10);// ERROR - instantiated from here - - cout << "template Array_RC class" << endl; - try_array(iA); - - return 0; -} - -template class Array_RC<int>; diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility14.C b/gcc/testsuite/g++.old-deja/g++.law/visibility14.C deleted file mode 100755 index 7f2251b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility14.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// visibility file -// From: ajp@eng.cam.ac.uk -// Date: Tue, 13 Jul 93 17:15:11 BST -// Message-ID: <1171.9307131615@ace.eng.cam.ac.uk - -class A { - static A* list; - - protected: - struct AA { - AA(); - ~AA(); - }; -}; - -A::AA::~AA() -{ - A* d=list; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility15.C b/gcc/testsuite/g++.old-deja/g++.law/visibility15.C deleted file mode 100755 index 9371eec..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility15.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// visibility file -// From: wpsun4!xinforms!johnjo@uunet.uu.net (John D. Johnson) -// Date: Wed, 4 Aug 93 13:25:25 MDT -// Subject: Access to private 'operator new()' -// Message-ID: <9308041925.AA09825@xinforms.wpunix -#include <stdio.h> -#include <sys/types.h> - -class X { -private: - void* operator new(size_t) {// ERROR - .* - printf("Inside private new().\n"); - return NULL; - } -public: - X() {} -}; - - -int main(void) -{ - X* p = new X;// ERROR - .* -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility16.C b/gcc/testsuite/g++.old-deja/g++.law/visibility16.C deleted file mode 100755 index 32fb706..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility16.C +++ /dev/null @@ -1,35 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// visibility file -// From: Marie Trapp <Marie.Trapp@analog.com> -// Date: Thu, 5 Aug 93 11:55:15 EDT -// Subject: access of protected members -// Message-ID: <9308051553.AA07639@nwd2sun1.analog.com> -class A { - protected: - int astuff; - A() { - astuff = 3; - } -}; - -class B : public A { - int bstuff; - public: - B( A *p) { - bstuff = p->astuff;// ERROR - .* - } -}; - -class C : public A { - int cstuff; - public: - C() { - cstuff = 5; - } -}; - -int main() { - C cvar; - B bvar(&cvar); -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility17.C b/gcc/testsuite/g++.old-deja/g++.law/visibility17.C deleted file mode 100755 index 125bf00..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility17.C +++ /dev/null @@ -1,63 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// visibility file -// From: Sandeep Shroff <ss@caere.com> -// Date: Thu, 05 Aug 1993 17:23:20 -0700 -// Subject: Access to private constructor. -// Message-ID: <9308060023.AA10283@neptune.caere.com> -#include <iostream.h> - -class Base -{ -public: - char* getName() {return name_;} - -private: - Base(); - Base(char* str); - - char* name_; -}; - -class Derived : public Base -{ -public: - Derived(int n, char* str); - Derived(int n); - - int getNum() {return num_;} -private: - int num_; -}; - -Base::Base() -{ // ERROR - private - name_ = strcpy(new char[strlen(" ") + 1], " "); -} - -Base::Base(char* str) -{ // ERROR - private - if(str != NULL) - name_ = strcpy(new char[strlen(str) + 1], str); -} - -Derived::Derived(int n, char* str) : Base(str) -{// ERROR - .* - num_ = n; -} - -Derived::Derived(int n) : Base() -{// ERROR - .* - num_ = n; -} - - - -int main() -{ - // Derived* d = new Derived(10, "test"); - Derived* d = new Derived(10); - - cerr << d->getNum() << "\t" << d->getName() << endl; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility18.C b/gcc/testsuite/g++.old-deja/g++.law/visibility18.C deleted file mode 100755 index a294f13..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility18.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// visibility file -// From: cmwang@iis.sinica.edu.tw (Chien-Min Wang) -// Date: Fri, 6 Aug 93 19:42:31 CST -// Subject: A bug in g++ 2.4.5 -// Message-ID: <9308061142.AA08533@iiserv> -struct T1 { int i; }; - -struct T2 { int j; }; - -struct T3 : public T1, private T2 { -} x; - -int main () -{ - x.i = 1; - x.j = 2; // error: x.j is private// ERROR - .* - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility19.C b/gcc/testsuite/g++.old-deja/g++.law/visibility19.C deleted file mode 100755 index 0f22d65..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility19.C +++ /dev/null @@ -1,40 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// visibility file -// From: mclaugh@tnt.acsys.com (Mark A. McLaughlin) -// Date: Wed, 25 Aug 93 14:30:47 MDT -// Subject: g++ bug -// Message-ID: <9308252030.AA02352@tnt.acsys.com> -class B { -protected: - int i; -}; - -class D1 : public B { -}; - -class D2 : public B { - friend void fr(B*,D1*,D2*); - void mem(B*,D1*); -}; - -void fr(B* pb, D1* p1, D2* p2) -{ - pb->i = 1; // illegal// ERROR - .* - p1->i = 2; // illegal// ERROR - .* - p2->i = 3; // ok (access through D2) -} - -void D2::mem(B* pb, D1* p1) -{ - pb->i = 1; // illegal// ERROR - .* - p1->i = 2; // illegal// ERROR - .* - i = 3; // ok (access through `this') -} - -void g(B* pb, D1* p1, D2* p2) -{ - pb->i = 1; // illegal// ERROR - .* - p1->i = 2; // illegal// ERROR - .* - p2->i = 3; // illegal// ERROR - .* -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility20.C b/gcc/testsuite/g++.old-deja/g++.law/visibility20.C deleted file mode 100755 index 82ecaee..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility20.C +++ /dev/null @@ -1,36 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// visibility file -// From: doug@foxtrot.ccmrc.ucsb.edu (Douglas Scott) -// Date: Tue, 10 Aug 93 10:06:33 PDT -// Subject: G++ 2.4.5 allows access to protected base members -// Message-ID: <9308101706.AA04485@foxtrot.ccmrc.ucsb.edu> - -class Base { -protected: - void protectedBaseFunction() {} // ERROR - protected -public: - Base() {} -}; - - -class Derived : public Base { -public: - Derived() {} - void noticeThisFunction(Base *); -}; - - -void -Derived::noticeThisFunction(Base *b) { - b->protectedBaseFunction(); // ARM says this is not allowed// ERROR - .* - // since it is not called on 'this' -} - -int main() { - Base b; - Derived d; - d.noticeThisFunction(&b); - printf("gpptest run\n");// ERROR - .* -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility21.C b/gcc/testsuite/g++.old-deja/g++.law/visibility21.C deleted file mode 100755 index 8458540..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility21.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// visibility file -// From: klamer@mi.el.utwente.nl (Klamer Schutte) -// Date: Thu, 12 Aug 93 12:03:09 +0200 -// Subject: g++ 2.4.5 failed to report a bug -// Message-ID: <9308121003.AA02294@mi.el.utwente.nl> -class A { -protected: - void foo(); // ERROR - protected -}; - -class B : public A -{ - void bar(A &a) - { a.foo(); }// ERROR - .* -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility22.C b/gcc/testsuite/g++.old-deja/g++.law/visibility22.C deleted file mode 100755 index a9448c0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility22.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// visibility file -// From: Robert Carden <carden@thoth.ics.uci.edu> -// Date: Thu, 12 Aug 1993 13:48:05 -0700 -// Subject: bug 8/12/93 -- #5 -// Message-ID: <9308121348.aa26256@Paris.ics.uci.edu> - -// 5.cc -#include <stream.h> - -class A { - int x; -public: - void f(int); - void f(float); - void g(void *); -}; - -class B : private A { -protected: - A::f; -public: - A::g; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility24.C b/gcc/testsuite/g++.old-deja/g++.law/visibility24.C deleted file mode 100755 index dab2148..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility24.C +++ /dev/null @@ -1,40 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// visibility file -// From: joe@consolve.com (Joe Shapiro) -// Date: Fri, 20 Aug 93 17:18:18 EDT -// Subject: Template classes seem to allow users to get at private members -// Message-ID: <9308202118.AA25599@ghana.consolve> -/* - * private.cc - */ -extern "C" void printf(...); - -template <class T> -class A -{ -public: - void Fun() { printf( "Fun fun fun!\n" ); } // ERROR - private -}; - - -template <class T> -class B: private A<T> -{ -}; - - -class C -{ -public: - C() { _b.Fun(); }// ERROR - .* - -private: - B<int> _b; -}; - - -int main() -{ - C c; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility25.C b/gcc/testsuite/g++.old-deja/g++.law/visibility25.C deleted file mode 100755 index 76ca8d8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility25.C +++ /dev/null @@ -1,26 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// visibility file -// From: gfm@mencon.mencon.oz.au (Graham Menhennitt) -// Date: Wed, 17 Nov 93 21:30:32 EST -// Subject: gcc 2.5.3 - can't privately inherit and contain same class -// Message-ID: <9311171030.AA00604@mencon> -#include <iostream.h> - -class A { -public: - A(void); -}; - -class B : private A { -public: - B(void) : A() {} -}; - -class C : public B { -public: - C(void) : B(), a() {} - -private: - A a; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility26.C b/gcc/testsuite/g++.old-deja/g++.law/visibility26.C deleted file mode 100755 index 54fc43e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility26.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// visibility file -// From: jamshid@ses.com (Jamshid Afshar) -// Date: Sun, 12 Dec 93 03:09:15 CST -// Subject: Missed access declaration error -// Message-ID: <9312120909.AA22135@ses.com> - -class X { - public: - void f(); -}; - -class Y : private X { - public: - void f(int);// ERROR - because.* - X::f; // g++ 2.5.5 doesn't flag this misuse -};// ERROR - cannot adjust.* diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility27.C b/gcc/testsuite/g++.old-deja/g++.law/visibility27.C deleted file mode 100755 index 4092624..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility27.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// visibility file -// From: jbuck@synopsys.com (Joe Buck) -// Date: 3 Aug 1994 01:52:04 GMT -// Subject: 2.6.0 bug with protected members and virtual baseclasses -// Message-ID: <31mt84$lfq@hermes.synopsys.com> - -struct R { -protected: - virtual void foo(); -}; - -struct A : public R { -}; - -struct B : virtual public A { - void bletch() { foo();} -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility28.C b/gcc/testsuite/g++.old-deja/g++.law/visibility28.C deleted file mode 100755 index e92c299..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility28.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -extern "C" int printf( const char *, ...); - -class B { -public: - B() { }; - virtual ~B() { printf( "B::~B\n"); }; -}; - -class D : public B { -public: - virtual ~D() { printf( "D::~D\n"); }; - void operator = ( int i) { this->~B(); }// ERROR - D has no ~B part to it -}; - -int -main() -{ - D * pd = new D; - B * pb = pd; - delete pb; - return 0; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility3.C b/gcc/testsuite/g++.old-deja/g++.law/visibility3.C deleted file mode 100755 index 1e02a4b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility3.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// visibility file -// From: kol@world.std.com (Nikolay Yatsenko) -// Date: Wed, 27 Jan 1993 16:39:00 -0500 -// Subject: g++ bug -// Message-ID: <199301272139.AA25442@world.std.com> - -int x; - -int main(void) -{ - static int s; - int x; // ERROR - declared - extern int g(); - - struct local { - int g() { return x; } // illegal (non-static x); g++ does not give error// ERROR - - int h() { return s; } // ok, but g++ give error - }; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility4.C b/gcc/testsuite/g++.old-deja/g++.law/visibility4.C deleted file mode 100755 index 5a92c6c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility4.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// visibility file -// From: dcb@us-es.sel.de (David Binderman 3841) -// Date: Tue, 30 Mar 93 15:48:47 +0200 -// Subject: page 242 of the ARM -// Message-ID: <9303301348.AA20751@slsvitt> - -class A { -public: - int b; -}; - -class C : private A { // NOTE WELL. private, not public -public: - int d; -}; - -extern "C" int printf( const char *, ...); - -class E : public C { - void f() { - printf( "%d\n", b);// ERROR - .* - }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility5.C b/gcc/testsuite/g++.old-deja/g++.law/visibility5.C deleted file mode 100755 index a68e360..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility5.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: -// GROUPS passed visibility - -class a { - -private: - a (int i);// ERROR - .* - -public: - a (); -}; - -void test () -{ - a *ap = new a; - a *ap2 = new a (3);// ERROR - .* -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility6.C b/gcc/testsuite/g++.old-deja/g++.law/visibility6.C deleted file mode 100755 index 7e8b7c7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility6.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// visibility file -// From: Rob Hasker <hasker@sparc0a.cs.uiuc.edu> -// Date: Sat, 3 Apr 1993 13:19:05 -0600 -// Subject: no privacy -// Message-ID: <199304031919.AA20554@sparc17.cs.uiuc.edu -class Top { -public: - Top() {} - void val() {} // ERROR - private base class -}; - -class Derived : private Top { -public: - Derived() {} -}; - -class Unrelated { - Derived derived; -public: - void oops() { derived.val(); }// ERROR - .* -}; diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility7.C b/gcc/testsuite/g++.old-deja/g++.law/visibility7.C deleted file mode 100755 index 764da35..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility7.C +++ /dev/null @@ -1,71 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// visibility file -// From: Gordon Joly <G.Joly@cs.ucl.ac.uk> -// Date: Wed, 21 Apr 93 09:42:07 +0100 -// Subject: /*** BUG REPORT : THE MYTH OF PRIVATE INHERITANCE ***/ -// Message-ID: <9304210842.AA01815@life.ai.mit.edu> -#include <iostream.h> - -class A { - private: - int number; - public: - A(int i) : number(i) - {} - virtual ~A() - {} - virtual void Number(int c) - { number = c; } // ERROR - private - virtual int Number() - { return number; } // ERROR - private -}; - -class B : private A { - private: - int second_number; - public: - B(int c, int i) : second_number(c), A(i) - {} - virtual ~B() - {} - - virtual void firstNumber(int b) // renames member function Number(int) of class A - { A::Number(b); } - virtual int firstNumber() // renames member function Number() of class A - { return A::Number(); } -}; - - - - -class C { - private: - B* bobject; - public: - C(B* bp) : bobject(bp) - {} - virtual ~C() - {} - // - // the following two functions access - // private member functions of class B - // and they should not be able to do so - // - virtual void setBValue(int i) - { if (bobject) bobject->Number(i); }// ERROR - .* - virtual int getBValue() - { if (bobject) { return bobject->Number(); } return 0; }// ERROR - .* -}; - - -int main() -{ - B* bobject = new B(2, 1); - C* cobject = new C(bobject); - cobject->setBValue(8); - cout << cobject->getBValue() << endl; - delete bobject; - delete cobject; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility8.C b/gcc/testsuite/g++.old-deja/g++.law/visibility8.C deleted file mode 100755 index 3e5178c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility8.C +++ /dev/null @@ -1,26 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// visibility file -// From: roland@jts.com (Roland Knight ) -// Date: Thu, 29 Apr 1993 16:17:00 -0400 -// Subject: gcc 2.3.3 bug -// Message-ID: <m0nof3E-0021ifC@jts.com -class t1 { -protected: - int a; -}; - - -class t2 : private t1 { -public: - int b; -}; - - -class t3 : public t2 { -public: - int ttt(); -}; - - -int t3::ttt() { return a; }// ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.law/visibility9.C b/gcc/testsuite/g++.old-deja/g++.law/visibility9.C deleted file mode 100755 index df98640..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/visibility9.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: -// GROUPS passed visibility -// visibility file -// rom: roland@jts.com (Roland Knight ) -// Date: Sat, 8 May 1993 17:27:35 -0400 -// Subject: gcc 2.3.3 protected member access bug -// Message-ID: <9305082127.AA19577@icepick.jts.com> - -class A { -protected: - int a; -}; - -class B : public A { -public: - void f1(A* pa); -}; - - -void B::f1(A* pa) { - pa->a = 1; // illegal but allowed by gcc// ERROR - .* -} diff --git a/gcc/testsuite/g++.old-deja/g++.law/vtable1.C b/gcc/testsuite/g++.old-deja/g++.law/vtable1.C deleted file mode 100755 index 32a546a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/vtable1.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't link: -// Special g++ Options: -w -// GROUPS passed vtable -// vtable file -// From: mrs@cygnus.com (Mike Stump) -// Date: Wed, 20 Apr 1994 17:46:11 -0700 -// Subject: vtable name generation is wrong -// Message-ID: <199404210046.RAA25652@rtl.cygnus.com> - -// prepare_fresh_vtable doesn't build the names of -// vtables very well. - -struct B { - virtual void vf() { } -}; - -struct Main { - virtual void vf() { } -}; - -struct Other : public Main, public B { - virtual void vf() { } -}; - -struct D : public Main, public B, public Other { - virtual void vf() { } -} a; diff --git a/gcc/testsuite/g++.old-deja/g++.law/vtable2.C b/gcc/testsuite/g++.old-deja/g++.law/vtable2.C deleted file mode 100755 index bbc8074..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/vtable2.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// Special g++ Options: -fvtable-thunks -// GROUPS passed vtable -struct C1 -{ - virtual ~C1(); -}; - -struct C2 : public virtual C1 -{ - virtual ~C2(); -}; - -struct C3 : public virtual C2 -{ - virtual ~C3(); -}; - -C3::~C3() {} diff --git a/gcc/testsuite/g++.old-deja/g++.law/vtable3.C b/gcc/testsuite/g++.old-deja/g++.law/vtable3.C deleted file mode 100755 index 9a6e4a2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.law/vtable3.C +++ /dev/null @@ -1,24 +0,0 @@ -// GROUPS passed vtable -// vtable file -// From: Pete Bevin <pete@deng.icl.co.uk> -// Date: Mon, 28 Nov 1994 19:57:53 +0000 (GMT) -// Subject: g++-2.6.2: Virtual inheritance causes incorrect padding -// Message-ID: <Pine.SOL.3.91.941128194453.7510A-100000@gabriel> - -extern "C" void printf (char *, ...); - -struct A { -}; - - -struct B : virtual A { - public: - int b; -}; - - -int main() -{ - B blist[10]; - printf ("PASS\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.martin/ambig1.C b/gcc/testsuite/g++.old-deja/g++.martin/ambig1.C deleted file mode 100755 index 3ee730d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.martin/ambig1.C +++ /dev/null @@ -1,22 +0,0 @@ -//Build don't link: -//Based on a report by Bill Currie <bcurrie@tssc.co.nz> -struct foo { - protected: - int x; -}; - -struct bar { - public: - int x(); -}; - -struct foobar: public foo, public bar { - foobar(); -}; - -int func(int); - -foobar::foobar() -{ - func(x); // ERROR - ambiguous member access -} diff --git a/gcc/testsuite/g++.old-deja/g++.martin/conv1.C b/gcc/testsuite/g++.old-deja/g++.martin/conv1.C deleted file mode 100755 index 0227800..0000000 --- a/gcc/testsuite/g++.old-deja/g++.martin/conv1.C +++ /dev/null @@ -1,13 +0,0 @@ -struct S{ - operator bool() - { - return true; - } -}; - -int main() -{ - S a; - if (S &b = a); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.martin/lookup1.C b/gcc/testsuite/g++.old-deja/g++.martin/lookup1.C deleted file mode 100755 index d45a02e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.martin/lookup1.C +++ /dev/null @@ -1,22 +0,0 @@ -//Build don't link: -//In the base class list, the context of the current is used -//reported by Stephen Vavasis <vavasis@CS.Cornell.EDU> - -namespace N1 { - namespace N2 { - class A{}; - class B; - } -} - -class N1::N2::B : public A { -}; - - -class C1 { - class A{}; - class B; -}; - -class C1::B : A { -}; diff --git a/gcc/testsuite/g++.old-deja/g++.martin/new1.C b/gcc/testsuite/g++.old-deja/g++.martin/new1.C deleted file mode 100755 index 835b426..0000000 --- a/gcc/testsuite/g++.old-deja/g++.martin/new1.C +++ /dev/null @@ -1,121 +0,0 @@ -//Lifetime of temporaries: -//egcs 2.92 performs cleanup for temporaries inside new expressions -//after the new is complete, not at the end of the full expression. - -#include <new> -#include <cstdlib> -#include <cstdio> - -bool new_throws; -bool ctor_throws; - -int new_done; -int ctor_done; -int func_done; -int dtor_done; -int delete_done; - -int count; - -void init() -{ - new_throws = ctor_throws = false; - new_done = ctor_done = func_done = dtor_done = delete_done = count = 0; -} - -struct line_error{ - int line; - line_error(int i):line(i){} -}; - -#define CHECK(cond) if(!(cond))throw std::line_error(__LINE__); - -struct A{ - A(int){ - ctor_done = ++count; - if(ctor_throws) - throw 1; - } - A(const A&){ - CHECK(false); //no copy constructors in this code - } - ~A(){ - dtor_done = ++count; - } - A* addr(){return this;} -}; - -struct B{ - B(A*){} - void* operator new(size_t s){ - new_done = ++count; - if(new_throws) - throw 1; - return malloc(s); - } - void operator delete(void *){ - delete_done = ++count; - } -}; - -void func(B* ) -{ - func_done = ++count; -} - -void test1() -{ - init(); - try{ - func(new B(A(10).addr())); - }catch(int){ - } - CHECK(new_done==1); - CHECK(ctor_done==2); - CHECK(func_done==3); - CHECK(dtor_done==4); - CHECK(delete_done==0); -} - -void test2() -{ - init(); - new_throws = true; - try{ - func(new B(A(10).addr())); - }catch(int){ - } - CHECK(new_done==1); - CHECK(ctor_done==0); - CHECK(func_done==0); - CHECK(dtor_done==0); - CHECK(delete_done==0); -} - -void test3() -{ - init(); - ctor_throws = true; - try{ - func(new B(A(10).addr())); - }catch(int){ - } - CHECK(new_done==1); - CHECK(ctor_done==2); - CHECK(func_done==0); - CHECK(dtor_done==0); - CHECK(delete_done==3); -} - -int main() -{ - try{ - test1(); - test2(); - test3(); - }catch(line_error e){ - printf("Got error in line %d\n",e.line); - return 1; - } - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/.cvsignore b/gcc/testsuite/g++.old-deja/g++.mike/.cvsignore deleted file mode 100755 index 7abff1d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -config.status diff --git a/gcc/testsuite/g++.old-deja/g++.mike/align1.C b/gcc/testsuite/g++.old-deja/g++.mike/align1.C deleted file mode 100755 index df6faa6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/align1.C +++ /dev/null @@ -1,56 +0,0 @@ -// Check to make sure we align virtual base classes properly - -class eel_base { -public: -}; - -class markable_eel_base : public eel_base { -private: - int mark; -}; - -class eel_edge : public markable_eel_base { -public: -private: - int foo; -}; - -class edge : public virtual eel_edge { -public: - edge() { - _weight = 0.0; - } -private: - double _weight; -}; -class eel_branch_edge : public virtual edge { -}; -class branch_edge : public eel_branch_edge { -}; - -class eel_interproc_branch_edge : public branch_edge { -}; - -class interproc_edge : public virtual edge { -}; - -class eel_jump_edge : public virtual edge { -protected: -}; - -class jump_edge : public eel_jump_edge { -public: -}; - -class eel_interproc_jump_edge : public jump_edge { -protected: -}; - -class interproc_jump_edge : public eel_interproc_jump_edge, - public interproc_edge { -public: -}; - -int main () { - void *vp = new interproc_jump_edge(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/align2.C b/gcc/testsuite/g++.old-deja/g++.mike/align2.C deleted file mode 100755 index 758e43c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/align2.C +++ /dev/null @@ -1,16 +0,0 @@ -class Foo { -}; - -class Bar : virtual Foo { -public: - int b; -} x; - -int main() -{ - // printf("Foo offset %d\n", (int)(Foo*)&x - (int)&x); - // printf("b offset %d\n", (int)&x.b - (int)&x); - // printf("sizeof is %d\n", sizeof(Bar)); - // This core dumps on a SPARC is alignment is wrong. - Bar blist[10]; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/ambig1.C b/gcc/testsuite/g++.old-deja/g++.mike/ambig1.C deleted file mode 100755 index 4552791..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/ambig1.C +++ /dev/null @@ -1,32 +0,0 @@ -extern "C" int printf(const char *, ...); - -struct VB { - virtual void f() { - printf("VB\n"); - } -}; - -class M : public virtual VB { -public: - int i; - void f() { - printf("M(%d)\n", i); - } -}; - -class lM : public M { -}; - -class rM : public M { -}; - -class D : public lM, rM { -} d; // ERROR - ambiguous function - -int main() { - ((lM*)&d)->i = 1; - ((rM*)&d)->i = 2; - ((rM*)&d)->f(); - ((lM*)&d)->f(); - ((VB*)&d)->f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/asm1.C b/gcc/testsuite/g++.old-deja/g++.mike/asm1.C deleted file mode 100755 index f6c4fe5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/asm1.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// Special g++ Options: - -struct A { - static void foo() asm("_my_routine"); -}; - -void A::foo() { -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/asm2.C b/gcc/testsuite/g++.old-deja/g++.mike/asm2.C deleted file mode 100755 index 59771d6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/asm2.C +++ /dev/null @@ -1,27 +0,0 @@ -// Compile with -S, there should be no references to -// LTRAMP in the output. - -extern "C" -{ - int printf (char *, ...); -} - -void -sub2 (void (*func) ()) -{ - (*func) (); -} - -int -main(void) -{ - extern void sub (void); - - sub2 (sub); -} - -void -sub (void) -{ - printf ("hello world\n"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/bool1.C b/gcc/testsuite/g++.old-deja/g++.mike/bool1.C deleted file mode 100755 index c8ff0e8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/bool1.C +++ /dev/null @@ -1,16 +0,0 @@ -// bool test case - -// Build don't link: - -void foo(int i) { - foo (true); -} - -struct C { - void foo(int i) { - foo(true); - } - void bar(bool b) { - bar(0); - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/bool2.C b/gcc/testsuite/g++.old-deja/g++.mike/bool2.C deleted file mode 100755 index ce2a1f8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/bool2.C +++ /dev/null @@ -1,57 +0,0 @@ -// Special g++ Options: -class A { -public: - operator bool () { - return true; - } -} a; -class A1 { -public: - operator int () { - return true; - } -} a1; -class A2 { -public: - operator char * () { - return ""; - } -} a2; -class A3 { -public: - operator unsigned long long int () { - return true; - } -} a3; -class A4 { -public: - operator char * () { - return ""; - } - operator unsigned long long int () { - return true; - } -} a4; -class A5 { -public: - operator double () { - return 256.0e0*256.0e0*256.0e0*256.0e0*256.0e0*256.0e0*256.0e0*256.0e0 - *256.0e0*256.0e0*256.0e0*256.0e0*256.0e0*256.0e0*256.0e0*256.0e0 - *256.0e0*256.0e0*256.0e0*256.0e0*256.0e0*256.0e0*256.0e0*256.0e0 - *256.0e0*256.0e0*256.0e0*256.0e0*256.0e0*256.0e0*256.0e0*256.0e0; - } -} a5; -int i = true; -bool b = true; -bool c = (bool)(void (A::*)())0; -bool d = 256; -main() { - if (!d) return 1; - if (!a) return 1; - if (!(bool)a) return 1; - // if (!(long long)a) return 1; - if (!a1) return 1; - if (!a2) return 1; - if (!a3) return 1; - if (!a5) return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/bool4.C b/gcc/testsuite/g++.old-deja/g++.mike/bool4.C deleted file mode 100755 index 96e4a6c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/bool4.C +++ /dev/null @@ -1,3 +0,0 @@ -// Build don't link: - -void foo(bool arg = (1==0)) {} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/conv1.C b/gcc/testsuite/g++.old-deja/g++.mike/conv1.C deleted file mode 100755 index 468bc42..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/conv1.C +++ /dev/null @@ -1,10 +0,0 @@ -enum E { C }; - -E foo() { - return C; -} - -int main() { - if (foo() != C) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/debug1.C b/gcc/testsuite/g++.old-deja/g++.mike/debug1.C deleted file mode 100755 index 9f7bc39..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/debug1.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// Special g++ Options: -g -O -fkeep-inline-functions - -class c { -public: - ~c () { }; -}; - -int -foo (const c& lhs) -{ - c str (lhs); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/dyncast1.C b/gcc/testsuite/g++.old-deja/g++.mike/dyncast1.C deleted file mode 100755 index 3bddb3c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/dyncast1.C +++ /dev/null @@ -1,22 +0,0 @@ -// Special g++ Options: -fexceptions -w -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe - -#include <typeinfo> - -struct B { - virtual int f() { } -}; - -struct D { - virtual int f() { } -}; - -main() { - B b; - try { - (void)dynamic_cast<D&>(b); - } catch (std::bad_cast) { - return 0; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/dyncast2.C b/gcc/testsuite/g++.old-deja/g++.mike/dyncast2.C deleted file mode 100755 index fcf625e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/dyncast2.C +++ /dev/null @@ -1,25 +0,0 @@ -// Special g++ Options: -fexceptions -w -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe - -// Ensure reference handling works. - -#include <typeinfo> - -struct B { - virtual int f() { } -} ob; - -struct D : public B { - virtual int f() { } -} od; - -main() { - B *b=&ob; - try { - void *vp = &dynamic_cast<D&>(*b); - return 1; - } catch (std::bad_cast) { - return 0; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/dyncast3.C b/gcc/testsuite/g++.old-deja/g++.mike/dyncast3.C deleted file mode 100755 index 627a7da..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/dyncast3.C +++ /dev/null @@ -1,19 +0,0 @@ -// Special g++ Options: -fexceptions -w -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* -// Ensure that the return type of dynamic_cast is the real type. - -struct B { - virtual int f() { } -}; - -struct D : public B { - virtual int f() { } - int i; -} od; - -main() { - B *b=&od; - if (dynamic_cast<D*>(b)->i) - return 1; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/dyncast4.C b/gcc/testsuite/g++.old-deja/g++.mike/dyncast4.C deleted file mode 100755 index 43cb6ef..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/dyncast4.C +++ /dev/null @@ -1,4 +0,0 @@ -int main() { - int* d; - dynamic_cast<void*>(d); // ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/dyncast5.C b/gcc/testsuite/g++.old-deja/g++.mike/dyncast5.C deleted file mode 100755 index f46d81e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/dyncast5.C +++ /dev/null @@ -1,71 +0,0 @@ -#include <stddef.h> - -void *p; -int fail; - -class HeapTracked { -public: - virtual ~HeapTracked() = 0; - void *operator new(size_t size); - void operator delete(void *ptr); - static bool isObjectAllocation(const HeapTracked *ptr); -}; - -HeapTracked::~HeapTracked(){} -void * HeapTracked::operator new(size_t size) -{ - void * memPtr = ::operator new(size); - p = memPtr; - return memPtr; -} - -void HeapTracked::operator delete(void *ptr) -{ - if (p != ptr) - fail = 1; - ::operator delete(ptr); -} - -bool HeapTracked::isObjectAllocation(const HeapTracked *ptr) -{ - if (p != const_cast<void*>(dynamic_cast<const void*>(ptr))) - fail = 1; - return false; -} - -class Mumble1: public virtual HeapTracked { - double d; -public: - virtual ~Mumble1(){} -}; - -class Mumble2: public virtual HeapTracked { - double d; -public: - virtual ~Mumble2(){} -}; - -class Foo: virtual public HeapTracked, - virtual public Mumble1, - virtual public Mumble2 { -public: - ~Foo(){} -}; - -int main() -{ - Foo *pf = new Foo; - pf->isObjectAllocation(pf); - - Mumble1 *pm1 = pf; - pm1->isObjectAllocation(pm1); - - Mumble2 *pm2 = pf; - pm2->isObjectAllocation(pm2); - - // delete pf; - // delete pm1; - delete pm2; - - return fail; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/dyncast6.C b/gcc/testsuite/g++.old-deja/g++.mike/dyncast6.C deleted file mode 100755 index 546561d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/dyncast6.C +++ /dev/null @@ -1,12 +0,0 @@ -#include <typeinfo> - -class A { -public: - virtual void j () {} -}; - -class B : public A { }; - -void x (A& a) { - const B& b1 = dynamic_cast<B&>((const A&)a); // ERROR - opps -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/dyncast7.C b/gcc/testsuite/g++.old-deja/g++.mike/dyncast7.C deleted file mode 100755 index b1a55a4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/dyncast7.C +++ /dev/null @@ -1,28 +0,0 @@ -// Special g++ Options: -fexceptions - -#include <typeinfo> -#include <stdexcept> - -class A { -public: - virtual void j () {} -}; - -class B : public A { }; - -void x (A& a) { - // These should all work. - const B& b2 = dynamic_cast<B&>(a); - const B& b3 = dynamic_cast<const B&>((const A&)a); - const B& b4 = dynamic_cast<const B&>(a); -} - -int main() { - try { - B b; - x (b); - } catch (std::exception& e) { - // If we get a bad_cast, it is wrong. - return 1; - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/dyncast8.C b/gcc/testsuite/g++.old-deja/g++.mike/dyncast8.C deleted file mode 100755 index 5addfe0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/dyncast8.C +++ /dev/null @@ -1,18 +0,0 @@ -#include <typeinfo> - -class Base -{ -public: - virtual ~Base() { } -}; - -class Derived : public Base { }; - -int main() -{ - const Derived b; - const Base* ap = &b; - - const Derived* p1 = dynamic_cast<const Derived*>(ap); - return p1 == 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/dyncast9.C b/gcc/testsuite/g++.old-deja/g++.mike/dyncast9.C deleted file mode 100755 index 23db8c9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/dyncast9.C +++ /dev/null @@ -1,16 +0,0 @@ -class S1 { int i; }; -class S2 { int i; }; -class VB { -public: - virtual void foo() { } -}; - -class D : public S1, virtual public VB { -} d; - -class E : public S2, public D { -} e; - -int main() { - return (char *)&e - (char *)dynamic_cast<E*>((D*)&e); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh1.C b/gcc/testsuite/g++.old-deja/g++.mike/eh1.C deleted file mode 100755 index 95da594..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh1.C +++ /dev/null @@ -1,38 +0,0 @@ -// Build don't link: -// Special g++ Options: -fexceptions -O -S - -extern "C" void printf (char *, ...); -extern "C" int atoi (const char *); -extern "C" void exit (int); - -struct Exception - { - int v; - Exception(int i) { v = i; }; - }; - - void inc(int &i) - { - try { - if (i == 0) - throw Exception(i); - else - i++; - } - catch (Exception v) { - i = v.v; - } - } - -main (int argc, const char *argv[]) -{ - if (argc != 2) - { - printf ("usage: a.out <num>\n"); - exit (1); - } - int count = atoi (argv[1]); - inc (count); - printf ("success\n"); - exit (0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh10.C b/gcc/testsuite/g++.old-deja/g++.mike/eh10.C deleted file mode 100755 index 2541f27..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh10.C +++ /dev/null @@ -1,28 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -void foo() { - int i; - i = 42; - throw i; -} - -void ee(int *); - -void bar() { - int i = 2; - ee(&i); -} - -void ee(int *) { } - -main() { - try { - foo(); - return 3; - } catch (int& i) { - bar(); - return i != 42; - } - return 2; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh11.C b/gcc/testsuite/g++.old-deja/g++.mike/eh11.C deleted file mode 100755 index 781521f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh11.C +++ /dev/null @@ -1,15 +0,0 @@ -// Special g++ Options: -fexceptions -// Build don't link: - -struct A { - ~A(); -}; - -int main(int argc, char** argv) { - A a; - return 0; -} - - -A::~A() { -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh12.C b/gcc/testsuite/g++.old-deja/g++.mike/eh12.C deleted file mode 100755 index 1a42e52..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh12.C +++ /dev/null @@ -1,14 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -class MyError { }; - -int main (int argc, char **argv) { - try { - throw MyError(); - } - catch (MyError x) { - } - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh13.C b/gcc/testsuite/g++.old-deja/g++.mike/eh13.C deleted file mode 100755 index 841202f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh13.C +++ /dev/null @@ -1,6 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sh-*-* arm-*-pe**-* - -#include <string> - -main() { } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh14.C b/gcc/testsuite/g++.old-deja/g++.mike/eh14.C deleted file mode 100755 index e7c3213..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh14.C +++ /dev/null @@ -1,25 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -class arghh { -public: - int n; - arghh (int v) { n = v; } -}; - -int main () { - try { - throw arghh (11); - } - catch (arghh& a) { - if (a.n != 11) - return 1; - } - try { - throw arghh (22); - } - catch (arghh& a) { - if (a.n != 22) - return 2; - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh15.C b/gcc/testsuite/g++.old-deja/g++.mike/eh15.C deleted file mode 100755 index 9ed673f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh15.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// Special g++ Options: -fexceptions - -struct A { - A() throw (int); -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh16.C b/gcc/testsuite/g++.old-deja/g++.mike/eh16.C deleted file mode 100755 index 2a986d5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh16.C +++ /dev/null @@ -1,26 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -int err = 1; - -struct A { - ~A() { - --err; - } -}; - -struct B { - A a; - B() { - throw 1; - } -}; - -main() { - try { - B b; - } catch (...) { - return err; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh17.C b/gcc/testsuite/g++.old-deja/g++.mike/eh17.C deleted file mode 100755 index 482ea04..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh17.C +++ /dev/null @@ -1,25 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -int err = 1; - -struct A { - ~A() { - --err; - } -}; - -struct B : public A { - B() { - throw 1; - } -}; - -main() { - try { - B b; - } catch (...) { - return err; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh18.C b/gcc/testsuite/g++.old-deja/g++.mike/eh18.C deleted file mode 100755 index cf98bce..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh18.C +++ /dev/null @@ -1,63 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -class VB { -public: - int n; - VB (int v) { n = v; } - VB (const VB& o) { - n = o.n; -// printf("copying VB from %d to %d\n", &o, this); - } -}; - -class D : public virtual VB { - int j; -public: - D(int i1, int i2) : VB(i2) { j = i1; } - VB& vb() { return *(VB*)this; } - const VB& vb() const { return *(const VB*)this; } -}; - -class pD : private virtual VB { - int j; -public: - pD(int i1, int i2) : VB(i2) { j = i1; } - VB& vb() { return *(VB*)this; } - const VB& vb() const { return *(const VB*)this; } -}; - - -int main () { - D d(1943, 4279); - pD pd(3621, 9527); - VB *vb = &d.vb(); - VB *pvb = &pd.vb(); - - // A catch of a public virtual base. - try { -// printf("Throwing D at %d (VB at %d)\n", &d, vb); - throw d; - } - catch (VB& vb) { -// printf("Catching VB at %d\n", &vb); - if (vb.n != 4279) - return 1; - } - catch (...) { - return 1; - } - - // A catch of a private virtual base. - try { -// printf("Throwing D at %d (VB at %d)\n", &pd, pvb); - throw pd; - } - catch (VB& vb) { -// printf("Catching VB at %d\n", &vb); - // This was a private base of the throw object, don't catch it. - return 1; - } - catch (...) { - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh19.C b/gcc/testsuite/g++.old-deja/g++.mike/eh19.C deleted file mode 100755 index 6e4fe15..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh19.C +++ /dev/null @@ -1,23 +0,0 @@ -// Special g++ Options: -fexceptions -// Build don't link: - -class test1 { -public: - class fehler{public:fehler(){};}; - void func(int a) { - if( a == 0 ) - throw fehler(); - } -}; - -int main() { - test1 var; - - try { - var.func(1); - var.func(0); - } catch(test1::fehler()) // function type promoted to pointer - { - ; - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh2.C b/gcc/testsuite/g++.old-deja/g++.mike/eh2.C deleted file mode 100755 index d808a65..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh2.C +++ /dev/null @@ -1,71 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -#include <stdlib.h> -#include <iostream.h> - -class Vector { -private: - int *p; - int sz; - -public: - // Exception class - class Range { - private: - int value_i; - - public: - Range( int i ) { value_i = i; }; - int value() { return value_i; }; - }; - - Vector( int s ); - ~Vector(); - int size() { return sz; }; - int& operator []( int i ); -}; - -Vector::Vector(int s) { - sz = s; - p = new int[sz]; -} - -Vector::~Vector() { - delete [] p; -} - -int& -Vector::operator [](int i) { - if (0<=i && i<sz) { - return p[i]; - } else { - throw Range( i ); - } -} - -void crash(Vector& v ) { - v[v.size()+10]; // Triggers range error! -} - -void do_something(Vector& v) { - crash( v ); -} - -void -f(Vector& v) { - try { - do_something( v ); - } catch (Vector::Range& r) { - cout << "Invalid vector range " << r.value() - << " caught in f()" << endl; - exit(0); - } -} - -main() { - Vector v(10); - - f( v ); - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh20.C b/gcc/testsuite/g++.old-deja/g++.mike/eh20.C deleted file mode 100755 index 10535bb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh20.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// Special g++ Options: -fexceptions -Wall - -int -main() { - throw 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh21.C b/gcc/testsuite/g++.old-deja/g++.mike/eh21.C deleted file mode 100755 index 261e6ea..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh21.C +++ /dev/null @@ -1,14 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -int main () { - try { - try { - throw 1; - } catch ( char * ) { - } - } catch ( int ) { - return 0; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh23.C b/gcc/testsuite/g++.old-deja/g++.mike/eh23.C deleted file mode 100755 index 27fc53d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh23.C +++ /dev/null @@ -1,46 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -#include <exception> - -struct double_fault { }; -int fault_now; - -class E { -public: - E() { } - E(const E&) { - if (fault_now) - throw double_fault(); - } -}; - -void foo() { - try { - throw E(); - } catch (...) { - fault_now = 1; - throw; - } -} - -void bar() { - try { - foo(); - } catch (E e) { // double fault here - } -} - -void my_terminate() { - exit (0); // double faults should call terminate -} - -main() { - std::set_terminate (my_terminate); - try { - bar(); - } catch (...) { - return 1; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh24.C b/gcc/testsuite/g++.old-deja/g++.mike/eh24.C deleted file mode 100755 index c9dd382..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh24.C +++ /dev/null @@ -1,33 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -int fail = 0; - -struct A { - int ok; - A() { - ok = 1; - } - ~A() { - if (! ok) - fail = 1; - ok = 0; - } -}; - -main() { - try { - try { - A a; - throw 1.0; - } catch (double i) { - A a1; - throw 1; // make sure both a1 and a2 are not destroyed when we throw! - } catch (int i) { - A a2; - throw 1.0; - } - } catch (int i) { - } - return fail; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh25.C b/gcc/testsuite/g++.old-deja/g++.mike/eh25.C deleted file mode 100755 index 52754b5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh25.C +++ /dev/null @@ -1,30 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -#include <exception> - -void my_terminate() { - exit (0); // Double faults should call terminate -} - -struct A { - A() { } - ~A() { - std::set_terminate (my_terminate); - throw 1; // This throws from EH dtor, should call my_terminate - } -}; - -main() { - try { - try { - throw 1; - } catch (int i) { - A a; // A hit on this EH dtor went to the wrong place - throw 1; - } - } catch (...) { - return 1; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh26.C b/gcc/testsuite/g++.old-deja/g++.mike/eh26.C deleted file mode 100755 index 35cafa4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh26.C +++ /dev/null @@ -1,15 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -class MyExceptionHandler { }; - -main() { - try { - throw MyExceptionHandler(); - } catch(const MyExceptionHandler& eh) { - return 0; - } catch(...) { - return 1; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh27.C b/gcc/testsuite/g++.old-deja/g++.mike/eh27.C deleted file mode 100755 index bd07138..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh27.C +++ /dev/null @@ -1,17 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -#include <typeinfo> - -class MyExceptionHandler { }; - -main() { - try { - throw MyExceptionHandler(); - } catch(const MyExceptionHandler& eh) { - return 0; - } catch(...) { - return 1; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh28.C b/gcc/testsuite/g++.old-deja/g++.mike/eh28.C deleted file mode 100755 index 3f2d0a6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh28.C +++ /dev/null @@ -1,17 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -#include <typeinfo> - -int fail = 1; - -class X { public: virtual void p() { } }; -class Y : public X { public: virtual void p() { fail = 0; } }; - -main() -{ - try { Y y; throw y; } - catch (X& x) { x.p(); } - catch (...) { } - return fail; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh29.C b/gcc/testsuite/g++.old-deja/g++.mike/eh29.C deleted file mode 100755 index 58c1f0b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh29.C +++ /dev/null @@ -1,27 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -int count; - -class A { -public: - A() { -// printf("ctor %x\n", (int)this); - if (count==3) - throw 1; - ++count; - } - ~A() { - --count; -// printf("dtor %x\n", (int)this); - } -}; - -main() { - try { - A a[5]; - } catch (...) { - return count; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh3.C b/gcc/testsuite/g++.old-deja/g++.mike/eh3.C deleted file mode 100755 index e8b87bf..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh3.C +++ /dev/null @@ -1,21 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -class foo { -public: - class error {}; - - void cause_error(void) { throw error(); } -}; - -int main(void) -{ - foo f; - try { - f.cause_error(); - } - catch (foo::error&) { - return 0; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh30.C b/gcc/testsuite/g++.old-deja/g++.mike/eh30.C deleted file mode 100755 index 61a30c8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh30.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: -// Skip if not native -// Special g++ Options: -fexceptions -fPIC -S - -main() { throw 1; } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh31.C b/gcc/testsuite/g++.old-deja/g++.mike/eh31.C deleted file mode 100755 index 65e683c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh31.C +++ /dev/null @@ -1,23 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -int count; - -class Foo { -public: - Foo() { ++count; } - Foo(const Foo&) { ++count; } - ~Foo() { --count; } -}; - - -main() { - try { - throw Foo(); - } - catch (Foo& object) { - if (count == 1) - return 0; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh32.C b/gcc/testsuite/g++.old-deja/g++.mike/eh32.C deleted file mode 100755 index 12d601c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh32.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// Special g++ Options: -fexceptions - -class Base { -public: - virtual ~Base() throw(); -}; - -Base::~Base() throw() -{ -} - -class Foo : public Base { -public: - virtual ~Foo() throw(); -}; - -Foo::~Foo() throw() -{ -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh33.C b/gcc/testsuite/g++.old-deja/g++.mike/eh33.C deleted file mode 100755 index 234b745..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh33.C +++ /dev/null @@ -1,21 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL hppa*-*-* a29k-*-* sparc64-*-elf sh-*-* z8k-*-* arm-*-pe**-* - -#include <exception> - -void my_unexpected() { - throw 42; -} - -void foo() throw (int) { throw "Hi"; } - -int main() { - std::set_unexpected (my_unexpected); - try { - foo(); - } catch (int i) { - if (i == 42) - return 0; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh34.C b/gcc/testsuite/g++.old-deja/g++.mike/eh34.C deleted file mode 100755 index 9c7e985..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh34.C +++ /dev/null @@ -1,16 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -#include <exception> - -void my_unexpected() { - exit (0); -} - -void foo() throw () { throw "Hi"; } - -int main() { - std::set_unexpected (my_unexpected); - foo(); - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh35.C b/gcc/testsuite/g++.old-deja/g++.mike/eh35.C deleted file mode 100755 index d9bd34c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh35.C +++ /dev/null @@ -1,17 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -main() { - try { - throw 'a'; - } catch (char a) { - try { - throw 'a'; - } catch (int i) { - return 1; - } catch (char c) { - return 0; - } - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh36.C b/gcc/testsuite/g++.old-deja/g++.mike/eh36.C deleted file mode 100755 index fbb6392..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh36.C +++ /dev/null @@ -1,29 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -#include <typeinfo> - -class A { - int space; -}; -class B { -public: - int data; - B(int i) : data(i) { - } -}; -class D : public A, public B { -public: - D(int i) : B(i) { - } -} d(42); - -main() { - try { - throw &d; - } catch (B* b) { - if (b->data == 42) - return 0; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh37.C b/gcc/testsuite/g++.old-deja/g++.mike/eh37.C deleted file mode 100755 index 75f6523..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh37.C +++ /dev/null @@ -1,21 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -#include <typeinfo> - -class B { -public: - int data; - B(int i) : data(i) { - } -} b(42); - -main() { - try { - throw &b; - } catch (B* b) { - if (b->data == 42) - return 0; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh38.C b/gcc/testsuite/g++.old-deja/g++.mike/eh38.C deleted file mode 100755 index 915ef4c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh38.C +++ /dev/null @@ -1,28 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -#include <typeinfo> - -class B { -public: - int data; - B(int i) : data(i) { - } -} b(42); - -main() { - try { - throw &b; - } catch (const B* bptr) { - if (bptr->data == 42) - { - try { - throw &b; - } catch (void *bptr) { - if (((B*)bptr)->data == 42) - return 0; - } - } - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh39.C b/gcc/testsuite/g++.old-deja/g++.mike/eh39.C deleted file mode 100755 index 54d1095..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh39.C +++ /dev/null @@ -1,28 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -int fail = 1; -class B { -public: - B() { throw 1; } -}; -class D : public B { -public: - D(); -}; - -D::D() try : B() { - fail = 1; -} catch (...) { - fail = 0; - throw; -} - -main() { - try { - D d; - fail = 1; - } catch (...) { - } - return fail; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh4.C b/gcc/testsuite/g++.old-deja/g++.mike/eh4.C deleted file mode 100755 index c87ab29..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh4.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// Special g++ Options: -fexceptions - -void foo() { - throw 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh40.C b/gcc/testsuite/g++.old-deja/g++.mike/eh40.C deleted file mode 100755 index 16badc2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh40.C +++ /dev/null @@ -1,29 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -int fail = 1; -class B { -public: - B() { throw 1; } -}; -class D : public B { -public: - D() try : B() { - fail = 1; - } catch (char c) { - fail = 1; - throw; - } catch (...) { - fail = 0; - throw; - } -}; - -main() { - try { - D d; - fail = 1; - } catch (...) { - } - return fail; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh41.C b/gcc/testsuite/g++.old-deja/g++.mike/eh41.C deleted file mode 100755 index 4127402..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh41.C +++ /dev/null @@ -1,29 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -int fail = 0; - -struct A { - A () { a = 'a'; b = 'b'; c = 'c'; } - ~ A () { - if ( a != 'a' ) fail = 1; - if ( b != 'b' ) fail = 1; - if ( c != 'c' ) fail = 1; - } - char a, b, c; -}; - -void some_init () { throw 1; } - -struct C : A { - C () { some_init (); } -}; - -int main () { - try { - C c; - } catch (int i) { - return 0; - } - return 1; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh42.C b/gcc/testsuite/g++.old-deja/g++.mike/eh42.C deleted file mode 100755 index 6da9bd5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh42.C +++ /dev/null @@ -1,18 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -struct none { int i[50]; }; - -class my_ex { } a; - -none throw_it() { - throw 1; -} - -int main() { - try { - none n = throw_it(); - } catch (int ex) { - return 0; - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh43.C b/gcc/testsuite/g++.old-deja/g++.mike/eh43.C deleted file mode 100755 index c5fbde9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh43.C +++ /dev/null @@ -1,741 +0,0 @@ -// Build don't link: -// Special g++ Options: -fexceptions - -// testcase to check obstack allocation for cleanups - -typedef unsigned char byte; -typedef unsigned short word16; -typedef unsigned long word32; -typedef unsigned char boolean; -enum {FALSE, TRUE}; -extern "C" { -extern void __eprintf (const char *, const char *, unsigned, const char *); -} -extern "C" { -typedef unsigned int size_t; -extern void *memccpy(void *, const void *, int, size_t); -extern void *memchr(const void *, int, size_t); -extern void *memset(void *, int, size_t); -} -template <class T> struct SecBlock -{ -public: - SecBlock(unsigned int size) - : size(size), ptr((new T [( size )]) ) {} - ~SecBlock() - {(memset(( ptr ), 0, ( size )*sizeof(*( ptr ))), delete [] ( ptr )) ;} - operator T *() const - {return ptr;} - T *operator +(unsigned int offset) - {return ptr+offset;} - T& operator[](int index) - {((void) (( index<size ) ? 0 : (__eprintf ("%s:%u: failed assertion `%s'\n", "misc.h" , 31 , "index<size" ), 0) )) ; return ptr[index];} - const T& operator[](int index) const - {((void) (( index<size ) ? 0 : (__eprintf ("%s:%u: failed assertion `%s'\n", "misc.h" , 33 , "index<size" ), 0) )) ; return ptr[index];} - const unsigned int size; - T *const ptr; -}; -typedef SecBlock<byte> SecByteBlock; -void xorbuf(byte *buf, const byte *mask, unsigned int count); -void byteReverse(word16 *out, const word16 *in, unsigned int byteCount); -void byteReverse(word32 *out, const word32 *in, unsigned int byteCount); -inline word16 Invert(const word16 value) -{ - return (value << 8) | (value >> 8); -} -inline word32 Invert(const word32 value) -{ - word32 work = ((value & 0xFF00FF00L) >> 8) | ((value & 0x00FF00FFL) << 8); - return (work << 16) | (work >> 16); -} -template <class T> inline T min (const T t1, const T t2) -{ - return (t1 < t2 ? t1 : t2); -} -template <class T> inline T max (const T t1, const T t2) -{ - return (t1 > t2 ? t1 : t2); -} -template <class T> inline void swap (T &a, T &b) -{ - T temp = a; - a = b; - b = temp; -} -template <class T> inline T rotl(T x, unsigned int y) -{ - return ((x<<y) | (x>>(sizeof(T)*8-y))); -} -template <class T> inline T rotr(T x, unsigned int y) -{ - return ((x>>y) | (x<<(sizeof(T)*8-y))); -} -int BytePrecision(unsigned long); -int BitPrecision(unsigned long); -unsigned long Crop(unsigned long, int size); -enum CipherDir {ENCRYPTION, DECRYPTION}; -class BlockTransformation -{ -public: - virtual ~BlockTransformation() {} - virtual void ProcessBlock(byte *inoutBlock) =0; - virtual void ProcessBlock(const byte *inBlock, byte *outBlock) =0; - virtual unsigned int BlockSize() const =0; -}; -class StreamCipher -{ -public: - virtual ~StreamCipher() {} - virtual byte ProcessByte(byte input) =0; - virtual void ProcessString(byte *outString, const byte *inString, unsigned int length); - virtual void ProcessString(byte *inoutString, unsigned int length); -}; -class RandomAccessStreamCipher : public StreamCipher -{ -public: - virtual ~RandomAccessStreamCipher() {} - virtual void Seek(unsigned long position) =0; -}; -class RandomNumberGenerator -{ -public: - virtual ~RandomNumberGenerator() {} - virtual byte GetByte() =0; - virtual int GetBit(); - virtual word32 GetLong(word32 min=0, word32 max=0xffffffffL); - virtual word16 GetShort(word16 min=0, word16 max=0xffff) - {return (word16)GetLong(min, max);} - virtual void GetBlock(byte *output, unsigned int size); -}; -template <class T> void Shuffle(RandomNumberGenerator &rng, T *array, unsigned int size) -{ - while (--size) - swap(array[size], array[(unsigned int)rng.GetLong(0, size)]); -} -class HashModule -{ -public: - virtual ~HashModule() {} - virtual void Update(const byte *input, unsigned int length) =0; - virtual void Final(byte *digest) =0; - virtual int DigestSize() const =0; - virtual void CalculateDigest(byte *digest, const byte *input, int length) - {Update(input, length); Final(digest);} -}; -class BufferedTransformation -{ -public: - virtual ~BufferedTransformation() {} - virtual unsigned long MaxRetrieveable() =0; - virtual void TransferTo(BufferedTransformation &target); - virtual boolean Attachable() {return FALSE;} - virtual void Detach(BufferedTransformation *) {} - virtual void Attach(BufferedTransformation *) {} - virtual void Close() {InputFinished();} - virtual void Put(byte inByte) =0; - virtual void Put(const byte *inString, unsigned int length) =0; - virtual void InputFinished() {} - void PutShort(word16 value, boolean highFirst=TRUE); - void PutLong(word32 value, boolean highFirst=TRUE); - virtual int Get(byte &outByte) =0; - virtual unsigned int Get(byte *outString, unsigned int getMax) =0; - int GetShort(word16 &value, boolean highFirst=TRUE); - int GetLong(word32 &value, boolean highFirst=TRUE); - unsigned int Skip(unsigned int skipMax); -}; -class PK_CryptoSystem -{ -public: - virtual ~PK_CryptoSystem() {}; - virtual unsigned int MaxPlainTextLength() const =0; - virtual unsigned int CipherTextLength() const =0; -}; -class PK_Encryptor : public PK_CryptoSystem -{ -public: - virtual void Encrypt(RandomNumberGenerator &rng, const byte *plainText, unsigned int plainTextLength, byte *cipherText) =0; -}; -class PK_Decryptor : public PK_CryptoSystem -{ -public: - virtual unsigned int Decrypt(const byte *cipherText, byte *plainText) =0; -}; -class PK_SignatureSystem -{ -public: - virtual ~PK_SignatureSystem() {}; - virtual unsigned int MaxMessageLength() const =0; - virtual unsigned int SignatureLength() const =0; -}; -class PK_Signer : public PK_SignatureSystem -{ -public: - virtual void Sign(RandomNumberGenerator &rng, const byte *message, unsigned int messageLen, byte *signature) =0; -}; -class PK_Verifier : public PK_SignatureSystem -{ -public: - virtual boolean Verify(const byte *message, unsigned int messageLen, const byte *signature) =0; -}; -class ByteQueueNode; -class ByteQueue : public BufferedTransformation -{ -public: - ByteQueue(); - ~ByteQueue(); - unsigned long CurrentSize() const; - unsigned long MaxRetrieveable() - {return CurrentSize();} - void Put(byte inByte); - void Put(const byte *inString, unsigned int length); - int Get(byte &outByte); - unsigned int Get(byte *outString, unsigned int getMax); -private: - ByteQueueNode *head, *tail; -}; -enum ASNTag {INTEGER=0x02, BIT_STRING=0x03, SEQUENCE=0x10}; -enum ASNIdFlag {CONSTRUCTED = 0x20}; -unsigned int DERLengthEncode(unsigned int length, byte *output); -unsigned int DERLengthEncode(unsigned int length, BufferedTransformation &); -class BERDecodeErr {}; -boolean BERLengthDecode(BufferedTransformation &, unsigned int &); -class BERSequenceDecoder : public BufferedTransformation -{ -public: - BERSequenceDecoder(BufferedTransformation &inQueue); - ~BERSequenceDecoder(); - void Put(byte inByte) {} - void Put(const byte *, unsigned int) {} - unsigned long MaxRetrieveable() - {return inQueue.MaxRetrieveable();} - int Get(byte &outByte) - {return inQueue.Get(outByte);} - unsigned int Get(byte *outString, unsigned int getMax) - {return inQueue.Get(outString, getMax);} -private: - BufferedTransformation &inQueue; - boolean definiteLength; - unsigned int length; -}; -class DERSequenceEncoder : public ByteQueue -{ -public: - DERSequenceEncoder(BufferedTransformation &outQueue); - ~DERSequenceEncoder(); -private: - BufferedTransformation &outQueue; -}; -extern "C" { -} -extern "C" { -extern void *memmove(void *, const void *, size_t); -extern char *strcpy(char *, const char *); -extern char *strncpy(char *, const char *, size_t); -extern char *strcat(char *, const char *); -extern char *strncat(char *, const char *, size_t); -extern int strcmp(const char *, const char *); -extern int strcoll(const char *, const char *); -extern int strncmp(const char *, const char *, size_t); -extern size_t strxfrm(char *, const char *, size_t); -extern void * __hide_memchr (const void *, int, size_t); -extern char * __hide_strchr (const char *, int); -extern size_t strcspn(const char *, const char *); -extern char * __hide_strpbrk (const char *, const char *); -extern char * __hide_strrchr (const char *, int); -extern size_t strspn(const char *, const char *); -extern char * __hide_strstr (const char *, const char *); -extern char *strtok(char *, const char *); -extern void *memset(void *, int, size_t); -extern char *strerror(int); -extern void *memccpy(void *, const void *, int, size_t); -extern char *strdup(const char *); -extern char *strsignal(int); -extern int ffs(const int); -extern int strcasecmp(const char *, const char *); -extern int strncasecmp(const char *, const char *, size_t); -} -typedef int ptrdiff_t; -extern "C" const char *strchr (const char *, int); -inline char * -strchr (char *s, int c) -{ - return (char*) strchr ((const char *) s, c); -} -extern "C" const char *strpbrk (const char *, const char *); -inline char * -strpbrk (char *s1, const char *s2) -{ - return (char *) strpbrk ((const char *) s1, s2); -} -extern "C" const char *strrchr (const char *, int); -inline char * -strrchr (char *s, int c) -{ - return (char *) strrchr ((const char *) s, c); -} -extern "C" const char *strstr (const char *, const char *); -inline char * -strstr (char *s1, const char *s2) -{ - return (char *) strstr ((const char *) s1, s2); -} -extern "C" void *memchr (const void *, int, size_t); -inline void * -memchr (void *s, int c, size_t n) -{ - return (void *) memchr ((const void *) s, c, n); -} -typedef word16 unit; -typedef short signedunit; -typedef unit *unitptr; -extern short global_precision; -boolean mp_addc - (register unitptr r1,const unit * r2,register boolean carry); -boolean mp_subb - (register unitptr r1,const unit * r2,register boolean borrow); -boolean mp_rotate_left(register unitptr r1,register boolean carry); -void mp_shift_right_bits(register unitptr r1,register short bits); -short mp_compare(const unit * r1,const unit * r2); -boolean mp_inc(register unitptr r); -boolean mp_dec(register unitptr r); -void mp_neg(register unitptr r); -void mp_init(register unitptr r, word16 value); -short significance(const unit * r); -int mp_udiv(register unitptr remainder,register unitptr quotient, - const unit * dividend,const unit * divisor); -int mp_recip(register unitptr quotient,const unit * divisor); -int mp_div(register unitptr remainder,register unitptr quotient, - unit * dividend, unit * divisor); -word16 mp_shortdiv(register unitptr quotient, - const unit * dividend,register word16 divisor); -int mp_mod(register unitptr remainder, - const unit * dividend,const unit * divisor); -word16 mp_shortmod(register unitptr dividend,register word16 divisor); -int mp_mult(register unitptr prod, - const unit * multiplicand,const unit * multiplier); -int countbits(const unit * r); -int stage_peasant_modulus(const unit * n); -int stage_merritt_modulus(const unit * n); -int stage_upton_modulus(const unit * n); -int stage_smith_modulus(const unit * n); -int peasant_modmult(register unitptr prod, - const unit * multiplicand,const unit * multiplier); -int merritt_modmult(register unitptr prod, - const unit * multiplicand,const unit * multiplier); -int upton_modmult(register unitptr prod, - const unit * multiplicand,const unit * multiplier); -int smith_modmult(register unitptr prod, - const unit * multiplicand,const unit * multiplier); -void peasant_burn(); -void merritt_burn(); -void upton_burn(); -void smith_burn(); -int mp_modexp(register unitptr expout,const unit * expin, - const unit * exponent,const unit * modulus); -int mp_modexp_crt(unitptr expout, const unit * expin, - const unit * p, const unit * q, const unit * ep, const unit * eq, const unit * u); -word16 fetch_word16(byte *buf); -byte *put_word16(word16 w, byte *buf); -word32 fetch_word32(byte *buf); -byte *put_word32(word32 w, byte *buf); -int string_length(const char *s); -int str2reg(unit * reg,const char* digitstr); -int reg2str(char * s,const unit * n,short radix); -void mp_display(char * s,unitptr r); -word16 checksum(register byte * buf, register word16 count); -void cbc_xor(register unitptr dst, register unitptr src, word16 bytecount); -void hiloswap(byte * r1,short numbytes); -short mpi2reg(register unitptr r, register byte * buf); -short reg2mpi(register byte * buf, register unitptr r); -enum RandomNumberType {ANY, ODD, PRIME, BLUMINT}; -class MPIRegister : public SecBlock<unit> -{ -public: - MPIRegister() : SecBlock<unit>((2048 / 16 ) ) {} -}; -class ostream; -class bignum -{ -public: - bignum() - {} - bignum(unsigned long value); - bignum(const char *str) - {str2reg(reg, str);} - enum Signedness{UNSIGNED, SIGNED}; - bignum(const byte *encodedBignum, unsigned int byteCount, Signedness s=UNSIGNED) - {Decode(encodedBignum, byteCount, s);} - bignum(const byte *BEREncodedInteger) - {BERDecode(BEREncodedInteger);} - bignum(BufferedTransformation &bt) - {BERDecode(bt);} - bignum(RandomNumberGenerator &rng, unsigned int bitcount) - {Randomize(rng, bitcount);} - bignum(RandomNumberGenerator &rng, const bignum &min, const bignum &max, RandomNumberType rnType=ANY) - {Randomize(rng, min, max, rnType);} - bignum(const bignum& t) - {memcpy(reg, t.reg, (2048 /8) );} - unsigned int Encode(byte *output) const; - unsigned int Encode(byte *output, unsigned int outputLen) const; - void Decode(const byte *input, unsigned int inputLen, Signedness=UNSIGNED); - unsigned int DEREncode(byte *output) const; - unsigned int DEREncode(BufferedTransformation &bt) const; - void BERDecode(const byte *input); - void BERDecode(BufferedTransformation &bt); - void Randomize(RandomNumberGenerator &rng, unsigned int bitcount); - void Randomize(RandomNumberGenerator &rng, const bignum &min, const bignum &max); - void Randomize(RandomNumberGenerator &rng, const bignum &min, const bignum &max, RandomNumberType rnType); - unsigned int ByteCount() const - { - return ((countbits( reg )+7)>>3) ; - } - int BitCount() const - { - return countbits(reg); - } - bignum& operator++() - { - mp_inc(reg); - return *this; - } - bignum& operator--() - { - mp_dec(reg); - return *this; - } - int operator!() const - { - return ( ((* (( reg.ptr )+( global_precision )-1) ) ==( 0 )) && (significance( reg.ptr )<=1) ) ; - } - bignum& operator=(const bignum& t) - { - memcpy(reg, t.reg, (2048 /8) ); - return *this; - } - bignum& operator+=(const bignum& t) - { - mp_addc( reg , t.reg ,(boolean)0) ; - return *this; - } - bignum& operator-=(const bignum& t) - { - mp_subb( reg , t.reg ,(boolean)0) ; - return *this; - } - bignum& operator*=(const bignum& t) - { - *this = (*this) * t; - return *this; - } - bignum& operator/=(const bignum& t) - { - *this = (*this) / t; - return *this; - } - bignum& operator%=(const bignum& t) - { - *this = (*this) % t; - return *this; - } - bignum& operator<<=(unsigned int); - bignum& operator>>=(unsigned int); - unsigned MaxBitPrecision() const {return 2048 ;} - int operator[](unsigned int n) const; - friend bignum operator+(bignum a, const bignum &b) - { - return (a+=b); - } - friend bignum operator-(bignum a, const bignum &b) - { - return (a-=b); - } - friend bignum operator*(const bignum &a, const bignum &b); - friend bignum operator/(const bignum &a, const bignum &b); - friend bignum operator%(const bignum &a, const bignum &b); - friend bignum operator/(const bignum &a, word16 b); - friend word16 operator%(const bignum &a, word16 b); - friend bignum operator>>(bignum a, unsigned int n) - {return (a>>=n);} - friend bignum operator<<(bignum a, unsigned int n) - {return (a<<=n);} - void Negate() {mp_neg(reg);} - friend bignum operator-(bignum a) - { - a.Negate(); - return a; - } - friend int operator==(const bignum &a, const bignum &b) - { - return (memcmp(a.reg.ptr, b.reg.ptr, (2048 /8) )==0); - } - friend int operator!=(const bignum& a, const bignum& b) - { - return (memcmp(a.reg.ptr, b.reg.ptr, (2048 /8) )!=0); - } - friend int operator>(const bignum& a, const bignum& b) - { - return (mp_compare(a.reg, b.reg)>0); - } - friend int operator>=(const bignum& a, const bignum& b) - { - return (mp_compare(a.reg, b.reg)>=0); - } - friend int operator<(const bignum& a, const bignum& b) - { - return (mp_compare(a.reg, b.reg)<0); - } - friend int operator<=(const bignum& a, const bignum& b) - { - return (mp_compare(a.reg, b.reg)<=0); - } - friend bignum a_times_b_mod_c(const bignum &x, const bignum& y, const bignum& m); - friend bignum a_exp_b_mod_c(const bignum &x, const bignum& e, const bignum& m); - class DivideErr {}; - friend void Divide(bignum &r, bignum &q, - const bignum &a, const bignum &d, - Signedness s=SIGNED); - friend boolean Negative(const bignum &a) - { - return ((signedunit) (* ( a.reg.ptr ) ) < 0) ; - } - friend bignum Abs(bignum a) - { - (((signedunit) (* ( a.reg.ptr ) ) < 0) ? (mp_neg( a.reg.ptr ),TRUE) : FALSE) ; - return a; - } - friend ostream& operator<<(ostream& out, const bignum &a); - unit lsUnit() {return (* (( reg.ptr )+( global_precision )-1) ) ;} -private: - MPIRegister reg; -}; -class RSAPublicKey : public PK_Encryptor, public PK_Decryptor, - public PK_Verifier -{ -public: - RSAPublicKey(const bignum &n, const bignum &e); - RSAPublicKey(BufferedTransformation &bt); - void DEREncode(BufferedTransformation &bt) const; - void Encrypt(RandomNumberGenerator &rng, const byte *plainText, unsigned int plainTextLength, byte *cipherText); - unsigned int Decrypt(const byte *cipherText, byte *plainText); - boolean Verify(const byte *message, unsigned int messageLen, const byte *signature); - unsigned int MaxPlainTextLength() const {return modulusLen-11;} - unsigned int CipherTextLength() const {return modulusLen;} - unsigned int MaxMessageLength() const {return modulusLen-11;} - unsigned int SignatureLength() const {return modulusLen;} - const bignum& Exponent() const {return e;} - const bignum& Modulus() const {return n;} -protected: - void RawEncrypt(const bignum &in, bignum &out) const; -private: - friend class RSAPrivateKey; - RSAPublicKey() {} - bignum n; - bignum e; - unsigned int modulusLen; -}; -class RSAPrivateKey : public RSAPublicKey, public PK_Signer -{ -public: - RSAPrivateKey(const bignum &n, const bignum &e, const bignum &d, - const bignum &p, const bignum &q, const bignum &dp, const bignum &dq, const bignum &u); - RSAPrivateKey(RandomNumberGenerator &rng, int keybits, bignum eStart=17); - RSAPrivateKey(BufferedTransformation &bt); - void DEREncode(BufferedTransformation &bt) const; - void Encrypt(const byte *plainText, unsigned int plainTextLength, byte *cipherText); - unsigned int Decrypt(const byte *cipherText, byte *plainText); - void Encrypt(RandomNumberGenerator &, const byte *plainText, unsigned int plainTextLength, byte *cipherText) - {Encrypt(plainText, plainTextLength, cipherText);} - void Sign(const byte *message, unsigned int messageLen, byte *signature) - {Encrypt(message, messageLen, signature);} - void Sign(RandomNumberGenerator &, const byte *message, unsigned int messageLen, byte *signature) - {Encrypt(message, messageLen, signature);} - unsigned int MaxMessageLength() const {return modulusLen-11;} - unsigned int SignatureLength() const {return modulusLen;} -protected: - void RawEncrypt(const bignum &in, bignum &out) const; -private: - bignum d; - bignum p; - bignum q; - bignum dp; - bignum dq; - bignum u; -}; -bignum Gcd(const bignum &a, const bignum &b); -bignum Inverse(const bignum &a, const bignum &m); -boolean IsSmallPrime(const bignum &p); -boolean SmallDivisorsTest(const bignum &p); -boolean FermatTest(const bignum &p, unsigned int rounds); -boolean RabinMillerTest(RandomNumberGenerator &rng, const bignum &w, unsigned int rounds); -inline boolean IsPrime(const bignum &p) -{ - return (IsSmallPrime(p) || (SmallDivisorsTest(p) && FermatTest(p, 2))); -} -boolean NextPrime(bignum &p, const bignum &max, boolean blumInt=FALSE); -bignum a_exp_b_mod_pq(const bignum &a, const bignum &ep, const bignum &eq, - const bignum &p, const bignum &q, const bignum &u); -class PrimeAndGenerator -{ -public: - PrimeAndGenerator(RandomNumberGenerator &rng, unsigned int pbits); - PrimeAndGenerator(RandomNumberGenerator &rng, unsigned int pbits, unsigned qbits); - const bignum& Prime() const {return p;} - const bignum& SubPrime() const {return q;} - const bignum& Generator() const {return g;} -private: - bignum p, q, g; -}; -extern "C" { -extern void __eprintf (const char *, const char *, unsigned, const char *); -} -RSAPublicKey::RSAPublicKey(const bignum &n, const bignum &e) - : n(n), e(e), modulusLen(n.ByteCount()) -{ -} -RSAPublicKey::RSAPublicKey(BufferedTransformation &bt) -{ - BERSequenceDecoder seq(bt); - n.BERDecode(seq); - modulusLen = n.ByteCount(); - e.BERDecode(seq); -} -void RSAPublicKey::DEREncode(BufferedTransformation &bt) const -{ - DERSequenceEncoder seq(bt); - n.DEREncode(seq); - e.DEREncode(seq); -} -void RSAPublicKey::Encrypt(RandomNumberGenerator &rng, const byte *input, unsigned int inputLen, byte *output) -{unsigned int i; - ((void) (( inputLen <= MaxPlainTextLength() ) ? 0 : (__eprintf ("%s:%u: failed assertion `%s'\n", "rsa.cpp" , 30 , "inputLen <= MaxPlainTextLength()" ), 0) )) ; - SecByteBlock pkcsBlock(modulusLen); - pkcsBlock[0] = 0; - pkcsBlock[1] = 2; - for (i = 2; i < modulusLen - inputLen - 1; i++) - { - do - pkcsBlock[i] = rng.GetByte(); - while (pkcsBlock[i] == 0); - } - pkcsBlock[i++] = 0; - memcpy(pkcsBlock+i, input, inputLen); - bignum c; - RawEncrypt(bignum(pkcsBlock, modulusLen), c); - c.Encode(output, modulusLen); -} -unsigned int RSAPublicKey::Decrypt(const byte *input, byte *output) -{unsigned int i; - bignum m; - RawEncrypt(bignum(input, modulusLen), m); - SecByteBlock pkcsBlock(modulusLen); - m.Encode(pkcsBlock, modulusLen); - if ((pkcsBlock[0] != 0) || (pkcsBlock[1] != 1)) - return 0; - for (i = 2; i < modulusLen-1; i++) - if (pkcsBlock[i] != 0xff) - break; - if (pkcsBlock[i++] != 0) - return 0; - unsigned int outputLen = modulusLen - i; - if (outputLen > MaxPlainTextLength()) - return 0; - memcpy (output, pkcsBlock+i, outputLen); - return outputLen; -} -boolean RSAPublicKey::Verify(const byte *message, unsigned int messageLen, const byte *signature) -{ - ((void) (( messageLen <= MaxMessageLength() ) ? 0 : (__eprintf ("%s:%u: failed assertion `%s'\n", "rsa.cpp" , 83 , "messageLen <= MaxMessageLength()" ), 0) )) ; - SecByteBlock m(MaxMessageLength()); - unsigned int mLen = RSAPublicKey::Decrypt(signature, m); - return (mLen==messageLen && memcmp(message, m, mLen)==0); -} -void RSAPublicKey::RawEncrypt(const bignum &in, bignum &out) const -{ - out = a_exp_b_mod_c(in, e, n); -} -RSAPrivateKey::RSAPrivateKey(const bignum &nIn, const bignum &eIn, const bignum &dIn, - const bignum &pIn, const bignum &qIn, - const bignum &dpIn, const bignum &dqIn, const bignum &uIn) - : RSAPublicKey(nIn, eIn) -{ - d=dIn; - if (pIn < qIn) - { - p=pIn; - q=qIn; - dp=dpIn; - dq=dqIn; - } - else - { - p=qIn; - q=pIn; - dp=dqIn; - dq=dpIn; - } - u=uIn; -} -RSAPrivateKey::RSAPrivateKey(RandomNumberGenerator &rng, int keybits, bignum eStart) -{ - p = bignum(rng, keybits/2, PRIME); - const bignum minQ = ((bignum(1) << (keybits-1)) / p) + 1; - const bignum maxQ = (bignum(1) << keybits) / p; - do - { - bignum temp(rng, minQ, maxQ, PRIME); - if (p>temp && p.BitCount()-(p-temp).BitCount() < 7) - { - q=p; - p=temp; - break; - } - if (p<temp && temp.BitCount()-(temp-p).BitCount() < 7) - { - q=temp; - break; - } - } while (1); - bignum phi = (p-1)*(q-1); - for (e = eStart; Gcd(e, phi)!=1; ++e, ++e); - d = Inverse(e, phi/Gcd(p-1, q-1)); - dp = d % (p-1); - dq = d % (q-1); - u = Inverse(p, q); - n = p * q; - modulusLen = n.ByteCount(); -} -RSAPrivateKey::RSAPrivateKey(BufferedTransformation &bt) -{ - BERSequenceDecoder seq(bt); - bignum version(seq); - if (!!version) - throw BERDecodeErr() ; - n.BERDecode(seq); - modulusLen = n.ByteCount(); - e.BERDecode(seq); - d.BERDecode(seq); - p.BERDecode(seq); - q.BERDecode(seq); - dp.BERDecode(seq); - dq.BERDecode(seq); - u.BERDecode(seq); - if (p>q) - { - swap(p, q); - swap(dp, dq); - } -} -void RSAPrivateKey::DEREncode(BufferedTransformation &bt) const -{ - DERSequenceEncoder seq(bt); - byte version[] = {INTEGER, 1, 0}; - seq.Put(version, sizeof(version)); - n.DEREncode(seq); - e.DEREncode(seq); - d.DEREncode(seq); - q.DEREncode(seq); - p.DEREncode(seq); - dq.DEREncode(seq); - dp.DEREncode(seq); - u.DEREncode(seq); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh44.C b/gcc/testsuite/g++.old-deja/g++.mike/eh44.C deleted file mode 100755 index e612aeb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh44.C +++ /dev/null @@ -1,36 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* -// prms-id: 9159 - -static unsigned int iCounter = 0; -static unsigned int iMax; -int fail = 0; - -class ca { -public: - ca(int) { - if (iCounter++ == iMax) - throw (const char*)"iCounter"; - } - virtual ~ca() { - } -}; - -class cc { -public: - cc(const ca &rca1, const ca &rca2) { - } - virtual ~cc() { - fail = 1; - } -}; - - -int main(int argc, char **argv) { - iMax = 1; - try { - cc sc(ca(1), ca(1)); - } catch (const char *pMsg) { - } - return fail; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh45.C b/gcc/testsuite/g++.old-deja/g++.mike/eh45.C deleted file mode 100755 index bed0b92..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh45.C +++ /dev/null @@ -1,34 +0,0 @@ -int i; -int fail; - -class ca { -public: - ca() { - if (++i != 1) - fail = 1; - } - virtual ~ca() { - if (++i != 4) - fail = 4; - } -}; - -class cb { -public: - cb(const ca &rca) { - if (++i != 2) - fail = 2; - } - virtual ~cb() { - if (++i != 3) - fail = 3; - } -}; - -void foo(const cb &rcb) { -} - -int main(int argc, char **argv) { - foo(cb(ca())); - return fail; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh46.C b/gcc/testsuite/g++.old-deja/g++.mike/eh46.C deleted file mode 100755 index e0e6553..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh46.C +++ /dev/null @@ -1,47 +0,0 @@ -// Build don't link: -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sh-*-* arm-*-pe**-* - -int atoi(const char *); - -struct ios { - virtual ~ios(); -}; - -class fstreambase : virtual public ios { -}; - -class ifstream : public fstreambase { -}; - -class ofstream : public fstreambase { -}; - -extern const short O; -extern const short D; - -const short O= 0; -const short D= -3; - - -short glc(const char* const * const l, - short& n,short& x,short& y, - ifstream* i,ofstream* o) - -{ - n=atoi(l[1]); - - x=atoi(l[2]); - y=atoi(l[3]); - - if((x < 0)||(y <0)) - { - return D; - } - - i = new ifstream[n]; - o = new ofstream[2]; - - return O; - -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh47.C b/gcc/testsuite/g++.old-deja/g++.mike/eh47.C deleted file mode 100755 index 043a617..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh47.C +++ /dev/null @@ -1,23 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -#include <cstdlib> -#include <exception> - -void myterm() { - exit (0); -} - -main() { - try { - throw ""; - } catch (...) { - } - try { - std::set_terminate (myterm); - throw; - } catch (...) { - return 1; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh48.C b/gcc/testsuite/g++.old-deja/g++.mike/eh48.C deleted file mode 100755 index 351fc4f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh48.C +++ /dev/null @@ -1,32 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -#include <exception> -using std::uncaught_exception; -class A { -public: - ~A() { - if (uncaught_exception ()) - exit (0); - } -}; - -int main() { - if (uncaught_exception ()) - return 1; - try { - throw ""; - } catch (...) { - if (uncaught_exception ()) - return 1; - } - if (uncaught_exception ()) - return 1; - try { - A a; - throw ""; - } catch (...) { - return 1; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh49.C b/gcc/testsuite/g++.old-deja/g++.mike/eh49.C deleted file mode 100755 index 0505db1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh49.C +++ /dev/null @@ -1,15 +0,0 @@ -// Special g++ Options: -fexceptions -O9 -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -void main1() { - throw 1; -} - -int main() { - try { - main1(); - } catch (...) { - return 0; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh5.C b/gcc/testsuite/g++.old-deja/g++.mike/eh5.C deleted file mode 100755 index 3289d97..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh5.C +++ /dev/null @@ -1,21 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -class foo { -public: - class error {}; - - void cause_error(void) { throw "Hello World!"; } -}; - -int main(void) -{ - foo f; - try { - f.cause_error(); - } - catch (const char cp[]) { - return 0; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh50.C b/gcc/testsuite/g++.old-deja/g++.mike/eh50.C deleted file mode 100755 index 0747e10..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh50.C +++ /dev/null @@ -1,21 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL hppa*-*-* a29k-*-* sparc64-*-elf sh-*-* z8k-*-* arm-*-pe**-* - -#include <exception> - -void my_unexpected() { - throw 42; -} - -template <class T> int foo(T) throw (int) { throw "Hi"; } - -main() { - std::set_unexpected (my_unexpected); - try { - foo(1); - } catch (int i) { - if (i == 42) - return 0; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh51.C b/gcc/testsuite/g++.old-deja/g++.mike/eh51.C deleted file mode 100755 index ac7f620..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh51.C +++ /dev/null @@ -1,21 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* z8k-*-* arm-*-pe**-* - -#include <exception> - -void my_unexpected() { - throw 42; -} - -template <class T> int foo(T) throw (T) { throw "Hi"; } - -main() { - std::set_unexpected (my_unexpected); - try { - foo(1); - } catch (int i) { - if (i == 42) - return 0; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh52.C b/gcc/testsuite/g++.old-deja/g++.mike/eh52.C deleted file mode 100755 index 475070c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh52.C +++ /dev/null @@ -1,14 +0,0 @@ -// Special g++ Options: -fexceptions -O9 - -int promote_mode (int mode, int *punsignedp) -{ - int unsignedp = *punsignedp; - *punsignedp = unsignedp; - return mode; -} - -int main() { - int i; - i = promote_mode (42, &i); - return i != 42; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh53.C b/gcc/testsuite/g++.old-deja/g++.mike/eh53.C deleted file mode 100755 index 7d47c6d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh53.C +++ /dev/null @@ -1,15 +0,0 @@ -// Special g++ Options: -fexceptions -g -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -class zeroset { -public: - ~zeroset () { } -}; - -int main () { - zeroset a; - try { - ; - } catch( zeroset ) { - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh54.C b/gcc/testsuite/g++.old-deja/g++.mike/eh54.C deleted file mode 100755 index 9c2d206..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh54.C +++ /dev/null @@ -1,3 +0,0 @@ -// Special g++ Options: -fexceptions - -int main() { try { 1; } } // ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh55.C b/gcc/testsuite/g++.old-deja/g++.mike/eh55.C deleted file mode 100755 index e64bcf8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh55.C +++ /dev/null @@ -1,18 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -#include <exception> - -void my_terminate_handler() { - exit(0); -} - -void throw_an_unexpected_exception() throw() { - throw 1; -} - -int main() { - std::set_terminate(my_terminate_handler); - throw_an_unexpected_exception(); - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh56.C b/gcc/testsuite/g++.old-deja/g++.mike/eh56.C deleted file mode 100755 index 674a82d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh56.C +++ /dev/null @@ -1,22 +0,0 @@ -// Special g++ Options: -fexceptions - -struct A { - A() { } - A(const char *) { } - A(const A&) { } - ~A() { } -}; - -struct bmf { - bmf (const A n) { } - ~bmf (void) { } - A name; -}; - -void imf (void) { - bmf Sabs ("abs"); -} - -int main(void) { - imf (); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh57.C b/gcc/testsuite/g++.old-deja/g++.mike/eh57.C deleted file mode 100755 index 545a85f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh57.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -// Special g++ Options: -fno-exceptions - -class Calendar_Time { -public: - ~Calendar_Time (); - int operator <= (const Calendar_Time& t) const; -}; - -class Temporal_Model_Interval { -public: - Calendar_Time start_time (); -}; - -int intersects_p (Temporal_Model_Interval* i1, Temporal_Model_Interval* i2) { - return ((i1->start_time() <= i2->start_time()) - || (i1->start_time() <= i2->start_time())); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh58.C b/gcc/testsuite/g++.old-deja/g++.mike/eh58.C deleted file mode 100755 index 967e74a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh58.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -// Special g++ Options: -fexceptions - -struct C { - bool mem; - ~C(); -}; - -C genTemp(); - -int foo_notok(int arg) { - switch (arg) { - case 0: - return genTemp().mem; - default: - return 3; - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh6.C b/gcc/testsuite/g++.old-deja/g++.mike/eh6.C deleted file mode 100755 index b9e7c8c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh6.C +++ /dev/null @@ -1,19 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -extern "C" int printf(const char *, ...); - -void main1() { - throw 1; -} - - -int main() { - try { - main1(); - } catch (...) { - printf("Unwind works!\n"); - return 0; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh7.C b/gcc/testsuite/g++.old-deja/g++.mike/eh7.C deleted file mode 100755 index 3e2c75a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh7.C +++ /dev/null @@ -1,7 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -main() { - if (0) - throw 1 | 2; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh8.C b/gcc/testsuite/g++.old-deja/g++.mike/eh8.C deleted file mode 100755 index a9f7a90..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh8.C +++ /dev/null @@ -1,20 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* - -extern "C" int printf(const char *, ...); - -int i; - -main() { - try { - try { - throw i; - } catch (char *) { - return 1; - } - return 1; - } catch (int i) { - return 0; - } - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/eh9.C b/gcc/testsuite/g++.old-deja/g++.mike/eh9.C deleted file mode 100755 index febd1dc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/eh9.C +++ /dev/null @@ -1,4 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe* - -main() throw () { } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/enum1.C b/gcc/testsuite/g++.old-deja/g++.mike/enum1.C deleted file mode 100755 index 89e8542..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/enum1.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// Warn if a enum cannot fit into a small bit-field. - -enum TypeKind { ATK, BTK, CTK, DTK } ; - -struct Type { - enum TypeKind kind : 1; // WARNING - - void setBTK(); -}; - -void Type::setBTK() { kind = DTK; } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/err1.C b/gcc/testsuite/g++.old-deja/g++.mike/err1.C deleted file mode 100755 index 8748c78..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/err1.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: - -struct gorf { - int stuff; - void snarf(); -}; - -template <class T> void gorf::snarf() { return; } // ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.mike/err2.C b/gcc/testsuite/g++.old-deja/g++.mike/err2.C deleted file mode 100755 index c3af5b4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/err2.C +++ /dev/null @@ -1,6 +0,0 @@ -class foo { -public: - void apply(foo *(foo::*memptr)()) { - this->*memptr(); // ERROR - wrong - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/err3.C b/gcc/testsuite/g++.old-deja/g++.mike/err3.C deleted file mode 100755 index b42a4a9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/err3.C +++ /dev/null @@ -1,9 +0,0 @@ -class cb { -}; - -class cc { -public: - cc() - : cb() { // ERROR - - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/explicit1.C b/gcc/testsuite/g++.old-deja/g++.mike/explicit1.C deleted file mode 100755 index 28213ba..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/explicit1.C +++ /dev/null @@ -1,15 +0,0 @@ -struct A1 { - explicit A1(int) { } -} a1(1); - -struct A { - explicit A(int); -} a(1); - -A::A(int) { -} - -void foo(A a) { - foo(a); - foo(1); // ERROR - not allowed -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/explicit2.C b/gcc/testsuite/g++.old-deja/g++.mike/explicit2.C deleted file mode 100755 index a2077bf..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/explicit2.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: - -class string { -public: - string(const char*) { } - explicit string(int size) { } -}; - -void foo(string) { } - -string bar() { - foo("hello"); // ok - foo(string(2)); // ok - foo(2); // ERROR - no implicit conversion from int to string - string x = 2; // ERROR - no implicit conversion from int to string - string y(2); // ok - foo((string)2); // ok - return 2; // ERROR - no implicit conversion from int to string -} - -class A : string { -public: - A() : string(2) { } // ok -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/for1.C b/gcc/testsuite/g++.old-deja/g++.mike/for1.C deleted file mode 100755 index e462130..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/for1.C +++ /dev/null @@ -1,3 +0,0 @@ -int main() { - for( {int i = 0; int j = 0;} i < 10; ++i ) ; // ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/for2.C b/gcc/testsuite/g++.old-deja/g++.mike/for2.C deleted file mode 100755 index fd01804..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/for2.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: - -void foo() { - for (class C {};;) - ; - C c; // ERROR - -} - -void bar() { - for (enum E {num};;) - ; - E e; // ERROR - -} - -void bee () { - int i = 0; - for (int fun() = 0; i != 2; ++i) { // ERROR - - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/fresco1.C b/gcc/testsuite/g++.old-deja/g++.mike/fresco1.C deleted file mode 100755 index 16fa1db..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/fresco1.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: - -// This is a Fresco found bug. - -class WhoCares {}; - -typedef float Coord; - -class BugDemo : public WhoCares { -public: - typedef Coord Matrix[4][4]; - virtual void vf1(BugDemo::Matrix m) = 0; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/hog1.C b/gcc/testsuite/g++.old-deja/g++.mike/hog1.C deleted file mode 100755 index 8627100..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/hog1.C +++ /dev/null @@ -1,187 +0,0 @@ -class dummy { public: void operator++(void) {} - }; -class dummy_000 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_001 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_002 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_003 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_004 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_005 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_006 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_007 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_008 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_009 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_010 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_011 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_012 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_013 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_014 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_015 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_016 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_017 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_018 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_019 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_020 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_021 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_022 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_023 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_024 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_025 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_026 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_027 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_028 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_029 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_030 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_031 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_032 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_033 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_034 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_035 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_036 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_037 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_038 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_039 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_040 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_041 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_042 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_043 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_044 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_045 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_046 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_047 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_048 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; -class dummy_049 : private virtual dummy { public: void operator++(void) { -dummy::operator++(); } }; - -class super : - private dummy_000, private dummy_001, private dummy_002, private -dummy_003, private dummy_004, - private dummy_005, private dummy_006, private dummy_007, private -dummy_008, private dummy_009, - private dummy_010, private dummy_011, private dummy_012, private -dummy_013, private dummy_014, - private dummy_015, private dummy_016, private dummy_017, private -dummy_018, private dummy_019, - private dummy_020, private dummy_021, private dummy_022, private -dummy_023, private dummy_024, - private dummy_025, private dummy_026, private dummy_027, private -dummy_028, private dummy_029, - private dummy_030, private dummy_031, private dummy_032, private -dummy_033, private dummy_034, - private dummy_035, private dummy_036, private dummy_037, private -dummy_038, private dummy_039, - private dummy_040, private dummy_041, private dummy_042, private -dummy_043, private dummy_044, - private dummy_045, private dummy_046, private dummy_047, private -dummy_048, private dummy_049 -{ -public: - void operator++(void); -}; - -void super::operator++(void) -{ - dummy_000::operator++(); - dummy_001::operator++(); - dummy_002::operator++(); - dummy_003::operator++(); - dummy_004::operator++(); - dummy_005::operator++(); - dummy_006::operator++(); - dummy_007::operator++(); - dummy_008::operator++(); - dummy_009::operator++(); - dummy_010::operator++(); - dummy_011::operator++(); - dummy_012::operator++(); - dummy_013::operator++(); - dummy_014::operator++(); - dummy_015::operator++(); - dummy_016::operator++(); - dummy_017::operator++(); - dummy_018::operator++(); - dummy_019::operator++(); - dummy_020::operator++(); - dummy_021::operator++(); - dummy_022::operator++(); - dummy_023::operator++(); - dummy_024::operator++(); - dummy_025::operator++(); - dummy_026::operator++(); - dummy_027::operator++(); - dummy_028::operator++(); - dummy_029::operator++(); - dummy_030::operator++(); - dummy_031::operator++(); - dummy_032::operator++(); - dummy_033::operator++(); - dummy_034::operator++(); - dummy_035::operator++(); - dummy_036::operator++(); - dummy_037::operator++(); - dummy_038::operator++(); - dummy_039::operator++(); - dummy_040::operator++(); - dummy_041::operator++(); - dummy_042::operator++(); - dummy_043::operator++(); - dummy_044::operator++(); - dummy_045::operator++(); - dummy_046::operator++(); - dummy_047::operator++(); - dummy_048::operator++(); - dummy_049::operator++(); -} - - -int main(void) -{ -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/init1.C b/gcc/testsuite/g++.old-deja/g++.mike/init1.C deleted file mode 100755 index 8d59186..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/init1.C +++ /dev/null @@ -1,25 +0,0 @@ -int count; - -extern "C" void _exit(int); - -struct C { - ~C() { if (count != 1) _exit(1); } -} c; - -class A { -public: - ~A () { ++count; } -}; - -void f() { - static A a; -} - -void g() { - // Since this isn't constructed, we can't destruct it. - static A a; -} - -int main () { - f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/init2.C b/gcc/testsuite/g++.old-deja/g++.mike/init2.C deleted file mode 100755 index 343d76f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/init2.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - -struct Foo { - Foo (int); -}; - -int bar (Foo); - -int x = bar (3); diff --git a/gcc/testsuite/g++.old-deja/g++.mike/leak1.C b/gcc/testsuite/g++.old-deja/g++.mike/leak1.C deleted file mode 100755 index 2a6c337..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/leak1.C +++ /dev/null @@ -1,38 +0,0 @@ -int count = 0; - -class T { - int i; -public: - T() { - i = 1; - ++count; - } - T(const T& o) { - i = o.i; - ++count; - } - T operator +(const T& o) { - T r; - r.i = this->i + o.i; - return r; - } - operator int () { - return i; - } - ~T() { - --count; - } -} s, b; - -void bar() { - static int j = int(s+b); - int i = int(s+b); -} - -int i = int(s+b); - -int main() { - bar(); - bar(); - return count != 2; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/mangle1.C b/gcc/testsuite/g++.old-deja/g++.mike/mangle1.C deleted file mode 100755 index ac7d6cf..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/mangle1.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't link: -// Special g++ Options: - -// Make sure the typedef name is used in name mangling, not some random -// anonymous name - -struct foo { - typedef enum { red } color; - void bar(color r) { - } -} f; - -#ifdef sparc -void f1() asm("bar__3fooQ23foo3$_0"); -void f1() { -} -void f2() asm("_bar__3fooQ23foo3$_0"); -void f2() { -} -void f3() asm("__bar__3fooQ23foo3$_0"); -void f3() { -} -#endif - -main() { - f.bar(foo::red); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/mangle2.C b/gcc/testsuite/g++.old-deja/g++.mike/mangle2.C deleted file mode 100755 index 174cacc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/mangle2.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: -// Special g++ Options: - -typedef struct { -} color; - -void foo(color) { -} - -#ifdef sparc -void f1() asm("foo__FG3$_0"); -void f1() { } -void f2() asm("_foo__FG3$_0"); -void f2() { } -void f3() asm("__foo__FG3$_0"); -void f3() { } -#endif diff --git a/gcc/testsuite/g++.old-deja/g++.mike/mangle3.C b/gcc/testsuite/g++.old-deja/g++.mike/mangle3.C deleted file mode 100755 index 77b92ec..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/mangle3.C +++ /dev/null @@ -1,14 +0,0 @@ -struct ZZ { - int p; -}; - - -template <int ZZ::* ptr> -struct YY { - ZZ qq; - YY() { } -}; - -int main() { - YY<&ZZ::p> ww; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/memoize1.C b/gcc/testsuite/g++.old-deja/g++.mike/memoize1.C deleted file mode 100755 index 9b7aadc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/memoize1.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// Special g++ Options: -fsave-memoized - -#include <iostream.h> diff --git a/gcc/testsuite/g++.old-deja/g++.mike/mi1.C b/gcc/testsuite/g++.old-deja/g++.mike/mi1.C deleted file mode 100755 index 0f5880d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/mi1.C +++ /dev/null @@ -1,44 +0,0 @@ -// Special g++ Options: -w - -class A { -public: - virtual ~A(){}; - virtual int type(void) { - return -1; - } -}; - -class B : public A { -public: - virtual ~B(){}; -}; - - -class C0 : public B, public virtual A { -public: - virtual int type(void) { - return 0; - } -}; - -class C1 : public C0 -{ -public: - virtual int type(void) { - return 1; - } -}; - -class C2 : public C0 { -public: - virtual int type(void) { - return 2; - } -}; - -main() { - C1 *one = new C1; - - if (one->type() != 1) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/mi2.C b/gcc/testsuite/g++.old-deja/g++.mike/mi2.C deleted file mode 100755 index f3c01e3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/mi2.C +++ /dev/null @@ -1,46 +0,0 @@ -class A { - char a; -public: - A(char x) : a(x) { } - virtual ~A() { } -}; - -class B : virtual public A { - char b; -public: - B(char x) : A('b'), b(x) { } - ~B() { } -}; - -class C : virtual public A { - char c; -public: - C(char x) : A('c'), c(x) { } - ~C() { } -}; - -class D : virtual public A, public B, public C { - char d; -public: - D(char x) : A('d'), B('d'), C('d'), d(x) { } - ~D() { } -}; - -class E : virtual public A, public B, public C { - char e; -public: - E(char x) : A('e'), B('e'), C('e'), e(x) { } - ~E() { } -}; - -class F : virtual public A, public D, public E { - char f; -public: - F(char x) : A('f'), D('f'), E('f'), f(x) { } - ~F() { } -}; - -int main() { - F f('x'); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/misc1.C b/gcc/testsuite/g++.old-deja/g++.mike/misc1.C deleted file mode 100755 index 0604eac..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/misc1.C +++ /dev/null @@ -1,53 +0,0 @@ -// GROUPS passed construct-destruct -/* g++ constructs j 13 times, and destructs it once. */ - -extern "C" { - int printf(...); - void exit(int); -} - -void foo() { -} - -class C { - int val; - public: - static int count; - C(int ii) { - val = ii; - ++count; - printf("up\n"); - } - ~C() { - --count; - printf("down\n"); - } - int operator ++() { - return ++val; - } - operator int() { - return val; - } -}; - -int C::count = 0; - -void bar() { - for (int ii=0; ii<13; ++ii) - for (C j=1; j<9; ++j) - foo(); -} - -int main() { - bar(); - if (C::count) - { - printf("FAIL\n"); - exit(1); - } - else - { - printf("PASS\n"); - } - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/misc11.C b/gcc/testsuite/g++.old-deja/g++.mike/misc11.C deleted file mode 100755 index 642fd2e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/misc11.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// GROUPS passed pt coredump -template<class T> class A; -void f () { A<int> *a; } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/misc12.C b/gcc/testsuite/g++.old-deja/g++.mike/misc12.C deleted file mode 100755 index b342bb5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/misc12.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: -// GROUPS passed -struct A { virtual void f(); }; -struct B { virtual void f() ; }; -struct C : virtual A , virtual B { virtual void f(); }; - -/* This used to get an error because the DECL_CONTEXT was blown away. */ -void g(A *ptr) { ptr->f(); } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/misc13.C b/gcc/testsuite/g++.old-deja/g++.mike/misc13.C deleted file mode 100755 index 166e33d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/misc13.C +++ /dev/null @@ -1,53 +0,0 @@ -// GROUPS passed vtable -extern "C" int printf(...); -enum { vf_request, vf_event } want; - -int errs = 0; - -class ivResource { -public: - virtual ~ivResource () { } -}; - -class ivHandler : public ivResource { -public: - virtual void event() { } -}; - -class ivGlyph : public ivResource { -public: - virtual ~ivGlyph () { } - virtual void request () { - if (want!=vf_request) - ++errs; - } -}; - -class ItemView : public ivGlyph, public ivHandler { -public: - virtual void event () { - if (want!=vf_event) - ++errs; - } -} a; - -ivGlyph *bar() { - return &a; -} - -ivHandler *bar2() { - return &a; -} - -int main() { - want=vf_request; - bar()->request(); - want=vf_event; - bar2()->event(); - if (errs) { - printf("FAIL\n"); - return 1; - } - printf("PASS\n"); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/misc14.C b/gcc/testsuite/g++.old-deja/g++.mike/misc14.C deleted file mode 100755 index 4886dcc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/misc14.C +++ /dev/null @@ -1,27 +0,0 @@ -// GROUPS passed -extern "C" int printf(...); -extern "C" void exit(int); - -class A { -public: - virtual ~A() { - printf("FAIL\n"); - exit (1); - } -}; - -class B : public A { -public: - virtual ~B() { - printf("PASS\n"); - exit (0); - } -}; - -int main() { - B b; - A *ap = &b; - ap->~A(); // This should call the destructor virtually. - printf("FAIL\n"); - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/misc2.C b/gcc/testsuite/g++.old-deja/g++.mike/misc2.C deleted file mode 100755 index d916651..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/misc2.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// Special g++ Options: -ansi -pedantic -// GROUPS passed -/* -ansi -pedantic-errors should catch this. */ - -class C { - public: - extern inline int A() {// ERROR - .* - return 1; - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/misc3.C b/gcc/testsuite/g++.old-deja/g++.mike/misc3.C deleted file mode 100755 index 5ac7a3b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/misc3.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// GROUPS uncaught -int a;// ERROR - .* -int a;// ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.mike/misc5.C b/gcc/testsuite/g++.old-deja/g++.mike/misc5.C deleted file mode 100755 index a0761b2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/misc5.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS uncaught -// Cfront bug A.3 (See Language System Release Notes for the -// SPARCompiler C++ version 3.0) - -struct S1 { - static int S1; // ERROR - uses same name 9.3 -}; -struct S2 { - union { int ii; float S2; }; // ERROR - uses same name 9.3 -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/misc6.C b/gcc/testsuite/g++.old-deja/g++.mike/misc6.C deleted file mode 100755 index e369752..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/misc6.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS uncaught -// Cfront bug A.4 (See Language System Release Notes for the -// SPARCompiler C++ version 3.0) - -struct assign { - assign& operator = (const assign&); -}; -union U { - assign a; // ERROR - member of union cannot have op= 9.4// ERROR - .* -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/misc7.C b/gcc/testsuite/g++.old-deja/g++.mike/misc7.C deleted file mode 100755 index e613ad9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/misc7.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed MI -struct S1 { }; - -struct S2 : S1 { }; -struct S3 : S1 { }; - -struct S4 : S3, S2 { }; - -struct S1 *p1; -struct S4 *p4; - -void foobar () -{ - p1 = p4; // ERROR - this is illegal// ERROR - .* -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/misc8.C b/gcc/testsuite/g++.old-deja/g++.mike/misc8.C deleted file mode 100755 index cf15c82..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/misc8.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: -// GROUPS passed vtable -class T { public: virtual ~T() {} }; -template<class P> class X : public virtual T {}; -int main() { X<int> x; } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/misc9.C b/gcc/testsuite/g++.old-deja/g++.mike/misc9.C deleted file mode 100755 index ec02d1e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/misc9.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// Special g++ Options: -Wall -pedantic -// GROUPS passed qualifiers -class bee { - public: - int bee::bar; // WARNING - there is an extra bee:: here -}; - -class foo { - public: - int bee::bar; // ERROR - you cannot do this - int me(); -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net1.C b/gcc/testsuite/g++.old-deja/g++.mike/net1.C deleted file mode 100755 index 9b2bbb8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net1.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// Here is a net bug - -class ivAllocation { -public: - ivAllocation(); - int x_; -}; - -class TBScrollBoxInfo { -public: - ivAllocation allocation_; -}; - -TBScrollBoxInfo* items_; - -inline TBScrollBoxInfo item() { - return items_[0]; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net10.C b/gcc/testsuite/g++.old-deja/g++.mike/net10.C deleted file mode 100755 index 4546bf1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net10.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// Special g++ Options: -pedantic-errors - -const int ci=10, *pc = &ci, *const cpc = pc, **ppc; -int i, *p, *const cp = &i; - -int main() -{ - i = ci; - *cp = ci; - pc++; - pc = cpc; - pc = p; - ppc = &pc; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net11.C b/gcc/testsuite/g++.old-deja/g++.mike/net11.C deleted file mode 100755 index 2030796..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net11.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// Special g++ Options: -pedantic-errors - -struct Foo { - char *p; - const char *q; - void m() const; -}; - -void other(char &x); - -void -Foo::m() const -{ - other(*p); // this is legal -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net12.C b/gcc/testsuite/g++.old-deja/g++.mike/net12.C deleted file mode 100755 index b5fbf64..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net12.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// Special g++ Options: -pedantic-errors - -struct Foo { - char *p; - const char *q; - void m() const; -}; - -void other(char &x); // ERROR - reference below - -void -Foo::m() const -{ - other(*q); // ERROR - this is bad -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net13.C b/gcc/testsuite/g++.old-deja/g++.mike/net13.C deleted file mode 100755 index d56e872..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net13.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: - -// make sure extern "C" friends work. - -extern "C" { void func(); } - -struct crash { - int i; - friend void func(); -} a; - -void func() { - a.i = 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net14.C b/gcc/testsuite/g++.old-deja/g++.mike/net14.C deleted file mode 100755 index 4f32fdd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net14.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// this probably does not have correct debugging info generated. - -typedef struct Thing { - Thing(); - int x; -} Thing; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net15.C b/gcc/testsuite/g++.old-deja/g++.mike/net15.C deleted file mode 100755 index dfe4dc5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net15.C +++ /dev/null @@ -1,46 +0,0 @@ -// InterViews (ibuild) requires this to work. - -extern "C" void exit(int); - -void *old; - -class c1 -{ - int i; -public: - c1 () {} -}; - -class c2 -{ - int j; -public: - c2 () {} -}; - -class c3 : public c1, public c2 -{ -public: - c3 () - { - old = this; - // printf("new object c3 at %x\n", (int)this); } - } -}; - -c2* f () -{ - c2* n = new c3 (); - // printf ("new object c3 casted to c2 at %x\n", (int)n); - return n; -} - -int main () -{ - c3* o = (c3*)f (); - // printf("new object c3, upcasted from c2 at %x\n", (int)o); - // if old and o are not the same, fail the test case. - if (old != o) - exit(1); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net16.C b/gcc/testsuite/g++.old-deja/g++.mike/net16.C deleted file mode 100755 index 5da97a8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net16.C +++ /dev/null @@ -1,7 +0,0 @@ -// On an i386, this core dumps because the reg-stack.c code is wrong, and -// pops an fp register that it thinks is not used, but it is. - -extern "C" int printf (const char*, ...); -struct S { ~S () { } }; -double f (S) { return 5; } -int main() { S s; double dist = f (s); printf ("%g\n", dist); return 0; } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net17.C b/gcc/testsuite/g++.old-deja/g++.mike/net17.C deleted file mode 100755 index 5befc4f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net17.C +++ /dev/null @@ -1,58 +0,0 @@ -// example from the ARM page 292 and 293 - -extern "C" int printf(const char *, ...); -extern "C" void exit(int); - -int i = 0; - -class A { -public: - A() { - printf("Doing A\n"); - if (++i != 1) - exit(1); - } -}; - -class B { -public: - B() { - printf("Doing B\n"); - if (++i != 2) - exit(1); - } -}; - -class C : public virtual A, public virtual B { -public: - C() { - printf("Doing C\n"); - if (++i != 3) - exit(1); - } -}; - -class D : public virtual B, public virtual A { -public: - D() { - printf("Doing D\n"); - if (++i != 4) - exit(1); - } -}; - -class E : public C, public D { -public: - E() { - printf("Doing E\n"); - if (++i != 5) - exit(1); - } -} e; - - -int main() { - if (++i != 6) - exit(1); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net18.C b/gcc/testsuite/g++.old-deja/g++.mike/net18.C deleted file mode 100755 index 81e38d3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net18.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: - -class ClassA { -public: - typedef ClassA& (*PMFV)(const char*); - static PMFV setMapper(PMFV); - static PMFV _mapper; -}; - -class ClassB { -public: - typedef ClassB& (*PMFV)(const char*); -}; - -ClassA::PMFV ClassA::setMapper(ClassA::PMFV newFunc) -{ - PMFV oldFunc = _mapper; - _mapper = newFunc; - - return oldFunc; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net19.C b/gcc/testsuite/g++.old-deja/g++.mike/net19.C deleted file mode 100755 index 68c4753..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net19.C +++ /dev/null @@ -1,20 +0,0 @@ -// Test to make sure &<incomplete record type> works in c++ -// Build don't link: - -struct FILE { - int _flags; -}; - -extern struct _fake_filebuf __std_filebuf_2; - -class Value { - int width; -public: - Value(); - friend Value operator&( __const Value&, __const Value&); -}; - -FILE* Foo () -{ - return ((FILE*)&__std_filebuf_2); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net2.C b/gcc/testsuite/g++.old-deja/g++.mike/net2.C deleted file mode 100755 index ffc14ef..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net2.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// Here is another program from the net. - -class B; - -class A { - private: - A(B *); // ERROR - - public: - A(long); // ERROR - -}; - -A a(0); // ERROR - should be ambigious diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net20.C b/gcc/testsuite/g++.old-deja/g++.mike/net20.C deleted file mode 100755 index 916ba43..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net20.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// A pointer to member function test case. - -struct X -{ -}; - -void (X::* fee ())() -{ - lab: goto lab; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net21.C b/gcc/testsuite/g++.old-deja/g++.mike/net21.C deleted file mode 100755 index 02e40b0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net21.C +++ /dev/null @@ -1,59 +0,0 @@ -// Make sure we can initialize complex (MI ambiguous) vtables. - -extern "C" int printf(const char *, ...); - -struct a -{ - virtual void f() = 0; -}; - -struct b -{ - virtual void g() { }; -}; - -struct c: public a, public b -{ - virtual void f(); - virtual void g(); -}; - -void c::f() -{ - printf("c::f()\n"); -} - -void c::g() -{ - printf("c::g()\n"); -} - -struct e: public b -{ -}; - -struct h -{ -}; - -struct d: public c, public e, public h -{ - virtual void f(); - virtual void g(); -}; -void d::f() -{ - printf("d::f()\n"); -} - -void d::g() -{ - printf("d::g()\n"); -} - -int main(int argc, char* argv[]) -{ - a* tmp = new d; - tmp->f(); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net22.C b/gcc/testsuite/g++.old-deja/g++.mike/net22.C deleted file mode 100755 index f18d056..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net22.C +++ /dev/null @@ -1,13 +0,0 @@ -class Parent { -public: - Parent() {} - Parent( char *s ) {} -}; - -class Child : public Parent { -}; // ERROR - called - -int main() { - Child c( "String initializer" ); // ERROR - bad - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net23.C b/gcc/testsuite/g++.old-deja/g++.mike/net23.C deleted file mode 100755 index 2fe7d4c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net23.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: - -class environment { -public: - int get_font() ; -}; - -typedef int (environment::*INT_FUNCP)(); - -void myfoo(INT_FUNCP a); - -void init_env_requests() -{ - myfoo(&environment::get_font); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net24.C b/gcc/testsuite/g++.old-deja/g++.mike/net24.C deleted file mode 100755 index 682fb08..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net24.C +++ /dev/null @@ -1,3 +0,0 @@ -// Build don't link: - - char HexDigit(unsigned char ch) { return ch < 'f'; } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net25.C b/gcc/testsuite/g++.old-deja/g++.mike/net25.C deleted file mode 100755 index 5635677..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net25.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: - -void shake_zero() -{ -} - -void shake_one() -{ -} - -void (*foo)(); - -int main(int a) -{ - foo = a ? shake_zero : shake_one; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net26.C b/gcc/testsuite/g++.old-deja/g++.mike/net26.C deleted file mode 100755 index 753c5f6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net26.C +++ /dev/null @@ -1,27 +0,0 @@ -// A test case found by InterViews testing... - -extern "C" int printf(const char *, ...); - -class A { -public: - int foo() { printf("ok nv\n"); } - virtual int vfoo() { printf("ok v\n"); } -}; - -struct S { - int (A::*pfn1)(); - int (A::*pfn2)(); - int (A::*pfn3)(); -}; - -// This failed before. -S s = { &A::foo, &A::vfoo, &A::foo }; - -A a; - -int main() { - (a.*s.pfn1)(); - (a.*s.pfn2)(); - printf("PASS\n"); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net27.C b/gcc/testsuite/g++.old-deja/g++.mike/net27.C deleted file mode 100755 index afe975c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net27.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - -class path { -public: - path (const path& r) - { "\""; - '\''; - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net28.C b/gcc/testsuite/g++.old-deja/g++.mike/net28.C deleted file mode 100755 index 3b72482..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net28.C +++ /dev/null @@ -1,28 +0,0 @@ -// From reinhard@ifki50.informatik.fh-muenchen.de against gcc 2.5.0. -// shows an InterViews problem on RS6000 and i386. Doesn't happen on -// SPARC. - -// From fbrowser.c. - -// Build don't link: - -class test { -}; - - -typedef int ( test ::* test2)(int fd); - -class ivFileBrowserImpl_IOCallback -{ - public: - - int inputReady(int fd); - test * _obj; - test2 _input; -}; - - -int ivFileBrowserImpl_IOCallback ::inputReady(int fd) -{ - return (_obj->*_input)(fd); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net29.C b/gcc/testsuite/g++.old-deja/g++.mike/net29.C deleted file mode 100755 index 6635241..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net29.C +++ /dev/null @@ -1,27 +0,0 @@ -// This is a test case for the recent libg++ make check problem. -// Build don't link: - -class SubString { -public: - SubString(); - SubString(const SubString& x); -}; - -class String { -public: - String(); - String(const SubString& x); -}; - -int operator!=(const String& x, const SubString& y); -int operator!=(const String& x, const String& y); - -int operator!=(const SubString& x, const String& y); -int operator!=(const SubString& x, const SubString& y); - -void comparetest() -{ - String x; - SubString s; - x != s; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net3.C b/gcc/testsuite/g++.old-deja/g++.mike/net3.C deleted file mode 100755 index e6dbdcb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net3.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// Here is another program from the net. - -class BOOL { - public: - int val; - - BOOL(int i =0); - operator int(); -}; - -BOOL& foo() -{ - static BOOL status; - return status; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net30.C b/gcc/testsuite/g++.old-deja/g++.mike/net30.C deleted file mode 100755 index 52f7b28..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net30.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: - -class X { -public: - void x(void); -}; - -class Y : public X { -}; - -class Z : private Y { -public: - void y(void); -}; - -void Z::y(void) { - x(); // should be OK -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net31.C b/gcc/testsuite/g++.old-deja/g++.mike/net31.C deleted file mode 100755 index 3ecf81c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net31.C +++ /dev/null @@ -1,68 +0,0 @@ -// Build don't link: - -class foo_a { - protected: - double func(int xi) {return 0.0;} - public: - foo_a() {} -}; - -class foo_b { - public: - foo_b(int); - foo_b(); - ~foo_b(); - foo_b(const foo_b&); - inline double& operator()(int); - foo_b& operator=(foo_b&); - void bar_a(int); -}; - -foo_b& operator*(foo_b&, foo_b&); -foo_b& operator*(double, foo_b&); - -template <class TP> -class foo_c { - typedef double (TP::* Tmatf)(int); - int m; - Tmatf* a; - void foo_cinst (int mm); - public: - foo_c(int mm); - foo_c() {m = 0; a = 0;} - ~foo_c() {delete a;} - double (TP::*& operator()(int i))(int) {return a[i];} - foo_b& bug_func(int); -}; - -template <class TP> -foo_b& foo_c<TP>::bug_func(int x) { - static foo_b retval(m); - retval.bar_a(m); - for (register int i = 0; i < m; i++) - retval(i) = (*(operator()(i)))(x); // ERROR - - return retval; -} - -template <class TP> -class foo_d { - protected: - foo_c<TP> bar_b; - public: - foo_d() {} - virtual ~foo_d() {} - virtual void setfoo_c(); -}; - -class foo_e : public foo_a, public foo_d<foo_a> { - public: - foo_e(); - ~foo_e() {} - void setfoo_c(); -}; - -void foo_e::setfoo_c() { - bar_b(0) = func; // ERROR - -} - -template class foo_c<foo_a>; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net32.C b/gcc/testsuite/g++.old-deja/g++.mike/net32.C deleted file mode 100755 index 4ac8a94..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net32.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -class Co_obj { -public: - Co_obj() {} - }; -class Linear_list_node : virtual public Co_obj { }; -class M1 : public Linear_list_node { }; -class M2 : public Linear_list_node { }; -class New_node : public M1, public M2 { }; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net34.C b/gcc/testsuite/g++.old-deja/g++.mike/net34.C deleted file mode 100755 index 51266a3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net34.C +++ /dev/null @@ -1,36 +0,0 @@ -#include <iostream.h> - -class foo { -public: - foo(int i) {k = i;} -protected: - int k; -}; - -class bar_1 : public foo { -public: - bar_1(int i) : foo(i) {} - int get_k() {return k;} -}; - -class bar_2 : public foo { -public: - bar_2(int i) : foo(i) {}; - int get_k() {return k;} -}; - -class multiple : public bar_1, public bar_2 { -public: - multiple(int i1, int i2) : bar_1(i1), bar_2(i2) {} - void print() { - cout << "bar_1::k -> " << bar_1::k << "\n"; - cout << "bar_2::k -> " << bar_2::k << "\n"; - cout << "bar_1::get_k() -> " << bar_1::get_k() << "\n"; - cout << "bar_2::get_k() -> " << bar_2::get_k() << "\n"; - } -}; - -int main() { - multiple m(1,2); - m.print(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net35.C b/gcc/testsuite/g++.old-deja/g++.mike/net35.C deleted file mode 100755 index 332bf42..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net35.C +++ /dev/null @@ -1,27 +0,0 @@ -extern "C" int printf(const char *, ...); - -class A { - public: - char *x; -}; - -class B1:public virtual A { }; - -class B2:public virtual A { }; - -class C:public B1, public B2 { -public: - C() { } -}; - -int main() { - C c; - printf("&c.x = %x\n", &c.x); - printf("&c.B1::x = %x\n", &c.B1::x); - printf("&c.B2::x = %x\n", &c.B2::x); - printf("&c.A::x = %x\n", &c.A::x); - if (&c.x != &c.B1::x - || &c.x != &c.B2::x - || &c.x != &c.A::x) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net36.C b/gcc/testsuite/g++.old-deja/g++.mike/net36.C deleted file mode 100755 index ca86796..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net36.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: - -class X; - -class A { -public: - void handlerFn(X*); -}; - -typedef void (A::*handler) (X*); - -class B { -public: - void setHandler(handler); // ERROR - fn ref in err msg -}; - -void f(B* b) { - b->setHandler(A::handlerFn); // ERROR - -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net37.C b/gcc/testsuite/g++.old-deja/g++.mike/net37.C deleted file mode 100755 index 1ce7834..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net37.C +++ /dev/null @@ -1,39 +0,0 @@ -class B { -public: - int bi; - void bProc ( void ) { bi = 39; } - }; - -class D : public B { -public: - int di; - void dProc (void ){ di = 42; } - }; - -typedef void (B::*BPROC)(void); -typedef void (D::*DPROC)(void); - -union AFX_PMSG { -public: - - AFX_PMSG () {}; - AFX_PMSG ( BPROC bpr ) { bfn = bpr ; } - - operator BPROC() { return bfn; } - - BPROC bfn; - DPROC dfn; -}; - - -int main(int argc, char *argv[]) { - B b; - D d; - - BPROC bpr = &B::bProc; - AFX_PMSG pmsg(bpr); - - BPROC ppr = pmsg; - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net38.C b/gcc/testsuite/g++.old-deja/g++.mike/net38.C deleted file mode 100755 index 2b7c0c4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net38.C +++ /dev/null @@ -1,28 +0,0 @@ -struct A { - virtual int a () { return 0; } -}; - -struct B { - virtual int b () { return 0; } - virtual int b2 () { return 0; } -}; - -struct C : public A, public B { - virtual int a () { return 1; } - virtual int b () { return 2; } - virtual int b2 () { return 3; } -}; - -int (C::*vmpb) () = &C::b; -int (C::*vmpb2) () = &C::b2; -int (C::*vmpa) () = &C::a; - -int main () { - C c; - if ((c.*vmpa)() != 1) - return 1; - if ((c.*vmpb)() != 2) - return 1; - if ((c.*vmpb2)() != 3) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net39.C b/gcc/testsuite/g++.old-deja/g++.mike/net39.C deleted file mode 100755 index 00ad1c6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net39.C +++ /dev/null @@ -1,30 +0,0 @@ -void *vp; - -class silly { -public: - virtual int b() { return 1; } -}; -class solly : silly { -public: - virtual int b() { return 2; } -}; -class thing { -public: - virtual int a() { return 3; } -}; -class thong : public solly, public thing { -public: - virtual int a() { - if (this != vp) return 4; - else return 0; - } -}; - -typedef int(thing::*ping)(); -ping qq = &thing::a; - -int main() { - thong b; - vp = &b; - return (b.*qq)(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net4.C b/gcc/testsuite/g++.old-deja/g++.mike/net4.C deleted file mode 100755 index 4cf8e7a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net4.C +++ /dev/null @@ -1,32 +0,0 @@ -// Message-Id: <m0lLuUK-0000fRC@nix.appli.se> -// Date: Wed, 4 Mar 92 12:50 MET -// From: niklas@appli.se (Niklas Hallqvist) -// To: eichin@cygnus.com, tiemann@cygnus.com -// Cc: gcc2@cygnus.com -// Subject: nested type handling -// -// The last couple of days I've been struggling with nested types in the -// C++ compiler. Frankly, it's a mess! Was it impossible to put the stuff -// into the parser instead of the lexer? Well, anyway, to get the following -// code to compile: -// -// struct O { -// struct M { -// struct I -// {}; -// }; -// }; -// O::M::I s; -// -// a patch enclosed below is needed. I'm not sure if it causes any -// unanticipated side-effects, but it seem to work well for me. - -// Build don't link: - -struct O { - struct M { - struct I - {}; - }; -}; -O::M::I s; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net40.C b/gcc/testsuite/g++.old-deja/g++.mike/net40.C deleted file mode 100755 index 10e16e6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net40.C +++ /dev/null @@ -1,18 +0,0 @@ -#include <stddef.h> -extern "C" void abort(); - -class toto { -public: - void * operator new (size_t t) { - abort(); - } - void operator delete (void*p, size_t t) { - abort(); - } -}; - -int main() { - toto * p; - p = new toto[5]; - delete [] p; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net41.C b/gcc/testsuite/g++.old-deja/g++.mike/net41.C deleted file mode 100755 index 2c29e9b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net41.C +++ /dev/null @@ -1,3 +0,0 @@ -int main() { - int i = ~ false; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net42.C b/gcc/testsuite/g++.old-deja/g++.mike/net42.C deleted file mode 100755 index 178a0bb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net42.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: - -typedef void (*__sighandler_t)(int); - -struct sigaction { - __sighandler_t sa_handler; -}; - -struct task_struct { - struct sigaction sigaction[32]; -}; - -void -get_stat() { - struct task_struct ** p = 0; - unsigned long bit = 1; - unsigned long sigignore = 0; - int i = 0; - switch((unsigned long) (*p)->sigaction[i].sa_handler) - { - case 1: - sigignore |= bit; - break; - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net43.C b/gcc/testsuite/g++.old-deja/g++.mike/net43.C deleted file mode 100755 index 3a34c8f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net43.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: - -class foo { - public: - friend int operator ^(const foo&, const foo&); -}; - -int main () -{ - int (*funptr) (const foo &, const foo &) = operator ^; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net44.C b/gcc/testsuite/g++.old-deja/g++.mike/net44.C deleted file mode 100755 index 5b6a0ad..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net44.C +++ /dev/null @@ -1,11 +0,0 @@ -// Make sure we don't dump core - -enum request { q, w, e}; // ERROR - - -class request { // ERROR - -public: - int a; - request( int b) { - a = b; - }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net45.C b/gcc/testsuite/g++.old-deja/g++.mike/net45.C deleted file mode 100755 index 388af8f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net45.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: - -template <class T1, class T2> -struct pair { - T1 first; - T2 second; - pair(const T1& a, const T2& b) : first(a), second(b) {} -}; - -struct myint { - myint() { - } - myint(const myint& mi) { - } - myint& operator=(const myint& mi) { - } -}; - -extern pair<const myint, myint> a; -pair<const myint, myint> b(a); diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net46.C b/gcc/testsuite/g++.old-deja/g++.mike/net46.C deleted file mode 100755 index ac79501..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net46.C +++ /dev/null @@ -1,16 +0,0 @@ -#include <iostream.h> -#include <stddef.h> -#include <new> - -int fail = 1; - -static void *operator new(size_t size) throw (std::bad_alloc) { - --fail; - return (void*) 0; -} - -int main() { - cout << ""; - new int; - return fail; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net47.C b/gcc/testsuite/g++.old-deja/g++.mike/net47.C deleted file mode 100755 index fc4a81f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net47.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: -// Special g++ Options: -w -fpermissive - -class foo {}; -class bar : foo { -public: - bar () : () {} -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net48.C b/gcc/testsuite/g++.old-deja/g++.mike/net48.C deleted file mode 100755 index e5b8393..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net48.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// excess errors test - XFAIL *-linux-gnu - -char *a="aê"; - -class A -{ -public: - A() - { - char *b="aê"; - } -}; - -char *c="aê"; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net5.C b/gcc/testsuite/g++.old-deja/g++.mike/net5.C deleted file mode 100755 index e914432..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net5.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// Special g++ Options: - -volatile void abort(); -volatile void oink() { - abort() ; -} // gets bogus error - diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net6.C b/gcc/testsuite/g++.old-deja/g++.mike/net6.C deleted file mode 100755 index 6a3aef1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net6.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: -// Special g++ Options: - -struct X {}; -X x = X(); // gets bogus error diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net7.C b/gcc/testsuite/g++.old-deja/g++.mike/net7.C deleted file mode 100755 index 1465502..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net7.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// Special g++ Options: - -// This should compile. - -int foo (signed char *); -int foo (char *); diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net8.C b/gcc/testsuite/g++.old-deja/g++.mike/net8.C deleted file mode 100755 index 1282317..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net8.C +++ /dev/null @@ -1,32 +0,0 @@ -// Build don't link: -// Special g++ Options: -pedantic-errors - -class Base { -public: - int foo; -}; - -class Derived : public Base { -public: - int bar; -}; - -void func(Base&); // ERROR - - -void func2(const Derived& d) { - func(d); // ERROR - this is bad -} - -void -foo (int& a) -{ // ERROR - -} - -int main () -{ - int b; - const int*const a = &b; - *a = 10; // ERROR - it's const - foo (*a); // ERROR - it's const - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/net9.C b/gcc/testsuite/g++.old-deja/g++.mike/net9.C deleted file mode 100755 index 7d876dc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/net9.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// Special g++ Options: -pedantic-errors - -const int ci=10, *pc = &ci, *const cpc = pc, **ppc; -int i, *p, *const cp = &i; - -int main() -{ - ci = 1; // ERROR - bad - ci++; // ERROR - bad - *pc = 2; // ERROR - bad - cp = &ci; // ERROR - bad - cpc++; // ERROR - bad - p = pc; // ERROR - bad -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/ns1.C b/gcc/testsuite/g++.old-deja/g++.mike/ns1.C deleted file mode 100755 index c347d2d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/ns1.C +++ /dev/null @@ -1,11 +0,0 @@ -namespace Foo { - int bar() { - return 0; - } -} - -using namespace Foo; - -int main() { - bar(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/ns10.C b/gcc/testsuite/g++.old-deja/g++.mike/ns10.C deleted file mode 100755 index a6b1c3a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/ns10.C +++ /dev/null @@ -1,9 +0,0 @@ -namespace Foo { - int bar() { - return 0; - } -} - -int main() { - return Foo::bar(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/ns11.C b/gcc/testsuite/g++.old-deja/g++.mike/ns11.C deleted file mode 100755 index bde7723..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/ns11.C +++ /dev/null @@ -1,18 +0,0 @@ -class Foo { -}; - -namespace A { - namespace Foo { - int bar() { - return 0; - } - } - - int mymain() { - return Foo::bar(); - } -} - -int main() { - return A::mymain(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/ns12.C b/gcc/testsuite/g++.old-deja/g++.mike/ns12.C deleted file mode 100755 index 3897810..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/ns12.C +++ /dev/null @@ -1,14 +0,0 @@ -namespace { - int i = 10; - enum fish { one = 1, two = 2, red = 3, blue = 4 }; -} -extern "C" void printf (const char *, ...); -int main(void) -{ - if (i != 10) { - return 1; - } - if (one != 1) { - return 2; - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/ns13.C b/gcc/testsuite/g++.old-deja/g++.mike/ns13.C deleted file mode 100755 index 5482a43..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/ns13.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: - -namespace N { - struct C { - C(); - }; -} - -namespace M { - struct C { - C(); - }; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/ns14.C b/gcc/testsuite/g++.old-deja/g++.mike/ns14.C deleted file mode 100755 index 3c3ad3f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/ns14.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: - -namespace Jazz { - int horn( int h ) { return 1; } -} - -using Jazz::horn; - -namespace Jazz { - int horn ( char c ) { return 0; } -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/ns15.C b/gcc/testsuite/g++.old-deja/g++.mike/ns15.C deleted file mode 100755 index 3944052..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/ns15.C +++ /dev/null @@ -1,31 +0,0 @@ -// Build don't link: - -#include <stdio.h> -#include <stdlib.h> - -#define MAX 256 -#define MAXSTATE 1000000 - -struct R { - int count; - int state1; - int state2; -}; - -int cmp_d(const R* a, const R* b) { - return a->count > b->count; -} - -namespace CXX { - template<class T, int i1, int i2> - inline void qsort (T b[i1][i2], int (*cmp)(const T*, const T*)) { - ::qsort ((void*)b, i1*i2, sizeof(T), (int (*)(const void *, const void *))cmp); - } -} - -using namespace CXX; - -void sort_machine() { - struct R d[MAX][MAX]; - qsort<R,MAX> (d, cmp_d); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/ns2.C b/gcc/testsuite/g++.old-deja/g++.mike/ns2.C deleted file mode 100755 index 365eb8c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/ns2.C +++ /dev/null @@ -1,9 +0,0 @@ -namespace N { - int i; -}; - -using namespace N; - -int main() { - return i; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/ns3.C b/gcc/testsuite/g++.old-deja/g++.mike/ns3.C deleted file mode 100755 index 77da5af..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/ns3.C +++ /dev/null @@ -1,4 +0,0 @@ -int i; // ERROR - - -namespace i { // ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/ns4.C b/gcc/testsuite/g++.old-deja/g++.mike/ns4.C deleted file mode 100755 index 7c359cf..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/ns4.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: - -namespace i { -} -namespace i { -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/ns5.C b/gcc/testsuite/g++.old-deja/g++.mike/ns5.C deleted file mode 100755 index d138ff3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/ns5.C +++ /dev/null @@ -1,5 +0,0 @@ -namespace A { - int i = 1; -} - -int j = i; // ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.mike/ns6.C b/gcc/testsuite/g++.old-deja/g++.mike/ns6.C deleted file mode 100755 index dc08247..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/ns6.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - -namespace A { - int i = 1; -} - -namespace A { - int j = i; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/ns7.C b/gcc/testsuite/g++.old-deja/g++.mike/ns7.C deleted file mode 100755 index ff7cda6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/ns7.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - -namespace A { - int i = 1; -} - -namespace B { - int j = i; // ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/ns8.C b/gcc/testsuite/g++.old-deja/g++.mike/ns8.C deleted file mode 100755 index dc08247..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/ns8.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - -namespace A { - int i = 1; -} - -namespace A { - int j = i; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/ns9.C b/gcc/testsuite/g++.old-deja/g++.mike/ns9.C deleted file mode 100755 index 8d640e7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/ns9.C +++ /dev/null @@ -1,11 +0,0 @@ -namespace Foo { - int bar() { - return 0; - } -} - -using Foo::bar; - -int main() { - return bar(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/offset1.C b/gcc/testsuite/g++.old-deja/g++.mike/offset1.C deleted file mode 100755 index 6a259d8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/offset1.C +++ /dev/null @@ -1,38 +0,0 @@ -extern "C" int printf(const char *, ...); -void *vp; -int fail = 0; - -class Foo { -public: - virtual void setName() { - printf("Foo at %x\n", this); - if (vp != (void*)this) - fail = 1; - } -}; - -class Bar : public Foo { -public: - virtual void init(int argc, char **argv) { - printf("Bar's Foo at %x\n", (Foo*)this); - vp = (void*)(Foo*)this; - setName(); - } -}; - -class Barf : virtual public Bar { -public: - virtual void init(int argc, char **argv) { Bar::init(argc, argv); } -}; - -class Baz : virtual public Bar, virtual public Barf { -public: - virtual void init(int argc, char **argv) { Barf::init(argc, argv); } -}; - -Bar *theBar = new Baz(); - -int main(int argc, char **argv) { - theBar->init(argc, argv); - return fail; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/opr-as1.C b/gcc/testsuite/g++.old-deja/g++.mike/opr-as1.C deleted file mode 100755 index 935b0ba..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/opr-as1.C +++ /dev/null @@ -1,11 +0,0 @@ -// Shows a problem with the default op= not being an implementation... - -class C { - int i; -}; - -C a, b; - -int main() { - a = b; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/opr-dot1.C b/gcc/testsuite/g++.old-deja/g++.mike/opr-dot1.C deleted file mode 100755 index acef6ad..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/opr-dot1.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: - -typedef struct base1 { - int x; -} base1_t; - -typedef struct base2 { - int x; -} base2_t; - -class derived1 : public base1 { -}; - -class derived2 : public derived1, public base2 { -}; - -struct test { - derived2& fails; - void test1() { - fails.base1::x = 5; - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p10148.C b/gcc/testsuite/g++.old-deja/g++.mike/p10148.C deleted file mode 100755 index 074724a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p10148.C +++ /dev/null @@ -1,33 +0,0 @@ -// prms-id: 10148 - -int fail = 1; -void ok() { fail = 0; } - -class TC { - int s_; -}; - -class TIRD { - public: - void (*itc)(); - TIRD() { itc = ok; } -}; - -class TCCB : public TC, public TIRD { -}; - -class TCRCB : public TCCB { -public: - virtual void eat (); -}; - -void TCRCB::eat () { - void *vp = (TIRD*)this->itc; - this->itc(); -} - -int main() { - TCRCB a; - a.eat(); - return fail; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p10247.C b/gcc/testsuite/g++.old-deja/g++.mike/p10247.C deleted file mode 100755 index c69bc90..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p10247.C +++ /dev/null @@ -1,6 +0,0 @@ -// prms-id: 10247 - -class a { -public: - int operator++(int) { return operator()++ ; } // ERROR - -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p10416.C b/gcc/testsuite/g++.old-deja/g++.mike/p10416.C deleted file mode 100755 index aa56b5f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p10416.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe* -// prms-id: 10416 - -class not_ok { -public: - void f() throw(int) { } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p10511.C b/gcc/testsuite/g++.old-deja/g++.mike/p10511.C deleted file mode 100755 index b92b4f7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p10511.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// prms-id: 10511 - -class S { -public: - enum E {a, b, c}; -}; - -class C { -public: - bool f (S::E()) { } - virtual void foo(); -}; - -void C::foo() { } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p10769a.C b/gcc/testsuite/g++.old-deja/g++.mike/p10769a.C deleted file mode 100755 index f5ff345..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p10769a.C +++ /dev/null @@ -1,45 +0,0 @@ -// Special g++ Options: -Wno-pmf-conversions -// prms-id: 10769 - -#define PMF2PF(PMF) ((void (*)())(PMF)) - -int ok = 0; - -class A { -public: - void f1a() { ok += 3; } - void f1b() { ok += 5; } - void f2a() { ok += 7; } // gets bogus error XFAIL *-*-* - void f2b() { } - const static void (*table[2][2])(); - void main(); -} a; - -const void (*A::table[2][2])() - = { { PMF2PF(&A::f1a), PMF2PF(&A::f1b) }, - { PMF2PF(&A::f2a), PMF2PF(&A::f1b) }, - }; - -void -dispatch (A *obj, int i, int j) -{ - (*(void (*)(A *))A::table[i][j])(obj); -} - -void A::main() { - dispatch (&a, 0, 0); - void (A::*mPtr)() = &A::f1a; - - (*(void (*)(A*))PMF2PF(mPtr))(&a); - (*(void (*)(A*))PMF2PF(f2a))(&a); // gets bogus error XFAIL *-*-* -} - -int main() { - a.A::main(); - dispatch (&a, 0, 1); - void (A::*mPtr)() = &A::f1b; - - (*(void (*)(A*))PMF2PF(a.*mPtr))(&a); - (*(void (*)(A*))PMF2PF(a.f2a))(&a); // gets bogus error XFAIL *-*-* - return ok != 3+3+5+5+7+7; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p10769b.C b/gcc/testsuite/g++.old-deja/g++.mike/p10769b.C deleted file mode 100755 index c9f859d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p10769b.C +++ /dev/null @@ -1,25 +0,0 @@ -// Special g++ Options: -// prms-id: 10769 - -#define PMF2PF(PMF) ((void (*)())(PMF)) - -class A { -public: - void f1a() { } - void main(); -} a; - -class B { -public: - void bf1() { } -} b; - -void A::main() { - void (B::*mPtrB)(B*); - (*(void (*)(A*))PMF2PF(mPtrB))(&b); // ERROR - -} - -int main() { - void (A::*mPtr)() = &A::f1a; - (*(void (*)(A*))PMF2PF(mPtr))(&a); // ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p10849a.C b/gcc/testsuite/g++.old-deja/g++.mike/p10849a.C deleted file mode 100755 index d6d4656..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p10849a.C +++ /dev/null @@ -1,33 +0,0 @@ -// prms-id: 10849 - -struct A -{ - int comm; - A(int i) : comm(i) { } -}; - -struct S1 { char c1; }; - -struct B : public S1, public A -{ - B(int i) : A(i) { } -}; - -struct C : public A -{ - C(int i) : A(i) { } -}; - -struct D : public B, public C -{ - virtual int g() { - int D::*pmd = (int C::*)&C::comm; - return (this->*pmd) == 42; - } - D() : B(41), C(42) { } -} d; - -int main() { - if (! d.g()) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p10951.C b/gcc/testsuite/g++.old-deja/g++.mike/p10951.C deleted file mode 100755 index d53775f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p10951.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// prms-id: 10951 - -inline int m1(const int& a) { - return 1; -} - -template <class T> -class A { -public: - typedef int st; - - static int m2t() { - return m1(1); - } -}; - -A<int>::st i; -int m3() { - return A<int>::m2t(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p11012.C b/gcc/testsuite/g++.old-deja/g++.mike/p11012.C deleted file mode 100755 index aca77d4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p11012.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// Special g++ Options: -Wno-pmf-conversions -// prms-id: 11012 - -class Foo { -public: - int f(){} -}; - -void foo() { - void *p1 = &Foo::f; - const void *p2 = &Foo::f; - int (*p3)() = &Foo::f; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p11110.C b/gcc/testsuite/g++.old-deja/g++.mike/p11110.C deleted file mode 100755 index 428486a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p11110.C +++ /dev/null @@ -1,20 +0,0 @@ -// prms-id: 11110 - -class data; - -class conatiner { -public: - virtual void* first (); - virtual data* contents (void* i); // ERROR - candidates -}; - -class user { -public: - data* data1 () const; -private: - conatiner& _c; -}; - -data* user::data1() const { - return (_c.contents (_c.first)); // ERROR - -} // ERROR - control reaches end diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p11116.C b/gcc/testsuite/g++.old-deja/g++.mike/p11116.C deleted file mode 100755 index 9beff46..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p11116.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: -// Special g++ Options: -Wno-pmf-conversions -// prms-id: 11116 - -class Bar { -public: - int f(int a) { val = a; return val; } -private: - int val; -}; - -typedef int (Bar::*BarPtr)(int); - -void foo() { - int a; - int (Bar::*bp)(int) = &Bar::f; - Bar bar; - int (*p)(void *, int); - - p = (int (*)(void*,int))((void (*)())((bp).__pfn_or_delta2.__pfn)); - a = (*p)(&bar, 4); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p11142.C b/gcc/testsuite/g++.old-deja/g++.mike/p11142.C deleted file mode 100755 index a22ca45..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p11142.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -// Special g++ Options: -fexceptions -O -g -// prms-id: 11142 - -class RWxmsg { -public: - RWxmsg(); - virtual ~RWxmsg(); -}; - -class RWTHRInternalError : public RWxmsg { -public: - virtual ~RWTHRInternalError() { } -}; - -void setCount(int count) { - throw RWTHRInternalError(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p11144.C b/gcc/testsuite/g++.old-deja/g++.mike/p11144.C deleted file mode 100755 index 98b9fb0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p11144.C +++ /dev/null @@ -1,17 +0,0 @@ -// Special g++ Options: -O -// prms-id: 11144 - -class Id { -public: - int d_i; - Id(int i) : d_i(i) {} - int value() {return d_i;} -} id(1); - -Id foo() { return id; } - -int main() { - const Id &id1 = foo(); - const Id &id2 = foo(); - return &id1 == &id2; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p11482.C b/gcc/testsuite/g++.old-deja/g++.mike/p11482.C deleted file mode 100755 index f03a422..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p11482.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// prms-id: 11482 - -void *vp; - -enum E { bad, ok } e; - -void foo() { - e = (E)vp; // ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p11667.C b/gcc/testsuite/g++.old-deja/g++.mike/p11667.C deleted file mode 100755 index 89ab313..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p11667.C +++ /dev/null @@ -1,62 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* -// prms-id: 11667 - -extern "C" int printf(const char *,...); - -template < class T > -class LIST { -public: - - LIST() { nitems = 16; items = new T[nitems]; }; - - LIST(int u) { nitems = u; items = new T[nitems]; }; - - T& operator[](int i) const { - return items[i]; - } - - void grow(int n) { - T* newlist = new T[n]; - T* src = items; - T* dst = newlist; - int i = nitems; - - try { - while (i--) *dst++ = *src++; - } catch (...) { - delete[] newlist; - throw; - } - - if (items) delete[] items; - nitems = n; - items = newlist; - } - -private: - int nitems; - T *items; -}; - -int main(int argc, char **argv) { - int i; - LIST<int> mylist(10); - - printf("Start dumping initial 10 item list\n"); - for (i = 0; i < 10 ; i++) { - mylist[i] = i; - printf("%d\n", mylist[i]); - } - - printf("Growing list to 20\n"); - mylist.grow(20); - - printf("Start dumping grown 20 item list\n"); - for (i = 0; i < 20; i++) { - mylist[i] = i; - printf("%d\n", mylist[i]); - } - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p12306.C b/gcc/testsuite/g++.old-deja/g++.mike/p12306.C deleted file mode 100755 index 12b4a45..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p12306.C +++ /dev/null @@ -1,75 +0,0 @@ -// prms-id: 12306 - -void *ptr1, *ptr2; -int fail = 0; - -extern "C" int printf(const char *...); - -class RWSlist { }; - -class RWSlistIterator { -public: - RWSlist *slist; - RWSlistIterator(RWSlist& s) { } - void toLast() { - if (ptr1 != (RWSlistIterator*)this) - fail = 5; - if (ptr2 != &(*this).slist) - fail = 6; - - if (0) printf("at %x %x\n", (RWSlistIterator*)this, &(*this).slist); - } -}; - -class RWCollectable { -}; - -class RWSlistCollectables : public RWSlist { -public: - RWSlistCollectables() { } - RWSlistCollectables(RWCollectable* a) { } -}; - -class RWIterator { }; - -class RWSlistCollectablesIterator : public RWIterator, public RWSlistIterator { -public: - RWSlistCollectablesIterator(RWSlistCollectables& s) : RWSlistIterator(s) { } -}; - -class Sim_Event_Manager { -public: - RWSlistCollectables scheduled_events_; - RWSlistCollectablesIterator last_posted_event_position_; - Sim_Event_Manager(); - void post_event(); -}; - -Sim_Event_Manager::Sim_Event_Manager () - :last_posted_event_position_(scheduled_events_) -{ -} - -void Sim_Event_Manager::post_event () { - ptr1 = (RWSlistIterator*)&last_posted_event_position_; - ptr2 = &((RWSlistIterator*)&last_posted_event_position_)->slist; - if (0) printf("at %x %x\n", (RWSlistIterator*)&last_posted_event_position_, - &((RWSlistIterator*)&last_posted_event_position_)->slist); - if (ptr1 != (RWSlistIterator*)&last_posted_event_position_) - fail = 1; - if (ptr2 != &((RWSlistIterator&)last_posted_event_position_).slist) - fail = 2; - if (0) printf("at %x ?%x\n", (RWSlistIterator*)&last_posted_event_position_, - &((RWSlistIterator&)last_posted_event_position_).slist); - if (ptr1 != (RWSlistIterator*)&last_posted_event_position_) - fail = 3; - if (ptr2 != &((RWSlistIterator&)last_posted_event_position_).slist) - fail = 4; - last_posted_event_position_.toLast(); -} - -int main(int argc, char **argv) { - Sim_Event_Manager foo; - foo.post_event(); - return fail; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p12306a.C b/gcc/testsuite/g++.old-deja/g++.mike/p12306a.C deleted file mode 100755 index bbcade4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p12306a.C +++ /dev/null @@ -1,35 +0,0 @@ -// prms-id: 12306 -// a net report of the same problem as 12306 - -class a { -public: - int i; -}; - -class g : virtual public a { -}; - -class b : virtual public a { - int j; -}; - -class c : public g, public b { -}; - -class d { -public: - virtual class b* get() {return 0;} -}; - -class f : public d { -public: - virtual class b* get() {return &_c;} - c _c; -}; - -int main(void) { - f D; - b* bp=D.get(); - D._c.i = 42; - return &D._c.i != &bp->i; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p1248.C b/gcc/testsuite/g++.old-deja/g++.mike/p1248.C deleted file mode 100755 index 035e8e1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p1248.C +++ /dev/null @@ -1,28 +0,0 @@ -// GROUPS passed pure-virt -extern "C" { void printf(const char *, ...); } -class Base { -public: - virtual ~Base() =0; -}; - -class Deranged : public Base { -public: - int value; - virtual ~Deranged(); -}; - - -Deranged::~Deranged(){} - -void foo() { - Deranged d; -} - -int main() -{ - foo(); - printf("PASS\n"); - return 0; -} - -Base::~Base () { } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p1567.C b/gcc/testsuite/g++.old-deja/g++.mike/p1567.C deleted file mode 100755 index 0b35bd9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p1567.C +++ /dev/null @@ -1,41 +0,0 @@ -// GROUPS passed vtable -extern "C" int printf (const char *, ...); -extern "C" void exit(int); - -class A { -public: - virtual const char* f1() { return "A::f1"; } - virtual const char* f2() { return "A::f2"; } - virtual const char* f3() { printf("FAIL\n"); exit(1); return "A::f3"; } -}; - -class B { -public: - virtual const char* f2() { return "B::f2"; } - virtual const char* f3() { return "B::f3"; } -}; - -class C: public A, public B { -public: - const char* f2() { return B::f2(); } - const char* f1() { return f2(); } - const char* f3() { return A::f3(); } -}; - -class D: public A, public B { -public: - const char* f2() { return B::f2(); } - const char* f1() { return D :: f2(); } - const char* f3() { return A::f3(); } -}; - -int main() { - C* tempC = new C; - D* tempD = new D; - A* a = tempC; - printf("calling f1 on a C gives %s\n", a->f1()); - a = tempD; - printf("calling f1 on a D gives %s\n", a->f1()); - printf("PASS\n"); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p16146.C b/gcc/testsuite/g++.old-deja/g++.mike/p16146.C deleted file mode 100755 index 070dc2e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p16146.C +++ /dev/null @@ -1,89 +0,0 @@ -// 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 () {}; -}; - -int main () { - firstBase* fbp = new classImplementation; - classImplementation* cip = dynamic_cast <classImplementation*> (fbp); - cip->addRef(); - myFoundation* mfp = cip; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p1862.C b/gcc/testsuite/g++.old-deja/g++.mike/p1862.C deleted file mode 100755 index 401b370..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p1862.C +++ /dev/null @@ -1,62 +0,0 @@ -// GROUPS vtable -extern "C" int printf (const char *, ...); - -class A -{ -public: - virtual ~A(){}; - virtual int type(void) - { - return -1; - } -}; - -class B -{ -public: - virtual ~B(){}; -}; - - -class C0 : public B, public A -{ -public: - virtual int type(void) - { - return 0; - } -}; - -class C1 : public C0 -{ -public: - virtual int type(void) - { - return 1; - } -}; - -class C2 : public C0 -{ -public: - virtual int type(void) - { - return 2; - } -}; - -int main() -{ - C1 *one = new C1; - - if (one->type() == 1) - { - printf ("PASS\n"); - return 0; - } - else - { - printf ("FAIL\n"); - return 1; - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p1989.C b/gcc/testsuite/g++.old-deja/g++.mike/p1989.C deleted file mode 100755 index 7e18869..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p1989.C +++ /dev/null @@ -1,494 +0,0 @@ -// Build don't link: -// prms-id: 1989 - -#define TRUE true -#define FALSE false -typedef void *Pix; - -template<class T> -struct link { - T item; - link *next; - link *prev; - - link(const T& t): item(t), prev(0), next(0) - { }; - link(const T& t, link<T> *p, link<T> *n): item(t), prev(p), next(n) - { }; -}; - -template<class T> -class List_DL { -public: - List_DL(); - List_DL(const List_DL&); - ~List_DL(); - - void append(const T& item); - void prepend(const T& item); - void insert(const T& item, Pix x, bool before); - - void remove(Pix& x) - { T tmp; remove(x, tmp); } - void remove(Pix& x, T& item); - - void clear(); - - unsigned length() const - { return count; } - -private: - - unsigned count; - link<T> *head; - link<T> *tail; - -public: - Pix first() const - { return Pix(head); } - Pix last() const - { return Pix(tail); } - void next(Pix& x) const - { if (0 != x) x = ((link<T> *) x)->next; } - void prev(Pix& x) const - { if (0 != x) x = ((link<T> *) x)->prev; } - T& operator()(Pix x) const - { return ((link<T> *) x)->item; } -}; - -template<class T> -List_DL<T>::List_DL(): -count(0), -head(0) -{ } - -template<class T> -List_DL<T>::List_DL(const List_DL& other): -count(0), -head(0) -{ - for (Pix x=other.first(); 0 != x; other.next(x)) - append(other(x)); -} - -template<class T> -List_DL<T>::~List_DL() -{ - clear(); -} - -template<class T> -void -List_DL<T>::append(const T& item) -{ - count++; - if (0 == head) { - head = new link<T>(item); - tail = head; - } else { - tail->next = new link<T>(item, tail, 0); - tail = tail->next; - } -} - -template<class T> -void -List_DL<T>::prepend(const T& item) -{ - count++; - if (0 == head) { - head = new link<T>(item); - tail = head; - } else { - head = new link<T>(item, 0, head); - if (tail == head) - tail = tail->next; - } -} - -template<class T> -void -List_DL<T>::insert(const T& item, Pix x, bool before = TRUE) -{ - link<T> *l = (link<T> *) x; - - if (before) { - if (0 == l || l == head) { - prepend(item); - } else { - link<T> *n = new link<T>(item, l->prev, l); - l->prev->next = n; - l->prev = n; - } - } else { - if (0 == l || l == tail) { - append(item); - } else { - link<T> *n = new link<T>(item, l, l->next); - l->next->prev = n; - l->prev = n; - } - } -} - -template<class T> -void -List_DL<T>::remove(Pix& x, T& item) -{ - link<T> *l = (link<T> *) x; - - if (0 == l) - return; - - item = l->item; - if (1 == count) { - delete head; - head = 0; - tail = 0; - } else { - // more than one item in the list - if (l == head) { - link<T> *old = head; - head = head->next; - head->prev = 0; - delete old; - } else if (l == tail) { - link<T> *old = tail; - tail = tail->prev; - tail->next = 0; - delete old; - } else { - l->next->prev = l->prev; - l->prev->next = l->next; - delete l; - } - } -} - -template<class T> -void -List_DL<T>::clear() -{ - link<T> *l, *succ; - for (l=head; 0 != l; l=succ) { - succ = l->next; - delete l; - } - head = 0; - tail = 0; -} - -template<class T> -class List_DLS: public List_DL<T> { -public: - List_DLS(): List_DL<T>() - { }; - List_DLS(const List_DLS& other): List_DL<T>(other) - { }; - - bool contains(const T& item) const - { return search(item) != 0 ? TRUE: FALSE; } - Pix search(const T&) const; -}; - -template<class T> -Pix -List_DLS<T>::search(const T& item) const -{ - for (Pix x=first(); 0 != x; next(x)) { - if (item == operator()(x)) // ERROR - const subversion - return x; - } - return 0; -} - -template<class T> -class List_DLSp: public List_DL<T> { -public: - List_DLSp(): List_DL<T>() - { }; - List_DLSp(const List_DLSp& other): List_DL<T>(other) - { }; - - bool contains(const T& item) const -#ifndef INTERNAL_ERROR - ; -#else - { return search(item) != 0 ? TRUE: FALSE; } -#endif - Pix search(const T&) const; -}; - -template<class T> -bool -List_DLSp<T>::contains(const T& item) const -{ - for (Pix x=first(); 0 != x; next(x)) { - if (*item == *operator()(x)) - return TRUE; - } - return FALSE; -} - -template<class T> -class Set { -public: - Set(); - Set(const Set& other); - - virtual void add(const T& item); - - void remove(const T& item) - { Pix x = search(item); remove(x); } - void remove(Pix& x) - { T tmp; remove(x, tmp); } - virtual void remove(Pix& x, T& item); - - virtual void clear(); - - virtual bool contains(const T&) const; - virtual Pix search(const T&) const; - - virtual unsigned length() const; - - virtual Pix first() const; - virtual void next(Pix& x) const; - virtual T& operator()(Pix x) const; -}; - -template<class T> -Set<T>::Set() -{ } - -template<class T> -Set<T>::Set(const Set& other) -{ } - - -template<class T> -class Set_DL: public List_DLS<T> { -public: - Set_DL(); - Set_DL(const Set_DL& other); - - void add(const T& item) - { list.append(item); } - void remove(Pix& x, T& item) - { list.remove(x, item); } - - void clear() - { list.clear(); } - - bool contains(const T& item) const - { return list.contains(item); } - Pix search(const T& item) const - { return list.search(item); } - - unsigned length() const - { return list.length(); } - - Pix first() const - { return list.first(); } - void next(Pix& x) const - { list.next(x); } - T& operator()(Pix x) const - { return list(x); } -private: - List_DLS<T> list; -}; - -template<class T> -class Set_DLp: public List_DLSp<T> { -public: - Set_DLp(); - Set_DLp(const Set_DLp& other); - - void add(const T& item) - { list.append(item); } - void remove(Pix& x, T& item) - { list.remove(x, item); } - - void clear() - { list.clear(); } - - bool contains(const T& item) const - { return list.contains(item); } - Pix search(const T& item) const - { return list.search(item); } - - unsigned length() const - { return list.length(); } - - Pix first() const - { return list.first(); } - void next(Pix& x) const - { list.next(x); } - T& operator()(Pix x) const - { return list(x); } -private: - List_DLSp<T> list; -}; - -template<class T> -struct vertex { - T item; - List_DL<vertex<T> *> fanout; - - vertex(): item(), fanout() // gets bogus error - { }; - vertex(const T& i): item(), fanout() // gets bogus error - { }; -}; - -template<class T> -class Graph { -public: - Graph(); - Graph(const Graph&); - ~Graph(); - - void add(const T& from, const T& to); - bool contains(const T& from, const T& to) const; - - void clear() - { vertices.clear(); } - - unsigned lengthV() const - { return vertices.length(); } - - Pix firstV() const - { return vertices.first(); } - void nextV(Pix& x) const - { vertices.next(x); } - T& V(Pix x) const - { return vertices(x).item; } - - Pix firstV1(Pix vx) const; - void nextV1(Pix vx, Pix& x) const; - T& V1(Pix vx, Pix x) const; -private: - vertex<T> *lookup(const T& from) const; - vertex<T> *lookup_new(const T& from); - - List_DLS<vertex<T> > vertices; -}; - -template<class T> -Graph<T>::Graph(): -vertices() -{ } - -template<class T> -Graph<T>::Graph(const Graph& other): -vertices() -{ - for (Pix vx=firstV(); 0 != vx; nextV(vx)) { - for (Pix vx1=firstV1(vx); 0 != vx1; nextV1(vx, vx1)) { - add(V(vx), V1(vx, vx1)); - } - } -} - -template<class T> -Graph<T>::~Graph() -{ - clear(); -} - -template<class T> -void -Graph<T>::add(const T& from, const T& to) -{ - vertex<T> *fromv = lookup_new(from); - if (from == to) - return; - vertex<T> *tov = lookup_new(to); - fromv->fanout.append(tov); -} - -template<class T> -bool -Graph<T>::contains(const T& from, const T& to) const -{ - vertex<T> *fromv = lookup(from); - if (0 == fromv) - return FALSE; - - for (Pix x=fromv->fanout.first(); 0 != x; fromv->fanout.next(x)) { - if (fromv->fanout(x)->item == to) - return TRUE; - } - - return FALSE; -} - -template<class T> -vertex<T> * -Graph<T>::lookup(const T& from) const -{ - for (Pix x=vertices.first(); 0 != x; vertices.next(x)) { - if (vertices(x).item == from) - return &vertices(x); - } - return 0; -} - -template<class T> -vertex<T> * -Graph<T>::lookup_new(const T& from) -{ - vertex<T> *v = lookup(from); - if (0 == v) { - vertices.append(from); - return &vertices(vertices.last()); - } - return v; -} - -template<class T> -Pix -Graph<T>::firstV1(Pix vx) const -{ - vertex<T> *v = (vertex<T> *) vx; - return v->fanout.first(); -} - -template<class T> -void -Graph<T>::nextV1(Pix vx, Pix& x) const -{ - vertex<T> *v = (vertex<T> *) vx; - return v->fanout.next(x); -} - -template<class T> -T& -Graph<T>::V1(Pix vx, Pix x) const -{ - vertex<T> *v = (vertex<T> *) vx; - static T x1; - return x1; -} - -class STRLIdentifier; - -extern int x(List_DL<STRLIdentifier *>); -extern int x(List_DLS<STRLIdentifier *>); - -extern int x(Set<STRLIdentifier *>); -extern int x(Set_DL<STRLIdentifier *>); -extern int x(Set_DLp<STRLIdentifier *>); - -extern int x(Graph<STRLIdentifier *>); - -class STRLIdentifier { - char buf[10]; -}; - -extern int operator==(vertex<STRLIdentifier*>&, vertex<STRLIdentifier*>&); // ERROR - const subversion -extern int operator==(STRLIdentifier&, STRLIdentifier&); // ERROR - fn ref in err msg - -extern int x(List_DLSp<STRLIdentifier *>); - -template class Graph<STRLIdentifier *>; -template class List_DLS<vertex<STRLIdentifier *> >; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p2394.C b/gcc/testsuite/g++.old-deja/g++.mike/p2394.C deleted file mode 100755 index ce335c4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p2394.C +++ /dev/null @@ -1,36 +0,0 @@ -// prms-id: 2394 - -class Foo { - public: - int x; - int y; - Foo(int i, int j) { x = i; y = j; } -} foo(10, 11); - -class Wasted { int unsed; }; - -class Bar : Wasted, public Foo { -public: - Bar() : Foo(12, 13) { } -} bar; - -int -test0() { - int Foo::* pmi = &Foo::y; - return (int)(foo.*pmi); -} - -int -test1() { - int Foo::* pmi = &Foo::y; - return (int)(bar.*pmi); -} - -int -main() { - if (test0() != 11) - return 1; - if (test1() != 13) - return 2; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p2431.C b/gcc/testsuite/g++.old-deja/g++.mike/p2431.C deleted file mode 100755 index 17a76fa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p2431.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: -// GROUPS passed infinite_loop -class A -{ - public: - A(A &); // ERROR - candidates are -}; - -class B -{ - public: - operator A (); -}; - -class C -{ - public : - C() - { - B b; - A a = b;// ERROR - - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p2573.C b/gcc/testsuite/g++.old-deja/g++.mike/p2573.C deleted file mode 100755 index 9e3ddee..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p2573.C +++ /dev/null @@ -1,14 +0,0 @@ -// prms-id: 2573 - -class X { -public: - int key(); - virtual int vkey(); - char *add(); -}; - -char *X::add() { - char *f1 = (char *) &key; // ERROR - - char *f2 = (char *) &vkey; // ERROR - - return f1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p2736.C b/gcc/testsuite/g++.old-deja/g++.mike/p2736.C deleted file mode 100755 index 7a04051..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p2736.C +++ /dev/null @@ -1,28 +0,0 @@ -// This is a poor test case, it is meant to ensure that function local -// statics are destroyed at the right time. See PR 2736 for details. -// prms-id: 2736 - -int count; - -struct A { - int which; - A(int i) :which(i) { - // printf("ctor %x\n", this); - } - ~A() { - // printf("dtor %x\n", this); - if (++count != which) - abort (); - } -}; - -void -foo() { - static A a(1); -} - -A a(2); - -int main() { - foo(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p2746.C b/gcc/testsuite/g++.old-deja/g++.mike/p2746.C deleted file mode 100755 index fdc37d1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p2746.C +++ /dev/null @@ -1,156 +0,0 @@ -// Build don't link: -// GROUPS passed scope pt -class Link { -public: - Link(); - Link(Link *); -private: - Link *next_; - -friend class IListBase; -friend class IListIterBase; -}; - -inline -Link::Link() : next_(0) -{ -} - -inline -Link::Link(Link *next) : next_(next) -{ -} - -class IListBase { -public: - IListBase(); - IListBase(Link *); - void append(Link *); - void insert(Link *); - Link *head(); - int empty(); - Link *get(); - void remove(Link *); -private: - Link *head_; -friend class IListIterBase; -}; - -inline -IListBase::IListBase() : head_(0) -{ -} - -inline -IListBase::IListBase(Link *head) : head_(head) -{ -} - -inline -void IListBase::insert(Link *p) -{ - p->next_ = head_; - head_ = p; -} - -inline -Link *IListBase::head() -{ - return head_; -} - -inline -int IListBase::empty() -{ - return head_ == 0; -} - -inline -Link *IListBase::get() -{ - Link *tem = head_; - head_ = head_->next_; - return tem; -} - -template<class T> class IListIter; - -template<class T> -class IList : private IListBase { -public: - IList() { } - IList(T *p) : IListBase(p) { } - ~IList(); - void append(T *p) { IListBase::append(p); } - void insert(T *p) { IListBase::insert(p); } - void remove(T *p) { IListBase::remove(p); } - T *head() { return (T *)IListBase::head(); } - T *get() { return (T *)IListBase::get(); } - IListBase::empty; -friend class IListIter<T>; -}; - -template<class T> -IList<T>::~IList() -{ - while (!empty()) - delete get(); -} - -class IListIterBase { -public: - IListIterBase(const IListBase &); - int done(); - Link *cur(); - void next(); -private: - Link *p_; -}; - -inline -IListIterBase::IListIterBase(const IListBase &list) : p_(list.head_) -{ -} - -inline -int IListIterBase::done() -{ - return p_ == 0; -} - -inline -Link *IListIterBase::cur() -{ - return p_; -} - -inline -void IListIterBase::next() -{ - p_ = p_->next_; -} - - -template<class T> -class IListIter : private IListIterBase { -public: - IListIter(const IList<T> &list) : IListIterBase(list) { } - T *cur() { return (T *)IListIterBase::cur(); } - IListIterBase::next; - IListIterBase::done; -}; - - -struct A { - IList<Link> list; - int x; - void foo(); -}; - - -void A::foo() -{ - for (IListIter<Link> iter(list); !iter.done(); iter.next()) - ; - x = 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p2793.C b/gcc/testsuite/g++.old-deja/g++.mike/p2793.C deleted file mode 100755 index 73bf23f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p2793.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// prms-id: 2793 - -void f(char&) { // ERROR - referenced by error below - f('c'); // ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p2806.C b/gcc/testsuite/g++.old-deja/g++.mike/p2806.C deleted file mode 100755 index 401b5ec..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p2806.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed -template<class T> -class List -{ - public: - List(); - void f() const; -}; - -template<class T> -void List<T>::f() const -{ -} - -void func() -{ - List<int> list; - list.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p2846.C b/gcc/testsuite/g++.old-deja/g++.mike/p2846.C deleted file mode 100755 index b9a44c4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p2846.C +++ /dev/null @@ -1,55 +0,0 @@ -// prms-id: 2846 - -extern "C" int printf(const char *, ...); -extern "C" void exit(int); - -class A; -class B; - -class A { -public: - - A(void){} - A(const A&){} - A(const B&); - - virtual ~A(void){} - - virtual void print(void) const { - printf("A::print\n"); - printf("FAIL\n"); - exit(1); - } - B compute(void) const; -}; - -class B : private A { -friend class A; -public: - - virtual ~B(void){} - - void print(void) const { - printf("B::print\n"); - } - -private: - B(const A& x, int){} -}; - -A::A(const B& s) { - s.print(); -} - -B A::compute(void) const { - B sub(*this, 1); - return sub; -} - -int main () -{ - A titi; - A toto = titi.compute(); - printf("PASS\n"); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p2846a.C b/gcc/testsuite/g++.old-deja/g++.mike/p2846a.C deleted file mode 100755 index 8606e42..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p2846a.C +++ /dev/null @@ -1,34 +0,0 @@ -// Shows that problem of initializing one object's vtable pointer from -// another object's vtable pointer when doing a default copy of it -// and the vtable pointer involved is the main one. - -// Correct answer is B::print. -// g++ prints D::print, which is wrong. Cfront gets is right. - -// prms-id: 2846 - -extern "C" int printf(const char *, ...); -extern "C" void exit(int); - -class B { -public: - virtual void print(void) const { printf("B::print\n"); } -}; - -class D : public B { -public: - void print(void) const { printf("D::print\n"); exit(1); } - B compute(void) const; -}; - -B D::compute(void) const -{ - B sub(*(B*)this); - return sub; -} - -int main () { - D titi; - titi.compute().print(); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p2846b.C b/gcc/testsuite/g++.old-deja/g++.mike/p2846b.C deleted file mode 100755 index acba70d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p2846b.C +++ /dev/null @@ -1,52 +0,0 @@ -// Shows that problem of initializing one object's secondary base from -// another object via a user defined copy constructor for that base, -// the pointer for the secondary vtable is not set after implicit -// copying of the outer class, but rather has the pointer to the main -// vtable for the secondary base left over from the user defined copy -// constructor for that base. - -// Correct answer is B::beefy. -// g++ prints A::beefy, which is wrong. Cfront gets it right. - -// prms-id: 2846 - -extern "C" int printf(const char *, ...); -extern "C" void exit(int); - -class B; - -class A { - public: - - A(void){} - A(const A&){} - - virtual void print(void) const { } - B compute(void) const; -}; - -class C { -public: - C() { } - C(C& o) { } // with it, things are wrong, without it, they're ok - virtual void beefy(void) const { printf("A::beefy\n"); exit(1); } -}; - -class B : private A, public C { -public: - B(const A& x, int){} - void beefy(void) const { printf("B::beefy\n"); } -}; - -B A::compute(void) const -{ - B sub(*this, 1); - return sub; -} - -int main () -{ - A titi; - titi.compute().beefy(); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p2855.C b/gcc/testsuite/g++.old-deja/g++.mike/p2855.C deleted file mode 100755 index 9c99bd7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p2855.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// Special g++ Options: -Wcast-qual -// prms-id: 2855 - -class Ctest { -private: - char* data; -public: - operator const char *() const; -}; - -Ctest::operator const char *() const -{ - return data; -} -int main() -{ - Ctest obj; - char* temp = (char *)obj; // WARNING - - temp[0] = '\0'; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p2960.C b/gcc/testsuite/g++.old-deja/g++.mike/p2960.C deleted file mode 100755 index 4206e75..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p2960.C +++ /dev/null @@ -1,30 +0,0 @@ -// prms-id: 2960 - -extern "C" int printf(const char *, ...); - -class Test0 { -public: - virtual void f0() { } // works fine if this virtual removed -}; - -class Test1 : public Test0 { -public: - void f1() { f2(); } // generates bus error here - virtual void f2() { printf("Test1::f2\n"); } -}; - -class Test2 { -public: - virtual void f3() { } -}; - -class Test3 : public Test2, public Test1 { // works fine if Test1 first -public: - virtual ~Test3() { f1(); } // calling f2 directly works - virtual void f2() { printf("Test3::f2\n"); } -}; - -int main() { - Test3 t3; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p3041.C b/gcc/testsuite/g++.old-deja/g++.mike/p3041.C deleted file mode 100755 index fd83eaf..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p3041.C +++ /dev/null @@ -1,33 +0,0 @@ -// prms-id: 3041 - -class A { -public: - A() { } - virtual void a() = 0; - static int b(A * p) { - p->a(); - return 1; - } -}; - -class B : virtual public A { -public: - B() { - static int installed = b(this); - } - void a() { } -}; - -class C : virtual public B { -public: - C() { - static int installed = b(this); - } - void a() { } -}; - -int main() -{ - C c; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p3060c.C b/gcc/testsuite/g++.old-deja/g++.mike/p3060c.C deleted file mode 100755 index e26b802..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p3060c.C +++ /dev/null @@ -1,23 +0,0 @@ -// A new problem with my pointer to member function work. -// Build don't link: -// prms-id: 3060 - -class Foo -{ - public: - int x; - int y; - Foo (int i, int j) { x = i; y = j; } - operator int (); -}; - -int Foo::operator int() { return x; } // WARNING - can't specify return type - -Foo foo(10, 11); - -int -main() -{ - int Foo::* pmi = &Foo::y; - return foo.*pmi; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p3060d.C b/gcc/testsuite/g++.old-deja/g++.mike/p3060d.C deleted file mode 100755 index 5cf4fdd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p3060d.C +++ /dev/null @@ -1,34 +0,0 @@ -// This is a test case to make sure the explicit cast on a pointer to -// a member function works ok. -// prms-id: 3060 - -extern "C" int printf(const char *, ...); - -class Object; - -typedef void (Object::*VoidObjMemberFunc)(Object *, ...); - -class Object { -public: - int foo; -}; - -class Clipper: public Object { -public: - int bar; - void Feedback(Object*, void*); -}; -void Clipper::Feedback(Object *tracker, void *ap) { - printf("Doing feedback\n"); -} - -void vfunc(VoidObjMemberFunc of, Object *op, void *v1) { - (op->*of)(op, v1); -} - -int main() { - Object o; - - vfunc((VoidObjMemberFunc)&Clipper::Feedback, &o, 0); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p3068.C b/gcc/testsuite/g++.old-deja/g++.mike/p3068.C deleted file mode 100755 index 2436c8b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p3068.C +++ /dev/null @@ -1,60 +0,0 @@ -// prms-id: 3068 - -extern "C" int printf(const char *, ...); -extern "C" void exit(int); - -class LB { -public: - virtual int test() { return 0; } - virtual ~LB() { } -protected: - LB() { } -}; - -class RRB { -public: - virtual ~RRB() { } - virtual void test2(int a) { } -}; - -class RR : public RRB { -public: - virtual ~RR() { } -}; - -class RL { -public: - virtual void real(int a) { - printf("RL::real\n"); - } -}; - - -class R : public RL, public RR { -public: - virtual void test3(int a) { } - virtual void test2(int a) { } -}; - -class L : public LB { -}; - -class C : public L, public R { -public: - C() { } - virtual ~C() { - printf("C::~C\n"); - exit(1); - } - virtual void real(int a) { - printf("RL::real\n"); - } -}; - -int main() { - C& bb = *new C; - R& mv = bb; - bb.real(0); - mv.real(0); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p3070.C b/gcc/testsuite/g++.old-deja/g++.mike/p3070.C deleted file mode 100755 index c927873..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p3070.C +++ /dev/null @@ -1,32 +0,0 @@ -// Build don't link: -// Caused an Internal Compiler Error. Works now. -// prms-id: 3070 - -class Object { -public: - virtual ~Object() {} -}; - -class BaseView { -protected: - virtual void _forwardReceiveUpdate() = 0; -}; - - -class View : public BaseView { -public: - virtual ~View(); -}; - -class TestViewBaseUpdate { -protected: - virtual void _receiveUpdate(); -}; - -class TestViewBase : public TestViewBaseUpdate, private View { -}; - -class TestView : public Object, public TestViewBase { -protected: - virtual void _receiveUpdate(); -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p3139.C b/gcc/testsuite/g++.old-deja/g++.mike/p3139.C deleted file mode 100755 index 192fa72..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p3139.C +++ /dev/null @@ -1,25 +0,0 @@ -// prms-id: 3139 - -extern "C" int printf(const char *, ...); - -class A { - public: - A() { } - virtual int a() = 0; -}; - -class B : virtual public A { - public: - virtual int a() = 0; -}; - -class C : public B { - public: - int a() { return 42; } -}; - -int main() { - B * b = new C; - printf("%d.\n", b->a()); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p3524a.C b/gcc/testsuite/g++.old-deja/g++.mike/p3524a.C deleted file mode 100755 index 0995f35..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p3524a.C +++ /dev/null @@ -1,25 +0,0 @@ -// Make sure we can initialize a reference to a templated type, that -// requires a conversion from a derived type to a base type. - -// Build don't link: -// prms-id: 3524 - -struct cc2Vector -{}; - -template <class T> -struct ccPair -{ - ccPair (const cc2Vector&); -}; - -struct ccLine : cc2Vector -{ - double distToPoint (const ccPair <float> &); -}; - -void foo () -{ - ccLine l2; - l2.distToPoint (l2); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p3524b.C b/gcc/testsuite/g++.old-deja/g++.mike/p3524b.C deleted file mode 100755 index c645d4c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p3524b.C +++ /dev/null @@ -1,21 +0,0 @@ -// Make sure we can cast to a templated type, that requires a conversion by -// constructor, from a derived type to a base type. - -// Build don't link: -// prms-id: 3524 - -template <class T> -struct ccPair { - ccPair () { } -}; - -template <class T> -struct ccO : ccPair<T> { - ccO () { } -}; - -void foo () -{ - ccO<float> r; - (ccPair<float>)r; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p3524c.C b/gcc/testsuite/g++.old-deja/g++.mike/p3524c.C deleted file mode 100755 index d901e19..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p3524c.C +++ /dev/null @@ -1,15 +0,0 @@ -// Make sure we can cast to a templated type, that requires a conversion by -// constructor, from a non-aggregate type. - -// Build don't link: -// prms-id: 3524 - -template <class T> -struct ccPair { - ccPair (int i) { } -}; - -void foo () -{ - (ccPair<float>)1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p3538a.C b/gcc/testsuite/g++.old-deja/g++.mike/p3538a.C deleted file mode 100755 index ea1a6cc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p3538a.C +++ /dev/null @@ -1,33 +0,0 @@ -// Build don't link: -// This tests for the compiler_error in binfo_value. -// prms-id: 3538 - -class ccObjectInfo -{ -public: - virtual const ccObjectInfo& repInvariant (int); -}; - -template<class T> -class ccHandle : public ccObjectInfo -{ -protected: - T* p; -public: - virtual const ccObjectInfo& repInvariant (int); -}; - -template <class T> -const ccObjectInfo& ccHandle<T>::repInvariant (int) -{ return p->ri(1); } - -class ccHandleBase : public ccObjectInfo -{}; - -class cc_CircleHdl : public virtual ccHandleBase, public ccObjectInfo -{ -public: - virtual const ccObjectInfo& ri (int); -}; // WARNING - - -class ccCircleHdl : public ccHandle <cc_CircleHdl> {}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p3538b.C b/gcc/testsuite/g++.old-deja/g++.mike/p3538b.C deleted file mode 100755 index 4dcd60b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p3538b.C +++ /dev/null @@ -1,35 +0,0 @@ -// Build don't link: -// prms-id: 3538 - -// This tests for an ambiguous conversion of the this pointer (going -// down to DECL_CONTEXT of a FUNCTION_DECL. - -class ccObjectInfo -{ -public: - virtual const ccObjectInfo& repInvariant (int); -}; - -template<class T> -class ccHandle : public ccObjectInfo -{ -protected: - T* p; -public: - virtual const ccObjectInfo& repInvariant (int); -}; - -template <class T> -const ccObjectInfo& ccHandle<T>::repInvariant (int) -{ return p->repInvariant(1); } - -class ccHandleBase : public ccObjectInfo -{}; - -class cc_CircleHdl : public virtual ccHandleBase, public ccObjectInfo -{ -public: - virtual const ccObjectInfo& repInvariant (int); -}; // WARNING - - -class ccCircleHdl : public ccHandle <cc_CircleHdl> {}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p3570.C b/gcc/testsuite/g++.old-deja/g++.mike/p3570.C deleted file mode 100755 index 1213a96..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p3570.C +++ /dev/null @@ -1,29 +0,0 @@ -// prms-id: 3570 - -extern "C" int printf(const char *, ...); - -struct A { - void print() {printf("A");}; -}; - -struct B : A { - typedef A superB; - void print() {superB::print(); printf("B");}; -}; - -struct C : B { - typedef B superC; - void print() {superC::print(); printf("C");}; -}; - -int main () -{ - A a; - B b; - C c; - - a.print(); printf("\n"); - b.print(); printf("\n"); - c.print(); printf("\n"); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p3579.C b/gcc/testsuite/g++.old-deja/g++.mike/p3579.C deleted file mode 100755 index d960599..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p3579.C +++ /dev/null @@ -1,39 +0,0 @@ -// prms-id: 3579 - -extern "C" int printf(const char *, ...); - -int num_x; - -class Y { -public: - Y () { printf("Y() this: %x\n", this); } - ~Y () { printf("~Y() this: %x\n", this); } -}; - -class X { -public: - X () { - ++num_x; - printf("X() this: %x\n", this); - Y y; - *this = (X) y; - } - - X (const Y & yy) { printf("X(const Y&) this: %x\n", this); ++num_x; } - X & operator = (const X & xx) { - printf("X.op=(X&) this: %x\n", this); - return *this; - } - - ~X () { printf("~X() this: %x\n", this); --num_x; } -}; - -int main (int, char **) { - { X anX; } - if (num_x) { - printf("FAIL\n"); - return 1; - } - printf("PASS\n"); - return 0; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p3708.C b/gcc/testsuite/g++.old-deja/g++.mike/p3708.C deleted file mode 100755 index cda1108..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p3708.C +++ /dev/null @@ -1,86 +0,0 @@ -// prms-id: 3708 - -extern "C" void printf (char *, ...); -extern "C" int atoi (char *); - -void *ptr; - -class A { -public: - A() { printf ("A is constructed.\n"); } - virtual void xx(int doit) { printf ("A is destructed.\n"); } -}; - -class A1 { -public: - A1() { printf ("A1 is constructed.\n"); } - virtual void xx(int doit) { printf ("A1 is destructed.\n"); } -}; - -class B : public virtual A, public A1 { -public: - B() { printf ("B is constructed.\n"); } - virtual void xx(int doit) { - printf ("B is destructed.\n"); - A1::xx (1); - if (doit) A::xx (1); - } -}; - -int num; - -class C : public virtual A, public B { -public: - C() { ++num; printf ("C is constructed.\n"); - ptr = this; - } - virtual void xx(int doit) { - --num; - if (ptr != this) - printf("FAIL\n%x != %x\n", ptr, this); - printf ("C is destructed.\n"); - B::xx (0); - if (doit) A::xx (1); - } -}; - -void fooA(A *a) { - printf ("Casting to A!\n"); - a->xx (1); -} -void fooA1(A1 *a) { - printf ("Casting to A1!\n"); - a->xx (1); -} - -void fooB(B *b) { - printf ("Casting to B!\n"); - b->xx (1); -} - -void fooC(C *c) { - printf ("Casting to C!\n"); - c->xx (1); -} - -int main(int argc, char *argv[]) { - printf ("*** Construct C object!\n"); - C *c = new C(); - - int i = 0; - - printf ("*** Try to delete the casting pointer!\n"); - switch (i) - { - case 0: fooA1(c); - break; - case 1: fooA(c); - break; - case 2: fooB(c); - break; - case 3: fooC(c); - break; - } - - return num!=0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p3708a.C b/gcc/testsuite/g++.old-deja/g++.mike/p3708a.C deleted file mode 100755 index 03fd1a1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p3708a.C +++ /dev/null @@ -1,86 +0,0 @@ -// prms-id: 3708 - -extern "C" void printf (char *, ...); -extern "C" int atoi (char *); - -void *ptr; - -class A { -public: - A() { printf ("A is constructed.\n"); } - virtual void xx(int doit) { printf ("A is destructed.\n"); } -}; - -class A1 { -public: - A1() { printf ("A1 is constructed.\n"); } - virtual void xx(int doit) { printf ("A1 is destructed.\n"); } -}; - -class B : public A1, public virtual A { -public: - B() { printf ("B is constructed.\n"); } - virtual void xx(int doit) { - printf ("B is destructed.\n"); - A1::xx (1); - if (doit) A::xx (1); - } -}; - -int num; - -class C : public virtual A, public B { -public: - C() { ++num; printf ("C is constructed.\n"); - ptr = this; - } - virtual void xx(int doit) { - --num; - if (ptr != this) - printf("FAIL\n%x != %x\n", ptr, this); - printf ("C is destructed.\n"); - B::xx (0); - if (doit) A::xx (1); - } -}; - -void fooA(A *a) { - printf ("Casting to A!\n"); - a->xx (1); -} -void fooA1(A1 *a) { - printf ("Casting to A1!\n"); - a->xx (1); -} - -void fooB(B *b) { - printf ("Casting to B!\n"); - b->xx (1); -} - -void fooC(C *c) { - printf ("Casting to C!\n"); - c->xx (1); -} - -int main(int argc, char *argv[]) { - printf ("*** Construct C object!\n"); - C *c = new C(); - - int i = 0; - - printf ("*** Try to delete the casting pointer!\n"); - switch (i) - { - case 0: fooA1(c); - break; - case 1: fooA(c); - break; - case 2: fooB(c); - break; - case 3: fooC(c); - break; - } - - return num!=0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p3708b.C b/gcc/testsuite/g++.old-deja/g++.mike/p3708b.C deleted file mode 100755 index 4251007..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p3708b.C +++ /dev/null @@ -1,85 +0,0 @@ -// prms-id: 3708 - -extern "C" void printf (char *, ...); -extern "C" void exit(int); - -void *ptr; - -class A { -public: - A() { printf ("A is constructed.\n"); } - virtual void xx(int doit) { printf ("A is destructed.\n"); } -}; - -class A1 { -public: - A1() { printf ("A1 is constructed.\n"); } - virtual void xx(int doit) { printf ("A1 is destructed.\n"); } -}; - -class B : public virtual A, public A1 { -public: - B() { printf ("B is constructed.\n"); } - virtual void xx(int doit) { - printf ("B is destructed.\n"); - A1::xx (1); - if (doit) A::xx (1); - } -}; - -int num; - -class C : public virtual A { -public: - C() { printf ("C is constructed.\n"); - } - virtual void xx(int doit) { - printf ("C is destructed.\n"); - if (doit) A::xx (1); - } -}; - -class D : public C, public B { -public: - D() { ++num; printf ("D is constructed.\n"); - ptr = this; - } - virtual void xx(int doit) { - --num; - if (ptr != this) { - printf("FAIL\n%x != %x\n", ptr, this); - exit(1); - } - printf ("D is destructed.\n"); - C::xx (0); - B::xx (0); - } -}; - -void fooA(A *a) { - printf ("Casting to A!\n"); - a->xx (1); -} -void fooA1(A1 *a) { - printf ("Casting to A1!\n"); - a->xx (1); -} - -void fooB(B *b) { - printf ("Casting to B!\n"); - b->xx (1); -} - -void fooC(C *c) { - printf ("Casting to C!\n"); - c->xx (1); -} - -int main(int argc, char *argv[]) { - printf ("*** Construct D object!\n"); - D *d = new D(); - - printf ("*** Try to delete the casting pointer!\n"); - fooA1(d); - return num!=0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p3764.C b/gcc/testsuite/g++.old-deja/g++.mike/p3764.C deleted file mode 100755 index d052755..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p3764.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: -// prms-id: 3764 - -class Menu; -class MenuItem; - -class MenuAction { -public: - virtual void execute (Menu& menu, MenuItem& menuItem) = 0; -protected: - MenuAction () {} -}; - -class Test { - class MenuCBA : public MenuAction { - public: - typedef void (Test::* MenuCBA_Member) (Menu& menu, MenuItem& menuItem) ; - MenuCBA(Test& instance, MenuCBA_Member member) - : _instance(&instance), _member(member) { } - void execute(Menu& menu, MenuItem& menuItem); - private: - MenuCBA_Member _member; - Test *_instance; - }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p3836.C b/gcc/testsuite/g++.old-deja/g++.mike/p3836.C deleted file mode 100755 index c62530f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p3836.C +++ /dev/null @@ -1,14 +0,0 @@ -// prms-id: 3836 - -void f(int &i) { // ERROR - ref line - i = 10; -} - -int main() -{ - int i=1, j=2; - f(i); - f((int)j); // ERROR - passing in to non-const - if (j != 2) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p4068.C b/gcc/testsuite/g++.old-deja/g++.mike/p4068.C deleted file mode 100755 index fbdf02e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p4068.C +++ /dev/null @@ -1,22 +0,0 @@ -// prms-id: 4068 - -struct A { - A(); - typedef void (A::*F)(); - void d(); - void foo() { } - F& f() { return f_; } - F f_; -}; - -A::A() : f_(&A::foo) { -} - -void A::d() { - (this->*(f()))(); -} - -int main() { - A a; - a.d(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p4104.C b/gcc/testsuite/g++.old-deja/g++.mike/p4104.C deleted file mode 100755 index 7559034..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p4104.C +++ /dev/null @@ -1,15 +0,0 @@ -// prms-id: 4104 - -template <class T> -void F(T &a, void (*P)(T &temp)) { - (*P)(a); -} - -template <class T> -void G(T &a) { -} - -int main() { - int a; - F(a, G); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p4173.C b/gcc/testsuite/g++.old-deja/g++.mike/p4173.C deleted file mode 100755 index 7d07ffd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p4173.C +++ /dev/null @@ -1,26 +0,0 @@ -// This error happens because lvalue is not done well in the C++ front-end. -// NOPs should be lvalues if their arguments are. -// NON_LVALUE_EXPRs shouldn't be. - -// Special g++ Options: -Wall -ansi -pedantic-errors -// Build don't link: -// prms-id: 4173 - -enum TypeKind { - RecordTypeKind -}; -struct Type -{ - enum TypeKind kind : 8; - unsigned char prefixLen; -}; - -Type a; -Type b; -TypeKind c; - -int -main() { - a.kind = b.kind = c; - (a.kind = c) = b.kind; // gets bogus error -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p418.C b/gcc/testsuite/g++.old-deja/g++.mike/p418.C deleted file mode 100755 index 6e868c7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p418.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -// prms-id: 418 - -class Base { -public: - int foo; -}; - -class Derived : public Base { -public: - int bar; -}; - -void func(Base&); // ERROR - referenced by error below - -void func2(const Derived& d) { - func(d); // ERROR - should be error because of const -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p4238.C b/gcc/testsuite/g++.old-deja/g++.mike/p4238.C deleted file mode 100755 index 2499a6d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p4238.C +++ /dev/null @@ -1,7 +0,0 @@ -// This showed a problem with default op= -// Build don't link: -// prms-id: 4238 - -struct sigcontext { - int sc_wbuf[31][25]; -}; // gets bogus error - default op= seems broken diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p4246.C b/gcc/testsuite/g++.old-deja/g++.mike/p4246.C deleted file mode 100755 index a610f70..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p4246.C +++ /dev/null @@ -1,48 +0,0 @@ -// prms-id: 4246 - -extern "C" void abort (); -int num_d; - -class A -{ - public: - A() { } - virtual ~A() { } - virtual void id() { } -}; - -class B -{ - public: - B() { } - virtual ~B() { } - virtual void id() { } -}; - -class C : public A, public B -{ - public: - C() { } - virtual ~C() { } - void id() { abort(); } -}; - -class D : public C -{ - public: - D() { ++num_d; } - virtual ~D() { -- num_d; } - void id() { } -}; - -int main() -{ - D* dp2 = new D; - ((B*)dp2)->id(); - delete (B*) dp2; - - B* bp1 = new D; - bp1->id(); - delete bp1; - return num_d != 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p4263.C b/gcc/testsuite/g++.old-deja/g++.mike/p4263.C deleted file mode 100755 index 65d5150..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p4263.C +++ /dev/null @@ -1,14 +0,0 @@ -// prms-id: 4263 - -enum OT {A_type, B_Type}; -enum AT {A, B}; - -/* These are not ok. */ -OT t = A; // ERROR - -OT e2 = 1; // ERROR - -OT e3 = 1.1; // ERROR - - -/* These are ok. */ -int i = A; -double d = A; -OT e4 = A_type; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p438.C b/gcc/testsuite/g++.old-deja/g++.mike/p438.C deleted file mode 100755 index 9afab63..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p438.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: -// prms-id: 438 - -class D; - -class C -{ - public: - void test() const; -}; - -class D -{ - public: - void a(C& b); // ERROR - referenced below -}; - -void C::test() const -{ - D d; - - d.a(*this); // ERROR - *this is const, so should get error -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p4484.C b/gcc/testsuite/g++.old-deja/g++.mike/p4484.C deleted file mode 100755 index 64aab16..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p4484.C +++ /dev/null @@ -1,26 +0,0 @@ -// Build don't link: -// prms-id: 4484 - -class A { - char buf[64]; -}; - -typedef void (A::*pmf)(); -typedef void (A::*pmfc)() const; - -pmfc p = (pmfc)(pmf)0; - -class B { -}; - -class D : public A, public B { -}; - -typedef int (B::*bmfp)(); -typedef int (D::*dmfp)(); - -bmfp foo; - -void bar(dmfp a) { - bar(foo); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p4511.C b/gcc/testsuite/g++.old-deja/g++.mike/p4511.C deleted file mode 100755 index e8555da..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p4511.C +++ /dev/null @@ -1,33 +0,0 @@ -// prms-id: 4511 - -int bad; - -class A { -public: - virtual void dummy (){}; -}; - -class B { -public: - virtual void f(void) = 0; -}; - -class C : public A, public B { -public: - void f(void) { bad=1; }; -}; - -class D : public C { -public: - void f(void) { }; -}; - -class E : public D { }; - -int main() { - E e; - e.f(); - E * ep = &e; - ep->f(); - return bad; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p4619.C b/gcc/testsuite/g++.old-deja/g++.mike/p4619.C deleted file mode 100755 index 8b77258..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p4619.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// prms-id: 4619 - -int main() { - int i = 3; - int (*p)[10] = new int [20][10]; - int (*p1)[5][7][13][10] = new int [i][5][7][13][10]; - delete [] p1; - delete [] p; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p4623.C b/gcc/testsuite/g++.old-deja/g++.mike/p4623.C deleted file mode 100755 index 00ab576..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p4623.C +++ /dev/null @@ -1,35 +0,0 @@ -// prms-id: 4623 - -class base { -public: - int b_data; - base( int i=0 ) { b_data = i; } - void b_print() { } -}; - -class base1: virtual public base { -public: - int b1_data; - base1( int i = 0 ) { b1_data = i; b_data++; } - void b1_print() { } -}; - -class base2: virtual public base { -public: - int b2_data; - base2( int i = 0 ) { b2_data = i; b_data++; } - void b2_print() { } -}; - -class base3: public base {}; - -class derived: public base3, public base1, public base2 { -public: - int d_data; - derived( int i ) { d_data = i; base3::b_data++; } - void d_print() { } -}; - -int main() { - derived d(1); d.d_print(); return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p4667.C b/gcc/testsuite/g++.old-deja/g++.mike/p4667.C deleted file mode 100755 index 751a566..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p4667.C +++ /dev/null @@ -1,31 +0,0 @@ -// prms-id: 4667 - -int counter = 0; -int a = 0; -int b = 0; -int c = 0; - -struct A { - A() { a = counter++; } -}; - -struct B { - B() { b = counter++; } -}; - -struct C : public virtual B { - C() { c = counter++; } -}; - -struct D : public virtual A, public virtual C { }; - -extern "C" int printf(const char*,...); -int main(void) { - D d; - - if (!(a == 0 && b == 1 && c == 2)) { - return 1; - } - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p4671.C b/gcc/testsuite/g++.old-deja/g++.mike/p4671.C deleted file mode 100755 index 68f3ee1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p4671.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// prms-id: 4671 - -class ccUnwind { -public: - virtual void _c_getInfo() const; - virtual ~ccUnwind (); -}; -class ccTransmittable { -public: - virtual ~ccTransmittable(); -}; -class ccCommand : public ccUnwind, public ccTransmittable { -}; -class foo : public ccCommand { -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p4677.C b/gcc/testsuite/g++.old-deja/g++.mike/p4677.C deleted file mode 100755 index 463033c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p4677.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// prms-id: 4677 - -struct A { - A(double d) { } -}; - -struct B { B(A) { } } bad = 1; // ERROR - -B good (1); diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p4693.C b/gcc/testsuite/g++.old-deja/g++.mike/p4693.C deleted file mode 100755 index b0d0d88..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p4693.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: -// prms-id: 4693 - -class a { -public: - virtual ~a(); -}; - -class b { -public: - virtual void set_var() = 0; -}; - -class c : public b, public a { }; - -class d : public c { -public: - void set_var() { } -}; - -int main() { - d * test; - test = new d; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p4736a.C b/gcc/testsuite/g++.old-deja/g++.mike/p4736a.C deleted file mode 100755 index a6e3aef..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p4736a.C +++ /dev/null @@ -1,39 +0,0 @@ -// prms-id: 4736 - -int did_fail = 1; - -class O { -public: - virtual void of() { } -}; - -class A : public O { -public: - virtual void vf() { } -}; - -class W { -public: - virtual void vf() { } -}; - -class X : public W, public A { -public: - virtual void vf() { } -}; - -class Z : public X { -public: - virtual void vf() { did_fail = 0; } -}; - -Z sz; - -void fail1(W* w) { - w->vf(); -} - -int main() { - fail1 (&sz); - return did_fail; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p4736b.C b/gcc/testsuite/g++.old-deja/g++.mike/p4736b.C deleted file mode 100755 index 0978f0b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p4736b.C +++ /dev/null @@ -1,48 +0,0 @@ -// prms-id: 4736 - -class Rep { -public: - virtual int foo() { return 1; } -}; - -class Rep_1 : public Rep { -}; - -class VBaseMain { -public: - virtual int foo() { return 2; } -}; - -class OtherVBase { -public: - virtual int foo() { return 3; } -}; - -class Rep_2 : public Rep { -}; - -class DVBase : public VBaseMain, public Rep_2, public OtherVBase { -public: - virtual int foo() { return 4; } -}; - -class Main : public Rep_1, virtual public DVBase { -public: - virtual int foo() { return 5; } -}; - -int main() { - Main m; - if (m.foo() != 5) - return 1; - if (((Rep*)(Rep_1*)&m)->foo() != 5) - return 2; - if (((DVBase*)&m)->foo() != 5) - return 3; - if (((VBaseMain*)(DVBase*)&m)->foo() != 5) - return 4; - if (((Rep*)(Rep_2*)(DVBase*)&m)->foo() != 5) - return 5; - if (((OtherVBase*)(DVBase*)&m)->foo() != 5) - return 6; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p4736c.C b/gcc/testsuite/g++.old-deja/g++.mike/p4736c.C deleted file mode 100755 index f76b06a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p4736c.C +++ /dev/null @@ -1,62 +0,0 @@ -// prms-id: 4736 - -int did_fail; - -class Rep { -public: - virtual ~Rep() { } -}; - -class Rep_1 : public Rep { -}; - -class VBaseMain { -public: - virtual ~VBaseMain() { } -}; - -class OtherVBase { -public: - virtual ~OtherVBase() { } -}; - -class Rep_2 : public Rep { -}; - -class DVBase : public VBaseMain, public Rep_2, public OtherVBase { -public: - virtual ~DVBase() { } -}; - -class Main : public Rep_1, virtual public DVBase { -public: - virtual ~Main() { did_fail = 0; } -}; - -int main() { - Main* m; - did_fail = 1; - delete new Main; - if (did_fail) - return 1; - did_fail = 1; - delete (Rep*)(Rep_1*)new Main; - if (did_fail) - return 2; - did_fail = 1; - delete (DVBase*)new Main; - if (did_fail) - return 3; - did_fail = 1; - delete (VBaseMain*)(DVBase*)new Main; - if (did_fail) - return 4; - did_fail = 1; - delete (Rep*)(Rep_2*)(DVBase*)new Main; - if (did_fail) - return 5; - did_fail = 1; - delete (OtherVBase*)(DVBase*)new Main; - if (did_fail) - return 6; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p4750.C b/gcc/testsuite/g++.old-deja/g++.mike/p4750.C deleted file mode 100755 index b404cc0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p4750.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// Skip if not native -// Special g++ Options: -fpic -pedantic-errors -S -// prms-id: 4750 - -extern const int FRAME_VEC_MAX; - -const int FRAME_VEC_MAX = 12; -int frame_vec_sizes[FRAME_VEC_MAX+1] = { - 0, 1, 3, 3, 6, 6, 6, 9, 9, 9, 12, 12, 12 -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p5469.C b/gcc/testsuite/g++.old-deja/g++.mike/p5469.C deleted file mode 100755 index 9af2010..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p5469.C +++ /dev/null @@ -1,21 +0,0 @@ -// prms-id: 5469 - -int count; - -class A { - A(); - A(const A&); -public: - A(int) { ++count; } - ~A() { --count; } - int operator== (const A& r) { return 0; } -}; - -int main() { - { - A a (1); - if (a == 2 && a == 1) - ; - } - return count; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p5469a.C b/gcc/testsuite/g++.old-deja/g++.mike/p5469a.C deleted file mode 100755 index 0783f77..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p5469a.C +++ /dev/null @@ -1,21 +0,0 @@ -// prms-id: 5469 - -int count; - -class A { - A(); - A(const A&); -public: - A(int) { ++count; } - ~A() { --count; } - int operator== (const A& r) { return 1; } -}; - -int main() { - { - A a (1); - if (a == 2 || a == 1) - ; - } - return count; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p5571.C b/gcc/testsuite/g++.old-deja/g++.mike/p5571.C deleted file mode 100755 index ec350ea..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p5571.C +++ /dev/null @@ -1,70 +0,0 @@ -// prms-id: 5571 - -int err = 0; -void *vp = 0; - -class ParentOne { -public: - ParentOne() {}; -#ifdef MAKE_WORK - virtual ~ParentOne() {}; -#endif -private: - char SomeData[101]; -}; - -class ParentTwo { -public: - ParentTwo() {}; - virtual ~ParentTwo() {}; -private: - int MoreData[12]; - virtual int foo() { return 0; } -}; - -struct Child : public ParentOne, public ParentTwo { - int ChildsToy; - virtual void PrintThis() = 0; -}; - -struct Student : public Child { - int StudentsBook; - void PrintThis() { - if (vp == 0) - vp = (void *)this; - else - { - if (vp != (void *)this) - ++err; - } - } - void LocalPrintThis() { - if (vp == 0) - vp = (void *)this; - else - { - if (vp != (void *)this) - ++err; - } - PrintThis(); - } - void ForcedPrintThis() { - if (vp == 0) - vp = (void *)this; - else - { - if (vp != (void *)this) - ++err; - } - Student::PrintThis(); - } -}; - -int main() { - Student o; - o.LocalPrintThis(); - o.ForcedPrintThis(); - Child* pX = &o; - pX->PrintThis(); - return err; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p5611.C b/gcc/testsuite/g++.old-deja/g++.mike/p5611.C deleted file mode 100755 index 557d2cc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p5611.C +++ /dev/null @@ -1,11 +0,0 @@ -// prms-id: 5611 - -int main(void) -{ - struct B - { - virtual void b1() { }; - }; - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p5673.C b/gcc/testsuite/g++.old-deja/g++.mike/p5673.C deleted file mode 100755 index d972ab0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p5673.C +++ /dev/null @@ -1,20 +0,0 @@ -// prms-id: 5673 - -class A { -public: - operator int () { - return 7; - } - ~A(); -}; - -int foo() { - return A(); -} - -int main() { - return foo() != 7; -} - -A::~A() { -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p5718.C b/gcc/testsuite/g++.old-deja/g++.mike/p5718.C deleted file mode 100755 index 8858d38..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p5718.C +++ /dev/null @@ -1,37 +0,0 @@ -// prms-id: 5718 - -class Base { - int i; -public: - Base() { i = 42; }; -}; - - -class Mixin { - int j; -public: - Mixin() { j = 42; } -}; - - -class Derived : public Base, public Mixin { -public: - Derived() { }; - Derived & operator=(Mixin & m) { return *this; }; -}; - - -void -testFunct(Derived * arg) { - Mixin temp; - - (Mixin &)(*arg) = temp; // gets bogus error -} - - -int -main(int argc, char *argv[]) { - Derived temp; - - testFunct(&temp); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p5793.C b/gcc/testsuite/g++.old-deja/g++.mike/p5793.C deleted file mode 100755 index 53469cd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p5793.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// prms-id: 5793 - -class temp_string { - public: - temp_string (const int); - temp_string (const char * const); -}; - -class Range { - public: - Range ( const int); - operator int () const ; -}; - -int operator == (const int, temp_string ); - -void CheckArrayConstraints(void) { - if (Range(0L) == 0L) - ; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p5840.C b/gcc/testsuite/g++.old-deja/g++.mike/p5840.C deleted file mode 100755 index 34dd37d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p5840.C +++ /dev/null @@ -1,35 +0,0 @@ -// prms-id: 5840 - -class Signal { -public: - int Name(void) { return 1; } -}; - -class Derived : public Signal { -public: - int Name(void) { return 2; } -}; - -template <class Foo , int (Foo::*Id)(void)> -class Bar -{ -public: - int value (Foo* a) { return (a->*Id)(); } -}; - -/* The following line is illegal under the new rules for non-type - template arguments in the standard, so it is commented out. */ -/* template class Bar <Derived, &Signal::Name>; */ -template class Bar <Signal, &Signal::Name>; -template class Bar <Derived, &Derived::Name>; - -Derived a; - -/* Bar<Derived, &Signal::Name> dispatcher1; */ -Bar<Derived, &Derived::Name> dispatcher2; - -int main() { - /* int i1 = dispatcher1.value(&a); */ - int i2 = dispatcher2.value(&a); - return /* i1 != 1 || */ i2 != 2; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p5958.C b/gcc/testsuite/g++.old-deja/g++.mike/p5958.C deleted file mode 100755 index 20d45f2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p5958.C +++ /dev/null @@ -1,27 +0,0 @@ -// Special g++ Options: -ansi -// prms-id: 5958 - -class A { }; - -main() { - int i = 1; - if (1 not_eq 1) - return 1; - if (not (1 and 1)) - return 1; - if (not (1 or 1)) - return 1; - if (compl ~0) - return 1; - if (1 bitand 2) - return 1; - if (not (1 bitor 2)) - return 1; - if (1 xor 1) - return 1; - i and_eq 1; - i or_eq 2; - i xor_eq 4; - if (i not_eq 7) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p6004.C b/gcc/testsuite/g++.old-deja/g++.mike/p6004.C deleted file mode 100755 index b692365..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p6004.C +++ /dev/null @@ -1,20 +0,0 @@ -// Special g++ Options: -// prms-id: 6004 - -class A { -public: - static int foo() asm("_my_routine"); -}; - -int bar1() asm("foo__1A"); -int bar2() asm("_foo__1A"); -int bar3() asm("__foo__1A"); -int bar1() { return 45; } -int bar2() { return 44; } -int bar3() { return 43; } - -int A::foo() { return 42; } - -main() { - return A::foo() - 42; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p6058.C b/gcc/testsuite/g++.old-deja/g++.mike/p6058.C deleted file mode 100755 index 1c0c622..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p6058.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -// Special g++ Options: -fexceptions -pedantic-errors -// prms-id: 6058 - -void bar(struct s1 { } a) { (void)a; } // ERROR - - -struct s2*fooey() -{ - try { - static_cast<struct s3 { } *>(0); // ERROR - - const_cast<struct s4 { } *>((s4*)0); // ERROR - - reinterpret_cast<struct s5 { } *>((s3*)0); // ERROR - - dynamic_cast<struct s6 { } *>((s6*)0); // ERROR - - (struct s7 { } *)(int*)0xffedec; // ERROR - - } catch (struct s8 { } s) { // ERROR - - } - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p6149.C b/gcc/testsuite/g++.old-deja/g++.mike/p6149.C deleted file mode 100755 index 578ee8b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p6149.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// prms-id: 6149 - -int a[3 - sizeof(double)]; // ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p6311.C b/gcc/testsuite/g++.old-deja/g++.mike/p6311.C deleted file mode 100755 index a0ef8c8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p6311.C +++ /dev/null @@ -1,16 +0,0 @@ -// prms-id: 6311 - -struct Foo { - int member; -} a = { 42 }, *ptra = &a; - -int Foo::*pmd = &Foo::member; - -int main() { - if (pmd == 0) - return 1; - if (a.*pmd != 42) - return 2; - if (ptra->*pmd != 42) - return 3; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p646.C b/gcc/testsuite/g++.old-deja/g++.mike/p646.C deleted file mode 100755 index 2644c1b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p646.C +++ /dev/null @@ -1,175 +0,0 @@ -// GROUPS passed i960 -/* - Bug Id: bnr - PMRS Id: p0000646 - Bug is: Urgent Code Generation Problem in gcc-i960 V 1.95 -*/ - - -// Special g++ Options: - -extern "C" -{ - void printf (char *, ...); - void abort (); -} - -struct foo -{ - static int si; - int i; - foo (); - foo (const foo&); - ~foo (); -}; - -int -foo_parm_returns_i (foo foo_arg) -{ - return foo_arg.i; -} - -int foo::si = 0; - -foo::foo () -{ - si++; - printf ("new foo @ 0x%x; now %d foos\n", this, si); -} - -foo::foo (const foo &other) -{ - si++; - printf ("another foo @ 0x%x; now %d foos\n", this, si); - *this = other; -} - -foo::~foo () -{ - si--; - printf ("deleted foo @ 0x%x; now %d foos\n", this, si); -} - -int -return_1 () -{ - foo f; - printf ("returning 1\n"); - return 1; -} - -int -return_arg (int arg) -{ - foo f; - printf ("returning %d\n", arg); - return arg; -} - -int -return_sum (int x, int y) -{ - foo f; - printf ("returning %d+%d\n", x, y); - return x + y; -} - -foo -return_foo () -{ - foo f; - printf ("returning foo\n"); - return f; -} - -foo -return_named_foo () return f -{ - printf ("returning named foo\n"); - return f; -} - -foo -foo_parm_returns_foo (foo f) -{ - return f; -} - -void -abort_because (char *str) -{ - printf ("aborting because %s\n", str); - abort (); -} - -int -warn_return_1 () -{ - foo f; - printf ("returning 1\n"); -} - -int -warn_return_arg (int arg) -{ - foo f; - printf ("returning %d\n", arg); - arg; -} - -int -warn_return_sum (int x, int y) -{ - foo f; - printf ("returning %d+%d\n", x, y); - x + y; -} - -foo -warn_return_foo () -{ - foo f; - printf ("returning foo\n"); -} - -foo -nowarn_return_named_foo () return f -{ - printf ("returning named foo\n"); -} - -foo -warn_foo_parm_returns_foo (foo f) -{ - f; -} - -main () -{ - int ii = return_1 (); - if (ii != 1) - abort_because ("wrong value returned"); - int j = return_arg (42); - if (j != 42) - abort_because ("wrong value returned"); - int k = return_sum (-69, 69); - if (k != 0) - abort_because ("wrong value returned"); - foo f1 = return_named_foo (); - if (foo::si != 1) - abort_because ("wrong number of foos"); - f1.i = 5; - int l = foo_parm_returns_i (f1); - if (l != 5) - abort_because ("l != 5"); - foo f2 = foo_parm_returns_foo (f1); - if (foo::si != 2) - abort_because ("wrong number of foos"); - if (f2.i != 5) - abort_because ("f2.i != 5"); - foo f3 = return_foo (); - if (foo::si != 3) - abort_because ("wrong number of foos"); - printf("PASS\n"); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p6578.C b/gcc/testsuite/g++.old-deja/g++.mike/p6578.C deleted file mode 100755 index 2b19e86..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p6578.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: -// prms-id: 6578 - -struct A { - operator int (); -}; - -int i = A(); diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p658.C b/gcc/testsuite/g++.old-deja/g++.mike/p658.C deleted file mode 100755 index 14658f0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p658.C +++ /dev/null @@ -1,101 +0,0 @@ -// prms-id: 658 - -#include <ostream.h> - -extern "C" void abort(); - -/* We may not find the libg++ <bool.h>. */ -#ifndef FALSE -#define FALSE false -#endif -#ifndef TRUE -#define TRUE true -#endif - -class Object { -public: - Object(); - Object(const Object&); - ~Object(); - - void OK() const; -private: - bool _destructed; -}; - -class Char: public Object { -public: - Char(); - Char(char); - Char(const Char&); - ~Char(); - - operator char () const; -private: - char _c; -}; - -int main() -{ - Char r, s; - - r = Char('r'); - s = Char('s'); -} - -// -// Object stuff -// -Object::Object(): -_destructed(FALSE) -{} - -Object::Object(const Object& other): -_destructed(FALSE) -{ - other.OK(); -} - -Object::~Object() -{ - OK(); - _destructed = TRUE; -} - -void -Object::OK() const -{ - if (_destructed) { - cerr << "FAILURE - reference was made to a destructed object\n"; - abort(); - } -} - -// -// Char stuff -// - -Char::Char(): -Object(), -_c('a') -{ } - -Char::Char(char c): -Object(), -_c(c) -{ } - -Char::Char(const Char& other): -Object(other), -_c(other._c) -{ } - -Char::~Char() -{ - OK(); -} - -Char::operator char () const -{ - return _c; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p6610a.C b/gcc/testsuite/g++.old-deja/g++.mike/p6610a.C deleted file mode 100755 index b9ea4b7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p6610a.C +++ /dev/null @@ -1,14 +0,0 @@ -// prms-id: 6610 -// There is a bug in vtable thunks with multiple/virtual inheritance. -// execution test - XFAIL *-*-linux-gnu *-*-linux -int fail = 1; -struct B; -struct A { virtual int f(const B*) = 0; int g(const B*); }; -int A::g(const B* t) { return f(t); } -struct B : virtual A { B(); int f(const B*); B* B_this; }; -B::B() { if (g(this)) fail = 0; } -int B::f(const B* t) { return t == this; } -struct C : B { int f(const B*); int x; }; -int C::f(const B*) { return 0; } - -int main() { C c; return fail; } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p6610b.C b/gcc/testsuite/g++.old-deja/g++.mike/p6610b.C deleted file mode 100755 index 8ec637e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p6610b.C +++ /dev/null @@ -1,14 +0,0 @@ -// prms-id: 6610 - -int fail = 1; -struct B; -struct A { virtual int f(const B*) = 0; int g(const B*); }; -int A::g(const B* t) { return f(t); } -struct B : virtual A { int f(const B*); B* B_this; }; -int B::f(const B* t) { return t == this; } -struct S1 { }; -struct C : virtual S1, virtual B, virtual A { C(); }; -C::C() { if (g(this)) fail = 0; } -struct D : virtual B, virtual A, C { }; - -int main() { D d; return fail; } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p6611.C b/gcc/testsuite/g++.old-deja/g++.mike/p6611.C deleted file mode 100755 index 3d972cb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p6611.C +++ /dev/null @@ -1,26 +0,0 @@ -// prms-id: 6611 - -class COMPLEX { -public: - COMPLEX(double a, double b=0) { re = a; im = b; } - void print() const { } -private: - double re; - double im; -}; - -int main(void) -{ - COMPLEX a[3][3] = { - { 1, COMPLEX(2,3), COMPLEX(3,4), }, - { 1, COMPLEX(2,3), COMPLEX(3,4), }, - { 1, COMPLEX(2,3), COMPLEX(3,4), }, - }; - int i,j; - - for (i = 0; i < 3; i++) { - for (j = 0; j < 3; j++) { - a[i][j].print(); - } - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p6746.C b/gcc/testsuite/g++.old-deja/g++.mike/p6746.C deleted file mode 100755 index 764310f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p6746.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -// prms-id: 6746 - -class call_trace { -public: - call_trace(char* fcn_name); - ~call_trace(); -}; - -static char * last_tree; -extern "C" void prt(); - -char * smt_mark_stree() { - char* _my_name = "smt_mark_stree" ; - call_trace _t(_my_name); - - return last_tree = 0 ? (char*)0 : (prt(), (char*)0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p6901.C b/gcc/testsuite/g++.old-deja/g++.mike/p6901.C deleted file mode 100755 index 8329294..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p6901.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// prms-id: 6901 - -void green() { - for (int i = 0; i < 10; i++) {} - for (int i = 0; i < 10; i++) {} -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p6927.C b/gcc/testsuite/g++.old-deja/g++.mike/p6927.C deleted file mode 100755 index 7a0ec42..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p6927.C +++ /dev/null @@ -1,16 +0,0 @@ -// prms-id: 6927 - -class Object { -public: - Object(); - int Value; -}; - -Object::Object() : Value(-1) { } - -Object *pArr = new Object[2]; - -int main() { - if (pArr[0].Value != -1 || pArr[1].Value != -1) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p700.C b/gcc/testsuite/g++.old-deja/g++.mike/p700.C deleted file mode 100755 index 580895e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p700.C +++ /dev/null @@ -1,2387 +0,0 @@ -// Special g++ Options: -// prms-id: 700 - -//# 1 "../../../../libg++/etc/benchmarks/dhrystone.cc" - - - - - - - - - - - - - - - - - - - - - - - - - -//# 1 "../../../../libg++/etc/benchmarks/Int.h" 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -class Int -{ -protected: - int rep; - - - -public: - Int (); - Int (const int b); - Int (const Int& b); - ~Int(); - - operator int() const; - - inline virtual int val() const; - - inline virtual void operator = (const int); - inline virtual void operator = (const Int&); - - inline virtual void negate(); - inline virtual void complement(); - inline virtual void operator ++ (); - inline virtual void operator -- (); - - inline virtual void operator += (const Int & ); - inline virtual void operator -= (const Int & ); - inline virtual void operator *= (const Int & ); - inline virtual void operator /= (const Int & ); - inline virtual void operator %= (const Int & ); - inline virtual void operator |= (const Int & ); - inline virtual void operator &= (const Int & ); - inline virtual void operator ^= (const Int & ); - inline virtual void operator <<=(const Int & ); - inline virtual void operator >>=(const Int & ); - - - inline virtual void operator += (const int); - inline virtual void operator -= (const int); - inline virtual void operator *= (const int); - inline virtual void operator /= (const int); - inline virtual void operator %= (const int); - inline virtual void operator |= (const int); - inline virtual void operator &= (const int); - inline virtual void operator ^= (const int); - inline virtual void operator <<=(const int); - inline virtual void operator >>=(const int); - - -}; - -inline int Int::val() const { return rep; } -inline Int::operator int() const { return val(); } - -inline Int::Int () :rep(0) {} -inline Int::Int (const int b) :rep(b) {} -inline Int::Int (const Int& b) :rep(b.Int::val()) {} -inline Int::~Int() {} - -inline void Int::operator = (const int b) -{ rep = b; ; } -inline void Int::operator = (const Int& b) -{ rep = b.Int::val(); ; } - -inline void Int::complement() -{ rep = ~rep; ; } -inline void Int::negate() -{ rep = -rep; ; } -inline void Int::operator ++ () -{ ++rep; ; } -inline void Int::operator -- () -{ --rep; ; } - -inline void Int::operator += (const Int & b) -{ rep += b.Int::val(); ; } -inline void Int::operator -= (const Int & b) -{ rep -= b.Int::val(); ; } -inline void Int::operator *= (const Int & b) -{ rep *= b.Int::val(); ; } -inline void Int::operator /= (const Int & b) -{ rep /= b.Int::val(); ; } -inline void Int::operator %= (const Int & b) -{ rep %= b.Int::val(); ; } -inline void Int::operator |= (const Int & b) -{ rep |= b.Int::val(); ; } -inline void Int::operator &= (const Int & b) -{ rep &= b.Int::val(); ; } -inline void Int::operator ^= (const Int & b) -{ rep ^= b.Int::val(); ; } -inline void Int::operator <<=(const Int & b) -{ rep <<= b.Int::val(); ; } -inline void Int::operator >>=(const Int & b) -{ rep >>= b.Int::val(); ; } - - - -inline void Int::operator += (const int b) -{ rep += b; ; } -inline void Int::operator -= (const int b) -{ rep -= b; ; } -inline void Int::operator *= (const int b) -{ rep *= b; ; } -inline void Int::operator /= (const int b) -{ rep /= b; ; } -inline void Int::operator %= (const int b) -{ rep %= b; ; } -inline void Int::operator |= (const int b) -{ rep |= b; ; } -inline void Int::operator &= (const int b) -{ rep &= b; ; } -inline void Int::operator ^= (const int b) -{ rep ^= b; ; } -inline void Int::operator <<=(const int b) -{ rep <<= b; ; } -inline void Int::operator >>=(const int b) -{ rep >>= b; ; } - - -inline int& operator = (int& a, const Int & b) -{ a = b.Int::val(); return a;} // WARNING - -inline int& operator += (int& a, const Int & b) -{ a += b.Int::val(); return a; } -inline int& operator -= (int& a, const Int & b) -{ a -= b.Int::val(); return a;} -inline int& operator *= (int& a, const Int & b) -{ a *= b.Int::val(); return a;} -inline int& operator /= (int& a, const Int & b) -{ a /= b.Int::val(); return a;} -inline int& operator %= (int& a, const Int & b) -{ a %= b.Int::val(); return a;} -inline int& operator |= (int& a, const Int & b) -{ a |= b.Int::val(); return a;} -inline int& operator &= (int& a, const Int & b) -{ a &= b.Int::val(); return a;} -inline int& operator ^= (int& a, const Int & b) -{ a ^= b.Int::val(); return a;} -inline int& operator <<=(int& a, const Int & b) -{ a <<= b.Int::val(); return a;} -inline int& operator >>=(int& a, const Int & b) -{ a >>= b.Int::val(); return a;} - - - -//# 289 "../../../../libg++/etc/benchmarks/Int.h" - - -inline Int operator - (const Int & a) return r(a) -{ r.negate(); } -inline Int operator ~ (const Int & a) return r(a) -{ r.complement(); } - -inline Int operator + (const Int & a, const Int & b) return r(a) -{ r += b.Int::val(); } -inline Int operator - (const Int & a, const Int & b) return r(a) -{ r -= b.Int::val(); } -inline Int operator * (const Int & a, const Int & b) return r(a) -{ r *= b.Int::val(); } -inline Int operator / (const Int & a, const Int & b) return r(a) -{ r /= b.Int::val(); } -inline Int operator % (const Int & a, const Int & b) return r(a) -{ r %= b.Int::val(); } -inline Int operator << (const Int & a, const Int & b) return r(a) -{ r <<= b.Int::val(); } -inline Int operator >> (const Int & a, const Int & b) return r(a) -{ r >>= b.Int::val(); } -inline Int operator & (const Int & a, const Int & b) return r(a) -{ r &= b.Int::val(); } -inline Int operator | (const Int & a, const Int & b) return r(a) -{ r |= b.Int::val(); } -inline Int operator ^ (const Int & a, const Int & b) return r(a) -{ r ^= b.Int::val(); } - -inline Int operator + (const Int & a, const int b) return r(a) -{ r += b; } -inline Int operator - (const Int & a, const int b) return r(a) -{ r -= b; } -inline Int operator * (const Int & a, const int b) return r(a) -{ r *= b; } -inline Int operator / (const Int & a, const int b) return r(a) -{ r /= b; } -inline Int operator % (const Int & a, const int b) return r(a) -{ r %= b; } -inline Int operator << (const Int & a, const int b) return r(a) -{ r <<= b; } -inline Int operator >> (const Int & a, const int b) return r(a) -{ r >>= b; } -inline Int operator & (const Int & a, const int b) return r(a) -{ r &= b; } -inline Int operator | (const Int & a, const int b) return r(a) -{ r |= b; } -inline Int operator ^ (const Int & a, const int b) return r(a) -{ r ^= b; } - -inline Int operator + (const int a, const Int & b) return r(a) -{ r += b.Int::val(); } -inline Int operator - (const int a, const Int & b) return r(a) -{ r -= b.Int::val(); } -inline Int operator * (const int a, const Int & b) return r(a) -{ r *= b.Int::val(); } -inline Int operator / (const int a, const Int & b) return r(a) -{ r /= b.Int::val(); } -inline Int operator % (const int a, const Int & b) return r(a) -{ r %= b.Int::val(); } -inline Int operator << (const int a, const Int & b) return r(a) -{ r <<= b.Int::val(); } -inline Int operator >> (const int a, const Int & b) return r(a) -{ r >>= b.Int::val(); } -inline Int operator & (const int a, const Int & b) return r(a) -{ r &= b.Int::val(); } -inline Int operator | (const int a, const Int & b) return r(a) -{ r |= b.Int::val(); } -inline Int operator ^ (const int a, const Int & b) return r(a) -{ r ^= b.Int::val(); } - - - -inline int operator ! (const Int & a) { return !a.Int::val(); } - -inline int operator == (const Int & a, const Int & b) -{ return a.Int::val() == b.Int::val(); } -inline int operator != (const Int & a, const Int & b) -{ return a.Int::val() != b.Int::val(); } -inline int operator < (const Int & a, const Int & b) -{ return a.Int::val() < b.Int::val(); } -inline int operator <= (const Int & a, const Int & b) -{ return a.Int::val() <= b.Int::val(); } -inline int operator > (const Int & a, const Int & b) -{ return a.Int::val() > b.Int::val(); } -inline int operator >= (const Int & a, const Int & b) -{ return a.Int::val() >= b.Int::val(); } - -inline int operator == (const Int & a, const int b) -{ return a.Int::val() == b; } -inline int operator != (const Int & a, const int b) -{ return a.Int::val() != b; } -inline int operator < (const Int & a, const int b) -{ return a.Int::val() < b; } -inline int operator <= (const Int & a, const int b) -{ return a.Int::val() <= b; } -inline int operator > (const Int & a, const int b) -{ return a.Int::val() > b; } -inline int operator >= (const Int & a, const int b) -{ return a.Int::val() >= b; } - -inline int operator == (const int a, const Int & b) -{ return a == b.Int::val(); } -inline int operator != (const int a, const Int & b) -{ return a != b.Int::val(); } -inline int operator < (const int a, const Int & b) -{ return a < b.Int::val(); } -inline int operator <= (const int a, const Int & b) -{ return a <= b.Int::val(); } -inline int operator > (const int a, const Int & b) -{ return a > b.Int::val(); } -inline int operator >= (const int a, const Int & b) -{ return a >= b.Int::val(); } - - - -//# 26 "../../../../libg++/etc/benchmarks/dhrystone.cc" 2 - -//# 1 "../../../../libg++/etc/benchmarks/Char.h" 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -class Char -{ -protected: - char rep; - - - -public: - Char (); - Char (const char b); - Char (const Char& b); - ~Char(); - - operator char() const; - - inline virtual char val() const; - - inline virtual void operator = (const char); - inline virtual void operator = (const Char&); - - inline virtual void negate(); - inline virtual void complement(); - inline virtual void operator ++ (); - inline virtual void operator -- (); - - inline virtual void operator += (const Char & ); - inline virtual void operator -= (const Char & ); - inline virtual void operator *= (const Char & ); - inline virtual void operator /= (const Char & ); - inline virtual void operator %= (const Char & ); - inline virtual void operator |= (const Char & ); - inline virtual void operator &= (const Char & ); - inline virtual void operator ^= (const Char & ); - inline virtual void operator <<=(const Char & ); - inline virtual void operator >>=(const Char & ); - - - inline virtual void operator += (const char); - inline virtual void operator -= (const char); - inline virtual void operator *= (const char); - inline virtual void operator /= (const char); - inline virtual void operator %= (const char); - inline virtual void operator |= (const char); - inline virtual void operator &= (const char); - inline virtual void operator ^= (const char); - inline virtual void operator <<=(const char); - inline virtual void operator >>=(const char); - - -}; - -inline char Char::val() const { return rep; } -inline Char::operator char() const { return val(); } - -inline Char::Char () :rep(0) {} -inline Char::Char (const char b) :rep(b) {} -inline Char::Char (const Char& b) :rep(b.Char::val()) {} -inline Char::~Char() {} - -inline void Char::operator = (const char b) -{ rep = b; ; } -inline void Char::operator = (const Char& b) -{ rep = b.Char::val(); ; } - -inline void Char::complement() -{ rep = ~rep; ; } -inline void Char::negate() -{ rep = -rep; ; } -inline void Char::operator ++ () -{ ++rep; ; } -inline void Char::operator -- () -{ --rep; ; } - -inline void Char::operator += (const Char & b) -{ rep += b.Char::val(); ; } -inline void Char::operator -= (const Char & b) -{ rep -= b.Char::val(); ; } -inline void Char::operator *= (const Char & b) -{ rep *= b.Char::val(); ; } -inline void Char::operator /= (const Char & b) -{ rep /= b.Char::val(); ; } -inline void Char::operator %= (const Char & b) -{ rep %= b.Char::val(); ; } -inline void Char::operator |= (const Char & b) -{ rep |= b.Char::val(); ; } -inline void Char::operator &= (const Char & b) -{ rep &= b.Char::val(); ; } -inline void Char::operator ^= (const Char & b) -{ rep ^= b.Char::val(); ; } -inline void Char::operator <<=(const Char & b) -{ rep <<= b.Char::val(); ; } -inline void Char::operator >>=(const Char & b) -{ rep >>= b.Char::val(); ; } - - - -inline void Char::operator += (const char b) -{ rep += b; ; } -inline void Char::operator -= (const char b) -{ rep -= b; ; } -inline void Char::operator *= (const char b) -{ rep *= b; ; } -inline void Char::operator /= (const char b) -{ rep /= b; ; } -inline void Char::operator %= (const char b) -{ rep %= b; ; } -inline void Char::operator |= (const char b) -{ rep |= b; ; } -inline void Char::operator &= (const char b) -{ rep &= b; ; } -inline void Char::operator ^= (const char b) -{ rep ^= b; ; } -inline void Char::operator <<=(const char b) -{ rep <<= b; ; } -inline void Char::operator >>=(const char b) -{ rep >>= b; ; } - - -inline char& operator = (char& a, const Char & b) -{ a = b.Char::val(); return a;} // WARNING - -inline char& operator += (char& a, const Char & b) -{ a += b.Char::val(); return a; } -inline char& operator -= (char& a, const Char & b) -{ a -= b.Char::val(); return a;} -inline char& operator *= (char& a, const Char & b) -{ a *= b.Char::val(); return a;} -inline char& operator /= (char& a, const Char & b) -{ a /= b.Char::val(); return a;} -inline char& operator %= (char& a, const Char & b) -{ a %= b.Char::val(); return a;} -inline char& operator |= (char& a, const Char & b) -{ a |= b.Char::val(); return a;} -inline char& operator &= (char& a, const Char & b) -{ a &= b.Char::val(); return a;} -inline char& operator ^= (char& a, const Char & b) -{ a ^= b.Char::val(); return a;} -inline char& operator <<=(char& a, const Char & b) -{ a <<= b.Char::val(); return a;} -inline char& operator >>=(char& a, const Char & b) -{ a >>= b.Char::val(); return a;} - - - -//# 291 "../../../../libg++/etc/benchmarks/Char.h" - - -inline Char operator - (const Char & a) return r(a) -{ r.negate(); } -inline Char operator ~ (const Char & a) return r(a) -{ r.complement(); } - -inline Char operator + (const Char & a, const Char & b) return r(a) -{ r += b.Char::val(); } -inline Char operator - (const Char & a, const Char & b) return r(a) -{ r -= b.Char::val(); } -inline Char operator * (const Char & a, const Char & b) return r(a) -{ r *= b.Char::val(); } -inline Char operator / (const Char & a, const Char & b) return r(a) -{ r /= b.Char::val(); } -inline Char operator % (const Char & a, const Char & b) return r(a) -{ r %= b.Char::val(); } -inline Char operator << (const Char & a, const Char & b) return r(a) -{ r <<= b.Char::val(); } -inline Char operator >> (const Char & a, const Char & b) return r(a) -{ r >>= b.Char::val(); } -inline Char operator & (const Char & a, const Char & b) return r(a) -{ r &= b.Char::val(); } -inline Char operator | (const Char & a, const Char & b) return r(a) -{ r |= b.Char::val(); } -inline Char operator ^ (const Char & a, const Char & b) return r(a) -{ r ^= b.Char::val(); } - -inline Char operator + (const Char & a, const char b) return r(a) -{ r += b; } -inline Char operator - (const Char & a, const char b) return r(a) -{ r -= b; } -inline Char operator * (const Char & a, const char b) return r(a) -{ r *= b; } -inline Char operator / (const Char & a, const char b) return r(a) -{ r /= b; } -inline Char operator % (const Char & a, const char b) return r(a) -{ r %= b; } -inline Char operator << (const Char & a, const char b) return r(a) -{ r <<= b; } -inline Char operator >> (const Char & a, const char b) return r(a) -{ r >>= b; } -inline Char operator & (const Char & a, const char b) return r(a) -{ r &= b; } -inline Char operator | (const Char & a, const char b) return r(a) -{ r |= b; } -inline Char operator ^ (const Char & a, const char b) return r(a) -{ r ^= b; } - -inline Char operator + (const char a, const Char & b) return r(a) -{ r += b.Char::val(); } -inline Char operator - (const char a, const Char & b) return r(a) -{ r -= b.Char::val(); } -inline Char operator * (const char a, const Char & b) return r(a) -{ r *= b.Char::val(); } -inline Char operator / (const char a, const Char & b) return r(a) -{ r /= b.Char::val(); } -inline Char operator % (const char a, const Char & b) return r(a) -{ r %= b.Char::val(); } -inline Char operator << (const char a, const Char & b) return r(a) -{ r <<= b.Char::val(); } -inline Char operator >> (const char a, const Char & b) return r(a) -{ r >>= b.Char::val(); } -inline Char operator & (const char a, const Char & b) return r(a) -{ r &= b.Char::val(); } -inline Char operator | (const char a, const Char & b) return r(a) -{ r |= b.Char::val(); } -inline Char operator ^ (const char a, const Char & b) return r(a) -{ r ^= b.Char::val(); } - - - -inline char operator ! (const Char & a) { return !a.Char::val(); } - -inline char operator == (const Char & a, const Char & b) -{ return a.Char::val() == b.Char::val(); } -inline char operator != (const Char & a, const Char & b) -{ return a.Char::val() != b.Char::val(); } -inline char operator < (const Char & a, const Char & b) -{ return a.Char::val() < b.Char::val(); } -inline char operator <= (const Char & a, const Char & b) -{ return a.Char::val() <= b.Char::val(); } -inline char operator > (const Char & a, const Char & b) -{ return a.Char::val() > b.Char::val(); } -inline char operator >= (const Char & a, const Char & b) -{ return a.Char::val() >= b.Char::val(); } - -inline char operator == (const Char & a, const char b) -{ return a.Char::val() == b; } -inline char operator != (const Char & a, const char b) -{ return a.Char::val() != b; } -inline char operator < (const Char & a, const char b) -{ return a.Char::val() < b; } -inline char operator <= (const Char & a, const char b) -{ return a.Char::val() <= b; } -inline char operator > (const Char & a, const char b) -{ return a.Char::val() > b; } -inline char operator >= (const Char & a, const char b) -{ return a.Char::val() >= b; } - -inline char operator == (const char a, const Char & b) -{ return a == b.Char::val(); } -inline char operator != (const char a, const Char & b) -{ return a != b.Char::val(); } -inline char operator < (const char a, const Char & b) -{ return a < b.Char::val(); } -inline char operator <= (const char a, const Char & b) -{ return a <= b.Char::val(); } -inline char operator > (const char a, const Char & b) -{ return a > b.Char::val(); } -inline char operator >= (const char a, const Char & b) -{ return a >= b.Char::val(); } - - - -//# 27 "../../../../libg++/etc/benchmarks/dhrystone.cc" 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -//# 1 "/giga/hgs/lib/g++-include/sys/types.h" 1 - - -//# 1 "/giga/hgs/lib/g++-include/stddef.h" 1 - -extern "C" { -//# 1 "/giga/hgs/lib/gcc/sun4/cygnus-1.96/include/stddef.h" 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -typedef int ptrdiff_t; - - - - - - - - - - - - - - - - - - - - - -typedef int size_t; - - - - - - - - - - - - - - - - - - - - - -typedef short unsigned int wchar_t; - - - - - - - - - - - - - - - - - - - -//# 3 "/giga/hgs/lib/g++-include/stddef.h" 2 - -} -//# 73 "/giga/hgs/lib/g++-include/stddef.h" - -//# 3 "/giga/hgs/lib/g++-include/sys/types.h" 2 - - - - -extern "C" -{ - - - - - - - - - - - - - - - - - - - - - - - - - - -//# 1 "/usr/include/sys/types.h" 1 - - - - - - - - - - - - - - - -//# 1 "/usr/include/sys/stdtypes.h" 1 - - - - - - - - - - - - - -typedef int sigset_t; - -typedef unsigned int speed_t; -typedef unsigned long tcflag_t; -typedef unsigned char cc_t; -typedef int pid_t; - -typedef unsigned short mode_t; -typedef short nlink_t; - -typedef long clock_t; -typedef long time_t; - -typedef int size_t; -typedef int ptrdiff_t; - -typedef unsigned short wchar_t; - - -//# 16 "/usr/include/sys/types.h" 2 - - - -//# 1 "/usr/include/sys/sysmacros.h" 1 - - - - - - - - - - - - - - - - - - - -//# 19 "/usr/include/sys/types.h" 2 - - - - - -typedef unsigned char u_char; -typedef unsigned short u_short; -typedef unsigned int u_int; -typedef unsigned long u_long; -typedef unsigned short ushort; -typedef unsigned int uint; - - - - - - - - - - - - - - - -typedef struct _physadr_t { int r[1]; } *physadr_t; -typedef struct label_t { - int val[2]; -} label_t; - - - - - - - -typedef struct _quad_t { long val[2]; } quad_t; -typedef long daddr_t; -typedef char * caddr_t; -typedef unsigned long ino_t; -typedef short dev_t; -typedef long off_t; -typedef unsigned short uid_t; -typedef unsigned short gid_t; -typedef long key_t; -typedef char * addr_t; - - - - - - - - - - - - - - -typedef long fd_mask; - - - - - - - - - -typedef struct fd_set { - fd_mask fds_bits[(((256 )+(( (sizeof (fd_mask) * 8 ) )-1))/( (sizeof (fd_mask) * 8 ) )) ]; -} fd_set; - - - - - - - -//# 113 "/usr/include/sys/types.h" - - - -//# 35 "/giga/hgs/lib/g++-include/sys/types.h" 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -} - - - - -//# 310 "../../../../libg++/etc/benchmarks/dhrystone.cc" 2 - -//# 1 "/giga/hgs/lib/g++-include/sys/times.h" 1 -//# 1 "/giga/hgs/lib/g++-include/time.h" 1 - - - - - -//# 1 "/giga/hgs/lib/g++-include/stddef.h" 1 - -extern "C" { -//# 1 "/giga/hgs/lib/gcc/sun4/cygnus-1.96/include/stddef.h" 1 -//# 94 "/giga/hgs/lib/gcc/sun4/cygnus-1.96/include/stddef.h" - -//# 3 "/giga/hgs/lib/g++-include/stddef.h" 2 - -} -//# 73 "/giga/hgs/lib/g++-include/stddef.h" - -//# 6 "/giga/hgs/lib/g++-include/time.h" 2 - -//# 1 "/giga/hgs/lib/g++-include/stdio.h" 1 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -//#pragma interface - - - - - - - - - - - - - - - - - - - -//# 80 "/giga/hgs/lib/g++-include/stdio.h" - - - -//# 117 "/giga/hgs/lib/g++-include/stdio.h" - - - - - -//# 153 "/giga/hgs/lib/g++-include/stdio.h" - - - -extern "C" { - - - - - - - - - - - - - - - - - - - - - - - - - - - - -//# 1 "/usr/include/stdio.h" 1 - - - - - -extern struct _iobuf { - int _cnt; - unsigned char *_ptr; - unsigned char *_base; - int _bufsiz; - short _flag; - char _file; -} _iob[]; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -extern struct _iobuf *c_proto_fopen (); -extern struct _iobuf *c_proto_fdopen (); -extern struct _iobuf *c_proto_freopen (); -extern struct _iobuf *c_proto_popen (); -extern struct _iobuf *tmpfile(); -extern long ftell(); -extern char *fgets(); -extern char *gets(); -extern char *c_proto_sprintf (); -extern char *ctermid(); -extern char *cuserid(); -extern char *c_proto_tempnam (); -extern char *tmpnam(); - - - - - - -//# 185 "/giga/hgs/lib/g++-include/stdio.h" 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -} -//# 417 "/giga/hgs/lib/g++-include/stdio.h" - - - - - - -extern "C" { - - - - - - - -int _doprnt(const char*, void*, struct _iobuf *); -int _doscan(struct _iobuf *, const char*, ...); -int _filbuf(struct _iobuf *); -int _flsbuf(unsigned, struct _iobuf *); - -int fclose(struct _iobuf *); -struct _iobuf * fdopen(int, const char*); -int fflush(struct _iobuf *); -int fgetc(struct _iobuf *); -char* fgets(char*, int, struct _iobuf *); -struct _iobuf * fopen(const char*, const char*); -int fprintf(struct _iobuf *, const char* ...); -int fputc(int, struct _iobuf *); -int fputs(const char*, struct _iobuf *); -int fread(void*, int, int, struct _iobuf *); - - - -struct _iobuf * freopen(const char*, const char*, struct _iobuf *); - -int fscanf(struct _iobuf *, const char* ...); -int fseek(struct _iobuf *, long, int); -long ftell(struct _iobuf *); -int fwrite(const void*, int, int, struct _iobuf *); -char* gets(char*); -int getw(struct _iobuf *); -int pclose(struct _iobuf *); -void perror(const char*); -struct _iobuf * popen(const char*, const char*); -int printf(const char* ...); -int puts(const char*); -int putw(int, struct _iobuf *); -int rewind(struct _iobuf *); -int scanf(const char* ...); -int setbuf(struct _iobuf *, char*); -int setbuffer(struct _iobuf *, char*, int); -int setlinebuf(struct _iobuf *); -int setvbuf(struct _iobuf *, char*, int, int); -int sscanf(char*, const char* ...); -struct _iobuf * tmpfile(); -int ungetc(int, struct _iobuf *); -int vfprintf(struct _iobuf *, const char*, ...); - - - - -int vprintf(const char*, ... ); - - - - - -char* sprintf(char*, const char*, ...); -char* vsprintf(char*, const char*, ...); - - -} - - - - - - - - - - - - - - - - - -//# 7 "/giga/hgs/lib/g++-include/time.h" 2 - - -//# 1 "/giga/hgs/lib/g++-include/sys/types.h" 1 - - -//# 1 "/giga/hgs/lib/g++-include/stddef.h" 1 - -extern "C" { -//# 1 "/giga/hgs/lib/gcc/sun4/cygnus-1.96/include/stddef.h" 1 -//# 94 "/giga/hgs/lib/gcc/sun4/cygnus-1.96/include/stddef.h" - -//# 3 "/giga/hgs/lib/g++-include/stddef.h" 2 - -} -//# 73 "/giga/hgs/lib/g++-include/stddef.h" - -//# 3 "/giga/hgs/lib/g++-include/sys/types.h" 2 - - - - -extern "C" -{ - - - - - - - - - - - - - - - - - - - - - - - - - - -//# 1 "/usr/include/sys/types.h" 1 - - - - - - - - -//# 115 "/usr/include/sys/types.h" - -//# 35 "/giga/hgs/lib/g++-include/sys/types.h" 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -} - - - - -//# 9 "/giga/hgs/lib/g++-include/time.h" 2 - - -extern "C" { - - - - - - - - - - - - - - - - - -//# 42 "/giga/hgs/lib/g++-include/time.h" - - - - - - - -//# 1 "/usr/include/time.h" 1 - - - - - -//# 1 "/usr/include/sys/stdtypes.h" 1 - - - - - - - - - - -//# 32 "/usr/include/sys/stdtypes.h" - -//# 6 "/usr/include/time.h" 2 - - - - -struct tm { - int tm_sec; - int tm_min; - int tm_hour; - int tm_mday; - int tm_mon; - int tm_year; - int tm_wday; - int tm_yday; - int tm_isdst; - char *tm_zone; - long tm_gmtoff; -}; - -extern struct tm *c_proto_gmtime (), *c_proto_localtime (); -extern char *c_proto_asctime (), *c_proto_ctime (); -extern void c_proto_tzset (), c_proto_tzsetwall (); -extern int dysize(); -extern time_t timelocal(), timegm(); - - -//# 49 "/giga/hgs/lib/g++-include/time.h" 2 - - -//# 1 "/usr/include/sys/times.h" 1 - - - - - - - - - -//# 1 "/giga/hgs/lib/g++-include/sys/types.h" 1 - - -//# 1 "/giga/hgs/lib/g++-include/stddef.h" 1 - -extern "C" { -//# 1 "/giga/hgs/lib/gcc/sun4/cygnus-1.96/include/stddef.h" 1 -//# 94 "/giga/hgs/lib/gcc/sun4/cygnus-1.96/include/stddef.h" - -//# 3 "/giga/hgs/lib/g++-include/stddef.h" 2 - -} -//# 73 "/giga/hgs/lib/g++-include/stddef.h" - -//# 3 "/giga/hgs/lib/g++-include/sys/types.h" 2 - - - - -extern "C" -{ - - - - - - - - - - - - - - - - - - - - - - - - - - -//# 1 "/usr/include/sys/types.h" 1 - - - - - - - - -//# 115 "/usr/include/sys/types.h" - -//# 35 "/giga/hgs/lib/g++-include/sys/types.h" 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -} - - - - -//# 10 "/usr/include/sys/times.h" 2 - - -struct tms { - clock_t tms_utime; - clock_t tms_stime; - clock_t tms_cutime; - clock_t tms_cstime; -}; - - -clock_t times( ); - - - -//# 51 "/giga/hgs/lib/g++-include/time.h" 2 - - - - - - - - - - - - - - - - - - - - - -extern struct tm* localtime(long*); -extern struct tm* gmtime(long*); -extern char* ctime(long*); -extern char* asctime(struct tm*); -extern void tzset(); -extern void tzsetwall(); - - - - - - -extern long times(struct tms*); - - -//# 97 "/giga/hgs/lib/g++-include/time.h" - -extern char* timezone(int, int); -extern int getitimer(int, struct itimerval*); -extern int setitimer(int, struct itimerval*, struct itimerval*); -extern int gettimeofday(struct timeval*, struct timezone*); -extern int settimeofday(struct timeval*, struct timezone*); -extern int stime(long*); -int dysize(int); - - - - - - - - -long clock(void); - -long time(long*); -unsigned ualarm(unsigned, unsigned); -unsigned usleep(unsigned); -int profil(char*, int, int, int); - -} - - - -//# 1 "/giga/hgs/lib/g++-include/sys/times.h" 2 - -//# 311 "../../../../libg++/etc/benchmarks/dhrystone.cc" 2 - - - - - - - - - - - - - - - - - - - - - - - - -typedef enum {Ident1, Ident2, Ident3, Ident4, Ident5} Enumeration; - - - - -typedef Int OneToThirty; -typedef Int OneToFifty; -typedef Char CapitalLetter; -typedef Char String30[31]; -typedef Int Array1Dim[51]; -typedef Int Array2Dim[51][51]; - -struct Record -{ - struct Record *PtrComp; - Enumeration Discr; - Enumeration EnumComp; - OneToFifty IntComp; - String30 StringComp; -}; - -typedef struct Record RecordType; -typedef RecordType * RecordPtr; -typedef int boolean; - - - - - - - - - - - -extern "C" { -extern int printf(const char* ...); -extern void exit(int); -} - -void Proc0(); -void Proc1(RecordPtr PtrParIn); -void Proc2(OneToFifty *IntParIO); -void Proc3(RecordPtr *PtrParOut); -void Proc4(); -void Proc5(); -boolean Func3(Enumeration EnumParIn); -void Proc6( Enumeration EnumParIn, Enumeration *EnumParOut); -void Proc7(OneToFifty IntParI1, OneToFifty IntParI2, OneToFifty *IntParOut); -void Proc8(Array1Dim Array1Par, - Array2Dim Array2Par, - OneToFifty IntParI1, - OneToFifty IntParI2); -Enumeration Func1(CapitalLetter CharPar1, CapitalLetter CharPar2); -boolean Func2(String30 StrParI1, String30 StrParI2); -boolean Func3(Enumeration EnumParIn); - -void mystrcpy(String30 s, char* t) -{ - for (; *t != '\0'; ++s, ++t) *s = *t; - *s = '\0'; -} - -char mystrcmp(String30 s, String30 t) -{ - for (; *s == *t; ++s, ++t) if (*s == '\0') return 0; - return char(*s - *t); -} - - - -main() -{ - Proc0(); - exit(0); -} - - - - -Int IntGlob; -boolean BoolGlob; -char Char1Glob; -char Char2Glob; -Array1Dim Array1Glob; -Array2Dim Array2Glob; -RecordPtr PtrGlb; -RecordPtr PtrGlbNext; - -void Proc0() -{ - OneToFifty IntLoc1; - OneToFifty IntLoc2; - OneToFifty IntLoc3; - char CharLoc; - char CharIndex; - Enumeration EnumLoc; - String30 String1Loc; - String30 String2Loc; - -//# 445 "../../../../libg++/etc/benchmarks/dhrystone.cc" - - - time_t starttime; - time_t benchtime; - time_t nulltime; - struct tms Tms; - register unsigned int i; - - times(&Tms); starttime = Tms.tms_utime; - for (i = 0; i < 500000 ; ++i); - times(&Tms); - nulltime = Tms.tms_utime - starttime; - - - PtrGlbNext = new Record; - PtrGlb = new Record; - PtrGlb->PtrComp = PtrGlbNext; - PtrGlb->Discr = Ident1; - PtrGlb->EnumComp = Ident3; - PtrGlb->IntComp = 40; - mystrcpy(PtrGlb->StringComp, "DHRYSTONE PROGRAM, SOME STRING"); - mystrcpy(String1Loc, "JUST INITIALIZED TO SOME JUNK."); - - - - - - - - - times(&Tms); starttime = Tms.tms_utime; - - for (i = 0; i < 500000 ; ++i) - { - - Proc5(); - Proc4(); - IntLoc1 = 2; - IntLoc2 = 3; - mystrcpy(String2Loc, "DHRYSTONE PROGRAM, 2'ND STRING"); - EnumLoc = Ident2; - BoolGlob = ! Func2(String1Loc, String2Loc); - while (IntLoc1 < IntLoc2) - { - IntLoc3 = 5 * IntLoc1 - IntLoc2; - Proc7(IntLoc1, IntLoc2, &IntLoc3); - ++IntLoc1; - } - Proc8(Array1Glob, Array2Glob, IntLoc1, IntLoc3); - Proc1(PtrGlb); - for (CharIndex = 'A'; CharIndex <= Char2Glob; ++CharIndex) - if (EnumLoc == Func1(CharIndex, 'C')) - Proc6(Ident1, &EnumLoc); - IntLoc3 = IntLoc2 * IntLoc1; - IntLoc2 = IntLoc3 / IntLoc1; - IntLoc2 = 7 * (IntLoc3 - IntLoc2) - IntLoc1; - Proc2(&IntLoc1); - } - - - - - - - - - - - - - - times(&Tms); - benchtime = Tms.tms_utime - starttime - nulltime; - printf("Dhrystone time for %ld passes = %ld\n", - (long) 500000 , benchtime/60 ); - printf("This machine benchmarks at %ld dhrystones/second\n", - ((long) 500000 ) * 60 / benchtime); - - -} - -void Proc1(RecordPtr PtrParIn) -{ - - - (*(PtrParIn->PtrComp)) = *PtrGlb ; - PtrParIn->IntComp = 5; - (*(PtrParIn->PtrComp)) .IntComp = PtrParIn->IntComp; - (*(PtrParIn->PtrComp)) .PtrComp = PtrParIn->PtrComp; - - Proc3(&((*(PtrParIn->PtrComp)) .PtrComp)); - if ((*(PtrParIn->PtrComp)) .Discr == Ident1) - { - (*(PtrParIn->PtrComp)) .IntComp = 6; - Proc6(PtrParIn->EnumComp, &(*(PtrParIn->PtrComp)) .EnumComp); - (*(PtrParIn->PtrComp)) .PtrComp = PtrGlb->PtrComp; - Proc7((*(PtrParIn->PtrComp)) .IntComp, 10, &(*(PtrParIn->PtrComp)) .IntComp); - } - else - *PtrParIn = (*(PtrParIn->PtrComp)) ; - - -} - -void Proc2(OneToFifty *IntParIO) -{ - OneToFifty IntLoc; - Enumeration EnumLoc; - - IntLoc = *IntParIO + 10; - for(;;) - { - if (Char1Glob == 'A') - { - --IntLoc; - *IntParIO = IntLoc - IntGlob; - EnumLoc = Ident1; - } - if (EnumLoc == Ident1) - break; - } -} - -void Proc3(RecordPtr *PtrParOut) -{ - if (PtrGlb != 0 ) - *PtrParOut = PtrGlb->PtrComp; - else - IntGlob = 100; - Proc7(10, IntGlob, &PtrGlb->IntComp); -} - -void Proc4() -{ - boolean BoolLoc; - - BoolLoc = Char1Glob == 'A'; - BoolLoc |= BoolGlob; - Char2Glob = 'B'; -} - -void Proc5() -{ - Char1Glob = 'A'; - BoolGlob = 0 ; -} - - - - -void Proc6( Enumeration EnumParIn, Enumeration *EnumParOut) -{ - *EnumParOut = EnumParIn; - if (! Func3(EnumParIn) ) - *EnumParOut = Ident4; - switch (EnumParIn) - { - case Ident1: *EnumParOut = Ident1; break; - case Ident2: if (IntGlob > 100) *EnumParOut = Ident1; - else *EnumParOut = Ident4; - break; - case Ident3: *EnumParOut = Ident2; break; - case Ident4: break; - case Ident5: *EnumParOut = Ident3; - } -} - -void Proc7(OneToFifty IntParI1, OneToFifty IntParI2, OneToFifty *IntParOut) -{ - OneToFifty IntLoc; - - IntLoc = IntParI1 + 2; - *IntParOut = IntParI2 + IntLoc; -} - -void Proc8(Array1Dim Array1Par, - Array2Dim Array2Par, - OneToFifty IntParI1, - OneToFifty IntParI2) -{ - OneToFifty IntLoc; - OneToFifty IntIndex; - - IntLoc = IntParI1 + 5; - Array1Par[IntLoc] = IntParI2; - Array1Par[IntLoc+1] = Array1Par[IntLoc]; - Array1Par[IntLoc+30] = IntLoc; - for (IntIndex = IntLoc; IntIndex <= (IntLoc+1); ++IntIndex) - Array2Par[IntLoc][IntIndex] = IntLoc; - ++Array2Par[IntLoc][IntLoc-1]; - Array2Par[IntLoc+20][IntLoc] = Array1Par[IntLoc]; - IntGlob = 5; -} - -Enumeration Func1(CapitalLetter CharPar1, CapitalLetter CharPar2) -{ - CapitalLetter CharLoc1; - CapitalLetter CharLoc2; - - CharLoc1 = CharPar1; - CharLoc2 = CharLoc1; - if (CharLoc2 != CharPar2) - return (Ident1); - else - return (Ident2); -} - -boolean Func2(String30 StrParI1, String30 StrParI2) -{ - OneToThirty IntLoc; - CapitalLetter CharLoc; - - IntLoc = 1; - while (IntLoc <= 1) - if (Func1(StrParI1[IntLoc], StrParI2[IntLoc+1]) == Ident1) - { - CharLoc = 'A'; - ++IntLoc; - } - if (CharLoc >= 'W' && CharLoc <= 'Z') - IntLoc = 7; - if (CharLoc == 'X') - return( 1 ); - else - { - if (mystrcmp(StrParI1, StrParI2) > 0) - { - IntLoc += 7; - return ( 1 ); - } - else - return ( 0 ); - } -} - -boolean Func3(Enumeration EnumParIn) -{ - Enumeration EnumLoc; - - EnumLoc = EnumParIn; - if (EnumLoc == Ident3) return ( 1 ); - return ( 0 ); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p701.C b/gcc/testsuite/g++.old-deja/g++.mike/p701.C deleted file mode 100755 index c222ea1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p701.C +++ /dev/null @@ -1,34 +0,0 @@ -// Build don't link: -// prms-id: 701 - -extern "C" -{ - int printf(const char *, ...); -}; - - -void Munge(int& x) -{ // ERROR - referenced below - x = 2; -} - - -class A -{ - public: - int i; - A(int x) : i(x) {} - void Safe() const; -}; - -void -A::Safe() const -{ - Munge(i); // ERROR - should not be able to modify a const object -} - -int main() -{ - const A a(1); - a.Safe(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p710.C b/gcc/testsuite/g++.old-deja/g++.mike/p710.C deleted file mode 100755 index 62dffe9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p710.C +++ /dev/null @@ -1,43 +0,0 @@ -// Build don't link: -// GROUPS passed delete -/* - Bug Id: - PRMS Id: p0000710 - Bug is : overloading operator delete in class def not allowed -*/ - -/* - In addition to this bug, the compiler permits overloading operator - delete in the class definition. This is verboten, and should be - caught by a regression suite. In other words, the following is also a - bug that's not caught: -*/ - - -#include <stdlib.h> - -extern "C" -{ - int printf(const char*, ...); -}; - - - -class B -{ - public: - int x; - virtual ~B() {} - void operator delete(void*,size_t s) - { - printf("B::delete() %d\n",s); - } - void operator delete(void*){} -}; - -int main() -{ - B* p = new B; - delete p; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p7180.C b/gcc/testsuite/g++.old-deja/g++.mike/p7180.C deleted file mode 100755 index da75bd6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p7180.C +++ /dev/null @@ -1,17 +0,0 @@ -// prms-id: 7180 - -class String { -public: - String(const char*); - ~String(); -}; - -String::String(const char* str = "") { -} - -String::~String(void) { -} - -int main() { - const String array[] = {"3"}; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p7325.C b/gcc/testsuite/g++.old-deja/g++.mike/p7325.C deleted file mode 100755 index e6d76f5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p7325.C +++ /dev/null @@ -1,55 +0,0 @@ -// I hate this type of test case. I'm not sure how to code it better. -// See the PR for what this tests. -// prms-id: 7325 -// execution test - XFAIL *-*-* - -int fail = 0; - -struct A { - int i; - static const A* match_this; - static const A* match_arg; - A(): i(7) { - if (match_this) - if (match_this != this) - fail = 1; - } - A* get_this() { return this; } - A& operator = (const A& o) { - if (match_this) - if (match_this != this) - fail = 1; - if (match_arg) - if (match_arg != &o) - fail = 1; - match_arg = &o; - } -}; - -const A* A::match_this; -const A* A::match_arg; -A a; - -A foo() { return a; } -void f () -{ - A a; - A::match_this = &a; - a = foo (); - a = foo (); - A::match_this = 0; -} - -void g () -{ - A::match_this = A().get_this(); - A(); - A(); - A::match_this = 0; -} - -int main() { - f(); - g(); - return fail; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p7476.C b/gcc/testsuite/g++.old-deja/g++.mike/p7476.C deleted file mode 100755 index acddf05..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p7476.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// prms-id: 7476 - -class HeapTracked { -public: - virtual ~HeapTracked() { } - static void isObjectAllocation(const HeapTracked *ptr); - static void isObjectAllocation(HeapTracked *ptr); -}; - -void HeapTracked::isObjectAllocation(HeapTracked *ptr) -{ - dynamic_cast<const void*>(ptr); - dynamic_cast<void*>(ptr); -} -void HeapTracked::isObjectAllocation(const HeapTracked *ptr) -{ - const_cast<void*>(dynamic_cast<const void*>(ptr)); - dynamic_cast<void*>(ptr); // ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p755.C b/gcc/testsuite/g++.old-deja/g++.mike/p755.C deleted file mode 100755 index 256c985..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p755.C +++ /dev/null @@ -1,17 +0,0 @@ -// It checks to see if you can define your own global new operator. -// prms-id: 755 - -#include <new> -extern "C" void exit(int); - -void* operator new(size_t sz) throw (std::bad_alloc) { - void* p = 0; - exit(0); - return p; -} - -int main () { - int* i = new int; - delete i; - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p755a.C b/gcc/testsuite/g++.old-deja/g++.mike/p755a.C deleted file mode 100755 index 73172c1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p755a.C +++ /dev/null @@ -1,14 +0,0 @@ -// It checks to see if you can define your own global delete operator. -// prms-id: 755 - -extern "C" void exit(int); - -void operator delete(void *p) throw() { - exit(0); -} - -int main () { - int* i = new int; - delete i; - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p7626.C b/gcc/testsuite/g++.old-deja/g++.mike/p7626.C deleted file mode 100755 index 8e38667..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p7626.C +++ /dev/null @@ -1,43 +0,0 @@ -// Build don't link: -// prms-id: 7626 - -int fail; - -typedef unsigned int UINT; - -class CObject{}; - -class CCmdTarget : public CObject { -}; - -typedef void (CCmdTarget::*AFX_PMSG)(void); - -struct AFX_MSGMAP_ENTRY { - AFX_PMSG pfn; -}; - -class CWnd : public CCmdTarget { -public: - void OnMyMsg() { fail = 1; } // If this one is called, something is wrong. - static AFX_MSGMAP_ENTRY _messageEntries[]; -}; - -typedef void (CWnd::*AFX_PMSGW)(void); - -class CDialog : public CWnd -{ -public: - void OnMyMsg() { } - static AFX_MSGMAP_ENTRY _messageEntries[]; -}; - -AFX_MSGMAP_ENTRY CDialog ::_messageEntries[] = { - { (AFX_PMSG)(AFX_PMSGW)(void (CWnd::*)())&CDialog::OnMyMsg }, - { (AFX_PMSG)0 } -}; - -int main() { - CDialog d; - (d.*((CDialog::_messageEntries)[0]).pfn)(); // This should call CDialog::OnMyMsg - return fail; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p7635.C b/gcc/testsuite/g++.old-deja/g++.mike/p7635.C deleted file mode 100755 index 4cafa0e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p7635.C +++ /dev/null @@ -1,6 +0,0 @@ -// prms-id: 7635 - -class DaycountBasis { - mutable const int * p; - mutable int * const q; // ERROR - -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p7651.C b/gcc/testsuite/g++.old-deja/g++.mike/p7651.C deleted file mode 100755 index 487b0d5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p7651.C +++ /dev/null @@ -1,25 +0,0 @@ -// prms-id: 7651 - -int fail = 0; - -class Foo { -public: - Foo(double i) : data(i) { if (data != 1.0) fail = 1; } - ~Foo() { if (data != 1.0) fail = 1; } -private: - volatile double data; -}; - -int DingDong(double A) { - volatile Foo a(A); - - if ( A != 0.0 ) { - return 1; - } - return 0; -} - - -int main() { - DingDong(1.0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p783.C b/gcc/testsuite/g++.old-deja/g++.mike/p783.C deleted file mode 100755 index 4194fa8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p783.C +++ /dev/null @@ -1,15 +0,0 @@ -// prms-id: 783 - -extern "C" void printf (char *, ...); - -class C { -public: - C() { } - ~C() { } -}; - -int main(int argc, char**argv) { - C c,d; - c = (argc&1) ? C() : d; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p783a.C b/gcc/testsuite/g++.old-deja/g++.mike/p783a.C deleted file mode 100755 index 6321a7b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p783a.C +++ /dev/null @@ -1,26 +0,0 @@ -// Copying into an object directly is a lose according to tiemann. -// Deleting an object many times is a lose. -// prms-id: 783 - -extern "C" void printf (char *, ...); -extern "C" void exit (int); - -class C { - int i; -public: - C() { - i = 1; - } - ~C() { - if (i != 1) { - exit(1); - } - i = 0; - } -}; - -int main(int argc, char**argv) { - C c; - c = C(); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p783b.C b/gcc/testsuite/g++.old-deja/g++.mike/p783b.C deleted file mode 100755 index 35a18f3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p783b.C +++ /dev/null @@ -1,37 +0,0 @@ -// This one check for objects being destroyed twice. The bug it is -// looking for is the extra dtor call on C() even though it is never -// built. -// prms-id: 783 - -extern "C" void printf (char *, ...); -extern "C" void exit (int); - -class C { - int i; -public: -// C() {printf ("C ctor at %x\n", this);} -// ~C() {printf ("C dtor at %x\n", this);} - C() { - i = 1; - } - ~C() { - if (i != 1) { - exit(1); - } - i = 0; - } -}; - -C g; - -C func() { - return g; -} - -int main(int argc, char**argv) { - C c,d; -// printf ("\n"); - c = (argc != 1) ? C() : d; -// printf ("\n"); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p784.C b/gcc/testsuite/g++.old-deja/g++.mike/p784.C deleted file mode 100755 index ce61049..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p784.C +++ /dev/null @@ -1,3658 +0,0 @@ -// Build don't link: -// Special g++ Options: -w -// prms-id: 784 - -//# 1 "GctSymbol.GctSymbol.CHMap.cc" -// This may look like C code, but it is really -*- C++ -*- -/* -Copyright (C) 1988 Free Software Foundation - written by Doug Lea (dl@rocky.oswego.edu) - -This file is part of the GNU C++ Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - - -//#pragma implementation - -//# 1 "GctSymbol.GctSymbol.CHMap.h" 1 -// This may look like C code, but it is really -*- C++ -*- -/* -Copyright (C) 1988 Free Software Foundation - written by Doug Lea (dl@rocky.oswego.edu) - -This file is part of the GNU C++ Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - - - - -//#pragma interface - - - -//# 1 "GctSymbol.GctSymbol.Map.h" 1 -// This may look like C code, but it is really -*- C++ -*- -/* -Copyright (C) 1988 Free Software Foundation - written by Doug Lea (dl@rocky.oswego.edu) - -This file is part of the GNU C++ Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - - - - -//#pragma interface - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/Pix.h" 1 - - - -typedef void* Pix; - -//# 26 "GctSymbol.GctSymbol.Map.h" 2 - -//# 1 "GctSymbol.defs.h" 1 -// This may look like C code, but it is really -*- C++ -*- -/* -Copyright (C) 1988 Free Software Foundation - written by Doug Lea (dl@rocky.oswego.edu) - -This file is part of the GNU C++ Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - - - - - - - -//# 1 "../../GctSymbol.h" 1 -// -*- C++ -*- - - - -// -// GctSymbol class -// -// Expects to be included by Gct.h -// -// Wendell Baker, Berkeley CAD Group, 1992 (wbaker@ic.Berkeley.EDU) -// - - - - - -//#pragma interface - - - - - -//# 25 "../../GctSymbol.h" 2 - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/String.h" 1 -// This may look like C code, but it is really -*- C++ -*- -/* -Copyright (C) 1988 Free Software Foundation - written by Doug Lea (dl@rocky.oswego.edu) - -This file is part of the GNU C++ Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - - - - -//#pragma interface - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stream.h" 1 - - - -// Compatibility with old library. - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" 1 -// This is part of the iostream library, providing -*- C++ -*- input/output. -// Copyright (C) 1991 Per Bothner. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free -// Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - - -//#pragma interface - - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/streambuf.h" 1 -// This is part of the iostream library, providing -*- C++ -*- input/output. -// Copyright (C) 1991 Per Bothner. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free -// Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - - - -//#pragma interface - - -/* KLUDGES!! */ -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stddef.h" 1 - - -extern "C" { - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/mips/lib/gcc/decstatn/cygnus-1.96/include/stddef.h" 1 - - - - - - -/* This avoids lossage on Sunos but only if stdtypes.h comes first. - There's no way to win with the other order! Sun lossage. */ - -/* In case nobody has defined these types, but we aren't running under - GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE__TYPE__, and - __WCHAR_TYPE__ have reasonable values. This can happen if the - parts of GCC is compiled by an older compiler, that actually - include gstddef.h, such as collect2. */ - -/* Signed type of difference of two pointers. */ - - - - - - - - - - - - - - -typedef long int ptrdiff_t; - - - - - - -/* Unsigned type of `sizeof' something. */ - - - - - - - - - - - - - - -typedef unsigned int size_t; - - - - - - -/* Data type for wide chars. */ - - - - - - - - - - - - - - -typedef int wchar_t; - - - - - - - - -/* A null pointer constant. */ - - - - -/* Offset of member MEMBER in a struct of type TYPE. */ - - - - - -//# 7 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stddef.h" 2 - - - - -} - -//# 25 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/streambuf.h" 2 - - - - - - - - - - - - - - - - -class ostream; class streambuf; - -typedef long streamoff, streampos; - -struct _ios_fields { // The data members of an ios. - streambuf *_strbuf; - ostream* _tie; - long _width; - unsigned long _flags; - char _fill; - unsigned char _state; - unsigned short _precision; -}; - - -enum state_value { _good = 0, _eof = 1, _fail = 2, _bad = 4 }; - - -class ios : public _ios_fields { - public: - enum io_state { goodbit=0, eofbit=1, failbit=2, badbit=4 }; - enum open_mode { - in=1, - out=2, - ate=4, - app=8, - trunc=16, - nocreate=32, - noreplace=64 }; - enum seek_dir { beg, cur, end}; - enum { skipws=01, left=02, right=04, internal=010, - dec=020, oct=040, hex=0100, - showbase=0200, showpoint=0400, uppercase=01000, showpos=02000, - scientific=04000, fixed=0100000, unitbuf=020000, stdio=040000, - dont_close=0x80000000 //Don't close streambuf when destroying stream - }; - - ostream* tie() { return _tie; } - ostream* tie(ostream* val) { ostream* save=_tie; _tie=val; return save; } - - // Methods to change the format state. - char fill() { return _fill; } - char fill(char newf) { char oldf = _fill; _fill = newf; return oldf; } - unsigned long flags() { return _flags; } - unsigned long flags(unsigned long new_val) { - unsigned long old_val = _flags; _flags = new_val; return old_val; } - unsigned short precision() { return _precision; } - unsigned short precision(int newp) { - unsigned short oldp = _precision; _precision = (unsigned short)newp; - return oldp; } - unsigned long setf(unsigned long val) { - unsigned long oldbits = _flags; - _flags |= val; return oldbits; } - unsigned long setf(unsigned long val, unsigned long mask) { - unsigned long oldbits = _flags; - _flags = (_flags & ~mask) | (val & mask); return oldbits; } - unsigned long unsetf(unsigned long mask) { - unsigned long oldbits = _flags & mask; - _flags &= ~mask; return oldbits; } - long width() { return _width; } - long width(long val) { long save = _width; _width = val; return save; } - - static const unsigned long basefield; - static const unsigned long adjustfield; - static const unsigned long floatfield; - - streambuf* rdbuf() { return _strbuf; } - void clear(int state = 0) { _state = state; } - int good() { return _state == 0; } - int eof() { return _state & ios::eofbit; } - int fail() { return _state & (ios::badbit|ios::failbit); } - int bad() { return _state & ios::badbit; } - int rdstate() { return _state; } - void set(int flag) { _state |= flag; } - operator void*() { return fail() ? (void*)0 : (void*)this; } - int operator!() { return fail(); } - - - void unset(state_value flag) { _state &= ~flag; } - void close(); - int is_open(); - int readable(); - int writable(); - - - protected: - ios(streambuf*sb) { _strbuf=sb; _state=0; _width=0; _fill=' '; - _flags=ios::skipws; _precision=6; } -}; - - - - -typedef ios::seek_dir _seek_dir; - - -// Magic numbers and bits for the _flags field. -// The magic numbers use the high-order bits of _flags; -// the remaining bits are abailable for variable flags. -// Note: The magic numbers must all be negative if stdio -// emulation is desired. - - - - - - - - - - - - - - - -struct __streambuf { - // NOTE: If this is changed, also change __FILE in stdio/stdio.h! - int _flags; /* High-order word is _IO_MAGIC; rest is flags. */ - char* _gptr; /* Current get pointer */ - char* _egptr; /* End of get area. */ - char* _eback; /* Start of putback+get area. */ - char* _pbase; /* Start of put area. */ - char* _pptr; /* Current put pointer. */ - char* _epptr; /* End of put area. */ - char* _base; /* Start of reserve area. */ - char* _ebuf; /* End of reserve area. */ - struct streambuf *_chain; -}; - -struct streambuf : private __streambuf { - friend class ios; - friend class istream; - friend class ostream; - protected: - static streambuf* _list_all; /* List of open streambufs. */ - streambuf*& xchain() { return _chain; } - void _un_link(); - void _link_in(); - char* gptr() const { return _gptr; } - char* pptr() const { return _pptr; } - char* egptr() const { return _egptr; } - char* epptr() const { return _epptr; } - char* pbase() const { return _pbase; } - char* eback() const { return _eback; } - char* ebuf() const { return _ebuf; } - char* base() const { return _base; } - void xput_char(char c) { *_pptr++ = c; } - int xflags() { return _flags; } - int xflags(int f) { int fl = _flags; _flags = f; return fl; } - void xsetflags(int f) { _flags |= f; } - void gbump(int n) { _gptr += n; } - void pbump(int n) { _pptr += n; } - void setb(char* b, char* eb, int a=0); - void setp(char* p, char* ep) { _pbase=_pptr=p; _epptr=ep; } - void setg(char* eb, char* g, char *eg) { _eback=eb; _gptr=g; _egptr=eg; } - public: - static int flush_all(); - static void flush_all_linebuffered(); // Flush all line buffered files. - virtual int underflow(); // Leave public for now - virtual int overflow(int c = (-1) ); // Leave public for now - virtual int doallocate(); - virtual streampos seekoff(streamoff, _seek_dir, int mode=ios::in|ios::out); - virtual streampos seekpos(streampos pos, int mode = ios::in|ios::out); - int sputbackc(char c); - int sungetc(); - streambuf(); - virtual ~streambuf(); - int unbuffered() { return _flags & 2 ? 1 : 0; } - int linebuffered() { return _flags & 0x4000 ? 1 : 0; } - void unbuffered(int i) - { if (i) _flags |= 2 ; else _flags &= ~2 ; } - void linebuffered(int i) - { if (i) _flags |= 0x4000 ; else _flags &= ~0x4000 ; } - int allocate() { - if (base() || unbuffered()) return 0; - else return doallocate(); } - virtual int sync(); - virtual int pbackfail(int c); - virtual int ungetfail(); - virtual streambuf* setbuf(char* p, int len); - int in_avail() { return _egptr - _gptr; } - int out_waiting() { return _pptr - _pbase; } - virtual int sputn(const char* s, int n); - virtual int sgetn(char* s, int n); - long sgetline(char* buf, size_t n, char delim, int putback_delim); - int sbumpc() { - if (_gptr >= _egptr && underflow() == (-1) ) return (-1) ; - else return *(unsigned char*)_gptr++; } - int sgetc() { - if (_gptr >= _egptr && underflow() == (-1) ) return (-1) ; - else return *(unsigned char*)_gptr; } - int snextc() { - if (++_gptr >= _egptr && underflow() == (-1) ) return (-1) ; - else return *(unsigned char*)_gptr; } - int sputc(int c) { - if (_pptr >= _epptr) return overflow(c); - return *_pptr++ = c, (unsigned char)c; } - int vscan(char const *fmt0, char* ap); - int vform(char const *fmt0, char* ap); -}; - -struct __file_fields { - char _fake; - char _shortbuf[1]; - short _fileno; - int _blksize; - char* _save_gptr; - char* _save_egptr; - long _offset; -}; - -class filebuf : public streambuf { - struct __file_fields _fb; - void init(); - public: - filebuf(); - filebuf(int fd); - filebuf(int fd, char* p, int len); - ~filebuf(); - filebuf* attach(int fd); - filebuf* open(const char *filename, const char *mode); - filebuf* open(const char *filename, int mode, int prot = 0664); - virtual int underflow(); - virtual int overflow(int c = (-1) ); - int is_open() { return _fb._fileno >= 0; } - int fd() { return is_open() ? _fb._fileno : (-1) ; } - filebuf* close(); - virtual int doallocate(); - virtual streampos seekoff(streamoff, _seek_dir, int mode=ios::in|ios::out); - int sputn(const char* s, int n); - int sgetn(char* s, int n); - protected: // See documentation in filebuf.C. - virtual int pbackfail(int c); - virtual int sync(); - int is_reading() { return eback() != egptr(); } - char* cur_ptr() { return is_reading() ? gptr() : pptr(); } - /* System's idea of pointer */ - char* file_ptr() { return _fb._save_gptr ? _fb._save_egptr : egptr(); } - int do_flush(); - // Low-level operations (Usually invoke system calls.) - virtual int sys_read(char* buf, size_t size); - virtual long sys_seek(long , _seek_dir); - virtual long sys_write(const void*, long); - virtual int sys_stat(void*); // Actually, a (struct stat*) - virtual int sys_close(); -}; - - -inline int ios::readable() { return rdbuf()->_flags & 4 ; } -inline int ios::writable() { return rdbuf()->_flags & 8 ; } -inline int ios::is_open() {return rdbuf()->_flags & 4 +8 ;} - - - - -//# 25 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" 2 - - -class istream; class ostream; -typedef istream& (*__imanip)(istream&); -typedef ostream& (*__omanip)(ostream&); - -extern istream& ws(istream& ins); -extern ostream& flush(ostream& outs); -extern ostream& endl(ostream& outs); -extern ostream& ends(ostream& outs); - -class ostream : public ios -{ - void do_osfx(); - public: - ostream(); - ostream(streambuf* sb, ostream* tied=(__null) ); - ~ostream(); - - int opfx() { if (!good()) return 0; if (_tie) _tie->flush(); return 1; } - void osfx() { if (flags() & (ios::unitbuf|ios::stdio)) - do_osfx(); } - streambuf* ostreambuf() const { return _strbuf; } - ostream& flush(); - ostream& put(char c); - ostream& write(const char *s, int n); - ostream& write(const unsigned char *s, int n) { return write((char*)s, n);} - ostream& write(const void *s, int n) { return write((char*)s, n);} - ostream& seekp(streampos); - ostream& seekp(streamoff, _seek_dir); - streampos tellp(); - ostream& form(const char *format ...); - ostream& vform(const char *format, char* args); -}; - -ostream& operator<<(ostream&, char c); -ostream& operator<<(ostream& os, unsigned char c) { return os << (char)c; } -//ostream& operator<<(ostream &os, signed char c) { return os << (char)c; } -extern ostream& operator<<(ostream&, const char *s); -inline ostream& operator<<(ostream& os, const unsigned char *s) -{ return os << (const char*)s; } -//inline ostream& operator<<(ostream& os, const signed char *s) -//{ return os << (const char*)s; } -ostream& operator<<(ostream&, void *p); -ostream& operator<<(ostream&, int n); -ostream& operator<<(ostream&, long n); -ostream& operator<<(ostream&, unsigned int n); -ostream& operator<<(ostream&, unsigned long n); -ostream& operator<<(ostream& os, short n) {return os << (int)n;} -ostream& operator<<(ostream& os, unsigned short n) -{return os << (unsigned int)n;} -ostream& operator<<(ostream&, float n); -ostream& operator<<(ostream&, double n); -ostream& operator<<(ostream& os, __omanip func) { return (*func)(os); } -ostream& operator<<(ostream&, streambuf*); - -class istream : public ios -{ - size_t _gcount; - public: - istream(); - istream(streambuf* sb, ostream*tied=(__null) ); - ~istream(); - streambuf* istreambuf() const { return _strbuf; } - istream& get(char& c); - istream& get(unsigned char& c); - istream& read(char *ptr, int n); - istream& read(unsigned char *ptr, int n) { return read((char*)ptr, n); } - istream& read(void *ptr, int n) { return read((char*)ptr, n); } - int get() { return _strbuf->sbumpc(); } - istream& getline(char* ptr, int len, char delim = '\n'); - istream& get(char* ptr, int len, char delim = '\n'); - istream& gets(char **s, char delim = '\n'); - int ipfx(int need) { - if (!good()) { set(ios::failbit); return 0; } - if (_tie && (need == 0 || rdbuf()->in_avail())) ; //??? THIS LINE IS QUESTIONABLE */ - if (!need && (flags() & ios::skipws) && !ws(*this)) return 0; - return 1; - } - int ipfx0() { // Optimized version of ipfx(0). - if (!good()) { set(ios::failbit); return 0; } - if (_tie) _tie->flush(); - if ((flags() & ios::skipws) && !ws(*this)) return 0; - return 1; - } - int ipfx1() { // Optimized version of ipfx(1). - if (!good()) { set(ios::failbit); return 0; } - if (_tie && rdbuf()->in_avail() == 0) _tie->flush(); - return 1; - } - size_t gcount() { return _gcount; } - istream& seekg(streampos); - istream& seekg(streamoff, _seek_dir); - streampos tellg(); - istream& putback(char ch) { - if (good() && _strbuf->sputbackc(ch) == (-1) ) clear(ios::badbit); - return *this;} - istream& unget() { - if (good() && _strbuf->sungetc() == (-1) ) clear(ios::badbit); - return *this;} - - istream& unget(char ch) { return putback(ch); } - int skip(int i); - -}; - -istream& operator>>(istream&, char*); -istream& operator>>(istream& is, unsigned char* p) { return is >> (char*)p; } -//istream& operator>>(istream& is, signed char* p) { return is >> (char*)p; } -istream& operator>>(istream&, char& c); -istream& operator>>(istream&, unsigned char& c); -//istream& operator>>(istream&, signed char& c); -istream& operator>>(istream&, int&); -istream& operator>>(istream&, long&); -istream& operator>>(istream&, short&); -istream& operator>>(istream&, unsigned int&); -istream& operator>>(istream&, unsigned long&); -istream& operator>>(istream&, unsigned short&); -istream& operator>>(istream&, float&); -istream& operator>>(istream&, double&); -istream& operator>>(istream& is, __imanip func) { return (*func)(is); } - -class iostream : public ios { - size_t _gcount; - public: - iostream(); - operator istream&() { return *(istream*)this; } - operator ostream&() { return *(ostream*)this; } - ~iostream(); - // NOTE: These duplicate istream methods. - istream& get(char& c) { return ((istream*)this)->get(c); } - istream& get(unsigned char& c) { return ((istream*)this)->get(c); } - istream& read(char *ptr, int n) { return ((istream*)this)->read(ptr, n); } - istream& read(unsigned char *ptr, int n) - { return ((istream*)this)->read((char*)ptr, n); } - istream& read(void *ptr, int n) - { return ((istream*)this)->read((char*)ptr, n); } - int get() { return _strbuf->sbumpc(); } - istream& getline(char* ptr, int len, char delim = '\n') - { return ((istream*)this)->getline(ptr, len, delim); } - istream& get(char* ptr, int len, char delim = '\n') - { return ((istream*)this)->get(ptr, len, delim); } - istream& gets(char **s, char delim = '\n') - { return ((istream*)this)->gets(s, delim); } - int ipfx(int need) { return ((istream*)this)->ipfx(need); } - int ipfx0() { return ((istream*)this)->ipfx0(); } - int ipfx1() { return ((istream*)this)->ipfx1(); } - size_t gcount() { return _gcount; } - istream& putback(char ch) { return ((istream*)this)->putback(ch); } - istream& unget() { return ((istream*)this)->unget(); } - istream& seekg(streampos pos) { return ((istream*)this)->seekg(pos); } - istream& seekg(streamoff off, _seek_dir dir) - { return ((istream*)this)->seekg(off, dir); } - streampos tellg() { return ((istream*)this)->tellg(); } - - istream& unget(char ch) { return putback(ch); } - - - // NOTE: These duplicate ostream methods. - int opfx() { return ((ostream*)this)->opfx(); } - void osfx() { ((ostream*)this)->osfx(); } - ostream& flush() { return ((ostream*)this)->flush(); } - ostream& put(char c) { return ((ostream*)this)->put(c); } - ostream& write(const char *s, int n) - { return ((ostream*)this)->write(s, n); } - ostream& write(const unsigned char *s, int n) - { return ((ostream*)this)->write((char*)s, n); } - ostream& write(const void *s, int n) - { return ((ostream*)this)->write((char*)s, n); } - ostream& form(const char *format ...); - ostream& vform(const char *format, char* args) - { return ((ostream*)this)->vform(format, args); } - ostream& seekp(streampos pos) { return ((ostream*)this)->seekp(pos); } - ostream& seekp(streamoff off, _seek_dir dir) - { return ((ostream*)this)->seekp(off, dir); } - streampos tellp() { return ((ostream*)this)->tellp(); } -}; - -extern istream cin; -extern ostream cout, cerr, clog; // clog->rdbuf() == cerr->rdbuf() - -inline ostream& ostream::put(char c) { _strbuf->sputc(c); return *this; } - -struct Iostream_init { } ; // Compatibility hack for AT&T libraray. - - -//# 7 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stream.h" 2 - - -extern char* form(char*, ...); - -extern char* dec(long, int=0); -extern char* dec(int, int=0); -extern char* dec(unsigned long, int=0); -extern char* dec(unsigned int, int=0); - -extern char* hex(long, int=0); -extern char* hex(int, int=0); -extern char* hex(unsigned long, int=0); -extern char* hex(unsigned int, int=0); - -extern char* oct(long, int=0); -extern char* oct(int, int=0); -extern char* oct(unsigned long, int=0); -extern char* oct(unsigned int, int=0); - -inline istream& WS(istream& str) { return ws(str); } - - -//# 26 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/String.h" 2 - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/Regex.h" 1 -// This may look like C code, but it is really -*- C++ -*- -/* -Copyright (C) 1988 Free Software Foundation - written by Doug Lea (dl@rocky.oswego.edu) - -This file is part of the GNU C++ Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - - - - -//#pragma interface - - - - - - - - - -struct re_pattern_buffer; // defined elsewhere -struct re_registers; - -class Regex -{ -private: - - Regex(const Regex&) {} // no X(X&) - void operator = (const Regex&) {} // no assignment - -protected: - re_pattern_buffer* buf; - re_registers* reg; - -public: - Regex(const char* t, - int fast = 0, - int bufsize = 40, - const char* transtable = 0); - - ~Regex(); - - int match(const char* s, int len, int pos = 0) const; - int search(const char* s, int len, - int& matchlen, int startpos = 0) const; - int match_info(int& start, int& length, int nth = 0) const; - - int OK() const; // representation invariant -}; - -// some built in regular expressions - -extern const Regex RXwhite; // = "[ \n\t\r\v\f]+" -extern const Regex RXint; // = "-?[0-9]+" -extern const Regex RXdouble; // = "-?\\(\\([0-9]+\\.[0-9]*\\)\\| - // \\([0-9]+\\)\\|\\(\\.[0-9]+\\)\\) - // \\([eE][---+]?[0-9]+\\)?" -extern const Regex RXalpha; // = "[A-Za-z]+" -extern const Regex RXlowercase; // = "[a-z]+" -extern const Regex RXuppercase; // = "[A-Z]+" -extern const Regex RXalphanum; // = "[0-9A-Za-z]+" -extern const Regex RXidentifier; // = "[A-Za-z_][A-Za-z0-9_]*" - - - -//# 27 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/String.h" 2 - - -struct StrRep // internal String representations -{ - unsigned short len; // string length - unsigned short sz; // allocated space - char s[1]; // the string starts here - // (at least 1 char for trailing null) - // allocated & expanded via non-public fcts -}; - -// primitive ops on StrReps -- nearly all String fns go through these. - -StrRep* Salloc(StrRep*, const char*, int, int); -StrRep* Scopy(StrRep*, StrRep*); -StrRep* Sresize(StrRep*, int); -StrRep* Scat(StrRep*, const char*, int, const char*, int); -StrRep* Scat(StrRep*, const char*, int,const char*,int, const char*,int); -StrRep* Sprepend(StrRep*, const char*, int); -StrRep* Sreverse(StrRep*, StrRep*); -StrRep* Supcase(StrRep*, StrRep*); -StrRep* Sdowncase(StrRep*, StrRep*); -StrRep* Scapitalize(StrRep*, StrRep*); - -// These classes need to be defined in the order given - -class String; -class SubString; - -class SubString -{ - friend class String; -protected: - - String& S; // The String I'm a substring of - unsigned short pos; // starting position in S's rep - unsigned short len; // length of substring - - void assign(StrRep*, const char*, int = -1); - SubString(String& x, int p, int l); - SubString(const SubString& x); - -public: - -// Note there are no public constructors. SubStrings are always -// created via String operations - - ~SubString(); - - void operator = (const String& y); - void operator = (const SubString& y); - void operator = (const char* t); - void operator = (char c); - -// return 1 if target appears anywhere in SubString; else 0 - - int contains(char c) const; - int contains(const String& y) const; - int contains(const SubString& y) const; - int contains(const char* t) const; - int contains(const Regex& r) const; - -// return 1 if target matches entire SubString - - int matches(const Regex& r) const; - -// IO - - friend ostream& operator<<(ostream& s, const SubString& x); - -// status - - unsigned int length() const; - int empty() const; - const char* chars() const; - - int OK() const; - -}; - - -class String -{ - friend class SubString; - -protected: - StrRep* rep; // Strings are pointers to their representations - -// some helper functions - - int search(int, int, const char*, int = -1) const; - int search(int, int, char) const; - int match(int, int, int, const char*, int = -1) const; - int _gsub(const char*, int, const char* ,int); - int _gsub(const Regex&, const char*, int); - SubString _substr(int, int); - -public: - -// constructors & assignment - - String(); - String(const String& x); - String(const SubString& x); - String(const char* t); - String(const char* t, int len); - String(char c); - - ~String(); - - void operator = (const String& y); - void operator = (const char* y); - void operator = (char c); - void operator = (const SubString& y); - -// concatenation - - void operator += (const String& y); - void operator += (const SubString& y); - void operator += (const char* t); - void operator += (char c); - - void prepend(const String& y); - void prepend(const SubString& y); - void prepend(const char* t); - void prepend(char c); - - -// procedural versions: -// concatenate first 2 args, store result in last arg - - friend void cat(const String&, const String&, String&); - friend void cat(const String&, const SubString&, String&); - friend void cat(const String&, const char*, String&); - friend void cat(const String&, char, String&); - - friend void cat(const SubString&, const String&, String&); - friend void cat(const SubString&, const SubString&, String&); - friend void cat(const SubString&, const char*, String&); - friend void cat(const SubString&, char, String&); - - friend void cat(const char*, const String&, String&); - friend void cat(const char*, const SubString&, String&); - friend void cat(const char*, const char*, String&); - friend void cat(const char*, char, String&); - -// double concatenation, by request. (yes, there are too many versions, -// but if one is supported, then the others should be too...) -// Concatenate first 3 args, store in last arg - - friend void cat(const String&,const String&, const String&,String&); - friend void cat(const String&,const String&,const SubString&,String&); - friend void cat(const String&,const String&, const char*, String&); - friend void cat(const String&,const String&, char, String&); - friend void cat(const String&,const SubString&,const String&,String&); - friend void cat(const String&,const SubString&,const SubString&,String&); - friend void cat(const String&,const SubString&, const char*, String&); - friend void cat(const String&,const SubString&, char, String&); - friend void cat(const String&,const char*, const String&, String&); - friend void cat(const String&,const char*, const SubString&, String&); - friend void cat(const String&,const char*, const char*, String&); - friend void cat(const String&,const char*, char, String&); - - friend void cat(const char*, const String&, const String&,String&); - friend void cat(const char*,const String&,const SubString&,String&); - friend void cat(const char*,const String&, const char*, String&); - friend void cat(const char*,const String&, char, String&); - friend void cat(const char*,const SubString&,const String&,String&); - friend void cat(const char*,const SubString&,const SubString&,String&); - friend void cat(const char*,const SubString&, const char*, String&); - friend void cat(const char*,const SubString&, char, String&); - friend void cat(const char*,const char*, const String&, String&); - friend void cat(const char*,const char*, const SubString&, String&); - friend void cat(const char*,const char*, const char*, String&); - friend void cat(const char*,const char*, char, String&); - - -// searching & matching - -// return position of target in string or -1 for failure - - int index(char c, int startpos = 0) const; - int index(const String& y, int startpos = 0) const; - int index(const SubString& y, int startpos = 0) const; - int index(const char* t, int startpos = 0) const; - int index(const Regex& r, int startpos = 0) const; - -// return 1 if target appears anyhere in String; else 0 - - int contains(char c) const; - int contains(const String& y) const; - int contains(const SubString& y) const; - int contains(const char* t) const; - int contains(const Regex& r) const; - -// return 1 if target appears anywhere after position pos -// (or before, if pos is negative) in String; else 0 - - int contains(char c, int pos) const; - int contains(const String& y, int pos) const; - int contains(const SubString& y, int pos) const; - int contains(const char* t, int pos) const; - int contains(const Regex& r, int pos) const; - -// return 1 if target appears at position pos in String; else 0 - - int matches(char c, int pos = 0) const; - int matches(const String& y, int pos = 0) const; - int matches(const SubString& y, int pos = 0) const; - int matches(const char* t, int pos = 0) const; - int matches(const Regex& r, int pos = 0) const; - -// return number of occurences of target in String - - int freq(char c) const; - int freq(const String& y) const; - int freq(const SubString& y) const; - int freq(const char* t) const; - -// SubString extraction - -// Note that you can't take a substring of a const String, since -// this leaves open the possiblility of indirectly modifying the -// String through the SubString - - SubString at(int pos, int len); - SubString operator () (int pos, int len); // synonym for at - - SubString at(const String& x, int startpos = 0); - SubString at(const SubString& x, int startpos = 0); - SubString at(const char* t, int startpos = 0); - SubString at(char c, int startpos = 0); - SubString at(const Regex& r, int startpos = 0); - - SubString before(int pos); - SubString before(const String& x, int startpos = 0); - SubString before(const SubString& x, int startpos = 0); - SubString before(const char* t, int startpos = 0); - SubString before(char c, int startpos = 0); - SubString before(const Regex& r, int startpos = 0); - - SubString through(int pos); - SubString through(const String& x, int startpos = 0); - SubString through(const SubString& x, int startpos = 0); - SubString through(const char* t, int startpos = 0); - SubString through(char c, int startpos = 0); - SubString through(const Regex& r, int startpos = 0); - - SubString from(int pos); - SubString from(const String& x, int startpos = 0); - SubString from(const SubString& x, int startpos = 0); - SubString from(const char* t, int startpos = 0); - SubString from(char c, int startpos = 0); - SubString from(const Regex& r, int startpos = 0); - - SubString after(int pos); - SubString after(const String& x, int startpos = 0); - SubString after(const SubString& x, int startpos = 0); - SubString after(const char* t, int startpos = 0); - SubString after(char c, int startpos = 0); - SubString after(const Regex& r, int startpos = 0); - - -// deletion - -// delete len chars starting at pos - void del(int pos, int len); - -// delete the first occurrence of target after startpos - - void del(const String& y, int startpos = 0); - void del(const SubString& y, int startpos = 0); - void del(const char* t, int startpos = 0); - void del(char c, int startpos = 0); - void del(const Regex& r, int startpos = 0); - -// global substitution: substitute all occurrences of pat with repl - - int gsub(const String& pat, const String& repl); - int gsub(const SubString& pat, const String& repl); - int gsub(const char* pat, const String& repl); - int gsub(const char* pat, const char* repl); - int gsub(const Regex& pat, const String& repl); - -// friends & utilities - -// split string into array res at separators; return number of elements - - friend int split(const String& x, String res[], int maxn, - const String& sep); - friend int split(const String& x, String res[], int maxn, - const Regex& sep); - - friend String common_prefix(const String& x, const String& y, - int startpos = 0); - friend String common_suffix(const String& x, const String& y, - int startpos = -1); - friend String replicate(char c, int n); - friend String replicate(const String& y, int n); - friend String join(String src[], int n, const String& sep); - -// simple builtin transformations - - friend String reverse(const String& x); - friend String upcase(const String& x); - friend String downcase(const String& x); - friend String capitalize(const String& x); - -// in-place versions of above - - void reverse(); - void upcase(); - void downcase(); - void capitalize(); - -// element extraction - - char& operator [] (int i); - char elem(int i) const; - char firstchar() const; - char lastchar() const; - -// conversion - - operator const char*() const; - const char* chars() const; - - -// IO - - friend ostream& operator<<(ostream& s, const String& x); - friend ostream& operator<<(ostream& s, const SubString& x); - friend istream& operator>>(istream& s, String& x); - - friend int readline(istream& s, String& x, - char terminator = '\n', - int discard_terminator = 1); - -// status - - unsigned int length() const; - int empty() const; - -// preallocate some space for String - void alloc(int newsize); - -// report current allocation (not length!) - - int allocation() const; - - - volatile void error(const char* msg) const; - - int OK() const; -}; - -typedef String StrTmp; // for backward compatibility - -// other externs - -int compare(const String& x, const String& y); -int compare(const String& x, const SubString& y); -int compare(const String& x, const char* y); -int compare(const SubString& x, const String& y); -int compare(const SubString& x, const SubString& y); -int compare(const SubString& x, const char* y); -int fcompare(const String& x, const String& y); // ignore case - -extern StrRep _nilStrRep; -extern String _nilString; - -// other inlines - -String operator + (const String& x, const String& y); -String operator + (const String& x, const SubString& y); -String operator + (const String& x, const char* y); -String operator + (const String& x, char y); -String operator + (const SubString& x, const String& y); -String operator + (const SubString& x, const SubString& y); -String operator + (const SubString& x, const char* y); -String operator + (const SubString& x, char y); -String operator + (const char* x, const String& y); -String operator + (const char* x, const SubString& y); - -int operator==(const String& x, const String& y); -int operator!=(const String& x, const String& y); -int operator> (const String& x, const String& y); -int operator>=(const String& x, const String& y); -int operator< (const String& x, const String& y); -int operator<=(const String& x, const String& y); -int operator==(const String& x, const SubString& y); -int operator!=(const String& x, const SubString& y); -int operator> (const String& x, const SubString& y); -int operator>=(const String& x, const SubString& y); -int operator< (const String& x, const SubString& y); -int operator<=(const String& x, const SubString& y); -int operator==(const String& x, const char* t); -int operator!=(const String& x, const char* t); -int operator> (const String& x, const char* t); -int operator>=(const String& x, const char* t); -int operator< (const String& x, const char* t); -int operator<=(const String& x, const char* t); -int operator==(const SubString& x, const String& y); -int operator!=(const SubString& x, const String& y); -int operator> (const SubString& x, const String& y); -int operator>=(const SubString& x, const String& y); -int operator< (const SubString& x, const String& y); -int operator<=(const SubString& x, const String& y); -int operator==(const SubString& x, const SubString& y); -int operator!=(const SubString& x, const SubString& y); -int operator> (const SubString& x, const SubString& y); -int operator>=(const SubString& x, const SubString& y); -int operator< (const SubString& x, const SubString& y); -int operator<=(const SubString& x, const SubString& y); -int operator==(const SubString& x, const char* t); -int operator!=(const SubString& x, const char* t); -int operator> (const SubString& x, const char* t); -int operator>=(const SubString& x, const char* t); -int operator< (const SubString& x, const char* t); -int operator<=(const SubString& x, const char* t); - - - - -// status reports, needed before defining other things - -inline unsigned int String::length() const { return rep->len; } -inline int String::empty() const { return rep->len == 0; } -inline const char* String::chars() const { return &(rep->s[0]); } -inline int String::allocation() const { return rep->sz; } -inline void String::alloc(int newsize) { rep = Sresize(rep, newsize); } - -inline unsigned int SubString::length() const { return len; } -inline int SubString::empty() const { return len == 0; } -inline const char* SubString::chars() const { return &(S.rep->s[pos]); } - - -// constructors - -inline String::String() - : rep(&_nilStrRep) {} -inline String::String(const String& x) - : rep(Scopy(0, x.rep)) {} -inline String::String(const char* t) - : rep(Salloc(0, t, -1, -1)) {} -inline String::String(const char* t, int tlen) - : rep(Salloc(0, t, tlen, tlen)) {} -inline String::String(const SubString& y) - : rep(Salloc(0, y.chars(), y.length(), y.length())) {} -inline String::String(char c) - : rep(Salloc(0, &c, 1, 1)) {} - -inline String::~String() { if (rep != &_nilStrRep) delete rep; } - -inline SubString::SubString(const SubString& x) - :S(x.S), pos(x.pos), len(x.len) {} -inline SubString::SubString(String& x, int first, int l) - :S(x), pos(first), len(l) {} - -inline SubString::~SubString() {} - -// assignment - -inline void String::operator = (const String& y) -{ - rep = Scopy(rep, y.rep); -} - -inline void String::operator=(const char* t) -{ - rep = Salloc(rep, t, -1, -1); -} - -inline void String::operator=(const SubString& y) -{ - rep = Salloc(rep, y.chars(), y.length(), y.length()); -} - -inline void String::operator=(char c) -{ - rep = Salloc(rep, &c, 1, 1); -} - - -inline void SubString::operator = (const char* ys) -{ - assign(0, ys); -} - -inline void SubString::operator = (char ch) -{ - assign(0, &ch, 1); -} - -inline void SubString::operator = (const String& y) -{ - assign(y.rep, y.chars(), y.length()); -} - -inline void SubString::operator = (const SubString& y) -{ - assign(y.S.rep, y.chars(), y.length()); -} - -// Zillions of cats... - -inline void cat(const String& x, const String& y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const String& x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const String& x, const char* y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), y, -1); -} - -inline void cat(const String& x, char y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), &y, 1); -} - -inline void cat(const SubString& x, const String& y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const SubString& x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const SubString& x, const char* y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), y, -1); -} - -inline void cat(const SubString& x, char y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), &y, 1); -} - -inline void cat(const char* x, const String& y, String& r) -{ - r.rep = Scat(r.rep, x, -1, y.chars(), y.length()); -} - -inline void cat(const char* x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, x, -1, y.chars(), y.length()); -} - -inline void cat(const char* x, const char* y, String& r) -{ - r.rep = Scat(r.rep, x, -1, y, -1); -} - -inline void cat(const char* x, char y, String& r) -{ - r.rep = Scat(r.rep, x, -1, &y, 1); -} - -inline void cat(const String& a, const String& x, const String& y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const String& a, const String& x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const String& a, const String& x, const char* y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y, -1); -} - -inline void cat(const String& a, const String& x, char y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), &y, 1); -} - -inline void cat(const String& a, const SubString& x, const String& y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const String& a, const SubString& x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const String& a, const SubString& x, const char* y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y, -1); -} - -inline void cat(const String& a, const SubString& x, char y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), &y, 1); -} - -inline void cat(const String& a, const char* x, const String& y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x, -1, y.chars(), y.length()); -} - -inline void cat(const String& a, const char* x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x, -1, y.chars(), y.length()); -} - -inline void cat(const String& a, const char* x, const char* y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x, -1, y, -1); -} - -inline void cat(const String& a, const char* x, char y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x, -1, &y, 1); -} - - -inline void cat(const char* a, const String& x, const String& y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const char* a, const String& x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const char* a, const String& x, const char* y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y, -1); -} - -inline void cat(const char* a, const String& x, char y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), &y, 1); -} - -inline void cat(const char* a, const SubString& x, const String& y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const char* a, const SubString& x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const char* a, const SubString& x, const char* y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y, -1); -} - -inline void cat(const char* a, const SubString& x, char y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), &y, 1); -} - -inline void cat(const char* a, const char* x, const String& y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x, -1, y.chars(), y.length()); -} - -inline void cat(const char* a, const char* x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x, -1, y.chars(), y.length()); -} - -inline void cat(const char* a, const char* x, const char* y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x, -1, y, -1); -} - -inline void cat(const char* a, const char* x, char y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x, -1, &y, 1); -} - - -// operator versions - -inline void String::operator +=(const String& y) -{ - cat(*this, y, *this); -} - -inline void String::operator +=(const SubString& y) -{ - cat(*this, y, *this); -} - -inline void String::operator += (const char* y) -{ - cat(*this, y, *this); -} - -inline void String:: operator +=(char y) -{ - cat(*this, y, *this); -} - -// constructive concatenation - - - -inline String operator + (const String& x, const String& y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const String& x, const SubString& y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const String& x, const char* y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const String& x, char y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const SubString& x, const String& y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const SubString& x, const SubString& y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const SubString& x, const char* y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const SubString& x, char y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const char* x, const String& y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const char* x, const SubString& y) return r; -{ - cat(x, y, r); -} - -inline String reverse(const String& x) return r; -{ - r.rep = Sreverse(x.rep, r.rep); -} - -inline String upcase(const String& x) return r; -{ - r.rep = Supcase(x.rep, r.rep); -} - -inline String downcase(const String& x) return r; -{ - r.rep = Sdowncase(x.rep, r.rep); -} - -inline String capitalize(const String& x) return r; -{ - r.rep = Scapitalize(x.rep, r.rep); -} - -//# 883 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/String.h" - - -// prepend - -inline void String::prepend(const String& y) -{ - rep = Sprepend(rep, y.chars(), y.length()); -} - -inline void String::prepend(const char* y) -{ - rep = Sprepend(rep, y, -1); -} - -inline void String::prepend(char y) -{ - rep = Sprepend(rep, &y, 1); -} - -inline void String::prepend(const SubString& y) -{ - rep = Sprepend(rep, y.chars(), y.length()); -} - -// misc transformations - - -inline void String::reverse() -{ - rep = Sreverse(rep, rep); -} - - -inline void String::upcase() -{ - rep = Supcase(rep, rep); -} - - -inline void String::downcase() -{ - rep = Sdowncase(rep, rep); -} - - -inline void String::capitalize() -{ - rep = Scapitalize(rep, rep); -} - -// element extraction - -inline char& String::operator [] (int i) -{ - if (((unsigned)i) >= length()) error("invalid index"); - return rep->s[i]; -} - -inline char String::elem (int i) const -{ - if (((unsigned)i) >= length()) error("invalid index"); - return rep->s[i]; -} - -inline char String::firstchar() const -{ - return elem(0); -} - -inline char String::lastchar() const -{ - return elem(length() - 1); -} - -// searching - -inline int String::index(char c, int startpos) const -{ - return search(startpos, length(), c); -} - -inline int String::index(const char* t, int startpos) const -{ - return search(startpos, length(), t); -} - -inline int String::index(const String& y, int startpos) const -{ - return search(startpos, length(), y.chars(), y.length()); -} - -inline int String::index(const SubString& y, int startpos) const -{ - return search(startpos, length(), y.chars(), y.length()); -} - -inline int String::index(const Regex& r, int startpos) const -{ - int unused; return r.search(chars(), length(), unused, startpos); -} - -inline int String::contains(char c) const -{ - return search(0, length(), c) >= 0; -} - -inline int String::contains(const char* t) const -{ - return search(0, length(), t) >= 0; -} - -inline int String::contains(const String& y) const -{ - return search(0, length(), y.chars(), y.length()) >= 0; -} - -inline int String::contains(const SubString& y) const -{ - return search(0, length(), y.chars(), y.length()) >= 0; -} - -inline int String::contains(char c, int p) const -{ - return match(p, length(), 0, &c, 1) >= 0; -} - -inline int String::contains(const char* t, int p) const -{ - return match(p, length(), 0, t) >= 0; -} - -inline int String::contains(const String& y, int p) const -{ - return match(p, length(), 0, y.chars(), y.length()) >= 0; -} - -inline int String::contains(const SubString& y, int p) const -{ - return match(p, length(), 0, y.chars(), y.length()) >= 0; -} - -inline int String::contains(const Regex& r) const -{ - int unused; return r.search(chars(), length(), unused, 0) >= 0; -} - -inline int String::contains(const Regex& r, int p) const -{ - return r.match(chars(), length(), p) >= 0; -} - - -inline int String::matches(const SubString& y, int p) const -{ - return match(p, length(), 1, y.chars(), y.length()) >= 0; -} - -inline int String::matches(const String& y, int p) const -{ - return match(p, length(), 1, y.chars(), y.length()) >= 0; -} - -inline int String::matches(const char* t, int p) const -{ - return match(p, length(), 1, t) >= 0; -} - -inline int String::matches(char c, int p) const -{ - return match(p, length(), 1, &c, 1) >= 0; -} - -inline int String::matches(const Regex& r, int p) const -{ - int l = (p < 0)? -p : length() - p; - return r.match(chars(), length(), p) == l; -} - - -inline int SubString::contains(const char* t) const -{ - return S.search(pos, pos+len, t) >= 0; -} - -inline int SubString::contains(const String& y) const -{ - return S.search(pos, pos+len, y.chars(), y.length()) >= 0; -} - -inline int SubString::contains(const SubString& y) const -{ - return S.search(pos, pos+len, y.chars(), y.length()) >= 0; -} - -inline int SubString::contains(char c) const -{ - return S.search(pos, pos+len, 0, c) >= 0; -} - -inline int SubString::contains(const Regex& r) const -{ - int unused; return r.search(chars(), len, unused, 0) >= 0; -} - -inline int SubString::matches(const Regex& r) const -{ - return r.match(chars(), len, 0) == len; -} - - -inline int String::gsub(const String& pat, const String& r) -{ - return _gsub(pat.chars(), pat.length(), r.chars(), r.length()); -} - -inline int String::gsub(const SubString& pat, const String& r) -{ - return _gsub(pat.chars(), pat.length(), r.chars(), r.length()); -} - -inline int String::gsub(const Regex& pat, const String& r) -{ - return _gsub(pat, r.chars(), r.length()); -} - -inline int String::gsub(const char* pat, const String& r) -{ - return _gsub(pat, -1, r.chars(), r.length()); -} - -inline int String::gsub(const char* pat, const char* r) -{ - return _gsub(pat, -1, r, -1); -} - - - -inline ostream& operator<<(ostream& s, const String& x) -{ - s << x.chars(); return s; -} - -// a zillion comparison operators - -inline int operator==(const String& x, const String& y) -{ - return compare(x, y) == 0; -} - -inline int operator!=(const String& x, const String& y) -{ - return compare(x, y) != 0; -} - -inline int operator>(const String& x, const String& y) -{ - return compare(x, y) > 0; -} - -inline int operator>=(const String& x, const String& y) -{ - return compare(x, y) >= 0; -} - -inline int operator<(const String& x, const String& y) -{ - return compare(x, y) < 0; -} - -inline int operator<=(const String& x, const String& y) -{ - return compare(x, y) <= 0; -} - -inline int operator==(const String& x, const SubString& y) -{ - return compare(x, y) == 0; -} - -inline int operator!=(const String& x, const SubString& y) -{ - return compare(x, y) != 0; -} - -inline int operator>(const String& x, const SubString& y) -{ - return compare(x, y) > 0; -} - -inline int operator>=(const String& x, const SubString& y) -{ - return compare(x, y) >= 0; -} - -inline int operator<(const String& x, const SubString& y) -{ - return compare(x, y) < 0; -} - -inline int operator<=(const String& x, const SubString& y) -{ - return compare(x, y) <= 0; -} - -inline int operator==(const String& x, const char* t) -{ - return compare(x, t) == 0; -} - -inline int operator!=(const String& x, const char* t) -{ - return compare(x, t) != 0; -} - -inline int operator>(const String& x, const char* t) -{ - return compare(x, t) > 0; -} - -inline int operator>=(const String& x, const char* t) -{ - return compare(x, t) >= 0; -} - -inline int operator<(const String& x, const char* t) -{ - return compare(x, t) < 0; -} - -inline int operator<=(const String& x, const char* t) -{ - return compare(x, t) <= 0; -} - -inline int operator==(const SubString& x, const String& y) -{ - return compare(y, x) == 0; -} - -inline int operator!=(const SubString& x, const String& y) -{ - return compare(y, x) != 0; -} - -inline int operator>(const SubString& x, const String& y) -{ - return compare(y, x) < 0; -} - -inline int operator>=(const SubString& x, const String& y) -{ - return compare(y, x) <= 0; -} - -inline int operator<(const SubString& x, const String& y) -{ - return compare(y, x) > 0; -} - -inline int operator<=(const SubString& x, const String& y) -{ - return compare(y, x) >= 0; -} - -inline int operator==(const SubString& x, const SubString& y) -{ - return compare(x, y) == 0; -} - -inline int operator!=(const SubString& x, const SubString& y) -{ - return compare(x, y) != 0; -} - -inline int operator>(const SubString& x, const SubString& y) -{ - return compare(x, y) > 0; -} - -inline int operator>=(const SubString& x, const SubString& y) -{ - return compare(x, y) >= 0; -} - -inline int operator<(const SubString& x, const SubString& y) -{ - return compare(x, y) < 0; -} - -inline int operator<=(const SubString& x, const SubString& y) -{ - return compare(x, y) <= 0; -} - -inline int operator==(const SubString& x, const char* t) -{ - return compare(x, t) == 0; -} - -inline int operator!=(const SubString& x, const char* t) -{ - return compare(x, t) != 0; -} - -inline int operator>(const SubString& x, const char* t) -{ - return compare(x, t) > 0; -} - -inline int operator>=(const SubString& x, const char* t) -{ - return compare(x, t) >= 0; -} - -inline int operator<(const SubString& x, const char* t) -{ - return compare(x, t) < 0; -} - -inline int operator<=(const SubString& x, const char* t) -{ - return compare(x, t) <= 0; -} - - -// a helper needed by at, before, etc. - -inline SubString String::_substr(int first, int l) -{ - if (first >= length() ) // ??? THIS LINE IS QUESTIONABLE - return SubString(_nilString, 0, 0) ; - else - return SubString(*this, first, l); -} - - - - - -//# 26 "../../GctSymbol.h" 2 - - -//# 1 "../../../../../../mips/include/Gct/Object/GctHashObject.h" 1 -// -*- C++ -*- - - - -// -// GctHashObject class (is abstract) -// -// Expects to be included by Object.h or where needed explicitly. -// -// Wendell Baker, Berkeley CAD Group, 1992 (wbaker@ic.Berkeley.EDU) -// - - - - - -//#pragma interface - - - -//# 1 "../../../../../../mips/include/Gct/Object/GctObject.h" 1 -// -*- C++ -*- - - - -// -// GctObject class (is abstract) -// -// Expects to be included by Object.h or where needed explicitly. -// -// Wendell Baker, Berkeley CAD Group, 1992 (wbaker@ic.Berkeley.EDU) -// - - - - - -//#pragma interface - - - -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/tostrstream.h" 1 -// -*- C++ -*- - - - -// -// tostrstream class -// -// A terminated oststream - an ostsrstream that auto-terminates on str() -// -// Wendell Baker, Berkeley CAD Group, 1992 (wbaker@ic.Berkeley.EDU) -// - - - - - -//#pragma interface - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/strstream.h" 1 -// This is part of the iostream library, providing input/output for C++. -// Copyright (C) 1991 Per Bothner. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free -// Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - - - -//#pragma interface - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" 1 -// This is part of the iostream library, providing -*- C++ -*- input/output. -// Copyright (C) 1991 Per Bothner. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free -// Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -//# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" - -//# 23 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/strstream.h" 2 - - -class strstreambuf : public streambuf { - size_t *lenp; /* current (logical) length (i.e. valid data bytes) */ - size_t *sizep; /* allocated (physical) buffer size */ - char **bufp; - size_t _len; - size_t _size; - char *buf; - int _frozen; - protected: - virtual int overflow(int = (-1) ); - public: - strstreambuf(); - strstreambuf(int initial); - strstreambuf(char *ptr, int size, char *pstart = (__null) ); - ~strstreambuf(); - int frozen() { return _frozen; } - void freeze(int n=1) { _frozen = n != 0; } - size_t pcount(); - char *str(); -}; - -class istrstream : public istream { - public: - istrstream(char*); - istrstream(char*, int); - strstreambuf* rdbuf() { return (strstreambuf*)_strbuf; } -}; - -class ostrstream : public ostream { - public: - ostrstream(); - ostrstream(char *cp, int n, int mode=ios::out); - size_t pcount() { return ((strstreambuf*)_strbuf)->pcount(); } - char *str() { return ((strstreambuf*)_strbuf)->str(); } - void freeze(int n = 1) { ((strstreambuf*)_strbuf)->freeze(n); } - int frozen() { return ((strstreambuf*)_strbuf)->frozen(); } - strstreambuf* rdbuf() { return (strstreambuf*)_strbuf; } -}; - - -//# 25 "/sandbox/wbaker/wbaker0/source/mips/include/tostrstream.h" 2 - - -// -// tostrstream class -// -// An isteam class that doesn't have that nasty skipws parameter that -// you have to remember to set. This class simply provides the istream -// functionality with a set of constructors which defaults skipws to -// FALSE (instead of defaulting to TRUE as is the case with plain istream). -// -class tostrstream: public ostrstream { -public: - tostrstream(): ostrstream() - { } - // This constructor defines cp as the buffer to use for the - // stream (instead of one of its own devising); it does NOT - // initialize the ostrstream to contain cp (of length n). - tostrstream(char *cp, int n, int mode=ios::out): ostrtream(cp, n, mode) // ERROR - - { } - char *str() - { - char *s = ostrstream::str(); - s[ostrstream::pcount()] = '\0'; - return s; - } -}; - - -//# 25 "../../../../../../mips/include/Gct/Object/GctObject.h" 2 - - -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/Gtt/GttObject.h" 1 -// -*- C++ -*- - - - -// -// GttObject class (is abstract) -// -// Expects to be included where needed explicitly. -// -// Wendell Baker, Berkeley CAD Group, 1992 (wbaker@ic.Berkeley.EDU) -// - - - - - -//#pragma interface - - - -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/tostrstream.h" 1 -// -*- C++ -*- -//# 52 "/sandbox/wbaker/wbaker0/source/mips/include/tostrstream.h" - -//# 25 "/sandbox/wbaker/wbaker0/source/mips/include/Gtt/GttObject.h" 2 - - -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/Gtt/GttErrorHandler.h" 1 -// -*- C++ -*- - - - -// -// GttErrorHandler class -// -// Expects to be included by Gtt.h -// -// Wendell Baker, Berkeley CAD Group, 1992 (wbaker@ic.Berkeley.EDU) -// - - - - - -//#pragma interface - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/bool.h" 1 - - - - - - - -//# 25 "/sandbox/wbaker/wbaker0/source/mips/include/Gtt/GttErrorHandler.h" 2 - - -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/stuff++.h" 1 -// -*- C++ -*- - - - -// -// Fake up a libstuff++ -// -// This is done as a complete and utter hack; this library has no function -// at all being in the boot area; it is here solely in order to provide a -// libstuff++ against which the Makefiles can resolve link lines. -// -// The only reason that this is done is to allow the STANDARD_C++_LIBRARIES -// as provided by the Makefile templates in the boot area to be the same -// ones that are used by the tools outside this hierarchy. -// -// The tools outside this hierarchy use a different libstuff++; one that is -// written in C++. This one is not written in C++ in order to be simpler. -// - - - - - -//#pragma interface - - - -extern "C" { -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/stuff.h" 1 - - - -/* - * Useful stuff - */ - -/* - */ - -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/ansi.h" 1 - - - - -/* - * ANSI Compiler Support - * - * David Harrison - * University of California, Berkeley - * 1988 - * - * ANSI compatible compilers are supposed to define the preprocessor - * directive __STDC__. Based on this directive, this file defines - * certain ANSI specific macros. - * - * ARGS: - * Used in function prototypes. Example: - * extern int foo - * ARGS((char *blah, double threshold)); - */ - -/* - * - * Modifications - * Wendell C Baker - * University of California, Berkeley - */ - -/* Function prototypes */ - - - - - - - - - - - - - - - - - - - - - - - - - - - -//# 15 "/sandbox/wbaker/wbaker0/source/mips/include/stuff.h" 2 - - - -/* - * If g++, then we stub out part of this thing and let the C++ types take - * over and do the same job; some compatibility must be given however - */ - -/* - * Use the GNU libg++ definition - */ -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/bool.h" 1 - - - - - - - -//# 26 "/sandbox/wbaker/wbaker0/source/mips/include/stuff.h" 2 - -//# 35 "/sandbox/wbaker/wbaker0/source/mips/include/stuff.h" - - -/* - * Make various pieces of C code that use the old ``Boolean'' - * be compatible by faking up the definition of Boolean using - * the new bool type. - */ - - -//# 58 "/sandbox/wbaker/wbaker0/source/mips/include/stuff.h" - - -typedef long FitAny; /* can fit any integral type */ - -/* - * typedef char *String; - DO NOT USE THIS - it conflicts with C++ - * typedef char **Stringv; - just use char* and char** instead. - * - void* can be used for arbitrary pointers - */ - - - - -extern int nocase_strcmp (char *, char *) ; -extern int nocase_strncmp (char *, char *, int) ; - -extern bool nocase_strequal (char *, char *) ; -extern bool nocase_strnequal (char *, char *, int) ; - -extern bool lead_strequal (char *, char *) ; -extern bool nocase_lead_strequal (char *, char *) ; - -extern int strhash (char *, int) ; -extern int nocase_strhash (char *, int) ; - -extern int sign (int) ; - -/* - * Some useful macros. - */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -//# 33 "/sandbox/wbaker/wbaker0/source/mips/include/stuff++.h" 2 - -} - -// -// This is here because we wish to provide externs for the two -// functions btoa(bool, unsigned = 0) and operator<<(ostream&, bool) -// because they are not provided in bool.h. -// -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/bool.h" 1 - - - - - - - -//# 41 "/sandbox/wbaker/wbaker0/source/mips/include/stuff++.h" 2 - -extern const char *stringify(bool b); -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" 1 -// This is part of the iostream library, providing -*- C++ -*- input/output. -// Copyright (C) 1991 Per Bothner. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free -// Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -//# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" - -//# 43 "/sandbox/wbaker/wbaker0/source/mips/include/stuff++.h" 2 - -extern ostream& operator<<(ostream&, bool); - -// Should this be kept separate? bool isn't, but then is -// included here only to define ostream& operator<<(ostream&, bool) -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/unit.h" 1 -// -*- C++ -*- - - - -// -// unit enum -// -// Wendell Baker, Berkeley CAD Group, 1991 (wbaker@ic.Berkeley.EDU) -// - - -// -// unit enum -// -// This _looks_ silly, but it has an important theoretical basis in category -// theory. For the pragmatic reason for its existence, see the example below. -// -enum unit { - UNIT = 1, -}; - -extern const char *stringify(unit u); - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" 1 -// This is part of the iostream library, providing -*- C++ -*- input/output. -// Copyright (C) 1991 Per Bothner. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free -// Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -//# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" - -//# 28 "/sandbox/wbaker/wbaker0/source/mips/include/unit.h" 2 - -extern ostream& operator<<(ostream&, unit); - -// -// A unit is used in cases where the type signature of an overloaded -// function must be differentiated in some stronger way than can be -// denoted unambiguously in the C++ syntax. This enum is used to give -// one of the functions a different type signature, thereby allowing -// the overloading. -// -// The use of ``unit'' instead of int or bool is important because a unit -// has only one possible value; therefore it adds no more information to -// the code. For example, say a bool was used instead, then in the testing -// phase, would have to ask: what if TRUE was given, what if FALSE was given. -// The problem is compounded if char or int is used. -// -// Example: -// -// class ID { -// public: -// ID(); // construct a null ID -// ID(unit); // alloc a ID with a new id -// private: -// static unsigned high_water; -// unsigned id; -// }; -// -// Try working this example save that ID implements all of the generic -// features of the identifier object, but the high_water is stored -// in the heir. That is what originally motivated the creation of unit. -// - - -//# 48 "/sandbox/wbaker/wbaker0/source/mips/include/stuff++.h" 2 - - -// -// In the spirit of the standard GNU error handler functions -// as described in -// typedef void (*one_arg_error_handler_t)(const char*); -// a one argument error handler function pointer -// typedef void (*two_arg_error_handler_t)(const char*, const char*); -// a two argument error handler function pointer -// -// And now the NEW -// -// typedef void (*zero_arg_error_handler_t)(); -// a zero argument error handler function pointer -// -typedef void (*zero_arg_error_handler_t)(); - -// -// In the spirit of the default GNU error handler functions -// as described in -// extern void default_one_arg_error_handler(const char *message); -// print out message on stderr, and do the default thing (abort) -// extern void default_two_arg_error_handler(const char *kind, const char *message); -// print out kind and message on stderr, and do the default thing (abort) -// -// And now the NEW -// -// extern void default_zero_arg_error_handler(const char *message); -// do the default thing (abort) -// -extern void default_zero_arg_error_handler(); - -// Guaranteed to exit (1) -extern void exit_zero_arg_error_handler(); -extern void exit_one_arg_error_handler(const char *message); -extern void exit_two_arg_error_handler(const char *kind, const char *message); - -// Guaranteed to abort() -extern void abort_zero_arg_error_handler(); -extern void abort_one_arg_error_handler(const char *message); -extern void abort_two_arg_error_handler(const char *kind, const char *message); - -// -// In the spirit of the standard GNU error handlers -// as described in -// extern void verbose_File_error_handler(const char*); -// perror and set errno = 0 -// extern void quiet_File_error_handler(const char*); -// set errno = 0 -// extern void fatal_File_error_handler(const char*); -// perror and exit 1 -// -// And now the NEW -// -// extern void preserve_File_error_handler(const char *message); -// no perror, no assignment to errno. -// -extern void preserve_File_error_handler(const char *message); - - -//# 27 "/sandbox/wbaker/wbaker0/source/mips/include/Gtt/GttErrorHandler.h" 2 - -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/tostrstream.h" 1 -// -*- C++ -*- -//# 52 "/sandbox/wbaker/wbaker0/source/mips/include/tostrstream.h" - -//# 28 "/sandbox/wbaker/wbaker0/source/mips/include/Gtt/GttErrorHandler.h" 2 - - -// -// It is expected that this will be virtually multiply inherited -// into all of the classes that need error reporting services. -// -// The typical way to have that done is by inheriting the GttObject -// as a virtual base class. -// - -// -// GttErrorHandler class -// -class GttErrorHandler { -public: - GttErrorHandler(); - GttErrorHandler(const char *program); - virtual ~GttErrorHandler(); - - // - // Error messages - // - an unacceptable, but expected and recoverable condition - // was detected (but the test fails) - // - errors are for ``the expected environment was not found'' - // rather than for ``file couldn't be opened'' - // - these messages cannot be shut off - // - the error handler determines the recovery action - // TODO - one day exceptions will be used here - // - static void error(const char *message); - static void error(tostrstream& message); - - static void error(const char *function, const char *message); - static void error(const char *function, tostrstream& message); - - static void error(const char *class_name, const char *method, const char *message); - static void error(const char *class_name, const char *method, tostrstream& message); - - // - // Fatal messages - // - an unacceptable and unexpected error was detected - // the data invariants were violated, there is no recovery - // - these messages cannot be shut off - // - the error handler determines the recovery action - // TODO - one day exceptions will be used here - // - static void fatal(const char *message); - static void fatal(tostrstream& message); - - static void fatal(const char *function, const char *message); - static void fatal(const char *function, tostrstream& message); - - static void fatal(const char *class_name, const char *method, const char *message); - static void fatal(const char *class_name, const char *method, tostrstream& message); -private: - // - // Two underscores are used here in order to prevent confusion of these - // private variables with any of the heir's private variables. Note that - // access control is different than visibility in C++, so all the variable - // names in a class hierarchy must be unique. - // - - static bool __partial_init; - static void __partial_initialize(); - static bool __full_init; - static void __full_initialize(const char *program); - static char *__program; - - static void __handle_error(); - static void __handle_fatal(); - static void __add_newline(const char *message); - - static bool __output_valid(); - static ostream *__output; -}; - - -//# 27 "/sandbox/wbaker/wbaker0/source/mips/include/Gtt/GttObject.h" 2 - - -// -// GttObject class (is abstract) -// -class GttObject: virtual public GttErrorHandler { -protected: - GttObject(); - GttObject(const GttObject&); - virtual ~GttObject(); // ensure descendants have virtual destructors - -public: - // - // I/O Support - // - // The value typically persists only long enough for an i/o operation - // to be performed (see the defintion of output via operator<<(... ) below) - virtual const char *stringify(); -protected: - // This is the buffer into which the printed representation of this - // object will be put when the time comes. It is associated with the - // object so it will never go away (so long as the object exists). - // Use a pointer so that you only pay for the space when I/O is used - tostrstream *stringbuf; - void clear_stringbuf(); - -public: - // - // Consistency - // - // The global data invariant for the whole object (heirs included). - // This OK function will call the local invariant function ok() if - // necessary and in addition the OK functions of the heirs - // This is expected to compute the data invariant of the object. - // It will execute GctErrorHandler::fatal if there is wrong. - virtual void OK() const; - -protected: - // - // consistency - // - // This function computes the invariant which is local to this object. - // It does not call any of the ancestor's OK() or ok() functions. - // It is not a virtual function so that it can be called from within a - // constructor with impunity. Thus this function MUST NOT call any - // virtual functions either; it should call them by their full name if - // that is necessary. The global OK() function will call this function - // as necessary. - // - // This function must NOT NEVER EVER be made virtual. - void ok() const; - -protected: - // - // Class Name - // - // This must return a static (constant) string which is the name - // of the class being declared. By convention, not all classes - // must have one of these, but the major root abstract class must - // have one in order to allow the stringify() to work approximately - // correctly. - virtual const char *class_name() const = 0; -}; - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" 1 -// This is part of the iostream library, providing -*- C++ -*- input/output. -// Copyright (C) 1991 Per Bothner. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free -// Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -//# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" - -//# 91 "/sandbox/wbaker/wbaker0/source/mips/include/Gtt/GttObject.h" 2 - -extern ostream& operator<<(ostream&, GttObject&); - -// There may be other X& operator<<(X&, GttObject&) defined in the -// packages defining class X. For example see the definition of -// GttUnitObject& operator<<(GttUnitObject&, GttObject&) in Unit. - - -//# 27 "../../../../../../mips/include/Gct/Object/GctObject.h" 2 - - -//# 1 "../../../../../../mips/include/Gct/GctErrorHandler.h" 1 -// -*- C++ -*- - - - -// -// GctErrorHandler class -// -// Expects to be included by Gct.h -// -// Wendell Baker, Berkeley CAD Group, 1991 (wbaker@ic.Berkeley.EDU) -// - - - - - -//#pragma interface - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/bool.h" 1 - - - - - - - -//# 25 "../../../../../../mips/include/Gct/GctErrorHandler.h" 2 - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/String.h" 1 -// This may look like C code, but it is really -*- C++ -*- -/* -Copyright (C) 1988 Free Software Foundation - written by Doug Lea (dl@rocky.oswego.edu) - -This file is part of the GNU C++ Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - - -//# 1321 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/String.h" - -//# 26 "../../../../../../mips/include/Gct/GctErrorHandler.h" 2 - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" 1 -// This is part of the iostream library, providing -*- C++ -*- input/output. -// Copyright (C) 1991 Per Bothner. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free -// Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -//# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" - -//# 27 "../../../../../../mips/include/Gct/GctErrorHandler.h" 2 - - -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/stuff++.h" 1 -// -*- C++ -*- -//# 107 "/sandbox/wbaker/wbaker0/source/mips/include/stuff++.h" - -//# 29 "../../../../../../mips/include/Gct/GctErrorHandler.h" 2 - -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/tostrstream.h" 1 -// -*- C++ -*- -//# 52 "/sandbox/wbaker/wbaker0/source/mips/include/tostrstream.h" - -//# 30 "../../../../../../mips/include/Gct/GctErrorHandler.h" 2 - - -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/Gtt/GttObject.h" 1 -// -*- C++ -*- -//# 98 "/sandbox/wbaker/wbaker0/source/mips/include/Gtt/GttObject.h" - -//# 32 "../../../../../../mips/include/Gct/GctErrorHandler.h" 2 - - -// -// It is expected that this will be virtually multiply inherited -// into all of the classes that need error reporting services. -// -// The typical way to have that done is by inheriting the GctObject -// as a virtual base class. -// - -// -// GctErrorHandler class -// -// GPP_1_96_BUG -// NOTE - virtual public GttObject should be MI into GctObject - but that -// causes g++ 1.96 to segfault; so we must inherit GttObject here and use SI -// GPP_1_96_BUG -class GctErrorHandler: virtual public GttObject { -public: - GctErrorHandler(); - GctErrorHandler(const String& program); - virtual ~GctErrorHandler(); - - // - // Debugging messages - // - these are turned off for production code. - // - these messages can be shut off - // - static void debug(const char *message); - static void debug(tostrstream& message); - - static void debug(const char *function, const char *message); - static void debug(const char *function, tostrstream& message); - - static void debug(const char *class_name, const char *method, const char *message); - static void debug(const char *class_name, const char *method, tostrstream& message); - - static bool debug(); // current debug switch - static void debug(bool value); // change the debug switch - - // - // Informational messages - // - these correspond to a ``verbose'' mode - // - these are not errors, just chatty progress reports - // - these messages can be shut off - // - static void note(const char *message); - static void note(tostrstream& message); - - static void note(const char *function, const char *message); - static void note(const char *function, tostrstream& message); - - static void note(const char *class_name, const char *method, const char *message); - static void note(const char *class_name, const char *method, tostrstream& message); - - static bool note(); // current note switch - static void note(bool value); // change the note switch - - // - // Warning messages - // - warnings are system-recoverable errors - // - the system has noticed something and taken some - // corrective action - // - these messages can be shut off - // - static void warning(const char *message); - static void warning(tostrstream& message); - - static void warning(const char *function, const char *message); - static void warning(const char *function, tostrstream& message); - - static void warning(const char *class_name, const char *method, const char *message); - static void warning(const char *class_name, const char *method, tostrstream& message); - - static bool warning(); // current warning switch - static void warning(bool value); // change the warning switch - - // - // Error messages - // - an unacceptable, but expected and recoverable - // condition was detected - // - errors are for ``the expected environment was not found'' - // rather than for ``file couldn't be opened'' - // - these messages cannot be shut off - // - the error handler determines the recovery action - // TODO - one day exceptions will be used here - // - static void error(const char *message); - static void error(tostrstream& message); - - static void error(const char *function, const char *message); - static void error(const char *function, tostrstream& message); - - static void error(const char *class_name, const char *method, const char *message); - static void error(const char *class_name, const char *method, tostrstream& message); - - // can't turn off errors - no ``static void error(bool value);'' - static zero_arg_error_handler_t error(); // current error handler - static void error(zero_arg_error_handler_t handler);// change the error handler - - static void error_is_lib_error_handler(); // change the error handler - static void error_is_exit(); // change the error handler - - // Describes the fatal handler - WATCHOUT - implicitly uses AllocRing - static const char *error_handler_description(); - - // - // Fatal messages - // - an unacceptable and unexpected error was detected - // the data invariants were violated, there is no recovery - // - these messages cannot be shut off - // - the error handler determines the recovery action - // TODO - one day exceptions will be used here - // - static void fatal(const char *message); - static void fatal(tostrstream& message); - - static void fatal(const char *function, const char *message); - static void fatal(const char *function, tostrstream& message); - - static void fatal(const char *class_name, const char *method, const char *message); - static void fatal(const char *class_name, const char *method, tostrstream& message); - - // can't turn off fatals - no ``static void fatal(bool value);'' - static zero_arg_error_handler_t fatal(); // return the fatal handler - static void fatal(zero_arg_error_handler_t handler); // change the fatal handler - - static void fatal_is_exit(); // change the fatal handler - static void fatal_is_abort(); // change the fatal handler - - // Describes the fatal handler - WATCHOUT - implicitly uses AllocRing - static const char *fatal_handler_description(); -private: - // - // Two underscores are used here in order to prevent confusion of these - // private variables with any of the heir's private variables. Note that - // access control is different than visibility in C++, so all the variable - // names in a class hierarchy must be unique. - // - static bool __debug; - static bool __note; - static bool __warning; - static void (*__error_handler)(); // can't turn off errors - static void (*__fatal_handler)(); // can't turn off fatals - - static bool __partial_init; - static void __partial_initialize(); - static bool __full_init; - static void __full_initialize(const char *program); - static char *__program; - - static void __handle_error(); - static void __handle_fatal(); - static void __add_newline(const char *message); - static void __message_switch(bool value, bool& flag, const char *description); - static void __message_switch(bool value, bool& flag); - static const char *__describe_handler(zero_arg_error_handler_t handler); - - static bool __output_valid(); - static ostream *__output; - - // GPP_1_96_BUG - const char *class_name() const; - // GPP_1_96_BUG -}; - - -//# 29 "../../../../../../mips/include/Gct/Object/GctObject.h" 2 - - -// -// GctObject class (is abstract) -// -class GctObject: virtual public GctErrorHandler /*, virtual public GttObject*/ { -protected: - GctObject(); - GctObject(const GctObject&); - virtual ~GctObject(); // ensure descendants have virtual destructors - -public: - // - // I/O Support - // - // The value typically persists only long enough for an i/o operation - // to be performed (see the defintion of output via operator<<(... ) below) - virtual const char *stringify(); -protected: - // This is the buffer into which the printed representation of this - // object will be put when the time comes. It is associated with the - // object so it will never go away (so long as the object exists). - // Use a pointer so that you only pay for the space when I/O is used - tostrstream *stringbuf; - void clear_stringbuf(); - -public: - // - // Consistency (global consistency) - // - // The global data invariant for the whole object (heirs included). - // This OK function will call the local invariant function ok() if - // necessary and in addition the OK functions of the heirs - // This is expected to compute the data invariant of the object. - // It will execute GctErrorHandler::fatal if there is wrong. - virtual void OK() const; - -protected: - // - // consistency (local consistency) - // - // This function computes the invariant which is local to this object. - // It does not call any of the ancestor's OK() or ok() functions. - // It is not a virtual function so that it can be called from within a - // constructor with impunity. Thus this function MUST NOT call any - // virtual functions either; it should call them by their full name if - // that is necessary. The global OK() function will call this function - // as necessary. - // - // This function must NOT NEVER EVER be made virtual. - void ok() const; -protected: - // - // Class Name - // - // This must return a static (constant) string which is the name - // of the class being declared. By convention, not all classes - // must have one of these, but the major root abstract class must - // have one in order to allow the stringify() to work approximately - // correctly. - virtual const char *class_name() const = 0; - -public: - // - // The ``id'' of this object - // - // NOTE - we explicitly allow the situation where this function - // can return the address of the object - the ``this'' pointer - // instead of a computed id field (the __object_id field below). - // - // This function is protected because we don't want too much dependence - // on this notion of object identity. I want to be able to rip it - // out if it becomes to cumbersome. - unsigned objectId() const; -private: - // - // Symbolic ID - // - // NOTE - Normally this would be implemented by the `this' pointer. - // TODO - remove this for production code - // - // However, in order to make the test suites run on all machines, we - // make this into a symbolic id that is maintained with each object. - // Thus the valid outputs are always consistent across all machines. - unsigned __object_id; - static unsigned __next_id; -}; - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" 1 -// This is part of the iostream library, providing -*- C++ -*- input/output. -// Copyright (C) 1991 Per Bothner. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free -// Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -//# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" - -//# 117 "../../../../../../mips/include/Gct/Object/GctObject.h" 2 - -extern ostream& operator<<(ostream&, GctObject&); - - -//# 25 "../../../../../../mips/include/Gct/Object/GctHashObject.h" 2 - - -// -// GctHashObject class (is abstract) -// -class GctHashObject: virtual public GctObject { -protected: - GctHashObject(); - GctHashObject(const GctHashObject&); - -public: - // - // hash support - // - virtual unsigned hash() const; -}; - - -//# 28 "../../GctSymbol.h" 2 - - -// -// GctSymbol -// -class GctSymbol: virtual public GctHashObject, String { -public: - GctSymbol(); // vacuous symbol required for genclass usage - GctSymbol(const char*); - GctSymbol(const String&); - GctSymbol(const GctSymbol&); - - operator const char *() const; - - bool operator==(const GctSymbol&) const; - bool operator!=(const GctSymbol&) const; - - bool operator<=(const GctSymbol&) const; - bool operator<(const GctSymbol&) const; - bool operator>=(const GctSymbol&) const; - bool operator>(const GctSymbol&) const; - - unsigned hash() const; - - // I/O Support - const char *stringify(); - - // Consistency - void OK() const; -private: - const char *class_name() const; -}; - -extern unsigned hash(GctSymbol&); // genclass support (no const) - -// -// Inline functions -// -// Note - none of the String operators save for operator const char *() -// are String member functions, instead, they are anonymous functions -// which work by overloading. -// - - - - - -GctSymbol::operator const char *() const -{ - - - - - - return String::operator const char *(); -} - -bool -GctSymbol::operator==(const GctSymbol& other) const -{ - - - - - - return (bool)::operator==(*this, other); -} - -bool -GctSymbol::operator!=(const GctSymbol& other) const -{ - - - - - - return (bool)::operator!=(*this, other); -} - -bool -GctSymbol::operator<=(const GctSymbol& other) const -{ - - - - - - return (bool)::operator<=(*this, other); -} - -bool -GctSymbol::operator<(const GctSymbol& other) const -{ - - - - - - return (bool)::operator<(*this, other); -} - -bool -GctSymbol::operator>=(const GctSymbol& other) const -{ - - - - - - return (bool)::operator>=(*this, other); -} - -bool -GctSymbol::operator>(const GctSymbol& other) const -{ - - - - - - return (bool)::operator>(*this, other); -} - - -//# 25 "GctSymbol.defs.h" 2 - - -// equality operator - - - - -// less-than-or-equal - - - - -// comparison : less-than -> 0 - - - - -// hash function - -extern unsigned int hash(GctSymbol&); - - - -// initial capacity for structures requiring one - - - - - - - -//# 27 "GctSymbol.GctSymbol.Map.h" 2 - - -class GctSymbolGctSymbolMap -{ -protected: - int count; - GctSymbol def; - -public: - GctSymbolGctSymbolMap(GctSymbol& dflt); - virtual ~GctSymbolGctSymbolMap(); - - int length(); // current number of items - int empty(); - - virtual int contains(GctSymbol& key); // is key mapped? - - virtual void clear(); // delete all items - - virtual GctSymbol& operator [] (GctSymbol& key) = 0; // access contents by key - - virtual void del(GctSymbol& key) = 0; // delete entry - - virtual Pix first() = 0; // Pix of first item or 0 - virtual void next(Pix& i) = 0; // advance to next or 0 - virtual GctSymbol& key(Pix i) = 0; // access key at i - virtual GctSymbol& contents(Pix i) = 0; // access contents at i - - virtual int owns(Pix i); // is i a valid Pix ? - virtual Pix seek(GctSymbol& key); // Pix of key - - GctSymbol& dflt(); // access default val - - void error(const char* msg); - virtual int OK() = 0; // rep invariant -}; - - - -inline GctSymbolGctSymbolMap::~GctSymbolGctSymbolMap() {} - -inline int GctSymbolGctSymbolMap::length() -{ - return count; -} - -inline int GctSymbolGctSymbolMap::empty() -{ - return count == 0; -} - -inline GctSymbol& GctSymbolGctSymbolMap::dflt() -{ - return def; -} - -inline GctSymbolGctSymbolMap::GctSymbolGctSymbolMap(GctSymbol& dflt) :def(dflt) -{ - count = 0; -} - - - - -//# 26 "GctSymbol.GctSymbol.CHMap.h" 2 - - - - - -struct GctSymbolGctSymbolCHNode -{ - GctSymbolGctSymbolCHNode* tl; - GctSymbol hd; - GctSymbol cont; - GctSymbolGctSymbolCHNode(); - GctSymbolGctSymbolCHNode(GctSymbol& h, GctSymbol& c, GctSymbolGctSymbolCHNode* t = 0); - ~GctSymbolGctSymbolCHNode(); -}; - - - -inline GctSymbolGctSymbolCHNode::GctSymbolGctSymbolCHNode() {} - -inline GctSymbolGctSymbolCHNode::GctSymbolGctSymbolCHNode(GctSymbol& h, GctSymbol& c, GctSymbolGctSymbolCHNode* t) - : hd(h), cont(c), tl(t) {} - -inline GctSymbolGctSymbolCHNode::~GctSymbolGctSymbolCHNode() {} - - - - -typedef GctSymbolGctSymbolCHNode* GctSymbolGctSymbolCHNodePtr; - - - - -class GctSymbolGctSymbolCHMap : public GctSymbolGctSymbolMap -{ -protected: - GctSymbolGctSymbolCHNode** tab; - unsigned int size; - -public: - GctSymbolGctSymbolCHMap(GctSymbol& dflt,unsigned int sz=100 ); - GctSymbolGctSymbolCHMap(GctSymbolGctSymbolCHMap& a); - ~GctSymbolGctSymbolCHMap(); - - GctSymbol& operator [] (GctSymbol& key); - - void del(GctSymbol& key); - - Pix first(); - void next(Pix& i); - GctSymbol& key(Pix i); - GctSymbol& contents(Pix i); - - Pix seek(GctSymbol& key); - int contains(GctSymbol& key); - - void clear(); - int OK(); -}; - - - -inline GctSymbolGctSymbolCHMap::~GctSymbolGctSymbolCHMap() -{ - clear(); - delete tab; -} - -inline int GctSymbolGctSymbolCHMap::contains(GctSymbol& key) -{ - return seek(key) != 0; -} - -inline GctSymbol& GctSymbolGctSymbolCHMap::key(Pix p) -{ - if (p == 0) error("null Pix"); - return ((GctSymbolGctSymbolCHNode*)p)->hd; -} - -inline GctSymbol& GctSymbolGctSymbolCHMap::contents(Pix p) -{ - if (p == 0) error("null Pix"); - return ((GctSymbolGctSymbolCHNode*)p)->cont; -} - - - - -//# 22 "GctSymbol.GctSymbol.CHMap.cc" 2 - - -// The nodes are linked together serially via a version -// of a trick used in some vtables: odd pointers are -// actually links to the next table entry. -// Not terrible, but not wonderful either - -static inline int goodCHptr(GctSymbolGctSymbolCHNode* t) -{ - return ((((unsigned)t) & 1) == 0); -} - -static inline GctSymbolGctSymbolCHNode* index_to_CHptr(int i) -{ - return (GctSymbolGctSymbolCHNode*)((i << 1) + 1); -} - -static inline int CHptr_to_index(GctSymbolGctSymbolCHNode* t) -{ - return ( ((unsigned) t) >> 1); -} - -GctSymbolGctSymbolCHMap::GctSymbolGctSymbolCHMap(GctSymbol& dflt, unsigned int sz) - :GctSymbolGctSymbolMap(dflt) -{ - tab = (GctSymbolGctSymbolCHNode**)(new GctSymbolGctSymbolCHNodePtr[size = sz]); - for (unsigned int i = 0; i < size; ++i) tab[i] = index_to_CHptr(i+1); - count = 0; -} - -GctSymbolGctSymbolCHMap::GctSymbolGctSymbolCHMap(GctSymbolGctSymbolCHMap& a) :GctSymbolGctSymbolMap(a.def) -{ - tab = (GctSymbolGctSymbolCHNode**)(new GctSymbolGctSymbolCHNodePtr[size = a.size]); - for (unsigned int i = 0; i < size; ++i) tab[i] = index_to_CHptr(i+1); - count = 0; - for (Pix p = a.first(); p; a.next(p)) (*this)[a.key(p)] = a.contents(p); // gets bogus error - type `GctSymbol' is derived from private `String' -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p785.C b/gcc/testsuite/g++.old-deja/g++.mike/p785.C deleted file mode 100755 index 7d61b09..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p785.C +++ /dev/null @@ -1,8074 +0,0 @@ -// Special g++ Options: -w -// Build don't link: -// prms-id: 785 - -//# 1 "GctNameRef.List.cc" -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine++.h" 1 -// -*- C++ -*- -#ifndef FALSE -#define FALSE false -#endif -#ifndef TRUE -#define TRUE true -#endif - - -// -// WATCHOUT - CC 2.1 uses regular old cpp as its #ifdef processor -// whereas GNU uses a special preprocessor (actually ``gcc-cpp -+'') -// This implies that there can be no C++ comments on lines which are -// to be understood by cpp. Actually it turns out that only lines -// with grammatical structures (such as ``#if defined( ... )'') are -// affected, but this is probably a good rule to follow elsewhere too. -// - -// -// Define a ``Standard C++ Unix Machine'' -// -// By whatever means are available in sumachine and elsewhere, -// figure out what type of C++ world we are on. -// -// See also "sumachine.h" -// -// -// This file is expected to be included as the first #include file in -// all .cc files This file should be included in each and every src file -// compiled b/c it ensures that the environment which those src files -// expect exists either by fiat or by faking it. -// - - -// -// Its GNU C++ -// -// This pragma only works under g++ 1 (it no longer works for gcc2) - - - - -// Because between releases of Cygnus' stuff, the definitions keep bouncing -// around between so fast that one can't -// keep one's code compiling ... Just include them all and be done with it. -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stdlib.h" 1 - - - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stddef.h" 1 - - -extern "C" { - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/mips/lib/gcc/decstatn/cygnus-1.96/include/stddef.h" 1 - - - - - - -/* This avoids lossage on Sunos but only if stdtypes.h comes first. - There's no way to win with the other order! Sun lossage. */ - -/* In case nobody has defined these types, but we aren't running under - GCC 2.00, make sure that __PTRDIFF_TYPE__, __SIZE__TYPE__, and - __WCHAR_TYPE__ have reasonable values. This can happen if the - parts of GCC is compiled by an older compiler, that actually - include gstddef.h, such as collect2. */ - -/* Signed type of difference of two pointers. */ - - - - - - - - - - - - - - -typedef long int ptrdiff_t; - - - - - - -/* Unsigned type of `sizeof' something. */ - - - - - - - - - - - - - - -typedef int size_t; - - - - - - -/* Data type for wide chars. */ - - - - - - - - - - - - - - -typedef int wchar_t; - - - - - - - - -/* A null pointer constant. */ - - - - -/* Offset of member MEMBER in a struct of type TYPE. */ - - - - - -//# 7 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stddef.h" 2 - - - - -} - -//# 6 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stdlib.h" 2 - - -extern "C" { - -int abs(int); - - -void abort(void); - - - - -double atof(const char*); -int atoi(const char*); -long atol(const char*); - -int atexit(auto void (*p) (void)); -int bsearch (const void *, const void *, size_t, - size_t, auto int (*ptf)(const void*, const void*)); -void* calloc(size_t, size_t); -void cfree(void*); - - -void exit(int); - - - - -char* fcvt(double, int, int*, int*); -void free(void*); -char* getenv(const char*); -int getopt(int, const char**, const char*); -int getpw(int, char*); -char* gcvt(double, int, char*); -char* ecvt(double, int, int*, int*); -extern char** environ; - -long labs(long); -void* malloc(size_t); -size_t malloc_usable_size(void*); -int putenv(const char*); -extern char* optarg; -extern int opterr; -extern int optind; -void qsort(void*, size_t, size_t, auto int (*ptf)(void*,void*)); -int rand(void); -void* realloc(void*, size_t); -int setkey(const char*); -int srand(unsigned int); -double strtod(const char*, char**); -long strtol(const char*, char**, int); -unsigned long stroul(const char**, int); -int system(const char*); - -long random(void); -void srandom(int); -char* setstate(char*); -char* initstate(unsigned, char*, int); - -double drand48(void); -void lcong48(short*); -long jrand48(short*); -long lrand48(void); -long mrand48(void); -long nrand48(short*); -short* seed48(short*); -void srand48(long); - -char* ctermid(char*); -char* cuserid(char*); -char* tempnam(const char*, const char*); -char* tmpnam(char*); - -} - -//# 44 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine++.h" 2 - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/std.h" 1 -// This may look like C code, but it is really -*- C++ -*- -/* -Copyright (C) 1988, 1992 Free Software Foundation - written by Doug Lea (dl@rocky.oswego.edu) - -This file is part of the GNU C++ Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - - - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stddef.h" 1 -//# 12 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stddef.h" - -//# 23 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/std.h" 2 - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stdlib.h" 1 - - -//# 80 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stdlib.h" - -//# 24 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/std.h" 2 - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/string.h" 1 - - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stddef.h" 1 -//# 12 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stddef.h" - -//# 5 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/string.h" 2 - - - -extern "C" { - -char* strcat(char*, const char*); -char* strchr(const char*, int); -int strcmp(const char*, const char*); -int strcoll(const char*, const char*); -char* strcpy(char*, const char*); -size_t strcspn(const char*, const char*); -char* strdup(const char*); - -char* strncat(char*, const char*, size_t); -int strncmp(const char*, const char*, size_t); -char* strncpy(char*, const char*, size_t); -char* strpbrk(const char*, const char*); -char* strrchr(const char*, int); -size_t strspn(const char*, const char*); -char* strstr(const char*, const char *); -char* strtok(char*, const char*); -size_t strxfrm(char*, const char*, size_t); - -} - - - - - - - -extern "C" { -char* index(const char*, int); -char* rindex(const char*, int); -} - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/memory.h" 1 - - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stddef.h" 1 -//# 12 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stddef.h" - -//# 5 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/memory.h" 2 - - -extern "C" { - -void* memalign(size_t, size_t); -void* memccpy(void*, const void*, int, size_t); -void* memchr(const void*, int, size_t); - - -void* memset(void*, int, size_t); -int ffs(int); -size_t getpagesize(void); -void* valloc(size_t); - -} - - - - - - - - - -extern "C" { -void bcopy(const void*, void*, size_t); // USG uses version in bcopy.c -int bcmp(const void*, const void*, int); -void bzero(void*, int); -} - - - - - - - - - - - - - - - - -//# 43 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/string.h" 2 - - - -//# 25 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/std.h" 2 - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/memory.h" 1 - -//# 49 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/memory.h" - -//# 26 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/std.h" 2 - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/unistd.h" 1 - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stddef.h" 1 -//# 12 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stddef.h" - -//# 4 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/unistd.h" 2 - - -extern "C" { - - -void _exit(int); - - - - -unsigned alarm(unsigned); -int brk(void*); -int chdir(const char*); -int chmod(const char*, int); -int chown(const char*, int, int); -int close(int); -char* crypt(const char*, const char*); -int dup(int); -int dup2(int, int); -char* encrypt(char*, int); -int execl(const char*, const char *, ...); -int execle(const char*, const char *, ...); -int execlp(const char*, const char*, ...); -int exect(const char*, const char**, char**); -int execv(const char*, const char**); -int execve(const char*, const char**, char**); -int execvp(const char*, const char**); -int fchown(int, int, int); -int fork(void); -int fsync(int); -int ftruncate(int, unsigned long); -char* getcwd(char*, int); -int getdomainname(char*, int); -int getdtablesize(void); - -int getgroups(int, int*); -int geteuid(void); -int getegid(void); -int getgid(void); -long gethostid(void); -int gethostname(char*, int); -int getpgrp(...); -int getpid(void); -int getppid(void); -char* getlogin(void); -char* getpass(const char*); -unsigned getuid(void); -int ioctl(int, int, void*); -int isatty(int); -int link(const char*, const char*); -int mkstemp(char*); -char* mktemp(char*); -int nice(int); - -void volatile pause(void); - - - -int pipe(int*); -int readlink(const char*, char*, int); -int rename(const char*, const char*); -int rmdir(const char*); -void* sbrk(int); -int syscall(int, ...); -int setgid(int); -int sethostname(const char*, int); -int setpgrp(...); -int setregid(int, int); -int setreuid(int, int); -int setuid(int); -unsigned sleep(unsigned); -void swab(void*, void*, int); -int symlink(const char*, const char*); -int truncate(const char*, unsigned long); -char* ttyname(int); -int ttyslot(void); -// int umask(int); /* commented out for now; wrong for SunOs4.1 */ -int unlink(const char*); -int vfork(void); -int vadvise(int); -int vhangup(void); - -long lseek(int, long, int); -int read(int, void*, size_t); -int write(int, const void*, size_t); -int access(const char*, int); - -int flock(int, int); - - -} - - - - -//# 27 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/std.h" 2 - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stdio.h" 1 -// This may look like C code, but it is really -*- C++ -*- -/* -Copyright (C) 1988 Free Software Foundation - written by Doug Lea (dl@rocky.oswego.edu) - -This file is part of the GNU C++ Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -/* - * Please check the following before installing this file: - * - * Make sure USG is #defined if you are on a USG system! - * - * Check the value of _NFILE against the one in your /usr/include/stdio.h. - * (USG only) - * - * Check whether your libc.a sprintf function returns - * an int (as do most) versus a char* (BSD), and (un)comment - * the corresponding SPRINTF_RETURNS_INT line. - * - * Check the value of BUFSIZ against the one in your /usr/include/stdio.h. - * - * Carefully check the fields and order of _iobuf declaration against - * the one in your /usr/include/stdio.h. Xenix-based systems - * may need some re-ordering of _iobuf. fields. - * - * Note that some _IOXXX #defines may not be present in your - * /usr/include/stdio.h. This is ok, so long as the ones that - * are present in both are set to the same values. - * - * Some of the prototypes refer to functions that may not be - * present in your libc.a. This is ok so long as you do not - * actually call such functions. - * - */ - - - -//#pragma interface - - - - - - - -// Note: The #define _stdio_h is at the end of this file, -// in case #include_next finds an installed version of this -// same file -- we want it to continue until it finds the C version. - -/* - HAVE_VPRINTF should be set if vprintf is in libc.a - HAVE_SETVBUF should be set if setvbuf is in libc.a - HAVE_SETLINEBUF should be set if setlinebuf in libc.a - - The following are probably correct for the listed systems - -*/ - - - - - -//# 85 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stdio.h" - - - -//# 158 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stdio.h" - - -extern "C" { - - - - - - - - - - - - - - - - - - - - - - - - - - - - -//# 1 "/usr/include/stdio.h" 1 -/* @(#)stdio.h 4.6 (ULTRIX) 3/1/91 */ -/************************************************************************ - * * - * Copyright (c) 1985 by * - * Digital Equipment Corporation, Maynard, MA * - * All rights reserved. * - * * - * This software is furnished under a license and may be used and * - * copied only in accordance with the terms of such license and * - * with the inclusion of the above copyright notice. This * - * software or any other copies thereof may not be provided or * - * otherwise made available to any other person. No title to and * - * ownership of the software is hereby transferred. * - * * - * This software is derived from software received from the * - * University of California, Berkeley, and from Bell * - * Laboratories. Use, duplication, or disclosure is subject to * - * restrictions under license agreements with University of * - * California and with AT&T. * - * * - * The information in this software is subject to change without * - * notice and should not be construed as a commitment by Digital * - * Equipment Corporation. * - * * - * Digital assumes no responsibility for the use or reliability * - * of its software on equipment which is not supplied by Digital. * - * * - ************************************************************************/ -/************************************************************************ - * Modification History - * - * Mitch Condylis 28-Feb-1991 - * Changed _file member of FILE structure from char to short - * as part of work to increase max number of open file descriptors. - * - * Mike Thomas, 7-Sep-1990 - * 016 Back out most of 015. Leave in explicit declarations. - * - * Mike Thomas, 21-Aug-1990 - * 015 DECwest ANSI - change _filbuf to __filbuf for ANSI compliance. - * Explicitly declare __filbuf under __STDC__. - * Likewise flsbuf. - * - * 014 Mike Thomas, 08-Jun-90 - * Changed _POSIX_SOURCE reference back to POSIX. - * - * 013 Dan Smith, 23-Feb-90 - * Added const to several prototypes. More namespace protection. - * Changed reference of POSIX to _POSIX_SOURCE. - * - * Jon Reeves, 07-Dec-1989 - * 012 Namespace protection. - * - * Jon Reeves, 09-Nov-1989 - * 011 Fix putc properly: could still sign-extend in some cases before. - * - * Linda Wilson, 06-Oct-1989 - * 010 Declare sprintf as int for std conformance - * - * Jon Reeves, 25-Aug-1989 - * 009 Fix putc[har] for 8-bit mode (unsigned int->char) - * - * Jon Reeves, 18-Jul-1989 - * 008 Add getw, putw for X/Open conformance. - * - * Jon Reeves, 31-May-1989 - * 007 ANSI conformance; clean up rogue comments. sprintf is still - * wrong. - * - * Lu Anne Van de Pas, 02-Jun-1986 - * 006 Added ending "/" to P_tmpdir string. - * - * David L Ballenger, 22-Nov-1985 - * 005 Correct definition of sprintf() for System V environment. - * - * David L Ballenger, 01-Aug-1985 - * 004 Add _IOAPPEND flag for files opened with "A" or "A+". - * - * David L Ballenger, 26-Jun-1985 - * 003 Add changes so that FILE structures are allocated dynamically. - * - * Larry Cohen, 23-April-1985 - * - change NFILE from 20 to 64 - * - * David L Ballenger, 13-Mar-1985 - * 0001 Add System V definitions. - ************************************************************************/ - -//# 1 "/usr/include/ansi_compat.h" 1 -/* - * @(#)ansi_compat.h 4.4 (ULTRIX) 10/8/90 - */ - -/************************************************************************ - * * - * Copyright (c) 1990 by * - * Digital Equipment Corporation, Maynard, MA * - * All rights reserved. * - * * - * This software is furnished under a license and may be used and * - * copied only in accordance with the terms of such license and * - * with the inclusion of the above copyright notice. This * - * software or any other copies thereof may not be provided or * - * otherwise made available to any other person. No title to and * - * ownership of the software is hereby transferred. * - * * - * The information in this software is subject to change without * - * notice and should not be construed as a commitment by Digital * - * Equipment Corporation. * - * * - * Digital assumes no responsibility for the use or reliability * - * of its software on equipment which is not supplied by Digital. * - * * - ************************************************************************/ - -/* - * To avoid namespace pollution when using the ULTRIX header files under the - * DEC ANSI compiler, all user-visible header files were modifed to reference - * ANSI-style predefined macro name rather than their traditional names - * (__ultrix vice ultrix). Every file which accesses a predefined macro name - * must include this file before any other files are included or the macros - * are tested. - * - * In strict ANSI mode, the appropriate ANSI-style macros are already - * defined and the redefinitions in this file will not be seen. When using - * pcc, the traditional macro names are defined and this file will define - * ANSI-style equivalents of the traditional names. When using the DEC C - * compiler, both the traditional and ANSI predefined macro names are - * available so the definitions in this file are not made visible. - * - */ - - -//# 116 "/usr/include/ansi_compat.h" - -//# 89 "/usr/include/stdio.h" 2 - - - - - - - - - - - - - - /* Note: spacing must match, too, to avoid warnings */ - - - - -extern struct _iobuf { - int _cnt; - char *_ptr; - char *_base; - int _bufsiz; - short _flag; - short _file; -} _iob[3 ]; -typedef struct _iobuf FILE; - -typedef long fpos_t; - - - - - - - - - - - - - - - - - -/* fseek() values */ - - - - - - - -/* - * prototype - * - */ -extern int getc( FILE *__stream ); -extern int getchar( void ); -extern int putc( int __c, FILE *__stream); -extern int putchar( int __c); -extern int feof( FILE *__stream ); -extern int ferror( FILE *__stream ); -extern int fileno( FILE *__stream ); -extern int _filbuf( FILE *p); -extern int _flsbuf( unsigned char x , FILE *p); - - - - - - - - - - - - - - - - -typedef char *va_list; - -/* - * prototypes - * - */ -extern void clearerr( FILE *__stream); -extern int fclose( FILE *__stream ); -extern FILE * c_proto_fdopen ( int __filedes, char *__type ); -extern int fflush( FILE *__stream ); -extern int fgetc( FILE *__stream ); -extern int fgetpos( FILE *__stream, fpos_t *__pos ); -extern char * fgets( char *__s, int __n, FILE *__stream ); -extern FILE * c_proto_fopen ( const char *__filename, const char *__type ); -extern int c_proto_fprintf ( FILE *__stream, const char *__format, ... ); -extern int fputc( int __c, FILE *__stream ); -extern int c_proto_fputs ( const char *__s, FILE *__stream ); -extern size_t fread( void *__ptr, size_t __size, - size_t __nitems, FILE *__stream ); -extern FILE * c_proto_freopen ( const char *__filename, const char *__type, - FILE *__stream ); -extern int c_proto_fscanf ( FILE *__stream, const char *__format, ... ); -extern int fseek( FILE *__stream, long __offset, int __ptrname ); -extern int fsetpos( FILE *__stream, const fpos_t *__pos ); -extern long ftell( FILE *__stream ); -extern size_t c_proto_fwrite ( const void *__ptr, size_t __size, - size_t __nitems, FILE *__stream ); -extern char * gets( char *__s ); -extern void c_proto_perror ( const char *__s ); -extern FILE * c_proto_popen (const char *__command, const char *__type ); -extern int c_proto_printf ( const char *__format, ... ); -extern int c_proto_puts ( const char *__s ); -extern int remove( const char *__filename ); -extern int rename( const char *__from, const char *__to ); -extern void c_proto_rewind ( FILE *__stream ); -extern int c_proto_scanf ( const char *__format, ... ); -extern void c_proto_setbuf ( FILE *__stream, char *__buf ); -extern int c_proto_setvbuf ( FILE *__stream, char *__buf, - int __type, size_t __size ); -extern int c_proto_sscanf ( const char *__s, const char *__format, ... ); -extern FILE * tmpfile( void ); -extern char * tmpnam( char *__s ); -extern int ungetc( int __c, FILE *__stream ); -extern int c_proto_vfprintf ( FILE *__stream, const char *__format, va_list __ap ); -extern int c_proto_vprintf ( const char *__format, va_list __ap ); -extern int c_proto_vsprintf ( char *__s, const char *__format, va_list __ap); - - -extern char * c_proto_tempnam ( const char *__dir, const char *__pfx); -extern int c_proto_putw ( int __w, FILE *__stream ); -extern int getw(FILE *__stream); -extern int pclose( FILE *__stream ); - - -//# 298 "/usr/include/stdio.h" - - - -/* function prototype */ -extern int c_proto_sprintf ( char *__s, const char *__format, ... ); - - - - - - - - - - - - - - - - - - - -//# 189 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stdio.h" 2 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -} - - - - - -extern "C" { - -//# 239 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stdio.h" - -int fclose(FILE*); -FILE* fdopen(int, const char*); -int fflush(FILE*); -int fgetc(FILE*); -char* fgets(char*, int, FILE *); -FILE* fopen(const char*, const char*); -int fprintf(FILE*, const char* ...); -int fputc(int, FILE*); -int fputs(const char*, FILE*); -size_t fread(void*, size_t, size_t, FILE*); - - - -FILE* freopen(const char*, const char*, FILE*); - -int fscanf(FILE*, const char* ...); -int fseek(FILE*, long, int); -long ftell(FILE *); -unsigned int fwrite(const void*, unsigned int, unsigned int, FILE*); -char* gets(char*); -int getw(FILE*); -int pclose(FILE*); -void perror(const char*); -FILE* popen(const char*, const char*); -int printf(const char* ...); -int puts(const char*); -int putw(int, FILE*); -int rewind(FILE*); -int scanf(const char* ...); -int setbuf(FILE*, char*); -int setbuffer(FILE*, char*, int); -int setlinebuf(FILE*); -int setvbuf(FILE*, char*, int, unsigned int); -int sscanf(char*, const char* ...); -FILE* tmpfile(); -int ungetc(int, FILE*); -int vfprintf(FILE*, const char*, ...); - -// Third arg to vprintf must be '...' for some machines, & doesn't -// hurt for others. - -int vprintf(const char*, ... ); - - - - - -char* sprintf(char*, const char*, ...); -char* vsprintf(char*, const char*, ...); - - -} - - - - - - - - - - - - - - - - - - -//# 28 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/std.h" 2 - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/errno.h" 1 - - -extern "C" { - - - - - -//# 1 "/usr/include/errno.h" 1 -/* @(#)errno.h 2.4 (ULTRIX) 11/10/89 */ - -/************************************************************************ - * * - * Copyright (c) 1984, 1987 by * - * Digital Equipment Corporation, Maynard, MA * - * All rights reserved. * - * * - * This software is furnished under a license and may be used and * - * copied only in accordance with the terms of such license and * - * with the inclusion of the above copyright notice. This * - * software or any other copies thereof may not be provided or * - * otherwise made available to any other person. No title to and * - * ownership of the software is hereby transferred. * - * * - * This software is derived from software received from the * - * University of California, Berkeley, and from Bell * - * Laboratories. Use, duplication, or disclosure is subject to * - * restrictions under license agreements with University of * - * California and with AT&T. * - * * - * The information in this software is subject to change without * - * notice and should not be construed as a commitment by Digital * - * Equipment Corporation. * - * * - * Digital assumes no responsibility for the use or reliability * - * of its software on equipment which is not supplied by Digital. * - * * - ************************************************************************/ -/* - * - * Modification history: - * - * 10 Jul 89 -- jlr - * Added ENOSYS for POSIX - * - * 13 Jan 88 -- map - * Added ENOLCK for POSIX - * - * 4 Aug 86 -- chet - * Moved NFS error codes to match SUN's. - * - * 24 Feb 86 -- depp - * Added EALIGN error code - * - * 28-Mar-85 -- David L Ballenger - * Add mapping of System V error numbers from BRL package. - * - * 01 Mar 85 -- depp - * Added System V IPC error codes error codes. - * - */ - -/* - * Error codes - */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -/* math software */ - - - -/* non-blocking and interrupt i/o */ - - - -/* ipc/network software */ - - /* argument errors */ - - - - - - - - - - - - - - /* operational errors */ - - - - - - - - - - - - - - /* */ - - - -/* should be rearranged */ - - - - -/* quotas & mush */ - - - - -/* NFS error codes */ - - - -/* IPC errors - */ - - - -/* Alignment error of some type (i.e., cluster, page, block ...) */ - - -/* System V mappings from BRL package - */ - - -/* POSIX errnos - */ - - - -/* - * DUP (Diagnostic/Utilities Protocol) related error numbers. - */ - - - - - - - - - - - - - - -/* External definition of errno from System V - */ - -extern int errno; - -//# 9 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/errno.h" 2 - - - - -extern char* sys_errlist[]; -extern int sys_nerr; -extern int errno; -void perror(const char*); -char* strerr(int); - - -} - - -//# 29 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/std.h" 2 - - - -//# 45 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine++.h" 2 - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/builtin.h" 1 -// This may look like C code, but it is really -*- C++ -*- - -/* -Copyright (C) 1988, 1992 Free Software Foundation - written by Doug Lea (dl@rocky.oswego.edu) - -This file is part of the GNU C++ Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -/* - arithmetic, etc. functions on built in types -*/ - - - - -//#pragma interface - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stddef.h" 1 -//# 12 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stddef.h" - -//# 31 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/builtin.h" 2 - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/std.h" 1 -// This may look like C code, but it is really -*- C++ -*- -/* -Copyright (C) 1988, 1992 Free Software Foundation - written by Doug Lea (dl@rocky.oswego.edu) - -This file is part of the GNU C++ Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - - -//# 31 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/std.h" - -//# 32 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/builtin.h" 2 - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/math.h" 1 -// This may look like C code, but it is really -*- C++ -*- -/* -Copyright (C) 1988 Free Software Foundation - written by Doug Lea (dl@rocky.oswego.edu) - -This file is part of the GNU C++ Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - - - - -//#pragma interface - - - - - - - - - - - -//# 64 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/math.h" - -extern "C" { - -double acos(double); -double acosh(double); -double asin(double); -double asinh(double); -double atan(double); -double atan2(double, double); -double atanh(double); -double cbrt(double); -double ceil(double); -double copysign(double,double); -double cos(double); -double cosh(double); -double drem(double,double); -double erf(double); -double erfc(double); -double exp(double); -double expm1(double); -double fabs(double); -double finite(double); -double floor(double); -double frexp(double, int*); -double gamma(double); -double hypot(double,double); -double infnan(int); - -/* see below */ -int isinf(double); -int isnan(double); - -double j0(double); -double j1(double); -double jn(int, double); -double ldexp(double, int); -double lgamma(double); -double log(double); -double log10(double); -double log1p(double); -double logb(double); -double modf(double, double*); -double pow(double, double); -double rint(double); -double scalb(double, int); -double sin(double); -double sinh(double); -double sqrt(double); -double tan(double); -double tanh(double); -double y0(double); -double y1(double); -double yn(int, double); - -double aint(double); -double anint(double); -int irint(double); -int nint(double); -} - - - -/* libg++ doesn't use this since it is not available on some systems */ - -/* the following ifdef is just for compiling OOPS */ - - -struct libm_exception -{ - int type; - char* name; - double arg1, arg2, retval; -}; - - - - - - - - -extern "C" int matherr(libm_exception*); - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/values.h" 1 -// This may look like C code, but it is really -*- C++ -*- -/* -Copyright (C) 1988 Free Software Foundation - written by Doug Lea (dl@rocky.oswego.edu) - -This file is part of the GNU C++ Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - - - - - - - - - - - - - - - - - - - - - - - - - - - -//# 150 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/values.h" - - - - - - - - - - - - - - - - - - - - - - - - - -//# 149 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/math.h" 2 - - -/* On some systems, HUGE ought to be MAXFLOAT or IEEE infinity */ - - - - - - -/* sequents don't supply these. The following should suffice */ - - - - - - - - - -/* These seem to be sun & sysV names of these constants */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -//# 33 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/builtin.h" 2 - - -typedef void (*one_arg_error_handler_t)(const char*); -typedef void (*two_arg_error_handler_t)(const char*, const char*); - -long gcd(long, long); -long lg(unsigned long); -double pow(double, long); -long pow(long, long); - -double start_timer(); -double return_elapsed_time(double last_time = 0.0); - -char* itoa(long x, int base = 10, int width = 0); -char* itoa(unsigned long x, int base = 10, int width = 0); - -char* itoa(long long x, int base = 10, int width = 0); -char* itoa(unsigned long long x, int base = 10, int width = 0); - -char* dtoa(double x, char cvt = 'g', int width = 0, int prec = 6); - -char* hex(long x, int width); -char* hex(unsigned long x, int width); -char* hex(int x, int width); -char* hex(short x, int width); -char* hex(unsigned int x, int width); -char* hex(unsigned short x, int width); - -char* oct(long x, int width); -char* oct(unsigned long x, int width); -char* oct(int x, int width); -char* oct(short x, int width); -char* oct(unsigned int x, int width) ; -char* oct(unsigned short x, int width); - -char* dec(long x, int width); -char* dec(unsigned long x, int width); -char* dec(int x, int width); -char* dec(short x, int width); -char* dec(unsigned int x, int width) ; -char* dec(unsigned short x, int width); - -char* form(const char* fmt ...); -char* chr(char ch, int width = 0); -char* str(const char* s, int width = 0); - -unsigned int hashpjw(const char*); -unsigned int multiplicativehash(int); -unsigned int foldhash(double); - -extern void default_one_arg_error_handler(const char*); -extern void default_two_arg_error_handler(const char*, const char*); - -extern two_arg_error_handler_t lib_error_handler; - -extern two_arg_error_handler_t - set_lib_error_handler(two_arg_error_handler_t f); - - -double abs(double arg); -float abs(float arg); -short abs(short arg); -long abs(long arg); -int sign(long arg); -int sign(double arg); -long sqr(long arg); -double sqr(double arg); -int even(long arg); -int odd(long arg); -long lcm(long x, long y); -void setbit(long& x, long b); -void clearbit(long& x, long b); -int testbit(long x, long b); - -signed char min(signed char a, signed char b); -unsigned char min(unsigned char a, unsigned char b); - -signed short min(signed short a, signed short b); -unsigned short min(unsigned short a, unsigned short b); - -signed int min(signed int a, signed int b); -unsigned int min(unsigned int a, unsigned int b); - -signed long min(signed long a, signed long b); -unsigned long min(unsigned long a, unsigned long b); - -float min(float a, float b); - -double min(double a, double b); - -signed char max(signed char a, signed char b); -unsigned char max(unsigned char a, unsigned char b); - -signed short max(signed short a, signed short b); -unsigned short max(unsigned short a, unsigned short b); - -signed int max(signed int a, signed int b); -unsigned int max(unsigned int a, unsigned int b); - -signed long max(signed long a, signed long b); -unsigned long max(unsigned long a, unsigned long b); - -float max(float a, float b); - -double max(double a, double b); - - - - -inline double abs(double arg) -{ - return (arg < 0.0)? -arg : arg; -} - -inline float abs(float arg) -{ - return (arg < 0.0)? -arg : arg; -} - -inline short abs(short arg) -{ - return (arg < 0)? -arg : arg; -} - -inline long abs(long arg) -{ - return (arg < 0)? -arg : arg; -} - -inline int sign(long arg) -{ - return (arg == 0) ? 0 : ( (arg > 0) ? 1 : -1 ); -} - -inline int sign(double arg) -{ - return (arg == 0.0) ? 0 : ( (arg > 0.0) ? 1 : -1 ); -} - -inline long sqr(long arg) -{ - return arg * arg; -} - -inline double sqr(double arg) -{ - return arg * arg; -} - -inline int even(long arg) -{ - return !(arg & 1); -} - -inline int odd(long arg) -{ - return (arg & 1); -} - -inline long lcm(long x, long y) -{ - return x / gcd(x, y) * y; -} - -inline void setbit(long& x, long b) -{ - x |= (1 << b); -} - -inline void clearbit(long& x, long b) -{ - x &= ~(1 << b); -} - -inline int testbit(long x, long b) -{ - return ((x & (1 << b)) != 0); -} - - - - -//# 46 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine++.h" 2 - - -//# 65 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine++.h" - - -// Take the nice stuff that the regular sumachine.h provides -extern "C" { -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine.h" 1 - - - -/* - * Define a ``Standard Unix Machine'' - * - * By whatever means are available in /lib/cpp, figure out - * what type of operating system, maker, machine architecture - * and architecture instance we are on. - * - * OPSYS_TYPE - the type of operating system (e.g. vms) - * OPSYS_SUBTYPE - the subtype of operating system (e.g. bsd, sys5, etc) - * OPSYS_MFR - the manufacturer (e.g. Hewlett-Packard) - * OPSYS_VERS - the operating system version (e.g. sun 4.0) - * - * CPU_TYPE - the architecture (e.g. 68K) - * CPU_MODEL - the architecture instance (e.g. 68010) - * - * - * This file should be #included as the 1st line of each and every .c file - * - * It ensures that the environment which those src files expect exists - * either by fiat or by faking it where the host operating system is not - * up to snuff. - */ - -/* - * The OPSYS specifics - * - * Parameterized with the best known /lib/cpp predefines - */ - - - - - - - - - -/* - * Note that everyone defines the symbol unix except IBM's AIX 3.1 - * which doesn't define unix but DOES define the symbol _AIX - */ - - - - - - - - - - - - - - - - - - - - - -/* - * WATCHOUT - the newer gcc doesn't define __GNU__ - * So we may have to define __GNU__ ourselves - * - * __GNU__ is the old way - * __GNUC__ is the new way - * - * Use gcc -v somefile.c to determine what is being passed. - */ - -/* - * GNU doesn't know about any opsys-specific - * cpp tokens, so we must figure them out for it. - * GNU does however know about architecture-tokens - */ -//# 93 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine.h" - - - - -/* then if defined(vax) || defined(mips) */ -/* then if >= ultrix 4.2 => defined(__vax) || defined(__mips) */ - - -/* - * gcc 1.39 uses the words mips and __mips__ while Ultrix 4.2 has - * been coded in terms of __mips (only!) - so we have to hack it. - * - * See from Ultrix 4.2 - * - * Unfortunately also, is turned on only if __STDC__ - * is undefined. gcc defines __STDC__ and you can't undef it. So - * We are forced here (as with math.h) to copy and - * strip off the #if !defined(__STDC__). - * - * Further unfortunateness occurs in that the only way we have of - * discovering that we're in Ultrix 4.2 is to #include - * and check for the vector unit support #defined there. However - * we need the workarounds to be defined first in - * order to get the full effect of . - * - * So we have to do all this stuff under any and all Ultrix versions. - * - * We also have to work around the fact that the GNU (gcc 1.95.0 and later) - * compilers may be defining this stuff already - */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -/* end of fakeout */ - - -/* - * The r2000 and r3000 are indistinguishable (so far) - */ - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/sys/types.h" 1 - - -extern "C" -{ - - - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stddef.h" 1 -//# 12 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stddef.h" - -//# 10 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/sys/types.h" 2 - - - - - -//# 1 "/usr/include/sys/types.h" 1 -/* @(#)types.h 4.3 (ULTRIX) 2/28/91 */ - -/************************************************************************ - * * - * Copyright (c) 1984 - 1989 by * - * Digital Equipment Corporation, Maynard, MA * - * All rights reserved. * - * * - * This software is furnished under a license and may be used and * - * copied only in accordance with the terms of such license and * - * with the inclusion of the above copyright notice. This * - * software or any other copies thereof may not be provided or * - * otherwise made available to any other person. No title to and * - * ownership of the software is hereby transferred. * - * * - * This software is derived from software received from the * - * University of California, Berkeley, and from Bell * - * Laboratories. Use, duplication, or disclosure is subject to * - * restrictions under license agreements with University of * - * California and with AT&T. * - * * - * The information in this software is subject to change without * - * notice and should not be construed as a commitment by Digital * - * Equipment Corporation. * - * * - * Digital assumes no responsibility for the use or reliability * - * of its software on equipment which is not supplied by Digital. * - * * - ************************************************************************/ - -/* ------------------------------------------------------------------------ - * Modification History: /sys/h/types.h - * - * 20-Dec-1989 Larry Scott - * added #ifdef's for compliance - * - * 16-Jun-1989 Jon Reeves - * size_t must be unsigned, per ANSI and X/Open - * - * 05-Jun-1989 Jon Reeves - * Change latch name for size_t; it's in lots of headers. - * - * 12-May-1989 Todd M. Katz TMK0001 - * Added volatile type definitions: vu_long, vu_short, vu_char, - * v_long, v_short, and v_char. - * - * 08-May-1989 -- Ken Lesniak - * Conditionalize items also defined in time.h. - * - * 1-Feb-89 -- jmartin - * typedef s_char - * - * 15-Jan-88 lp - * Merge of final 43BSD changes. - * - * 31-August-1987 -- Mark Parenti - * Add definitions needed for POSIX compliance - * - * 27-April-1987 -- Larry Cohen - * Modify the typedef "fd_set" to accomodate 64 file descriptors. - * - * David L Ballenger, 8-Mar-1985 - * 0002 Add types for System V compatibility. - * - * 23 Oct 84 -- jrs - * Add ifdef so we can be nested without problem - * Derived from 4.2BSD, labeled: - * types.h 6.2 84/06/09 - * - * ----------------------------------------------------------------------- - */ - - - - - - - -//# 1 "/usr/include/ansi_compat.h" 1 -/* - * @(#)ansi_compat.h 4.4 (ULTRIX) 10/8/90 - */ - -/************************************************************************ - * * - * Copyright (c) 1990 by * - * Digital Equipment Corporation, Maynard, MA * - * All rights reserved. * - * * - * This software is furnished under a license and may be used and * - * copied only in accordance with the terms of such license and * - * with the inclusion of the above copyright notice. This * - * software or any other copies thereof may not be provided or * - * otherwise made available to any other person. No title to and * - * ownership of the software is hereby transferred. * - * * - * The information in this software is subject to change without * - * notice and should not be construed as a commitment by Digital * - * Equipment Corporation. * - * * - * Digital assumes no responsibility for the use or reliability * - * of its software on equipment which is not supplied by Digital. * - * * - ************************************************************************/ - -/* - * To avoid namespace pollution when using the ULTRIX header files under the - * DEC ANSI compiler, all user-visible header files were modifed to reference - * ANSI-style predefined macro name rather than their traditional names - * (__ultrix vice ultrix). Every file which accesses a predefined macro name - * must include this file before any other files are included or the macros - * are tested. - * - * In strict ANSI mode, the appropriate ANSI-style macros are already - * defined and the redefinitions in this file will not be seen. When using - * pcc, the traditional macro names are defined and this file will define - * ANSI-style equivalents of the traditional names. When using the DEC C - * compiler, both the traditional and ANSI predefined macro names are - * available so the definitions in this file are not made visible. - * - */ - - -//# 116 "/usr/include/ansi_compat.h" - -//# 79 "/usr/include/sys/types.h" 2 - - - - -/* - * Basic system types and major/minor device constructing/busting macros. - */ - -/* major part of a device */ - - -/* minor part of a device */ - - -/* make a device number */ - - -typedef unsigned char u_char; -typedef unsigned short u_short; -typedef unsigned int u_int; -typedef unsigned int uint; /* sys V compatibility */ -typedef unsigned long u_long; -typedef unsigned short ushort; /* sys III compat */ - -typedef volatile char v_char; -typedef volatile short v_short; -typedef volatile long v_long; -typedef volatile unsigned char vu_char; -typedef volatile unsigned short vu_short; -typedef volatile unsigned long vu_long; - -typedef - - signed - - char s_char; - - - - - - - - - -typedef struct _physadr { int r[1]; } *physadr; -/* - * WARNING: - * this must match the definition of kernel jmpbuf's in machine/pcb.h - */ -typedef struct label_t { - int val[12]; -} label_t; - - -typedef struct _quad { long val[2]; } quad; -typedef long daddr_t; -typedef char * caddr_t; -typedef u_long gno_t; -typedef short cnt_t; /* sys V compatibility */ -typedef long swblk_t; -typedef long paddr_t; /* sys V compatibility */ -typedef long audit_ID_t; - - -typedef short dev_t; -typedef short gid_t; /* POSIX compliance */ -typedef unsigned long ino_t; -typedef unsigned short mode_t; /* POSIX compliance */ -typedef short nlink_t; /* POSIX compliance */ -typedef int off_t; - - -typedef int pid_t; /* POSIX compliance */ - -typedef short uid_t; /* POSIX compliance */ - - -typedef int time_t; - - - - - - - - - -typedef int clock_t; /* POSIX compliance */ - -typedef long key_t; /* sys V compatibility */ - - - - -/* - * The maximum number of file descriptors is now a configurable option - * (max_nofile variable in /sys/conf/{mips|vax}/param.c). - * The getdtablesize(2) system call should be used to obtain the - * current limit. The value returned by getdtablesize() must be greater - * than 64, and less than or equal to MAX_NOFILE in types.h . The - * MAX_NOFILE define is needed for backward compatability with broken - * programs that need a static sized array for selecting. These programs - * should be modified to use the getdtablesize() interface for sizing. - */ - - -/* - * Select uses bit masks of file descriptors in longs. - * These macros manipulate such bit fields (the filesystem macros use chars). - * FD_SETSIZE may be defined by the user, but the default here - * should be >= NOFILE (param.h). - */ - - - - -/* How many things we'll allow select to use. 0 if unlimited */ - -typedef long fd_mask; - - - - - - -typedef struct fd_set { - fd_mask fds_bits[(((4096 )+(( (sizeof(fd_mask) * 8 ) )-1))/( (sizeof(fd_mask) * 8 ) )) ]; -} fd_set; - - - - - - - - -//# 15 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/sys/types.h" 2 - - - - - - -} - - - - -//# 199 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine.h" 2 - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/signal.h" 1 -// This may look like C code, but it is really -*- C++ -*- -/* -Copyright (C) 1989 Free Software Foundation - written by Doug Lea (dl@rocky.oswego.edu) - -This file is part of the GNU C++ Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - - - -extern "C" { - - - - -//# 1 "/usr/include/signal.h" 1 -/* @(#)signal.h 2.8 (ULTRIX) 11/9/89 */ - -/************************************************************************ - * * - * Copyright (c) 1987-1989 by * - * Digital Equipment Corporation, Maynard, MA * - * All rights reserved. * - * * - * This software is furnished under a license and may be used and * - * copied only in accordance with the terms of such license and * - * with the inclusion of the above copyright notice. This * - * software or any other copies thereof may not be provided or * - * otherwise made available to any other person. No title to and * - * ownership of the software is hereby transferred. * - * * - * This software is derived from software received from the * - * University of California, Berkeley, and from Bell * - * Laboratories. Use, duplication, or disclosure is subject to * - * restrictions under license agreements with University of * - * California and with AT&T. * - * * - * The information in this software is subject to change without * - * notice and should not be construed as a commitment by Digital * - * Equipment Corporation. * - * * - * Digital assumes no responsibility for the use or reliability * - * of its software on equipment which is not supplied by Digital. * - * * - ************************************************************************/ -/************************************************************************ - * Modification History * - * * - * Debby Haeck 11/14/90 * - * added new Vector Arithmetic Exception handling codes * - * Debby Haeck 9/4/90 * - * added new u_code for vector support * - * ILL_VECOP_FAULT, ILL_VECINST_FAULT, TERM_VECT_HARD and * - * TERM_VECT_TOOMANY * - * Tak Yin Wong 3/390 * - * Add ifdef's for POSIX and XOPEN * - * Linda Wilson 9/12/89 * - * typedef sigset_t for X/OPEN * - * Linda Wilson 9/12/89 * - * ifdef out sigmask for POSIX * - * Jon Reeves 7/14/89 * - * Add X/Open mandated function declarations. * - * Jon Reeves 5/16/89 * - * Add new BRK_STACKOVERFLOW def from MIPS 2.0 cmplrs * - * Jon Reeves 5/12/89 * - * Add raise() and sig_atomic_t for ANSI * - * Mark Parenti 2/06/88 * - * Change SA_CLDSTOP to SA_NOCLDSTOP per POSIX change * - * Fred Glover 1/12/88 * - * Add SIGLOST - server crash Sys-V lock notification * - * * - * Larry Cohen 10/1/85 * - * Add SIGWINCH - window change signal * - * * - * Greg Depp 25 Jun 85 * - * Moved SIGUSR1 and SIGUSR2 to 30 and 31 to conform with Berkeley * - * * - * David L Ballenger, 28-Mar-1985 * - * 0001 Add definitions for System V compatibility * - * * - ************************************************************************/ - - - - - - - - -//# 1 "/usr/include/ansi_compat.h" 1 -/* - * @(#)ansi_compat.h 4.4 (ULTRIX) 10/8/90 - */ - -/************************************************************************ - * * - * Copyright (c) 1990 by * - * Digital Equipment Corporation, Maynard, MA * - * All rights reserved. * - * * - * This software is furnished under a license and may be used and * - * copied only in accordance with the terms of such license and * - * with the inclusion of the above copyright notice. This * - * software or any other copies thereof may not be provided or * - * otherwise made available to any other person. No title to and * - * ownership of the software is hereby transferred. * - * * - * The information in this software is subject to change without * - * notice and should not be construed as a commitment by Digital * - * Equipment Corporation. * - * * - * Digital assumes no responsibility for the use or reliability * - * of its software on equipment which is not supplied by Digital. * - * * - ************************************************************************/ - -/* - * To avoid namespace pollution when using the ULTRIX header files under the - * DEC ANSI compiler, all user-visible header files were modifed to reference - * ANSI-style predefined macro name rather than their traditional names - * (__ultrix vice ultrix). Every file which accesses a predefined macro name - * must include this file before any other files are included or the macros - * are tested. - * - * In strict ANSI mode, the appropriate ANSI-style macros are already - * defined and the redefinitions in this file will not be seen. When using - * pcc, the traditional macro names are defined and this file will define - * ANSI-style equivalents of the traditional names. When using the DEC C - * compiler, both the traditional and ANSI predefined macro names are - * available so the definitions in this file are not made visible. - * - */ - - -//# 116 "/usr/include/ansi_compat.h" - -//# 74 "/usr/include/signal.h" 2 - - - - - - - - - - - - - - - - - - - /* absent or non-vector capable sys */ -/* CHME, CHMS, CHMU are not yet given back to users reasonably */ - - - - - - - - - - - - - - - - - - - -/* the following are used to for Vector Arithmetic Exception handling */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -/* Add System V signal definitions (DLB001) */ - - - - - - - -/* - * Codes for the mips break instruction. - */ - - - - - - - - - - - - - - - - -/* Accesses to sig_atomic_t are atomic, even with async interrupts. - Not an issue for us, but ANSI requires the definition. */ -typedef long sig_atomic_t; -typedef int sigset_t; /* type used for sigsetops() functions */ - - -/* - * Signal vector "template" used in sigvec call. - */ -struct sigvec { - void (*sv_handler)(); /* signal handler */ - sigset_t sv_mask; /* signal mask to apply */ - int sv_flags; /* see signal options below */ -}; - - -/* - * The following structure must be exactly the same as the above structure - * with the names changed for POSIX compliance. - */ -struct sigaction { - void (*sa_handler)(); /* signal handler */ - sigset_t sa_mask; /* signal mask to apply */ - int sa_flags; /* see signal options below */ -}; - - - - - - - - - - - - - - -/* Defines for sigprocmask() call. POSIX. - */ - - - - - - -/* - * Structure used in sigstack call. - */ -struct sigstack { - char *ss_sp; /* signal stack pointer */ - int ss_onstack; /* current status */ -}; - -/* - * Information pushed on stack when a signal is delivered. - * This is used by the kernel to restore state following - * execution of the signal handler. It is also made available - * to the handler to allow it to properly restore state if - * a non-standard exit is performed. - * -//#ifdef __vax - * XXX - sigcontext needs updating per 4.3BSD - rr - * -//#endif __vax -//#ifdef __mips - * WARNING: THE sigcontext MUST BE KEPT CONSISTENT WITH /usr/include/setjmp.h - * AND THE LIBC ROUTINES setjmp() AND longjmp() -//#endif __mips - */ -struct sigcontext { - - /* - * BEGIN REGION THAT MUST CORRESPOND WITH setjmp.h - * BEGIN REGION THAT MUST CORRESPOND WITH A jmp_buf - */ - - int sc_onstack; /* sigstack state to restore */ - int sc_mask; /* signal mask to restore */ - - - - - - - int sc_pc; /* pc at time of signal */ - /* - * General purpose registers - */ - int sc_regs[32]; /* processor regs 0 to 31 */ - int sc_mdlo; /* mul/div low */ - int sc_mdhi; /* mul/div high */ - /* - * Floating point coprocessor state - */ - int sc_ownedfp; /* fp has been used */ - int sc_fpregs[32]; /* fp regs 0 to 31 */ - int sc_fpc_csr; /* floating point control and status reg */ - int sc_fpc_eir; /* floating point exception instruction reg */ - /* - * END OF REGION THAT MUST AGREE WITH setjmp.h - * END OF jmp_buf REGION - */ - /* - * System coprocessor registers at time of signal - */ - int sc_cause; /* cp0 cause register */ - int sc_badvaddr; /* cp0 bad virtual address */ - int sc_badpaddr; /* cpu bd bad physical address */ - -}; - - - - - - - - - - - - - - - - - - - - - - - -/* - * prototypes - * - */ -extern void (*signal(int __sig, void(*__func)(int)))(int); -int raise( int __sig ); -int kill( pid_t __pid, int __sig ); -int sigemptyset( sigset_t *__set ); -int sigfillset( sigset_t *__set ); -int sigaddset( sigset_t *__set, int __signo ); -int sigdelset( sigset_t *__set, int __signo ); -int sigismember( const sigset_t *__set, int __signo ); -int sigaction( int __sig, const struct sigaction *__act, - struct sigaction *__oact ); -int sigprocmask( int __how, const sigset_t *__set, sigset_t *__oset ); -int sigpending( sigset_t *__set ); -int sigsuspend( const sigset_t *__sigmask ); - - - - - - - - - - - -/* - * Macro for converting signal number to a mask suitable for - * sigblock(). - */ - - - - - - -//# 26 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/signal.h" 2 - - - - -// The Interviews folks call this SignalHandler. Might as well conform. -// Beware: some systems think that SignalHandler returns int. -typedef void (*SignalHandler) (int); - -extern SignalHandler signal(int sig, SignalHandler action); -extern SignalHandler sigset(int sig, SignalHandler action); -extern SignalHandler ssignal(int sig, SignalHandler action); -extern int gsignal (int sig); -extern int kill (int pid, int sig); -extern int killpg(int, int); -extern int siginterrupt(int, int); -extern void psignal(unsigned, char*); - - -extern int sigsetmask(int mask); -extern int sigblock(int mask); -extern int sigpause(int mask); -extern int sigvec(int sig, struct sigvec* v, struct sigvec* prev); - - -// The Interviews version also has these ... - - - - - - - - - - - - - -} - - - -//# 200 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine.h" 2 - - -/* - * Note that in Ultrix 4.2 renames all of the - * previously-predefined cpp names to __names. Also there is - * new support for vector processors - TERM_VECT_HARD etc. - */ - -//# 244 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine.h" - - -//# 263 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine.h" - -//# 283 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine.h" - -/* { */ -//# 298 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine.h" - -//# 319 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine.h" - -//# 328 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine.h" - -//# 345 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine.h" - - - - - - - - - - - - - - - - - - - - - - - - - - -//# 387 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine.h" - - - - - - - -/* - * THE CPU specifics - * - * Parameterized with the best known /lib/cpp predefines - * Set up for a middle-of-the-road machine. - */ - -/* - * DECstation Processor - * 2100 R2000 (slower clock) - * 3100 R2000 - * 5000 R3000 - * 5400 R3000 - * ???? R6000 - */ -/* - * We might be on the R3000 machine, but there is really - * no way of distinguishing that from the src-code level. - * The GNU people define some stuff, but its usually wrong. - */ - - - - - - - - - - - - - - - - - -//# 453 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine.h" - - - - - - - - - -//# 471 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine.h" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -//# 512 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine.h" - -/* will we be porting to this? */ -//# 522 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine.h" - - -//# 537 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine.h" - - -/* - * The following MUST be literals else /lib/cpp cannot do - * == operations on them. Remember cpp does strcmps, not MATH - * - * OPSYS_TYPE - * - * #if OPSYS_TYPE == MD_opsystype - * #endif - */ - - - - - - -/* - * OPSYS_SUBTYPE - * - * #if OPSYS_SUBTYPE == MD_opsyssubtype - * #endif - */ - - - - - - - - - - - -/* - * OPSYS_MFR - * - * #if OPSYS_MFR == MD_opsysmfr - * #endif - */ - - - - - - - - - - - - - - - -/* - * OPSYS_VERS - * - * #if OPSYS_VERS == MD_opsysvers - * #endif - * #if OPSYS_MFR == MD_opsysmfr && OPSYS_VERS <= MD_opsysvers - * #endif - */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -/* - * CPU_TYPE - * - * #if CPU_TYPE == MD_cputype - * #endif - */ - - - - - - - - - - - - - - - - - - - - -/* - * CPU_MODEL - * - * #if CPU_MODEL == MD_modelname - * #endif - */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -/* don't add this stuff in if the query program display.sh is being run */ - -//# 1754 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine.h" - - - - - -//# 69 "/sandbox/wbaker/wbaker0/source/mips/include/sumachine++.h" 2 - -} - -// Always turn this stuff on b/c otherwise nothing works - - - - - -//# 1 "GctNameRef.List.cc" 2 - -//# 1 "../../../../mips/include/Gct/genclasses.h" 1 -// -*- C++ -*- - - - -// -// genclasses - The GNU Container Classes -// -// Expects to be included by Gct.h or where appropriate -// especially before any genclass class headerfile is included. -// -// Wendell Baker, Berkeley CAD Group, 1991 (wbaker@ic.Berkeley.EDU) -// - - -// Make sure that we get all of the inline functions too but prevent duplicate -// definition warnings. - - - - - - - - - - -// -// Turn off the definitions of these hash functions -// -// unsigned hash(GctAstRef&) -// -// So that the following will match and be used instead: -// -// unsigned hash(GctRef&) -// -// The idea is to not allow the various header files to -// create (say) ``unsigned hash(GctAstRef&)'' but to use -// ``hash(x)'' for the hash function anyway. We just want -// the hash() function used to be ``unsigned hash(GctRef&)'' -// - - -//# 1 "../../../../mips/include/Gct/Reference.h" 1 -// -*- C++ -*- - - - -// -// Classes: -// GctRef -// GctReferenceObject -// -// Wendell Baker, Berkeley CAD Group, 1992 (wbaker@ic.Berkeley.EDU) -// - - - - - -//#pragma interface - - - -//# 1 "../../../../mips/include/Gct/Reference/GctReferenceCount.h" 1 -// -*- C++ -*- - - - -// -// GctReferenceCount class -// -// Expects to be included by Gct/Reference.h -// -// Wendell Baker, Berkeley CAD Group, 1992 (wbaker@ic.Berkeley.EDU) -// - - - - - -//#pragma interface - - - - - -//# 25 "../../../../mips/include/Gct/Reference/GctReferenceCount.h" 2 - - -//# 1 "../../../../mips/include/Gct/GctErrorHandler.h" 1 -// -*- C++ -*- - - - -// -// GctErrorHandler class -// -// Expects to be included by Gct.h -// -// Wendell Baker, Berkeley CAD Group, 1991 (wbaker@ic.Berkeley.EDU) -// - - - - - -//#pragma interface - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/bool.h" 1 - - - - - - - -//# 25 "../../../../mips/include/Gct/GctErrorHandler.h" 2 - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/String.h" 1 -// This may look like C code, but it is really -*- C++ -*- -/* -Copyright (C) 1988 Free Software Foundation - written by Doug Lea (dl@rocky.oswego.edu) - -This file is part of the GNU C++ Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - - - - -//#pragma interface - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stream.h" 1 - - - -// Compatibility with old library. - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" 1 -// This is part of the iostream library, providing -*- C++ -*- input/output. -// Copyright (C) 1991 Per Bothner. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free -// Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - - -//#pragma interface - - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/streambuf.h" 1 -// This is part of the iostream library, providing -*- C++ -*- input/output. -// Copyright (C) 1991 Per Bothner. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free -// Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - - - -//#pragma interface - - -/* KLUDGES!! */ -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stddef.h" 1 -//# 12 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stddef.h" - -//# 25 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/streambuf.h" 2 - - - - - - - - - - - - - - - - -class ostream; class streambuf; - -typedef long streamoff, streampos; - -struct _ios_fields { // The data members of an ios. - streambuf *_strbuf; - ostream* _tie; - long _width; - unsigned long _flags; - char _fill; - unsigned char _state; - unsigned short _precision; -}; - - -enum state_value { _good = 0, _eof = 1, _fail = 2, _bad = 4 }; - - -class ios : public _ios_fields { - public: - enum io_state { goodbit=0, eofbit=1, failbit=2, badbit=4 }; - enum open_mode { - in=1, - out=2, - ate=4, - app=8, - trunc=16, - nocreate=32, - noreplace=64 }; - enum seek_dir { beg, cur, end}; - enum { skipws=01, left=02, right=04, internal=010, - dec=020, oct=040, hex=0100, - showbase=0200, showpoint=0400, uppercase=01000, showpos=02000, - scientific=04000, fixed=0100000, unitbuf=020000, stdio=040000, - dont_close=0x80000000 //Don't close streambuf when destroying stream - }; - - ostream* tie() { return _tie; } - ostream* tie(ostream* val) { ostream* save=_tie; _tie=val; return save; } - - // Methods to change the format state. - char fill() { return _fill; } - char fill(char newf) { char oldf = _fill; _fill = newf; return oldf; } - unsigned long flags() { return _flags; } - unsigned long flags(unsigned long new_val) { - unsigned long old_val = _flags; _flags = new_val; return old_val; } - unsigned short precision() { return _precision; } - unsigned short precision(int newp) { - unsigned short oldp = _precision; _precision = (unsigned short)newp; - return oldp; } - unsigned long setf(unsigned long val) { - unsigned long oldbits = _flags; - _flags |= val; return oldbits; } - unsigned long setf(unsigned long val, unsigned long mask) { - unsigned long oldbits = _flags; - _flags = (_flags & ~mask) | (val & mask); return oldbits; } - unsigned long unsetf(unsigned long mask) { - unsigned long oldbits = _flags & mask; - _flags &= ~mask; return oldbits; } - long width() { return _width; } - long width(long val) { long save = _width; _width = val; return save; } - - static const unsigned long basefield; - static const unsigned long adjustfield; - static const unsigned long floatfield; - - streambuf* rdbuf() { return _strbuf; } - void clear(int state = 0) { _state = state; } - int good() { return _state == 0; } - int eof() { return _state & ios::eofbit; } - int fail() { return _state & (ios::badbit|ios::failbit); } - int bad() { return _state & ios::badbit; } - int rdstate() { return _state; } - void set(int flag) { _state |= flag; } - operator void*() { return fail() ? (void*)0 : (void*)this; } - int operator!() { return fail(); } - - - void unset(state_value flag) { _state &= ~flag; } - void close(); - int is_open(); - int readable(); - int writable(); - - - protected: - ios(streambuf*sb) { _strbuf=sb; _state=0; _width=0; _fill=' '; - _flags=ios::skipws; _precision=6; } -}; - - - - -typedef ios::seek_dir _seek_dir; - - -// Magic numbers and bits for the _flags field. -// The magic numbers use the high-order bits of _flags; -// the remaining bits are abailable for variable flags. -// Note: The magic numbers must all be negative if stdio -// emulation is desired. - - - - - - - - - - - - - - - -struct __streambuf { - // NOTE: If this is changed, also change __FILE in stdio/stdio.h! - int _flags; /* High-order word is _IO_MAGIC; rest is flags. */ - char* _gptr; /* Current get pointer */ - char* _egptr; /* End of get area. */ - char* _eback; /* Start of putback+get area. */ - char* _pbase; /* Start of put area. */ - char* _pptr; /* Current put pointer. */ - char* _epptr; /* End of put area. */ - char* _base; /* Start of reserve area. */ - char* _ebuf; /* End of reserve area. */ - struct streambuf *_chain; -}; - -struct streambuf : private __streambuf { - friend class ios; - friend class istream; - friend class ostream; - protected: - static streambuf* _list_all; /* List of open streambufs. */ - streambuf*& xchain() { return _chain; } - void _un_link(); - void _link_in(); - char* gptr() const { return _gptr; } - char* pptr() const { return _pptr; } - char* egptr() const { return _egptr; } - char* epptr() const { return _epptr; } - char* pbase() const { return _pbase; } - char* eback() const { return _eback; } - char* ebuf() const { return _ebuf; } - char* base() const { return _base; } - void xput_char(char c) { *_pptr++ = c; } - int xflags() { return _flags; } - int xflags(int f) { int fl = _flags; _flags = f; return fl; } - void xsetflags(int f) { _flags |= f; } - void gbump(int n) { _gptr += n; } - void pbump(int n) { _pptr += n; } - void setb(char* b, char* eb, int a=0); - void setp(char* p, char* ep) { _pbase=_pptr=p; _epptr=ep; } - void setg(char* eb, char* g, char *eg) { _eback=eb; _gptr=g; _egptr=eg; } - public: - static int flush_all(); - static void flush_all_linebuffered(); // Flush all line buffered files. - virtual int underflow(); // Leave public for now - virtual int overflow(int c = (-1) ); // Leave public for now - virtual int doallocate(); - virtual streampos seekoff(streamoff, _seek_dir, int mode=ios::in|ios::out); - virtual streampos seekpos(streampos pos, int mode = ios::in|ios::out); - int sputbackc(char c); - int sungetc(); - streambuf(); - virtual ~streambuf(); - int unbuffered() { return _flags & 2 ? 1 : 0; } - int linebuffered() { return _flags & 0x4000 ? 1 : 0; } - void unbuffered(int i) - { if (i) _flags |= 2 ; else _flags &= ~2 ; } - void linebuffered(int i) - { if (i) _flags |= 0x4000 ; else _flags &= ~0x4000 ; } - int allocate() { - if (base() || unbuffered()) return 0; - else return doallocate(); } - virtual int sync(); - virtual int pbackfail(int c); - virtual int ungetfail(); - virtual streambuf* setbuf(char* p, int len); - int in_avail() { return _egptr - _gptr; } - int out_waiting() { return _pptr - _pbase; } - virtual int sputn(const char* s, int n); - virtual int sgetn(char* s, int n); - long sgetline(char* buf, size_t n, char delim, int putback_delim); - int sbumpc() { - if (_gptr >= _egptr && underflow() == (-1) ) return (-1) ; - else return *(unsigned char*)_gptr++; } - int sgetc() { - if (_gptr >= _egptr && underflow() == (-1) ) return (-1) ; - else return *(unsigned char*)_gptr; } - int snextc() { - if (++_gptr >= _egptr && underflow() == (-1) ) return (-1) ; - else return *(unsigned char*)_gptr; } - int sputc(int c) { - if (_pptr >= _epptr) return overflow(c); - return *_pptr++ = c, (unsigned char)c; } - int vscan(char const *fmt0, char* ap); - int vform(char const *fmt0, char* ap); -}; - -struct __file_fields { - char _fake; - char _shortbuf[1]; - short _fileno; - int _blksize; - char* _save_gptr; - char* _save_egptr; - long _offset; -}; - -class filebuf : public streambuf { - struct __file_fields _fb; - void init(); - public: - filebuf(); - filebuf(int fd); - filebuf(int fd, char* p, int len); - ~filebuf(); - filebuf* attach(int fd); - filebuf* open(const char *filename, const char *mode); - filebuf* open(const char *filename, int mode, int prot = 0664); - virtual int underflow(); - virtual int overflow(int c = (-1) ); - int is_open() { return _fb._fileno >= 0; } - int fd() { return is_open() ? _fb._fileno : (-1) ; } - filebuf* close(); - virtual int doallocate(); - virtual streampos seekoff(streamoff, _seek_dir, int mode=ios::in|ios::out); - int sputn(const char* s, int n); - int sgetn(char* s, int n); - protected: // See documentation in filebuf.C. - virtual int pbackfail(int c); - virtual int sync(); - int is_reading() { return eback() != egptr(); } - char* cur_ptr() { return is_reading() ? gptr() : pptr(); } - /* System's idea of pointer */ - char* file_ptr() { return _fb._save_gptr ? _fb._save_egptr : egptr(); } - int do_flush(); - // Low-level operations (Usually invoke system calls.) - virtual int sys_read(char* buf, size_t size); - virtual long sys_seek(long , _seek_dir); - virtual long sys_write(const void*, long); - virtual int sys_stat(void*); // Actually, a (struct stat*) - virtual int sys_close(); -}; - - -inline int ios::readable() { return rdbuf()->_flags & 4 ; } -inline int ios::writable() { return rdbuf()->_flags & 8 ; } -inline int ios::is_open() {return rdbuf()->_flags & 4 +8 ;} - - - - -//# 25 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" 2 - - -class istream; class ostream; -typedef istream& (*__imanip)(istream&); -typedef ostream& (*__omanip)(ostream&); - -extern istream& ws(istream& ins); -extern ostream& flush(ostream& outs); -extern ostream& endl(ostream& outs); -extern ostream& ends(ostream& outs); - -class ostream : public ios -{ - void do_osfx(); - public: - ostream(); - ostream(streambuf* sb, ostream* tied=0 ); - ~ostream(); - - int opfx() { if (!good()) return 0; if (_tie) _tie->flush(); return 1; } - void osfx() { if (flags() & (ios::unitbuf|ios::stdio)) - do_osfx(); } - streambuf* ostreambuf() const { return _strbuf; } - ostream& flush(); - ostream& put(char c); - ostream& write(const char *s, int n); - ostream& write(const unsigned char *s, int n) { return write((char*)s, n);} - ostream& write(const void *s, int n) { return write((char*)s, n);} - ostream& seekp(streampos); - ostream& seekp(streamoff, _seek_dir); - streampos tellp(); - ostream& form(const char *format ...); - ostream& vform(const char *format, char* args); -}; - -ostream& operator<<(ostream&, char c); -ostream& operator<<(ostream& os, unsigned char c) { return os << (char)c; } -//ostream& operator<<(ostream &os, signed char c) { return os << (char)c; } -extern ostream& operator<<(ostream&, const char *s); -inline ostream& operator<<(ostream& os, const unsigned char *s) -{ return os << (const char*)s; } -//inline ostream& operator<<(ostream& os, const signed char *s) -//{ return os << (const char*)s; } -ostream& operator<<(ostream&, void *p); -ostream& operator<<(ostream&, int n); -ostream& operator<<(ostream&, long n); -ostream& operator<<(ostream&, unsigned int n); -ostream& operator<<(ostream&, unsigned long n); -ostream& operator<<(ostream& os, short n) {return os << (int)n;} -ostream& operator<<(ostream& os, unsigned short n) -{return os << (unsigned int)n;} -ostream& operator<<(ostream&, float n); -ostream& operator<<(ostream&, double n); -ostream& operator<<(ostream& os, __omanip func) { return (*func)(os); } -ostream& operator<<(ostream&, streambuf*); - -class istream : public ios -{ - size_t _gcount; - public: - istream(); - istream(streambuf* sb, ostream*tied=0 ); - ~istream(); - streambuf* istreambuf() const { return _strbuf; } - istream& get(char& c); - istream& get(unsigned char& c); - istream& read(char *ptr, int n); - istream& read(unsigned char *ptr, int n) { return read((char*)ptr, n); } - istream& read(void *ptr, int n) { return read((char*)ptr, n); } - int get() { return _strbuf->sbumpc(); } - istream& getline(char* ptr, int len, char delim = '\n'); - istream& get(char* ptr, int len, char delim = '\n'); - istream& gets(char **s, char delim = '\n'); - int ipfx(int need) { - if (!good()) { set(ios::failbit); return 0; } - if (_tie && (need == 0 || rdbuf()->in_avail())) ; /* THIS IS BAD */ - if (!need && (flags() & ios::skipws) && !ws(*this)) return 0; - return 1; - } - int ipfx0() { // Optimized version of ipfx(0). - if (!good()) { set(ios::failbit); return 0; } - if (_tie) _tie->flush(); - if ((flags() & ios::skipws) && !ws(*this)) return 0; - return 1; - } - int ipfx1() { // Optimized version of ipfx(1). - if (!good()) { set(ios::failbit); return 0; } - if (_tie && rdbuf()->in_avail() == 0) _tie->flush(); - return 1; - } - size_t gcount() { return _gcount; } - istream& seekg(streampos); - istream& seekg(streamoff, _seek_dir); - streampos tellg(); - istream& putback(char ch) { - if (good() && _strbuf->sputbackc(ch) == (-1) ) clear(ios::badbit); - return *this;} - istream& unget() { - if (good() && _strbuf->sungetc() == (-1) ) clear(ios::badbit); - return *this;} - - istream& unget(char ch) { return putback(ch); } - int skip(int i); - -}; - -istream& operator>>(istream&, char*); -istream& operator>>(istream& is, unsigned char* p) { return is >> (char*)p; } -//istream& operator>>(istream& is, signed char* p) { return is >> (char*)p; } -istream& operator>>(istream&, char& c); -istream& operator>>(istream&, unsigned char& c); -//istream& operator>>(istream&, signed char& c); -istream& operator>>(istream&, int&); -istream& operator>>(istream&, long&); -istream& operator>>(istream&, short&); -istream& operator>>(istream&, unsigned int&); -istream& operator>>(istream&, unsigned long&); -istream& operator>>(istream&, unsigned short&); -istream& operator>>(istream&, float&); -istream& operator>>(istream&, double&); -istream& operator>>(istream& is, __imanip func) { return (*func)(is); } - -class iostream : public ios { - size_t _gcount; - public: - iostream(); - operator istream&() { return *(istream*)this; } - operator ostream&() { return *(ostream*)this; } - ~iostream(); - // NOTE: These duplicate istream methods. - istream& get(char& c) { return ((istream*)this)->get(c); } - istream& get(unsigned char& c) { return ((istream*)this)->get(c); } - istream& read(char *ptr, int n) { return ((istream*)this)->read(ptr, n); } - istream& read(unsigned char *ptr, int n) - { return ((istream*)this)->read((char*)ptr, n); } - istream& read(void *ptr, int n) - { return ((istream*)this)->read((char*)ptr, n); } - int get() { return _strbuf->sbumpc(); } - istream& getline(char* ptr, int len, char delim = '\n') - { return ((istream*)this)->getline(ptr, len, delim); } - istream& get(char* ptr, int len, char delim = '\n') - { return ((istream*)this)->get(ptr, len, delim); } - istream& gets(char **s, char delim = '\n') - { return ((istream*)this)->gets(s, delim); } - int ipfx(int need) { return ((istream*)this)->ipfx(need); } - int ipfx0() { return ((istream*)this)->ipfx0(); } - int ipfx1() { return ((istream*)this)->ipfx1(); } - size_t gcount() { return _gcount; } - istream& putback(char ch) { return ((istream*)this)->putback(ch); } - istream& unget() { return ((istream*)this)->unget(); } - istream& seekg(streampos pos) { return ((istream*)this)->seekg(pos); } - istream& seekg(streamoff off, _seek_dir dir) - { return ((istream*)this)->seekg(off, dir); } - streampos tellg() { return ((istream*)this)->tellg(); } - - istream& unget(char ch) { return putback(ch); } - - - // NOTE: These duplicate ostream methods. - int opfx() { return ((ostream*)this)->opfx(); } - void osfx() { ((ostream*)this)->osfx(); } - ostream& flush() { return ((ostream*)this)->flush(); } - ostream& put(char c) { return ((ostream*)this)->put(c); } - ostream& write(const char *s, int n) - { return ((ostream*)this)->write(s, n); } - ostream& write(const unsigned char *s, int n) - { return ((ostream*)this)->write((char*)s, n); } - ostream& write(const void *s, int n) - { return ((ostream*)this)->write((char*)s, n); } - ostream& form(const char *format ...); - ostream& vform(const char *format, char* args) - { return ((ostream*)this)->vform(format, args); } - ostream& seekp(streampos pos) { return ((ostream*)this)->seekp(pos); } - ostream& seekp(streamoff off, _seek_dir dir) - { return ((ostream*)this)->seekp(off, dir); } - streampos tellp() { return ((ostream*)this)->tellp(); } -}; - -extern istream cin; -extern ostream cout, cerr, clog; // clog->rdbuf() == cerr->rdbuf() - -inline ostream& ostream::put(char c) { _strbuf->sputc(c); return *this; } - -struct Iostream_init { } ; // Compatibility hack for AT&T libraray. - - -//# 7 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/stream.h" 2 - - -extern char* form(char*, ...); - -extern char* dec(long, int=0); -extern char* dec(int, int=0); -extern char* dec(unsigned long, int=0); -extern char* dec(unsigned int, int=0); - -extern char* hex(long, int=0); -extern char* hex(int, int=0); -extern char* hex(unsigned long, int=0); -extern char* hex(unsigned int, int=0); - -extern char* oct(long, int=0); -extern char* oct(int, int=0); -extern char* oct(unsigned long, int=0); -extern char* oct(unsigned int, int=0); - -inline istream& WS(istream& str) { return ws(str); } - - -//# 26 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/String.h" 2 - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/Regex.h" 1 -// This may look like C code, but it is really -*- C++ -*- -/* -Copyright (C) 1988 Free Software Foundation - written by Doug Lea (dl@rocky.oswego.edu) - -This file is part of the GNU C++ Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - - - - -//#pragma interface - - - - - - - - - -struct re_pattern_buffer; // defined elsewhere -struct re_registers; - -class Regex -{ -private: - - Regex(const Regex&) {} // no X(X&) - void operator = (const Regex&) {} // no assignment - -protected: - re_pattern_buffer* buf; - re_registers* reg; - -public: - Regex(const char* t, - int fast = 0, - int bufsize = 40, - const char* transtable = 0); - - ~Regex(); - - int match(const char* s, int len, int pos = 0) const; - int search(const char* s, int len, - int& matchlen, int startpos = 0) const; - int match_info(int& start, int& length, int nth = 0) const; - - int OK() const; // representation invariant -}; - -// some built in regular expressions - -extern const Regex RXwhite; // = "[ \n\t\r\v\f]+" -extern const Regex RXint; // = "-?[0-9]+" -extern const Regex RXdouble; // = "-?\\(\\([0-9]+\\.[0-9]*\\)\\| - // \\([0-9]+\\)\\|\\(\\.[0-9]+\\)\\) - // \\([eE][---+]?[0-9]+\\)?" -extern const Regex RXalpha; // = "[A-Za-z]+" -extern const Regex RXlowercase; // = "[a-z]+" -extern const Regex RXuppercase; // = "[A-Z]+" -extern const Regex RXalphanum; // = "[0-9A-Za-z]+" -extern const Regex RXidentifier; // = "[A-Za-z_][A-Za-z0-9_]*" - - - -//# 27 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/String.h" 2 - - -struct StrRep // internal String representations -{ - unsigned short len; // string length - unsigned short sz; // allocated space - char s[1]; // the string starts here - // (at least 1 char for trailing null) - // allocated & expanded via non-public fcts -}; - -// primitive ops on StrReps -- nearly all String fns go through these. - -StrRep* Salloc(StrRep*, const char*, int, int); -StrRep* Scopy(StrRep*, StrRep*); -StrRep* Sresize(StrRep*, int); -StrRep* Scat(StrRep*, const char*, int, const char*, int); -StrRep* Scat(StrRep*, const char*, int,const char*,int, const char*,int); -StrRep* Sprepend(StrRep*, const char*, int); -StrRep* Sreverse(StrRep*, StrRep*); -StrRep* Supcase(StrRep*, StrRep*); -StrRep* Sdowncase(StrRep*, StrRep*); -StrRep* Scapitalize(StrRep*, StrRep*); - -// These classes need to be defined in the order given - -class String; -class SubString; - -class SubString -{ - friend class String; -protected: - - String& S; // The String I'm a substring of - unsigned short pos; // starting position in S's rep - unsigned short len; // length of substring - - void assign(StrRep*, const char*, int = -1); - SubString(String& x, int p, int l); - SubString(const SubString& x); - -public: - -// Note there are no public constructors. SubStrings are always -// created via String operations - - ~SubString(); - - void operator = (const String& y); - void operator = (const SubString& y); - void operator = (const char* t); - void operator = (char c); - -// return 1 if target appears anywhere in SubString; else 0 - - int contains(char c) const; - int contains(const String& y) const; - int contains(const SubString& y) const; - int contains(const char* t) const; - int contains(const Regex& r) const; - -// return 1 if target matches entire SubString - - int matches(const Regex& r) const; - -// IO - - friend ostream& operator<<(ostream& s, const SubString& x); - -// status - - unsigned int length() const; - int empty() const; - const char* chars() const; - - int OK() const; - -}; - - -class String -{ - friend class SubString; - -protected: - StrRep* rep; // Strings are pointers to their representations - -// some helper functions - - int search(int, int, const char*, int = -1) const; - int search(int, int, char) const; - int match(int, int, int, const char*, int = -1) const; - int _gsub(const char*, int, const char* ,int); - int _gsub(const Regex&, const char*, int); - SubString _substr(int, int); - -public: - -// constructors & assignment - - String(); - String(const String& x); - String(const SubString& x); - String(const char* t); - String(const char* t, int len); - String(char c); - - ~String(); - - void operator = (const String& y); - void operator = (const char* y); - void operator = (char c); - void operator = (const SubString& y); - -// concatenation - - void operator += (const String& y); - void operator += (const SubString& y); - void operator += (const char* t); - void operator += (char c); - - void prepend(const String& y); - void prepend(const SubString& y); - void prepend(const char* t); - void prepend(char c); - - -// procedural versions: -// concatenate first 2 args, store result in last arg - - friend void cat(const String&, const String&, String&); - friend void cat(const String&, const SubString&, String&); - friend void cat(const String&, const char*, String&); - friend void cat(const String&, char, String&); - - friend void cat(const SubString&, const String&, String&); - friend void cat(const SubString&, const SubString&, String&); - friend void cat(const SubString&, const char*, String&); - friend void cat(const SubString&, char, String&); - - friend void cat(const char*, const String&, String&); - friend void cat(const char*, const SubString&, String&); - friend void cat(const char*, const char*, String&); - friend void cat(const char*, char, String&); - -// double concatenation, by request. (yes, there are too many versions, -// but if one is supported, then the others should be too...) -// Concatenate first 3 args, store in last arg - - friend void cat(const String&,const String&, const String&,String&); - friend void cat(const String&,const String&,const SubString&,String&); - friend void cat(const String&,const String&, const char*, String&); - friend void cat(const String&,const String&, char, String&); - friend void cat(const String&,const SubString&,const String&,String&); - friend void cat(const String&,const SubString&,const SubString&,String&); - friend void cat(const String&,const SubString&, const char*, String&); - friend void cat(const String&,const SubString&, char, String&); - friend void cat(const String&,const char*, const String&, String&); - friend void cat(const String&,const char*, const SubString&, String&); - friend void cat(const String&,const char*, const char*, String&); - friend void cat(const String&,const char*, char, String&); - - friend void cat(const char*, const String&, const String&,String&); - friend void cat(const char*,const String&,const SubString&,String&); - friend void cat(const char*,const String&, const char*, String&); - friend void cat(const char*,const String&, char, String&); - friend void cat(const char*,const SubString&,const String&,String&); - friend void cat(const char*,const SubString&,const SubString&,String&); - friend void cat(const char*,const SubString&, const char*, String&); - friend void cat(const char*,const SubString&, char, String&); - friend void cat(const char*,const char*, const String&, String&); - friend void cat(const char*,const char*, const SubString&, String&); - friend void cat(const char*,const char*, const char*, String&); - friend void cat(const char*,const char*, char, String&); - - -// searching & matching - -// return position of target in string or -1 for failure - - int index(char c, int startpos = 0) const; - int index(const String& y, int startpos = 0) const; - int index(const SubString& y, int startpos = 0) const; - int index(const char* t, int startpos = 0) const; - int index(const Regex& r, int startpos = 0) const; - -// return 1 if target appears anyhere in String; else 0 - - int contains(char c) const; - int contains(const String& y) const; - int contains(const SubString& y) const; - int contains(const char* t) const; - int contains(const Regex& r) const; - -// return 1 if target appears anywhere after position pos -// (or before, if pos is negative) in String; else 0 - - int contains(char c, int pos) const; - int contains(const String& y, int pos) const; - int contains(const SubString& y, int pos) const; - int contains(const char* t, int pos) const; - int contains(const Regex& r, int pos) const; - -// return 1 if target appears at position pos in String; else 0 - - int matches(char c, int pos = 0) const; - int matches(const String& y, int pos = 0) const; - int matches(const SubString& y, int pos = 0) const; - int matches(const char* t, int pos = 0) const; - int matches(const Regex& r, int pos = 0) const; - -// return number of occurences of target in String - - int freq(char c) const; - int freq(const String& y) const; - int freq(const SubString& y) const; - int freq(const char* t) const; - -// SubString extraction - -// Note that you can't take a substring of a const String, since -// this leaves open the possiblility of indirectly modifying the -// String through the SubString - - SubString at(int pos, int len); - SubString operator () (int pos, int len); // synonym for at - - SubString at(const String& x, int startpos = 0); - SubString at(const SubString& x, int startpos = 0); - SubString at(const char* t, int startpos = 0); - SubString at(char c, int startpos = 0); - SubString at(const Regex& r, int startpos = 0); - - SubString before(int pos); - SubString before(const String& x, int startpos = 0); - SubString before(const SubString& x, int startpos = 0); - SubString before(const char* t, int startpos = 0); - SubString before(char c, int startpos = 0); - SubString before(const Regex& r, int startpos = 0); - - SubString through(int pos); - SubString through(const String& x, int startpos = 0); - SubString through(const SubString& x, int startpos = 0); - SubString through(const char* t, int startpos = 0); - SubString through(char c, int startpos = 0); - SubString through(const Regex& r, int startpos = 0); - - SubString from(int pos); - SubString from(const String& x, int startpos = 0); - SubString from(const SubString& x, int startpos = 0); - SubString from(const char* t, int startpos = 0); - SubString from(char c, int startpos = 0); - SubString from(const Regex& r, int startpos = 0); - - SubString after(int pos); - SubString after(const String& x, int startpos = 0); - SubString after(const SubString& x, int startpos = 0); - SubString after(const char* t, int startpos = 0); - SubString after(char c, int startpos = 0); - SubString after(const Regex& r, int startpos = 0); - - -// deletion - -// delete len chars starting at pos - void del(int pos, int len); - -// delete the first occurrence of target after startpos - - void del(const String& y, int startpos = 0); - void del(const SubString& y, int startpos = 0); - void del(const char* t, int startpos = 0); - void del(char c, int startpos = 0); - void del(const Regex& r, int startpos = 0); - -// global substitution: substitute all occurrences of pat with repl - - int gsub(const String& pat, const String& repl); - int gsub(const SubString& pat, const String& repl); - int gsub(const char* pat, const String& repl); - int gsub(const char* pat, const char* repl); - int gsub(const Regex& pat, const String& repl); - -// friends & utilities - -// split string into array res at separators; return number of elements - - friend int split(const String& x, String res[], int maxn, - const String& sep); - friend int split(const String& x, String res[], int maxn, - const Regex& sep); - - friend String common_prefix(const String& x, const String& y, - int startpos = 0); - friend String common_suffix(const String& x, const String& y, - int startpos = -1); - friend String replicate(char c, int n); - friend String replicate(const String& y, int n); - friend String join(String src[], int n, const String& sep); - -// simple builtin transformations - - friend String reverse(const String& x); - friend String upcase(const String& x); - friend String downcase(const String& x); - friend String capitalize(const String& x); - -// in-place versions of above - - void reverse(); - void upcase(); - void downcase(); - void capitalize(); - -// element extraction - - char& operator [] (int i); - char elem(int i) const; - char firstchar() const; - char lastchar() const; - -// conversion - - operator const char*() const; - const char* chars() const; - - -// IO - - friend ostream& operator<<(ostream& s, const String& x); - friend ostream& operator<<(ostream& s, const SubString& x); - friend istream& operator>>(istream& s, String& x); - - friend int readline(istream& s, String& x, - char terminator = '\n', - int discard_terminator = 1); - -// status - - unsigned int length() const; - int empty() const; - -// preallocate some space for String - void alloc(int newsize); - -// report current allocation (not length!) - - int allocation() const; - - - volatile void error(const char* msg) const; - - int OK() const; -}; - -typedef String StrTmp; // for backward compatibility - -// other externs - -int compare(const String& x, const String& y); -int compare(const String& x, const SubString& y); -int compare(const String& x, const char* y); -int compare(const SubString& x, const String& y); -int compare(const SubString& x, const SubString& y); -int compare(const SubString& x, const char* y); -int fcompare(const String& x, const String& y); // ignore case - -extern StrRep _nilStrRep; -extern String _nilString; - -// other inlines - -String operator + (const String& x, const String& y); -String operator + (const String& x, const SubString& y); -String operator + (const String& x, const char* y); -String operator + (const String& x, char y); -String operator + (const SubString& x, const String& y); -String operator + (const SubString& x, const SubString& y); -String operator + (const SubString& x, const char* y); -String operator + (const SubString& x, char y); -String operator + (const char* x, const String& y); -String operator + (const char* x, const SubString& y); - -int operator==(const String& x, const String& y); -int operator!=(const String& x, const String& y); -int operator> (const String& x, const String& y); -int operator>=(const String& x, const String& y); -int operator< (const String& x, const String& y); -int operator<=(const String& x, const String& y); -int operator==(const String& x, const SubString& y); -int operator!=(const String& x, const SubString& y); -int operator> (const String& x, const SubString& y); -int operator>=(const String& x, const SubString& y); -int operator< (const String& x, const SubString& y); -int operator<=(const String& x, const SubString& y); -int operator==(const String& x, const char* t); -int operator!=(const String& x, const char* t); -int operator> (const String& x, const char* t); -int operator>=(const String& x, const char* t); -int operator< (const String& x, const char* t); -int operator<=(const String& x, const char* t); -int operator==(const SubString& x, const String& y); -int operator!=(const SubString& x, const String& y); -int operator> (const SubString& x, const String& y); -int operator>=(const SubString& x, const String& y); -int operator< (const SubString& x, const String& y); -int operator<=(const SubString& x, const String& y); -int operator==(const SubString& x, const SubString& y); -int operator!=(const SubString& x, const SubString& y); -int operator> (const SubString& x, const SubString& y); -int operator>=(const SubString& x, const SubString& y); -int operator< (const SubString& x, const SubString& y); -int operator<=(const SubString& x, const SubString& y); -int operator==(const SubString& x, const char* t); -int operator!=(const SubString& x, const char* t); -int operator> (const SubString& x, const char* t); -int operator>=(const SubString& x, const char* t); -int operator< (const SubString& x, const char* t); -int operator<=(const SubString& x, const char* t); - - - - -// status reports, needed before defining other things - -inline unsigned int String::length() const { return rep->len; } -inline int String::empty() const { return rep->len == 0; } -inline const char* String::chars() const { return &(rep->s[0]); } -inline int String::allocation() const { return rep->sz; } -inline void String::alloc(int newsize) { rep = Sresize(rep, newsize); } - -inline unsigned int SubString::length() const { return len; } -inline int SubString::empty() const { return len == 0; } -inline const char* SubString::chars() const { return &(S.rep->s[pos]); } - - -// constructors - -inline String::String() - : rep(&_nilStrRep) {} -inline String::String(const String& x) - : rep(Scopy(0, x.rep)) {} -inline String::String(const char* t) - : rep(Salloc(0, t, -1, -1)) {} -inline String::String(const char* t, int tlen) - : rep(Salloc(0, t, tlen, tlen)) {} -inline String::String(const SubString& y) - : rep(Salloc(0, y.chars(), y.length(), y.length())) {} -inline String::String(char c) - : rep(Salloc(0, &c, 1, 1)) {} - -inline String::~String() { if (rep != &_nilStrRep) delete rep; } - -inline SubString::SubString(const SubString& x) - :S(x.S), pos(x.pos), len(x.len) {} -inline SubString::SubString(String& x, int first, int l) - :S(x), pos(first), len(l) {} - -inline SubString::~SubString() {} - -// assignment - -inline void String::operator = (const String& y) -{ - rep = Scopy(rep, y.rep); -} - -inline void String::operator=(const char* t) -{ - rep = Salloc(rep, t, -1, -1); -} - -inline void String::operator=(const SubString& y) -{ - rep = Salloc(rep, y.chars(), y.length(), y.length()); -} - -inline void String::operator=(char c) -{ - rep = Salloc(rep, &c, 1, 1); -} - - -inline void SubString::operator = (const char* ys) -{ - assign(0, ys); -} - -inline void SubString::operator = (char ch) -{ - assign(0, &ch, 1); -} - -inline void SubString::operator = (const String& y) -{ - assign(y.rep, y.chars(), y.length()); -} - -inline void SubString::operator = (const SubString& y) -{ - assign(y.S.rep, y.chars(), y.length()); -} - -// Zillions of cats... - -inline void cat(const String& x, const String& y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const String& x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const String& x, const char* y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), y, -1); -} - -inline void cat(const String& x, char y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), &y, 1); -} - -inline void cat(const SubString& x, const String& y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const SubString& x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const SubString& x, const char* y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), y, -1); -} - -inline void cat(const SubString& x, char y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), &y, 1); -} - -inline void cat(const char* x, const String& y, String& r) -{ - r.rep = Scat(r.rep, x, -1, y.chars(), y.length()); -} - -inline void cat(const char* x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, x, -1, y.chars(), y.length()); -} - -inline void cat(const char* x, const char* y, String& r) -{ - r.rep = Scat(r.rep, x, -1, y, -1); -} - -inline void cat(const char* x, char y, String& r) -{ - r.rep = Scat(r.rep, x, -1, &y, 1); -} - -inline void cat(const String& a, const String& x, const String& y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const String& a, const String& x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const String& a, const String& x, const char* y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y, -1); -} - -inline void cat(const String& a, const String& x, char y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), &y, 1); -} - -inline void cat(const String& a, const SubString& x, const String& y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const String& a, const SubString& x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const String& a, const SubString& x, const char* y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y, -1); -} - -inline void cat(const String& a, const SubString& x, char y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), &y, 1); -} - -inline void cat(const String& a, const char* x, const String& y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x, -1, y.chars(), y.length()); -} - -inline void cat(const String& a, const char* x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x, -1, y.chars(), y.length()); -} - -inline void cat(const String& a, const char* x, const char* y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x, -1, y, -1); -} - -inline void cat(const String& a, const char* x, char y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x, -1, &y, 1); -} - - -inline void cat(const char* a, const String& x, const String& y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const char* a, const String& x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const char* a, const String& x, const char* y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y, -1); -} - -inline void cat(const char* a, const String& x, char y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), &y, 1); -} - -inline void cat(const char* a, const SubString& x, const String& y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const char* a, const SubString& x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const char* a, const SubString& x, const char* y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y, -1); -} - -inline void cat(const char* a, const SubString& x, char y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), &y, 1); -} - -inline void cat(const char* a, const char* x, const String& y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x, -1, y.chars(), y.length()); -} - -inline void cat(const char* a, const char* x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x, -1, y.chars(), y.length()); -} - -inline void cat(const char* a, const char* x, const char* y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x, -1, y, -1); -} - -inline void cat(const char* a, const char* x, char y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x, -1, &y, 1); -} - - -// operator versions - -inline void String::operator +=(const String& y) -{ - cat(*this, y, *this); -} - -inline void String::operator +=(const SubString& y) -{ - cat(*this, y, *this); -} - -inline void String::operator += (const char* y) -{ - cat(*this, y, *this); -} - -inline void String:: operator +=(char y) -{ - cat(*this, y, *this); -} - -// constructive concatenation - - - -inline String operator + (const String& x, const String& y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const String& x, const SubString& y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const String& x, const char* y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const String& x, char y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const SubString& x, const String& y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const SubString& x, const SubString& y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const SubString& x, const char* y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const SubString& x, char y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const char* x, const String& y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const char* x, const SubString& y) return r; -{ - cat(x, y, r); -} - -inline String reverse(const String& x) return r; -{ - r.rep = Sreverse(x.rep, r.rep); -} - -inline String upcase(const String& x) return r; -{ - r.rep = Supcase(x.rep, r.rep); -} - -inline String downcase(const String& x) return r; -{ - r.rep = Sdowncase(x.rep, r.rep); -} - -inline String capitalize(const String& x) return r; -{ - r.rep = Scapitalize(x.rep, r.rep); -} - -//# 883 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/String.h" - - -// prepend - -inline void String::prepend(const String& y) -{ - rep = Sprepend(rep, y.chars(), y.length()); -} - -inline void String::prepend(const char* y) -{ - rep = Sprepend(rep, y, -1); -} - -inline void String::prepend(char y) -{ - rep = Sprepend(rep, &y, 1); -} - -inline void String::prepend(const SubString& y) -{ - rep = Sprepend(rep, y.chars(), y.length()); -} - -// misc transformations - - -inline void String::reverse() -{ - rep = Sreverse(rep, rep); -} - - -inline void String::upcase() -{ - rep = Supcase(rep, rep); -} - - -inline void String::downcase() -{ - rep = Sdowncase(rep, rep); -} - - -inline void String::capitalize() -{ - rep = Scapitalize(rep, rep); -} - -// element extraction - -inline char& String::operator [] (int i) -{ - if (((unsigned)i) >= length()) error("invalid index"); - return rep->s[i]; -} - -inline char String::elem (int i) const -{ - if (((unsigned)i) >= length()) error("invalid index"); - return rep->s[i]; -} - -inline char String::firstchar() const -{ - return elem(0); -} - -inline char String::lastchar() const -{ - return elem(length() - 1); -} - -// searching - -inline int String::index(char c, int startpos) const -{ - return search(startpos, length(), c); -} - -inline int String::index(const char* t, int startpos) const -{ - return search(startpos, length(), t); -} - -inline int String::index(const String& y, int startpos) const -{ - return search(startpos, length(), y.chars(), y.length()); -} - -inline int String::index(const SubString& y, int startpos) const -{ - return search(startpos, length(), y.chars(), y.length()); -} - -inline int String::index(const Regex& r, int startpos) const -{ - int unused; return r.search(chars(), length(), unused, startpos); -} - -inline int String::contains(char c) const -{ - return search(0, length(), c) >= 0; -} - -inline int String::contains(const char* t) const -{ - return search(0, length(), t) >= 0; -} - -inline int String::contains(const String& y) const -{ - return search(0, length(), y.chars(), y.length()) >= 0; -} - -inline int String::contains(const SubString& y) const -{ - return search(0, length(), y.chars(), y.length()) >= 0; -} - -inline int String::contains(char c, int p) const -{ - return match(p, length(), 0, &c, 1) >= 0; -} - -inline int String::contains(const char* t, int p) const -{ - return match(p, length(), 0, t) >= 0; -} - -inline int String::contains(const String& y, int p) const -{ - return match(p, length(), 0, y.chars(), y.length()) >= 0; -} - -inline int String::contains(const SubString& y, int p) const -{ - return match(p, length(), 0, y.chars(), y.length()) >= 0; -} - -inline int String::contains(const Regex& r) const -{ - int unused; return r.search(chars(), length(), unused, 0) >= 0; -} - -inline int String::contains(const Regex& r, int p) const -{ - return r.match(chars(), length(), p) >= 0; -} - - -inline int String::matches(const SubString& y, int p) const -{ - return match(p, length(), 1, y.chars(), y.length()) >= 0; -} - -inline int String::matches(const String& y, int p) const -{ - return match(p, length(), 1, y.chars(), y.length()) >= 0; -} - -inline int String::matches(const char* t, int p) const -{ - return match(p, length(), 1, t) >= 0; -} - -inline int String::matches(char c, int p) const -{ - return match(p, length(), 1, &c, 1) >= 0; -} - -inline int String::matches(const Regex& r, int p) const -{ - int l = (p < 0)? -p : length() - p; - return r.match(chars(), length(), p) == l; -} - - -inline int SubString::contains(const char* t) const -{ - return S.search(pos, pos+len, t) >= 0; -} - -inline int SubString::contains(const String& y) const -{ - return S.search(pos, pos+len, y.chars(), y.length()) >= 0; -} - -inline int SubString::contains(const SubString& y) const -{ - return S.search(pos, pos+len, y.chars(), y.length()) >= 0; -} - -inline int SubString::contains(char c) const -{ - return S.search(pos, pos+len, 0, c) >= 0; -} - -inline int SubString::contains(const Regex& r) const -{ - int unused; return r.search(chars(), len, unused, 0) >= 0; -} - -inline int SubString::matches(const Regex& r) const -{ - return r.match(chars(), len, 0) == len; -} - - -inline int String::gsub(const String& pat, const String& r) -{ - return _gsub(pat.chars(), pat.length(), r.chars(), r.length()); -} - -inline int String::gsub(const SubString& pat, const String& r) -{ - return _gsub(pat.chars(), pat.length(), r.chars(), r.length()); -} - -inline int String::gsub(const Regex& pat, const String& r) -{ - return _gsub(pat, r.chars(), r.length()); -} - -inline int String::gsub(const char* pat, const String& r) -{ - return _gsub(pat, -1, r.chars(), r.length()); -} - -inline int String::gsub(const char* pat, const char* r) -{ - return _gsub(pat, -1, r, -1); -} - - - -inline ostream& operator<<(ostream& s, const String& x) -{ - s << x.chars(); return s; -} - -// a zillion comparison operators - -inline int operator==(const String& x, const String& y) -{ - return compare(x, y) == 0; -} - -inline int operator!=(const String& x, const String& y) -{ - return compare(x, y) != 0; -} - -inline int operator>(const String& x, const String& y) -{ - return compare(x, y) > 0; -} - -inline int operator>=(const String& x, const String& y) -{ - return compare(x, y) >= 0; -} - -inline int operator<(const String& x, const String& y) -{ - return compare(x, y) < 0; -} - -inline int operator<=(const String& x, const String& y) -{ - return compare(x, y) <= 0; -} - -inline int operator==(const String& x, const SubString& y) -{ - return compare(x, y) == 0; -} - -inline int operator!=(const String& x, const SubString& y) -{ - return compare(x, y) != 0; -} - -inline int operator>(const String& x, const SubString& y) -{ - return compare(x, y) > 0; -} - -inline int operator>=(const String& x, const SubString& y) -{ - return compare(x, y) >= 0; -} - -inline int operator<(const String& x, const SubString& y) -{ - return compare(x, y) < 0; -} - -inline int operator<=(const String& x, const SubString& y) -{ - return compare(x, y) <= 0; -} - -inline int operator==(const String& x, const char* t) -{ - return compare(x, t) == 0; -} - -inline int operator!=(const String& x, const char* t) -{ - return compare(x, t) != 0; -} - -inline int operator>(const String& x, const char* t) -{ - return compare(x, t) > 0; -} - -inline int operator>=(const String& x, const char* t) -{ - return compare(x, t) >= 0; -} - -inline int operator<(const String& x, const char* t) -{ - return compare(x, t) < 0; -} - -inline int operator<=(const String& x, const char* t) -{ - return compare(x, t) <= 0; -} - -inline int operator==(const SubString& x, const String& y) -{ - return compare(y, x) == 0; -} - -inline int operator!=(const SubString& x, const String& y) -{ - return compare(y, x) != 0; -} - -inline int operator>(const SubString& x, const String& y) -{ - return compare(y, x) < 0; -} - -inline int operator>=(const SubString& x, const String& y) -{ - return compare(y, x) <= 0; -} - -inline int operator<(const SubString& x, const String& y) -{ - return compare(y, x) > 0; -} - -inline int operator<=(const SubString& x, const String& y) -{ - return compare(y, x) >= 0; -} - -inline int operator==(const SubString& x, const SubString& y) -{ - return compare(x, y) == 0; -} - -inline int operator!=(const SubString& x, const SubString& y) -{ - return compare(x, y) != 0; -} - -inline int operator>(const SubString& x, const SubString& y) -{ - return compare(x, y) > 0; -} - -inline int operator>=(const SubString& x, const SubString& y) -{ - return compare(x, y) >= 0; -} - -inline int operator<(const SubString& x, const SubString& y) -{ - return compare(x, y) < 0; -} - -inline int operator<=(const SubString& x, const SubString& y) -{ - return compare(x, y) <= 0; -} - -inline int operator==(const SubString& x, const char* t) -{ - return compare(x, t) == 0; -} - -inline int operator!=(const SubString& x, const char* t) -{ - return compare(x, t) != 0; -} - -inline int operator>(const SubString& x, const char* t) -{ - return compare(x, t) > 0; -} - -inline int operator>=(const SubString& x, const char* t) -{ - return compare(x, t) >= 0; -} - -inline int operator<(const SubString& x, const char* t) -{ - return compare(x, t) < 0; -} - -inline int operator<=(const SubString& x, const char* t) -{ - return compare(x, t) <= 0; -} - - -// a helper needed by at, before, etc. - -inline SubString String::_substr(int first, int l) -{ - if (first >= length() ) - return SubString(_nilString, 0, 0) ; - else - return SubString(*this, first, l); -} - - - - - -//# 26 "../../../../mips/include/Gct/GctErrorHandler.h" 2 - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" 1 -// This is part of the iostream library, providing -*- C++ -*- input/output. -// Copyright (C) 1991 Per Bothner. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free -// Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -//# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" - -//# 27 "../../../../mips/include/Gct/GctErrorHandler.h" 2 - - -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/stuff++.h" 1 -// -*- C++ -*- - - - -// -// Fake up a libstuff++ -// -// This is done as a complete and utter hack; this library has no function -// at all being in the boot area; it is here solely in order to provide a -// libstuff++ against which the Makefiles can resolve link lines. -// -// The only reason that this is done is to allow the STANDARD_C++_LIBRARIES -// as provided by the Makefile templates in the boot area to be the same -// ones that are used by the tools outside this hierarchy. -// -// The tools outside this hierarchy use a different libstuff++; one that is -// written in C++. This one is not written in C++ in order to be simpler. -// - - - - - -//#pragma interface - - - -extern "C" { -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/stuff.h" 1 - - - -/* - * Useful stuff - */ - -/* - */ - -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/ansi.h" 1 - - - - -/* - * ANSI Compiler Support - * - * David Harrison - * University of California, Berkeley - * 1988 - * - * ANSI compatible compilers are supposed to define the preprocessor - * directive __STDC__. Based on this directive, this file defines - * certain ANSI specific macros. - * - * ARGS: - * Used in function prototypes. Example: - * extern int foo - * ARGS((char *blah, double threshold)); - */ - -/* - * - * Modifications - * Wendell C Baker - * University of California, Berkeley - */ - -/* Function prototypes */ - - - - - - - - - - - - - - - - - - - - - - - - - - - -//# 15 "/sandbox/wbaker/wbaker0/source/mips/include/stuff.h" 2 - - - -/* - * If g++, then we stub out part of this thing and let the C++ types take - * over and do the same job; some compatibility must be given however - */ - -/* - * Use the GNU libg++ definition - */ -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/bool.h" 1 - - - - - - - -//# 26 "/sandbox/wbaker/wbaker0/source/mips/include/stuff.h" 2 - -//# 35 "/sandbox/wbaker/wbaker0/source/mips/include/stuff.h" - - -/* - * Make various pieces of C code that use the old ``Boolean'' - * be compatible by faking up the definition of Boolean using - * the new bool type. - */ - - -//# 58 "/sandbox/wbaker/wbaker0/source/mips/include/stuff.h" - - -typedef long FitAny; /* can fit any integral type */ - -/* - * typedef char *String; - DO NOT USE THIS - it conflicts with C++ - * typedef char **Stringv; - just use char* and char** instead. - * - void* can be used for arbitrary pointers - */ - - - - -extern int nocase_strcmp (char *, char *) ; -extern int nocase_strncmp (char *, char *, int) ; - -extern bool nocase_strequal (char *, char *) ; -extern bool nocase_strnequal (char *, char *, int) ; - -extern bool lead_strequal (char *, char *) ; -extern bool nocase_lead_strequal (char *, char *) ; - -extern int strhash (char *, int) ; -extern int nocase_strhash (char *, int) ; - -extern int sign (int) ; - -/* - * Some useful macros. - */ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -//# 33 "/sandbox/wbaker/wbaker0/source/mips/include/stuff++.h" 2 - -} - -// -// This is here because we wish to provide externs for the two -// functions btoa(bool, unsigned = 0) and operator<<(ostream&, bool) -// because they are not provided in bool.h. -// -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/bool.h" 1 - - - - - - - -//# 41 "/sandbox/wbaker/wbaker0/source/mips/include/stuff++.h" 2 - -extern const char *stringify(bool b); -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" 1 -// This is part of the iostream library, providing -*- C++ -*- input/output. -// Copyright (C) 1991 Per Bothner. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free -// Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -//# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" - -//# 43 "/sandbox/wbaker/wbaker0/source/mips/include/stuff++.h" 2 - -extern ostream& operator<<(ostream&, bool); - -// Should this be kept separate? bool isn't, but then is -// included here only to define ostream& operator<<(ostream&, bool) -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/unit.h" 1 -// -*- C++ -*- - - - -// -// unit enum -// -// Wendell Baker, Berkeley CAD Group, 1991 (wbaker@ic.Berkeley.EDU) -// - - -// -// unit enum -// -// This _looks_ silly, but it has an important theoretical basis in category -// theory. For the pragmatic reason for its existence, see the example below. -// -enum unit { - UNIT = 1, -}; - -extern const char *stringify(unit u); - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" 1 -// This is part of the iostream library, providing -*- C++ -*- input/output. -// Copyright (C) 1991 Per Bothner. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free -// Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -//# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" - -//# 28 "/sandbox/wbaker/wbaker0/source/mips/include/unit.h" 2 - -extern ostream& operator<<(ostream&, unit); - -// -// A unit is used in cases where the type signature of an overloaded -// function must be differentiated in some stronger way than can be -// denoted unambiguously in the C++ syntax. This enum is used to give -// one of the functions a different type signature, thereby allowing -// the overloading. -// -// The use of ``unit'' instead of int or bool is important because a unit -// has only one possible value; therefore it adds no more information to -// the code. For example, say a bool was used instead, then in the testing -// phase, would have to ask: what if TRUE was given, what if FALSE was given. -// The problem is compounded if char or int is used. -// -// Example: -// -// class ID { -// public: -// ID(); // construct a null ID -// ID(unit); // alloc a ID with a new id -// private: -// static unsigned high_water; -// unsigned id; -// }; -// -// Try working this example save that ID implements all of the generic -// features of the identifier object, but the high_water is stored -// in the heir. That is what originally motivated the creation of unit. -// - - -//# 48 "/sandbox/wbaker/wbaker0/source/mips/include/stuff++.h" 2 - - -// -// In the spirit of the standard GNU error handler functions -// as described in -// typedef void (*one_arg_error_handler_t)(const char*); -// a one argument error handler function pointer -// typedef void (*two_arg_error_handler_t)(const char*, const char*); -// a two argument error handler function pointer -// -// And now the NEW -// -// typedef void (*zero_arg_error_handler_t)(); -// a zero argument error handler function pointer -// -typedef void (*zero_arg_error_handler_t)(); - -// -// In the spirit of the default GNU error handler functions -// as described in -// extern void default_one_arg_error_handler(const char *message); -// print out message on stderr, and do the default thing (abort) -// extern void default_two_arg_error_handler(const char *kind, const char *message); -// print out kind and message on stderr, and do the default thing (abort) -// -// And now the NEW -// -// extern void default_zero_arg_error_handler(const char *message); -// do the default thing (abort) -// -extern void default_zero_arg_error_handler(); - -// Guaranteed to exit (1) -extern void exit_zero_arg_error_handler(); -extern void exit_one_arg_error_handler(const char *message); -extern void exit_two_arg_error_handler(const char *kind, const char *message); - -// Guaranteed to abort() -extern void abort_zero_arg_error_handler(); -extern void abort_one_arg_error_handler(const char *message); -extern void abort_two_arg_error_handler(const char *kind, const char *message); - -// -// In the spirit of the standard GNU error handlers -// as described in -// extern void verbose_File_error_handler(const char*); -// perror and set errno = 0 -// extern void quiet_File_error_handler(const char*); -// set errno = 0 -// extern void fatal_File_error_handler(const char*); -// perror and exit 1 -// -// And now the NEW -// -// extern void preserve_File_error_handler(const char *message); -// no perror, no assignment to errno. -// -extern void preserve_File_error_handler(const char *message); - - -//# 29 "../../../../mips/include/Gct/GctErrorHandler.h" 2 - -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/tostrstream.h" 1 -// -*- C++ -*- - - - -// -// tostrstream class -// -// A terminated oststream - an ostsrstream that auto-terminates on str() -// -// Wendell Baker, Berkeley CAD Group, 1992 (wbaker@ic.Berkeley.EDU) -// - - - - - -//#pragma interface - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/strstream.h" 1 -// This is part of the iostream library, providing input/output for C++. -// Copyright (C) 1991 Per Bothner. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free -// Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - - - - -//#pragma interface - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" 1 -// This is part of the iostream library, providing -*- C++ -*- input/output. -// Copyright (C) 1991 Per Bothner. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free -// Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -//# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" - -//# 23 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/strstream.h" 2 - - -class strstreambuf : public streambuf { - size_t *lenp; /* current (logical) length (i.e. valid data bytes) */ - size_t *sizep; /* allocated (physical) buffer size */ - char **bufp; - size_t _len; - size_t _size; - char *buf; - int _frozen; - protected: - virtual int overflow(int = (-1) ); - public: - strstreambuf(); - strstreambuf(int initial); - strstreambuf(char *ptr, int size, char *pstart = 0 ); - ~strstreambuf(); - int frozen() { return _frozen; } - void freeze(int n=1) { _frozen = n != 0; } - size_t pcount(); - char *str(); -}; - -class istrstream : public istream { - public: - istrstream(char*); - istrstream(char*, int); - strstreambuf* rdbuf() { return (strstreambuf*)_strbuf; } -}; - -class ostrstream : public ostream { - public: - ostrstream(); - ostrstream(char *cp, int n, int mode=ios::out); - size_t pcount() { return ((strstreambuf*)_strbuf)->pcount(); } - char *str() { return ((strstreambuf*)_strbuf)->str(); } - void freeze(int n = 1) { ((strstreambuf*)_strbuf)->freeze(n); } - int frozen() { return ((strstreambuf*)_strbuf)->frozen(); } - strstreambuf* rdbuf() { return (strstreambuf*)_strbuf; } -}; - - -//# 25 "/sandbox/wbaker/wbaker0/source/mips/include/tostrstream.h" 2 - - -// -// tostrstream class -// -// An isteam class that doesn't have that nasty skipws parameter that -// you have to remember to set. This class simply provides the istream -// functionality with a set of constructors which defaults skipws to -// FALSE (instead of defaulting to TRUE as is the case with plain istream). -// -class tostrstream: public ostrstream { -public: - tostrstream(): ostrstream() - { } - // This constructor defines cp as the buffer to use for the - // stream (instead of one of its own devising); it does NOT - // initialize the ostrstream to contain cp (of length n). - tostrstream(char *cp, int n, int mode=ios::out): ostrstream(cp, n, mode) - { } - char *str() - { - char *s = ostrstream::str(); - s[ostrstream::pcount()] = '\0'; - return s; - } -}; - - -//# 30 "../../../../mips/include/Gct/GctErrorHandler.h" 2 - - -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/Gtt/GttObject.h" 1 -// -*- C++ -*- - - - -// -// GttObject class (is abstract) -// -// Expects to be included where needed explicitly. -// -// Wendell Baker, Berkeley CAD Group, 1992 (wbaker@ic.Berkeley.EDU) -// - - - - - -//#pragma interface - - - -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/tostrstream.h" 1 -// -*- C++ -*- -//# 52 "/sandbox/wbaker/wbaker0/source/mips/include/tostrstream.h" - -//# 25 "/sandbox/wbaker/wbaker0/source/mips/include/Gtt/GttObject.h" 2 - - -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/Gtt/GttErrorHandler.h" 1 -// -*- C++ -*- - - - -// -// GttErrorHandler class -// -// Expects to be included by Gtt.h -// -// Wendell Baker, Berkeley CAD Group, 1992 (wbaker@ic.Berkeley.EDU) -// - - - - - -//#pragma interface - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/bool.h" 1 - - - - - - - -//# 25 "/sandbox/wbaker/wbaker0/source/mips/include/Gtt/GttErrorHandler.h" 2 - - -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/stuff++.h" 1 -// -*- C++ -*- -//# 107 "/sandbox/wbaker/wbaker0/source/mips/include/stuff++.h" - -//# 27 "/sandbox/wbaker/wbaker0/source/mips/include/Gtt/GttErrorHandler.h" 2 - -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/tostrstream.h" 1 -// -*- C++ -*- -//# 52 "/sandbox/wbaker/wbaker0/source/mips/include/tostrstream.h" - -//# 28 "/sandbox/wbaker/wbaker0/source/mips/include/Gtt/GttErrorHandler.h" 2 - - -// -// It is expected that this will be virtually multiply inherited -// into all of the classes that need error reporting services. -// -// The typical way to have that done is by inheriting the GttObject -// as a virtual base class. -// - -// -// GttErrorHandler class -// -class GttErrorHandler { -public: - GttErrorHandler(); - GttErrorHandler(const char *program); - virtual ~GttErrorHandler(); - - // - // Error messages - // - an unacceptable, but expected and recoverable condition - // was detected (but the test fails) - // - errors are for ``the expected environment was not found'' - // rather than for ``file couldn't be opened'' - // - these messages cannot be shut off - // - the error handler determines the recovery action - // TODO - one day exceptions will be used here - // - static void error(const char *message); - static void error(tostrstream& message); - - static void error(const char *function, const char *message); - static void error(const char *function, tostrstream& message); - - static void error(const char *class_name, const char *method, const char *message); - static void error(const char *class_name, const char *method, tostrstream& message); - - // - // Fatal messages - // - an unacceptable and unexpected error was detected - // the data invariants were violated, there is no recovery - // - these messages cannot be shut off - // - the error handler determines the recovery action - // TODO - one day exceptions will be used here - // - static void fatal(const char *message); - static void fatal(tostrstream& message); - - static void fatal(const char *function, const char *message); - static void fatal(const char *function, tostrstream& message); - - static void fatal(const char *class_name, const char *method, const char *message); - static void fatal(const char *class_name, const char *method, tostrstream& message); -private: - // - // Two underscores are used here in order to prevent confusion of these - // private variables with any of the heir's private variables. Note that - // access control is different than visibility in C++, so all the variable - // names in a class hierarchy must be unique. - // - - static bool __partial_init; - static void __partial_initialize(); - static bool __full_init; - static void __full_initialize(const char *program); - static char *__program; - - static void __handle_error(); - static void __handle_fatal(); - static void __add_newline(const char *message); - - static bool __output_valid(); - static ostream *__output; -}; - - -//# 27 "/sandbox/wbaker/wbaker0/source/mips/include/Gtt/GttObject.h" 2 - - -// -// GttObject class (is abstract) -// -class GttObject: virtual public GttErrorHandler { -protected: - GttObject(); - GttObject(const GttObject&); - virtual ~GttObject(); // ensure descendants have virtual destructors - -public: - // - // I/O Support - // - // The value typically persists only long enough for an i/o operation - // to be performed (see the defintion of output via operator<<(... ) below) - virtual const char *stringify(); -protected: - // This is the buffer into which the printed representation of this - // object will be put when the time comes. It is associated with the - // object so it will never go away (so long as the object exists). - // Use a pointer so that you only pay for the space when I/O is used - tostrstream *stringbuf; - void clear_stringbuf(); - -public: - // - // Consistency - // - // The global data invariant for the whole object (heirs included). - // This OK function will call the local invariant function ok() if - // necessary and in addition the OK functions of the heirs - // This is expected to compute the data invariant of the object. - // It will execute GctErrorHandler::fatal if there is wrong. - virtual void OK() const; - -protected: - // - // consistency - // - // This function computes the invariant which is local to this object. - // It does not call any of the ancestor's OK() or ok() functions. - // It is not a virtual function so that it can be called from within a - // constructor with impunity. Thus this function MUST NOT call any - // virtual functions either; it should call them by their full name if - // that is necessary. The global OK() function will call this function - // as necessary. - // - // This function must NOT NEVER EVER be made virtual. - void ok() const; - -protected: - // - // Class Name - // - // This must return a static (constant) string which is the name - // of the class being declared. By convention, not all classes - // must have one of these, but the major root abstract class must - // have one in order to allow the stringify() to work approximately - // correctly. - virtual const char *class_name() const = 0; -}; - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" 1 -// This is part of the iostream library, providing -*- C++ -*- input/output. -// Copyright (C) 1991 Per Bothner. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free -// Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -//# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" - -//# 91 "/sandbox/wbaker/wbaker0/source/mips/include/Gtt/GttObject.h" 2 - -extern ostream& operator<<(ostream&, GttObject&); - -// There may be other X& operator<<(X&, GttObject&) defined in the -// packages defining class X. For example see the definition of -// GttUnitObject& operator<<(GttUnitObject&, GttObject&) in Unit. - - -//# 32 "../../../../mips/include/Gct/GctErrorHandler.h" 2 - - -// -// It is expected that this will be virtually multiply inherited -// into all of the classes that need error reporting services. -// -// The typical way to have that done is by inheriting the GctObject -// as a virtual base class. -// - -// -// GctErrorHandler class -// -// GPP_1_96_BUG -// NOTE - virtual public GttObject should be MI into GctObject - but that -// causes g++ 1.96 to segfault; so we must inherit GttObject here and use SI -// GPP_1_96_BUG -class GctErrorHandler: virtual public GttObject { -public: - GctErrorHandler(); - GctErrorHandler(const String& program); - virtual ~GctErrorHandler(); - - // - // Debugging messages - // - these are turned off for production code. - // - these messages can be shut off - // - static void debug(const char *message); - static void debug(tostrstream& message); - - static void debug(const char *function, const char *message); - static void debug(const char *function, tostrstream& message); - - static void debug(const char *class_name, const char *method, const char *message); - static void debug(const char *class_name, const char *method, tostrstream& message); - - static bool debug(); // current debug switch - static void debug(bool value); // change the debug switch - - // - // Informational messages - // - these correspond to a ``verbose'' mode - // - these are not errors, just chatty progress reports - // - these messages can be shut off - // - static void note(const char *message); - static void note(tostrstream& message); - - static void note(const char *function, const char *message); - static void note(const char *function, tostrstream& message); - - static void note(const char *class_name, const char *method, const char *message); - static void note(const char *class_name, const char *method, tostrstream& message); - - static bool note(); // current note switch - static void note(bool value); // change the note switch - - // - // Warning messages - // - warnings are system-recoverable errors - // - the system has noticed something and taken some - // corrective action - // - these messages can be shut off - // - static void warning(const char *message); - static void warning(tostrstream& message); - - static void warning(const char *function, const char *message); - static void warning(const char *function, tostrstream& message); - - static void warning(const char *class_name, const char *method, const char *message); - static void warning(const char *class_name, const char *method, tostrstream& message); - - static bool warning(); // current warning switch - static void warning(bool value); // change the warning switch - - // - // Error messages - // - an unacceptable, but expected and recoverable - // condition was detected - // - errors are for ``the expected environment was not found'' - // rather than for ``file couldn't be opened'' - // - these messages cannot be shut off - // - the error handler determines the recovery action - // TODO - one day exceptions will be used here - // - static void error(const char *message); - static void error(tostrstream& message); - - static void error(const char *function, const char *message); - static void error(const char *function, tostrstream& message); - - static void error(const char *class_name, const char *method, const char *message); - static void error(const char *class_name, const char *method, tostrstream& message); - - // can't turn off errors - no ``static void error(bool value);'' - static zero_arg_error_handler_t error(); // current error handler - static void error(zero_arg_error_handler_t handler);// change the error handler - - static void error_is_lib_error_handler(); // change the error handler - static void error_is_exit(); // change the error handler - - // Describes the fatal handler - WATCHOUT - implicitly uses AllocRing - static const char *error_handler_description(); - - // - // Fatal messages - // - an unacceptable and unexpected error was detected - // the data invariants were violated, there is no recovery - // - these messages cannot be shut off - // - the error handler determines the recovery action - // TODO - one day exceptions will be used here - // - static void fatal(const char *message); - static void fatal(tostrstream& message); - - static void fatal(const char *function, const char *message); - static void fatal(const char *function, tostrstream& message); - - static void fatal(const char *class_name, const char *method, const char *message); - static void fatal(const char *class_name, const char *method, tostrstream& message); - - // can't turn off fatals - no ``static void fatal(bool value);'' - static zero_arg_error_handler_t fatal(); // return the fatal handler - static void fatal(zero_arg_error_handler_t handler); // change the fatal handler - - static void fatal_is_exit(); // change the fatal handler - static void fatal_is_abort(); // change the fatal handler - - // Describes the fatal handler - WATCHOUT - implicitly uses AllocRing - static const char *fatal_handler_description(); -private: - // - // Two underscores are used here in order to prevent confusion of these - // private variables with any of the heir's private variables. Note that - // access control is different than visibility in C++, so all the variable - // names in a class hierarchy must be unique. - // - static bool __debug; - static bool __note; - static bool __warning; - static void (*__error_handler)(); // can't turn off errors - static void (*__fatal_handler)(); // can't turn off fatals - - static bool __partial_init; - static void __partial_initialize(); - static bool __full_init; - static void __full_initialize(const char *program); - static char *__program; - - static void __handle_error(); - static void __handle_fatal(); - static void __add_newline(const char *message); - static void __message_switch(bool value, bool& flag, const char *description); - static void __message_switch(bool value, bool& flag); - static const char *__describe_handler(zero_arg_error_handler_t handler); - - static bool __output_valid(); - static ostream *__output; - - // GPP_1_96_BUG - const char *class_name() const; - // GPP_1_96_BUG -}; - - -//# 27 "../../../../mips/include/Gct/Reference/GctReferenceCount.h" 2 - - -class GctReferenceCount: virtual public GctErrorHandler { -public: - GctReferenceCount(); - - void inc(); - void dec(); - bool zero() const; -private: - unsigned _count; -}; - -inline -GctReferenceCount::GctReferenceCount() -{ - this->_count = 0; -} - -inline void -GctReferenceCount::inc() -{ - this->_count++; -} - -inline void -GctReferenceCount::dec() -{ - if (this->debug()) { - if (this->_count == 0) - this->error("GctReferenceCount", "dec()", - "attempt to decrement a zero refcount"); - } - - // Protect against decrementing off zero in case - // this->debug() is not turned on to signal the error. - if (this->_count) - this->_count--; -} - -inline bool -GctReferenceCount::zero() const -{ - return (bool)(this->_count == 0); -} - - -//# 25 "../../../../mips/include/Gct/Reference.h" 2 - -//# 1 "../../../../mips/include/Gct/Reference/GctReferenceObject.h" 1 -// -*- C++ -*- - - - -// -// GctReferenceObject class -// -// Expects to be included by Gct/Reference.h -// -// Wendell Baker, Berkeley CAD Group, 1992 (wbaker@ic.Berkeley.EDU) -// - - - - - -//#pragma interface - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/bool.h" 1 - - - - - - - -//# 25 "../../../../mips/include/Gct/Reference/GctReferenceObject.h" 2 - - -//# 1 "../../../../mips/include/Gct/Object/GctHashObject.h" 1 -// -*- C++ -*- - - - -// -// GctHashObject class (is abstract) -// -// Expects to be included by Object.h or where needed explicitly. -// -// Wendell Baker, Berkeley CAD Group, 1992 (wbaker@ic.Berkeley.EDU) -// - - - - - -//#pragma interface - - - -//# 1 "../../../../mips/include/Gct/Object/GctObject.h" 1 -// -*- C++ -*- - - - -// -// GctObject class (is abstract) -// -// Expects to be included by Object.h or where needed explicitly. -// -// Wendell Baker, Berkeley CAD Group, 1992 (wbaker@ic.Berkeley.EDU) -// - - - - - -//#pragma interface - - - -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/tostrstream.h" 1 -// -*- C++ -*- -//# 52 "/sandbox/wbaker/wbaker0/source/mips/include/tostrstream.h" - -//# 25 "../../../../mips/include/Gct/Object/GctObject.h" 2 - - -//# 1 "/sandbox/wbaker/wbaker0/source/mips/include/Gtt/GttObject.h" 1 -// -*- C++ -*- -//# 98 "/sandbox/wbaker/wbaker0/source/mips/include/Gtt/GttObject.h" - -//# 27 "../../../../mips/include/Gct/Object/GctObject.h" 2 - - -//# 1 "../../../../mips/include/Gct/GctErrorHandler.h" 1 -// -*- C++ -*- -//# 198 "../../../../mips/include/Gct/GctErrorHandler.h" - -//# 29 "../../../../mips/include/Gct/Object/GctObject.h" 2 - - -// -// GctObject class (is abstract) -// -class GctObject: virtual public GctErrorHandler /*, virtual public GttObject*/ { -protected: - GctObject(); - GctObject(const GctObject&); - virtual ~GctObject(); // ensure descendants have virtual destructors - -public: - // - // I/O Support - // - // The value typically persists only long enough for an i/o operation - // to be performed (see the defintion of output via operator<<(... ) below) - virtual const char *stringify(); -protected: - // This is the buffer into which the printed representation of this - // object will be put when the time comes. It is associated with the - // object so it will never go away (so long as the object exists). - // Use a pointer so that you only pay for the space when I/O is used - tostrstream *stringbuf; - void clear_stringbuf(); - -public: - // - // Consistency (global consistency) - // - // The global data invariant for the whole object (heirs included). - // This OK function will call the local invariant function ok() if - // necessary and in addition the OK functions of the heirs - // This is expected to compute the data invariant of the object. - // It will execute GctErrorHandler::fatal if there is wrong. - virtual void OK() const; - -protected: - // - // consistency (local consistency) - // - // This function computes the invariant which is local to this object. - // It does not call any of the ancestor's OK() or ok() functions. - // It is not a virtual function so that it can be called from within a - // constructor with impunity. Thus this function MUST NOT call any - // virtual functions either; it should call them by their full name if - // that is necessary. The global OK() function will call this function - // as necessary. - // - // This function must NOT NEVER EVER be made virtual. - void ok() const; -protected: - // - // Class Name - // - // This must return a static (constant) string which is the name - // of the class being declared. By convention, not all classes - // must have one of these, but the major root abstract class must - // have one in order to allow the stringify() to work approximately - // correctly. - virtual const char *class_name() const = 0; - -public: - // - // The ``id'' of this object - // - // NOTE - we explicitly allow the situation where this function - // can return the address of the object - the ``this'' pointer - // instead of a computed id field (the __object_id field below). - // - // This function is protected because we don't want too much dependence - // on this notion of object identity. I want to be able to rip it - // out if it becomes to cumbersome. - unsigned objectId() const; -private: - // - // Symbolic ID - // - // NOTE - Normally this would be implemented by the `this' pointer. - // TODO - remove this for production code - // - // However, in order to make the test suites run on all machines, we - // make this into a symbolic id that is maintained with each object. - // Thus the valid outputs are always consistent across all machines. - unsigned __object_id; - static unsigned __next_id; -}; - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" 1 -// This is part of the iostream library, providing -*- C++ -*- input/output. -// Copyright (C) 1991 Per Bothner. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free -// Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -//# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" - -//# 117 "../../../../mips/include/Gct/Object/GctObject.h" 2 - -extern ostream& operator<<(ostream&, GctObject&); - - -//# 25 "../../../../mips/include/Gct/Object/GctHashObject.h" 2 - - -// -// GctHashObject class (is abstract) -// -class GctHashObject: virtual public GctObject { -protected: - GctHashObject(); - GctHashObject(const GctHashObject&); - -public: - // - // hash support - // - virtual unsigned hash() const; -}; - - -//# 27 "../../../../mips/include/Gct/Reference/GctReferenceObject.h" 2 - - -class GctRef; - -// -// GctReferenceObject class -// -class GctReferenceObject: virtual public GctHashObject { -public: - // Aid in using operator new() to allocate dynamic - // instances of heirs to GctReferenceObject. - // An error is reported if result_of_new is nil. - static void ensure_new_succeeded(GctReferenceObject *result_of_new, - const char *class_name, - const char *args_supplied = ""); - - // the stringify() is standard - void OK() const; -protected: - GctReferenceObject(const bool refcounting = FALSE); - GctReferenceObject(const GctReferenceObject&, - const bool refcounting = FALSE); - virtual ~GctReferenceObject(); - - void operator=(const GctReferenceObject&); - - void ok() const; - - // Disallowed (create pointers to objects via new only) - // It is kept protected so that heirs can do *-cast-& tricks to work - // around the contravariance of abstract virtuals. This operator should - // never be used to return an address of a GctReferenceObject. - GctReferenceObject *operator&() const; -private: - const char *class_name() const; - - bool _destructed; // ensure no use of destructed objects - // this bit guards against the destruct-before-copy g++ bug - - bool _refcounting; // was allocated via operator new() - GctReferenceCount _refcount; - - // TODO - these names can never be used again in a derived - // class; should they be obfuscated some to free up the - // names (these are good, commonly-used names). - void reference(); - void dereference(GctReferenceObject *&); - void kill(); - - bool refcounted() const; - void refcounting(); // as if given in the constructor - - // Using this scheme, only GctRef can manipulate the - // reference count via reference(), dereference(). The derived - // classes cannot do such, and the _refcount field is not - // available to be tweaked by GctRef in any way other - // way than the inc/dec/zero interface. - friend class GctRef; -}; - - -//# 26 "../../../../mips/include/Gct/Reference.h" 2 - -//# 1 "../../../../mips/include/Gct/Reference/GctRef.h" 1 -// -*- C++ -*- - - - -// -// GctRef class -// -// Expects to be included by Gct/Reference.h -// -// Wendell Baker, Berkeley CAD Group, 1992 (wbaker@ic.Berkeley.EDU) -// - - - - - -//#pragma interface - - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/bool.h" 1 - - - - - - - -//# 25 "../../../../mips/include/Gct/Reference/GctRef.h" 2 - - -//# 1 "../../../../mips/include/Gct/Object/GctHashObject.h" 1 -// -*- C++ -*- -//# 42 "../../../../mips/include/Gct/Object/GctHashObject.h" - -//# 27 "../../../../mips/include/Gct/Reference/GctRef.h" 2 - - -class GctReferenceObject; - -class GctRef: virtual public GctHashObject { -public: - GctRef(); - GctRef(const GctRef&); - virtual ~GctRef(); - - void operator=(GctRef&); - - // Accessor functions - bool valid() const; // the managed pointer is !null - bool null() const; // the managed pointer is null - - GctReferenceObject *ref() const; // faults if not valid - operator void*() const; // unchecked reference - - void nullify(); // set the managed pointer to null - void invalidate(); // set the managed pointer to null - - unsigned hash() const; - - // the stringify() is standard - void OK() const; -protected: - void ok() const; - - // We want to make sure pointers do not float around for very long. - // This constructor is used by descendants of this class only; it is - // expected that such descendants will have friend functions which - // will call ``new MumbleObject()'' and return a GctRef to THAT. - // MumbleObject would be a descendant of GctReferenceObject - GctRef(GctReferenceObject *); - friend class GctReferenceObject; -private: - const char *class_name() const; - - GctReferenceObject *_pointer; // may store 0 - - bool _destructed; // ensure no use of destructed objects - // this bit guards against the destruct-before-copy g++ bug -}; - -inline -GctRef::operator void*() const -{ return this->_pointer; } - -inline bool -GctRef::valid() const -{ return (bool)(this->_pointer != 0); } - -inline bool -GctRef::null() const -{ return (bool)(this->_pointer == 0); } - -// -// Required operations for the container classes -// -// NOTE: we can't use const here because the genclass code doesn't -// That is the ONLY reason for not using const reference args here. -// -extern int operator==(GctRef&, GctRef&); -extern int operator!=(GctRef&, GctRef&); - -extern int operator<=(GctRef&, GctRef&); -extern int operator<(GctRef&, GctRef&); - -extern int operator>=(GctRef&, GctRef&); -extern int operator>(GctRef&, GctRef&); - -extern unsigned hash(GctRef&); - - -//# 27 "../../../../mips/include/Gct/Reference.h" 2 - - - -//# 47 "../../../../mips/include/Gct/genclasses.h" 2 - - -//# 1 "../../../../mips/include/Gct/Ast/GctAstRef.h" 1 -// -*- C++ -*- - - - -// -// GctAstRef class -// -// Expects to be included by Gct/Ast.h -// -// Wendell Baker, Berkeley CAD Group, 1991 (wbaker@ic.Berkeley.EDU) -// - - - - - -//#pragma interface - - - -//# 1 "../../../../mips/include/Gct/Reference.h" 1 -// -*- C++ -*- -//# 29 "../../../../mips/include/Gct/Reference.h" - -//# 25 "../../../../mips/include/Gct/Ast/GctAstRef.h" 2 - - -//# 1 "../../../../mips/include/Gct/Ast/GctAstType.h" 1 -// -*- C++ -*- - - - -// -// GctAstType enum -// -// Wendell Baker, Berkeley CAD Group, 1992 (wbaker@ic.Berkeley.EDU) -// - - -// -// GctAstType enum -// -enum GctAstType { - Gct_Leaf, - Gct_Tree -}; - -extern const char *stringify(GctAstType a); - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" 1 -// This is part of the iostream library, providing -*- C++ -*- input/output. -// Copyright (C) 1991 Per Bothner. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free -// Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -//# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" - -//# 26 "../../../../mips/include/Gct/Ast/GctAstType.h" 2 - -extern ostream& operator<<(ostream&, GctAstType); - - -//# 27 "../../../../mips/include/Gct/Ast/GctAstRef.h" 2 - - -class GctAst; -class GctTree; -class GctLeaf; - -class GctAstRef: public GctRef { -public: - GctAstRef(); - GctAstRef(const GctAstRef&); - - GctAst *ref() const; // may return 0 (not requires valid) - - GctAstType concrete_type() const; // requires valid() - GctTree *tree() const; // never return 0 - typechecked - GctLeaf *leaf() const; // never return 0 - typechecked -protected: - // We make sure pointers do not float around for very long. - // This constructor cooperates with Gct{Leaf,Tree}::New - // (all flavors) to allow for the creation of new dynamic structures. - GctAstRef(GctAst *); - friend class GctLeaf; - friend class GctTree; -}; - - -//# 49 "../../../../mips/include/Gct/genclasses.h" 2 - - - -//# 2 "GctNameRef.List.cc" 2 - -//# 1 "../../../../mips/include/Gct/Name/GctNameRef.h" 1 -// -*- C++ -*- - - - -// -// GctNameRef class -// -// Expects to be included by Gct/Name.h -// -// Wendell Baker, Berkeley CAD Group, 1991 (wbaker@ic.Berkeley.EDU) -// - - - - - -//#pragma interface - - - -//# 1 "../../../../mips/include/Gct/Reference.h" 1 -// -*- C++ -*- -//# 29 "../../../../mips/include/Gct/Reference.h" - -//# 25 "../../../../mips/include/Gct/Name/GctNameRef.h" 2 - - -//# 1 "../../../../mips/include/Gct/Name/GctNameType.h" 1 -// -*- C++ -*- - - - -// -// GctNameType enum -// -// Wendell Baker, Berkeley CAD Group, 1991 (wbaker@ic.Berkeley.EDU) -// - - -// -// GctNameType enum -// -enum GctNameType { - Gct_Identifier, - Gct_Signature, -}; - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" 1 -// This is part of the iostream library, providing -*- C++ -*- input/output. -// Copyright (C) 1991 Per Bothner. -// -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Library General Public -// License as published by the Free Software Foundation; either -// version 2 of the License, or (at your option) any later version. -// -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Library General Public License for more details. -// -// You should have received a copy of the GNU Library General Public -// License along with this library; if not, write to the Free -// Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -//# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h" - -//# 24 "../../../../mips/include/Gct/Name/GctNameType.h" 2 - - -extern char *ntoa(GctNameType n, unsigned width = 0); -extern ostream& operator<<(ostream&, GctNameType); - - -//# 27 "../../../../mips/include/Gct/Name/GctNameRef.h" 2 - - -class GctName; -class GctIdentifier; -class GctSignature; - -class GctNameRef: public GctRef { -public: - GctNameRef(); - GctNameRef(const GctNameRef&); - - GctName *ref() const; // may return 0 (not requires valid()) - - GctNameType concrete_type() const; // requires valid() - GctIdentifier *identifier() const; // never return 0 - typechecked - GctSignature *signature() const; // never return 0 - typechecked -protected: - // We make sure pointers do not float around for very long. - // This constructor cooperates with GctIdentifier::New and - // GctSignature::New (all flavors) to allow for the creation of new - // dynamic structures. - GctNameRef(GctName *); - friend class GctIdentifier; - friend class GctSignature; - -private: - const char *class_name() const; -}; - -// -// Required operations for use by genclass container classes -// -// These are more specific than the ones supplied by GctRef -// because they use the name of the attribute as the key for -// comparison instead of the pointer stored as a void* value. -// -// NOTE: we can't use const here because the genclass code doesn't -// That is the ONLY reason for not using const reference args here. -// -extern int operator==(GctNameRef&, GctNameRef&); -extern int operator!=(GctNameRef&, GctNameRef&); - -extern int operator<=(GctNameRef&, GctNameRef&); -extern int operator<(GctNameRef&, GctNameRef&); - -extern int operator>=(GctNameRef&, GctNameRef&); -extern int operator>(GctNameRef&, GctNameRef&); - -// extern unsigned hash(GctNameRef&) -// is handled by the previous declaration of -// extern unsigned hash(GctRef&); - - -//# 3 "GctNameRef.List.cc" 2 - -// This may look like C code, but it is really -*- C++ -*- -/* -Copyright (C) 1988 Free Software Foundation - written by Doug Lea (dl@rocky.oswego.edu) - -This file is part of GNU CC. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY. No author or distributor -accepts responsibility to anyone for the consequences of using it -or for whether it serves any particular purpose or works at all, -unless he says so in writing. Refer to the GNU CC General Public -License for full details. - -Everyone is granted permission to copy, modify and redistribute -GNU CC, but only under the conditions described in the -GNU CC General Public License. A copy of this license is -supposed to have been given to you along with GNU CC so you -can know your rights and responsibilities. It should be in a -file named COPYING. Among other things, the copyright notice -and this notice must be preserved on all copies. -*/ - - -//#pragma implementation - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/builtin.h" 1 -// This may look like C code, but it is really -*- C++ -*- - -/* -Copyright (C) 1988, 1992 Free Software Foundation - written by Doug Lea (dl@rocky.oswego.edu) - -This file is part of the GNU C++ Library. This library is free -software; you can redistribute it and/or modify it under the terms of -the GNU Library General Public License as published by the Free -Software Foundation; either version 2 of the License, or (at your -option) any later version. This library is distributed in the hope -that it will be useful, but WITHOUT ANY WARRANTY; without even the -implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR -PURPOSE. See the GNU Library General Public License for more details. -You should have received a copy of the GNU Library General Public -License along with this library; if not, write to the Free Software -Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -/* - arithmetic, etc. functions on built in types -*/ - - -//# 214 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/builtin.h" - -//# 30 "GctNameRef.List.cc" 2 - -//# 1 "genclasses/GctNameRef.List.h" 1 -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/Pix.h" 1 - - - -typedef void* Pix; - -//# 1 "genclasses/GctNameRef.List.h" 2 - -// This may look like C code, but it is really -*- C++ -*- -/* -Copyright (C) 1988 Free Software Foundation - written by Doug Lea (dl@rocky.oswego.edu) - -This file is part of GNU CC. - -GNU CC is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY. No author or distributor -accepts responsibility to anyone for the consequences of using it -or for whether it serves any particular purpose or works at all, -unless he says so in writing. Refer to the GNU CC General Public -License for full details. - -Everyone is granted permission to copy, modify and redistribute -GNU CC, but only under the conditions described in the -GNU CC General Public License. A copy of this license is -supposed to have been given to you along with GNU CC so you -can know your rights and responsibilities. It should be in a -file named COPYING. Among other things, the copyright notice -and this notice must be preserved on all copies. -*/ - - - - -//#pragma once -//#pragma interface - - - - - -typedef void (*GctNameRefProcedure)(GctNameRef&); -typedef GctNameRef (*GctNameRefMapper)(GctNameRef&); -typedef GctNameRef& (*GctNameRefCombiner)(const GctNameRef&, - const GctNameRef&); -typedef int (*GctNameRefPredicate)(GctNameRef&); -typedef int (*GctNameRefComparator)(GctNameRef&, GctNameRef&); - - -//# 1 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/Pix.h" 1 - - - - - -//# 42 "genclasses/GctNameRef.List.h" 2 - - -struct GctNameRefListNode -{ - GctNameRefListNode* tl; - short ref; - GctNameRef hd; -}; - -extern GctNameRefListNode NilGctNameRefListNode; - -class GctNameRefList -{ -protected: - GctNameRefListNode* P; - - GctNameRefList(GctNameRefListNode* p); -public: - GctNameRefList(); - GctNameRefList(GctNameRef& head); - GctNameRefList(GctNameRef& head, GctNameRefList& tl); - GctNameRefList(const GctNameRefList& a); - GctNameRefList(Pix p); - ~GctNameRefList(); - - GctNameRefList& operator = (const GctNameRefList& a); - - int null(); - int valid(); - operator const void* (); - int operator ! (); - - int length() const; - int list_length(); - - GctNameRef& get(); - GctNameRef& head(); - GctNameRef& operator [] (int n); - - GctNameRefList nth(int n); - GctNameRefList tail(); - GctNameRefList last() const; - - GctNameRefList find(GctNameRef& targ); - GctNameRefList find(GctNameRefList& targ); - int contains(GctNameRef& targ) const; - int contains(GctNameRefList& targ) const; - int position(GctNameRef& targ); - - friend GctNameRefList copy(GctNameRefList& a); - friend GctNameRefList concat(GctNameRefList& a, GctNameRefList& b); - friend GctNameRefList append(GctNameRefList& a, GctNameRefList& b); - friend GctNameRefList map(GctNameRefMapper f, GctNameRefList& a); - friend GctNameRefList merge(GctNameRefList& a, GctNameRefList& b, GctNameRefComparator f); - friend GctNameRefList combine(GctNameRefCombiner f, GctNameRefList& a, GctNameRefList& b); - friend GctNameRefList reverse(GctNameRefList& a); - friend GctNameRefList select(GctNameRefPredicate f, GctNameRefList& a); - friend GctNameRefList remove(GctNameRef& targ, GctNameRefList& a); - friend GctNameRefList remove(GctNameRefPredicate f, GctNameRefList& a); - friend GctNameRefList subst(GctNameRef& old, GctNameRef& repl, GctNameRefList& a); - - void push(GctNameRef& x); - GctNameRef pop(); - - void set_tail(GctNameRefList& p); - void append(GctNameRefList& p); - void prepend(GctNameRefList& p); - void del(GctNameRef& targ); - void del(GctNameRefPredicate f); - void select(GctNameRefPredicate f); - void subst(GctNameRef& old, GctNameRef& repl); - void reverse(); - void sort(GctNameRefComparator f); - - void apply(GctNameRefProcedure f); - GctNameRef reduce(GctNameRefCombiner f, GctNameRef& base); - - friend int operator == (GctNameRefList& a, GctNameRefList& b); - friend int operator != (GctNameRefList& a, GctNameRefList& b); - - Pix first() const; - void next(Pix& p) const; - Pix seek(GctNameRef& item) const; - GctNameRef& operator () (Pix p) const; - int owns(Pix p) const; - - void error(const char*) const; - int OK() const; -}; - - - -inline void reference(GctNameRefListNode* p) -{ - if (p->ref >= 0) ++p->ref; -} - -inline void dereference(GctNameRefListNode* p) -{ - while (p->ref > 0 && --p->ref == 0) - { - GctNameRefListNode* n = p->tl; - delete(p); - p = n; - } -} - - -inline GctNameRefListNode* newGctNameRefListNode(const GctNameRef& h) -{ - GctNameRefListNode* p = new GctNameRefListNode; - p->ref = 1; - p->hd = (GctNameRef&) h; - return p; -} - -inline GctNameRefListNode* newGctNameRefListNode(GctNameRef& h, GctNameRefListNode* t) -{ - GctNameRefListNode* p = new GctNameRefListNode; - p->ref = 1; - p->hd = h; - p->tl = t; - return p; -} - - -inline GctNameRefList::~GctNameRefList() -{ - dereference(P); -} - -inline GctNameRefList::GctNameRefList() -{ - P = &NilGctNameRefListNode; -} - -inline GctNameRefList::GctNameRefList(GctNameRefListNode* p) -{ - P = p; -} - -inline GctNameRefList::GctNameRefList(GctNameRef& head) -{ - P = newGctNameRefListNode(head); - P->tl = &NilGctNameRefListNode; -} - -inline GctNameRefList::GctNameRefList(GctNameRef& head, GctNameRefList& tl) -{ - P = newGctNameRefListNode(head, tl.P); - reference(P->tl); -} - -inline GctNameRefList::GctNameRefList(const GctNameRefList& a) -{ - GctNameRefList& gl = (GctNameRefList&) a; - reference(gl.P); - P = a.P; -} - - -inline GctNameRef& GctNameRefList::get() -{ - return P->hd; -} - -inline GctNameRef& GctNameRefList::head() -{ - return P->hd; -} - - -inline GctNameRefList GctNameRefList::tail() -{ - reference(P->tl); - return GctNameRefList(P->tl); -} - - - -inline int GctNameRefList::null() -{ - return P == &NilGctNameRefListNode; -} - -inline int GctNameRefList::valid() -{ - return P != &NilGctNameRefListNode; -} - -inline GctNameRefList::operator const void* () -{ - return (P == &NilGctNameRefListNode)? 0 : this; -} - -inline int GctNameRefList::operator ! () -{ - return (P == &NilGctNameRefListNode); -} - - -inline void GctNameRefList::push(GctNameRef& head) -{ - GctNameRefListNode* oldp = P; - P = newGctNameRefListNode(head, oldp); -} - - -inline int operator != (GctNameRefList& x, GctNameRefList& y) -{ - return !(x == y); -} - -inline Pix GctNameRefList::first() const -{ - return (P == &NilGctNameRefListNode)? 0 : Pix(P); -} - -inline GctNameRef& GctNameRefList::operator () (Pix p) const -{ - return ((GctNameRefListNode*)p)->hd; -} - -inline void GctNameRefList::next(Pix& p) const -{ - if (p != 0) - { - p = Pix(((GctNameRefListNode*)p)->tl); - if (p == &NilGctNameRefListNode) p = 0; - } -} - -inline GctNameRefList::GctNameRefList(Pix p) -{ - P = (GctNameRefListNode*)p; - reference(P); -} - - - -//# 31 "GctNameRef.List.cc" 2 - - -GctNameRefListNode NilGctNameRefListNode; - -class init_NilGctNameRefListNode -{ -public: - inline init_NilGctNameRefListNode() - { - NilGctNameRefListNode.tl = &NilGctNameRefListNode; - NilGctNameRefListNode.ref = -1; - } -}; - -static init_NilGctNameRefListNode NilGctNameRefListNode_initializer; - -GctNameRefList& GctNameRefList::operator = (const GctNameRefList& a) -{ - reference(a.P); - dereference(P); - P = a.P; - return *this; -} - -GctNameRef GctNameRefList::pop() -{ - GctNameRef res = P->hd; - GctNameRefListNode* tail = P->tl; - reference(tail); - dereference(P); - P = tail; - return res; -} - -void GctNameRefList::set_tail(GctNameRefList& a) -{ - reference(a.P); - dereference(P->tl); - P->tl = a.P; -} - -GctNameRefList GctNameRefList::nth(int n) -{ - GctNameRefListNode* p; - for (p = P; n-- > 0; p = p->tl); - reference(p); - return GctNameRefList(p); -} - -GctNameRefList GctNameRefList::last() const -{ - GctNameRefListNode* p = P; - if (p != &NilGctNameRefListNode) while (p->tl != &NilGctNameRefListNode) p = p->tl; - reference(p); - return GctNameRefList(p); -} - -void GctNameRefList::append(GctNameRefList& l) -{ - GctNameRefListNode* p = P; - GctNameRefListNode* a = l.P; - reference(a); - if (p != &NilGctNameRefListNode) - { - while (p->tl != &NilGctNameRefListNode) p = p->tl; - p->tl = a; - } - else - P = a; -} - -int GctNameRefList::length() const -{ - int l = 0; - for (GctNameRefListNode* p = P; p != &NilGctNameRefListNode; p = p->tl) ++l; - return l; -} - -GctNameRef& GctNameRefList::operator [] (int n) -{ - GctNameRefListNode* p; - for (p = P; n-- > 0; p = p->tl); - return (p->hd); -} - -int operator == (GctNameRefList& x, GctNameRefList& y) -{ - GctNameRefListNode* a = x.P; - GctNameRefListNode* b = y.P; - - for (;;) - { - if (a == &NilGctNameRefListNode) - return b == &NilGctNameRefListNode; - else if (b == &NilGctNameRefListNode) - return 0; - else if (a->hd == b->hd) - { - a = a->tl; - b = b->tl; - } - else - return 0; - } -} - - -void GctNameRefList::apply(GctNameRefProcedure f) -{ - for(GctNameRefListNode* p = P; p != &NilGctNameRefListNode; p = p->tl) - (*f)((p->hd)); -} - -void GctNameRefList::subst(GctNameRef& old, GctNameRef& repl) -{ - for(GctNameRefListNode* p = P; p != &NilGctNameRefListNode; p = p->tl) - if (p->hd == old) - p->hd = repl; -} - -GctNameRef GctNameRefList::reduce(GctNameRefCombiner f, GctNameRef& base) -{ - GctNameRef r = base; - for(GctNameRefListNode* p = P; p != &NilGctNameRefListNode; p = p->tl) - r = (*f)(r, (p->hd)); - return r; -} - -int GctNameRefList::position(GctNameRef& targ) -{ - int l = 0; - GctNameRefListNode* p = P; - for (;;) - { - if (p == &NilGctNameRefListNode) - return -1; - else if (p->hd == targ) - return l; - else - { - ++l; - p = p->tl; - } - } -} - -int GctNameRefList::contains(GctNameRef& targ) const -{ - GctNameRefListNode* p = P; - for (;;) - { - if (p == &NilGctNameRefListNode) - return 0; - else if (p->hd == targ) - return 1; - else - p = p->tl; - } -} - -GctNameRefList GctNameRefList::find(GctNameRef& targ) -{ - GctNameRefListNode* p; - for (p = P; p != &NilGctNameRefListNode && !(p->hd == targ); p=p->tl); - reference(p); - return GctNameRefList(p); -} - -Pix GctNameRefList::seek(GctNameRef& targ) const -{ - GctNameRefListNode* p = P; - for (;;) - { - if (p == &NilGctNameRefListNode) - return 0; - else if (p->hd == targ) - return Pix(p); - else - p = p->tl; - } -} - -int GctNameRefList::owns(Pix i) const -{ - GctNameRefListNode* p = P; - for (;;) - { - if (p == &NilGctNameRefListNode) - return 0; - else if (Pix(p) == i) - return 1; - else - p = p->tl; - } -} - -GctNameRefList GctNameRefList::find(GctNameRefList& target) -{ - GctNameRefListNode* targ = target.P; - if (targ == &NilGctNameRefListNode) - return GctNameRefList(targ); - - GctNameRefListNode* p = P; - while (p != &NilGctNameRefListNode) - { - if (p->hd == targ->hd) - { - GctNameRefListNode* a = p->tl; - GctNameRefListNode* t = targ->tl; - for(;;) - { - if (t == &NilGctNameRefListNode) - { - reference(p); - return GctNameRefList(p); - } - else if (a == &NilGctNameRefListNode || !(a->hd == t->hd)) - break; - else - { - a = a->tl; - t = t->tl; - } - } - } - p = p->tl; - } - return GctNameRefList(&NilGctNameRefListNode); -} - -int GctNameRefList::contains(GctNameRefList& target) const -{ - GctNameRefListNode* targ = target.P; - if (targ == &NilGctNameRefListNode) - return 0; - - GctNameRefListNode* p = P; - while (p != &NilGctNameRefListNode) - { - if (p->hd == targ->hd) - { - GctNameRefListNode* a = p->tl; - GctNameRefListNode* t = targ->tl; - for(;;) - { - if (t == &NilGctNameRefListNode) - return 1; - else if (a == &NilGctNameRefListNode || !(a->hd == t->hd)) - break; - else - { - a = a->tl; - t = t->tl; - } - } - } - p = p->tl; - } - return 0; -} - -void GctNameRefList::del(GctNameRef& targ) -{ - GctNameRefListNode* h = P; - - for (;;) - { - if (h == &NilGctNameRefListNode) - { - P = h; - return; - } - else if (h->hd == targ) - { - GctNameRefListNode* nxt = h->tl; - reference(nxt); - dereference(h); - h = nxt; - } - else - break; - } - - GctNameRefListNode* trail = h; - GctNameRefListNode* p = h->tl; - while (p != &NilGctNameRefListNode) - { - if (p->hd == targ) - { - GctNameRefListNode* nxt = p->tl; - reference(nxt); - dereference(p); - trail->tl = nxt; - p = nxt; - } - else - { - trail = p; - p = p->tl; - } - } - P = h; -} - -void GctNameRefList::del(GctNameRefPredicate f) -{ - GctNameRefListNode* h = P; - for (;;) - { - if (h == &NilGctNameRefListNode) - { - P = h; - return; - } - else if ((*f)(h->hd)) - { - GctNameRefListNode* nxt = h->tl; - reference(nxt); - dereference(h); - h = nxt; - } - else - break; - } - - GctNameRefListNode* trail = h; - GctNameRefListNode* p = h->tl; - while (p != &NilGctNameRefListNode) - { - if ((*f)(p->hd)) - { - GctNameRefListNode* nxt = p->tl; - reference(nxt); - dereference(p); - trail->tl = nxt; - p = nxt; - } - else - { - trail = p; - p = p->tl; - } - } - P = h; -} - -void GctNameRefList::select(GctNameRefPredicate f) -{ - GctNameRefListNode* h = P; - for (;;) - { - if (h == &NilGctNameRefListNode) - { - P = h; - return; - } - else if (!(*f)(h->hd)) - { - GctNameRefListNode* nxt = h->tl; - reference(nxt); - dereference(h); - h = nxt; - } - else - break; - } - GctNameRefListNode* trail = h; - GctNameRefListNode* p = h->tl; - while (p != &NilGctNameRefListNode) - { - if (!(*f)(p->hd)) - { - GctNameRefListNode* nxt = p->tl; - reference(nxt); - dereference(p); - trail->tl = nxt; - p = nxt; - } - else - { - trail = p; - p = p->tl; - } - } - P = h; -} - -void GctNameRefList::reverse() -{ - GctNameRefListNode* l = &NilGctNameRefListNode; - GctNameRefListNode* p = P; - while (p != &NilGctNameRefListNode) - { - GctNameRefListNode* nxt = p->tl; - p->tl = l; - l = p; - p = nxt; - } - P = l; -} - - -GctNameRefList copy(GctNameRefList& x) -{ - GctNameRefListNode* a = x.P; - if (a == &NilGctNameRefListNode) - return GctNameRefList(a); - else - { - GctNameRefListNode* h = newGctNameRefListNode(a->hd); - GctNameRefListNode* trail = h; - for(a = a->tl; a != &NilGctNameRefListNode; a = a->tl) - { - GctNameRefListNode* n = newGctNameRefListNode(a->hd); - trail->tl = n; - trail = n; - } - trail->tl = &NilGctNameRefListNode; - return GctNameRefList(h); - } -} - - -GctNameRefList subst(GctNameRef& old, GctNameRef& repl, GctNameRefList& x) -{ - GctNameRefListNode* a = x.P; - if (a == &NilGctNameRefListNode) - return GctNameRefList(a); - else - { - GctNameRefListNode* h = new GctNameRefListNode; - h->ref = 1; - if (a->hd == old) - h->hd = repl; - else - h->hd = a->hd; - GctNameRefListNode* trail = h; - for(a = a->tl; a != &NilGctNameRefListNode; a = a->tl) - { - GctNameRefListNode* n = new GctNameRefListNode; - n->ref = 1; - if (a->hd == old) - n->hd = repl; - else - n->hd = a->hd; - trail->tl = n; - trail = n; - } - trail->tl = &NilGctNameRefListNode; - return GctNameRefList(h); - } -} - -GctNameRefList combine(GctNameRefCombiner f, GctNameRefList& x, GctNameRefList& y) -{ - GctNameRefListNode* a = x.P; - GctNameRefListNode* b = y.P; - if (a == &NilGctNameRefListNode || b == &NilGctNameRefListNode) - return GctNameRefList(&NilGctNameRefListNode); - else - { - GctNameRefListNode* h = newGctNameRefListNode((*f)(a->hd, b->hd)); - GctNameRefListNode* trail = h; - a = a->tl; - b = b->tl; - while (a != &NilGctNameRefListNode && b != &NilGctNameRefListNode) - { - GctNameRefListNode* n = newGctNameRefListNode((*f)(a->hd, b->hd)); - trail->tl = n; - trail = n; - a = a->tl; - b = b->tl; - } - trail->tl = &NilGctNameRefListNode; - return GctNameRefList(h); - } -} - -GctNameRefList reverse(GctNameRefList& x) -{ - GctNameRefListNode* a = x.P; - if (a == &NilGctNameRefListNode) - return GctNameRefList(a); - else - { - GctNameRefListNode* l = newGctNameRefListNode(a->hd); - l->tl = &NilGctNameRefListNode; - for(a = a->tl; a != &NilGctNameRefListNode; a = a->tl) - { - GctNameRefListNode* n = newGctNameRefListNode(a->hd); - n->tl = l; - l = n; - } - return GctNameRefList(l); - } -} - -GctNameRefList append(GctNameRefList& x, GctNameRefList& y) -{ - GctNameRefListNode* a = x.P; - GctNameRefListNode* b = y.P; - reference(b); - if (a != &NilGctNameRefListNode) - { - GctNameRefListNode* h = newGctNameRefListNode(a->hd); - GctNameRefListNode* trail = h; - for(a = a->tl; a != &NilGctNameRefListNode; a = a->tl) - { - GctNameRefListNode* n = newGctNameRefListNode(a->hd); - trail->tl = n; - trail = n; - } - trail->tl = b; - return GctNameRefList(h); - } - else - return GctNameRefList(b); -} - -void GctNameRefList::prepend(GctNameRefList& y) -{ - GctNameRefListNode* b = y.P; - if (b != &NilGctNameRefListNode) - { - GctNameRefListNode* h = newGctNameRefListNode(b->hd); - GctNameRefListNode* trail = h; - for(b = b->tl; b != &NilGctNameRefListNode; b = b->tl) - { - GctNameRefListNode* n = newGctNameRefListNode(b->hd); - trail->tl = n; - trail = n; - } - trail->tl = P; - P = h; - } -} - -GctNameRefList concat(GctNameRefList& x, GctNameRefList& y) -{ - GctNameRefListNode* a = x.P; - GctNameRefListNode* b = y.P; - if (a != &NilGctNameRefListNode) - { - GctNameRefListNode* h = newGctNameRefListNode(a->hd); - GctNameRefListNode* trail = h; - for(a = a->tl; a != &NilGctNameRefListNode; a = a->tl) - { - GctNameRefListNode* n = newGctNameRefListNode(a->hd); - trail->tl = n; - trail = n; - }; - for(;b != &NilGctNameRefListNode; b = b->tl) - { - GctNameRefListNode* n = newGctNameRefListNode(b->hd); - trail->tl = n; - trail = n; - } - trail->tl = &NilGctNameRefListNode; - return GctNameRefList(h); - } - else if (b != &NilGctNameRefListNode) - { - GctNameRefListNode* h = newGctNameRefListNode(b->hd); - GctNameRefListNode* trail = h; - for(b = b->tl; b != &NilGctNameRefListNode; b = b->tl) - { - GctNameRefListNode* n = newGctNameRefListNode(b->hd); - trail->tl = n; - trail = n; - } - trail->tl = &NilGctNameRefListNode; - return GctNameRefList(h); - } - else - return GctNameRefList(&NilGctNameRefListNode); -} - -GctNameRefList select(GctNameRefPredicate f, GctNameRefList& x) -{ - GctNameRefListNode* a = x.P; - GctNameRefListNode* h = &NilGctNameRefListNode; - while (a != &NilGctNameRefListNode) - { - if ((*f)(a->hd)) - { - h = newGctNameRefListNode(a->hd); - GctNameRefListNode* trail = h; - for(a = a->tl; a != &NilGctNameRefListNode; a = a->tl) - { - if ((*f)(a->hd)) - { - GctNameRefListNode* n = newGctNameRefListNode(a->hd); - trail->tl = n; - trail = n; - } - } - trail->tl = &NilGctNameRefListNode; - break; - } - else - a = a->tl; - } - return GctNameRefList(h); -} - -GctNameRefList remove(GctNameRefPredicate f, GctNameRefList& x) -{ - GctNameRefListNode* a = x.P; - GctNameRefListNode* h = &NilGctNameRefListNode; - while (a != &NilGctNameRefListNode) - { - if (!(*f)(a->hd)) - { - h = newGctNameRefListNode(a->hd); - GctNameRefListNode* trail = h; - for(a = a->tl; a != &NilGctNameRefListNode; a = a->tl) - { - if (!(*f)(a->hd)) - { - GctNameRefListNode* n = newGctNameRefListNode(a->hd); - trail->tl = n; - trail = n; - } - } - trail->tl = &NilGctNameRefListNode; - break; - } - else - a = a->tl; - } - return GctNameRefList(h); -} - -GctNameRefList remove(GctNameRef& targ, GctNameRefList& x) -{ - GctNameRefListNode* a = x.P; - GctNameRefListNode* h = &NilGctNameRefListNode; - while (a != &NilGctNameRefListNode) - { - if (!(a->hd == targ)) - { - h = newGctNameRefListNode(a->hd); - GctNameRefListNode* trail = h; - for(a = a->tl; a != &NilGctNameRefListNode; a = a->tl) - { - if (!(a->hd == targ)) - { - GctNameRefListNode* n = newGctNameRefListNode(a->hd); - trail->tl = n; - trail = n; - } - } - trail->tl = &NilGctNameRefListNode; - break; - } - else - a = a->tl; - } - return GctNameRefList(h); -} - -GctNameRefList map(GctNameRefMapper f, GctNameRefList& x) -{ - GctNameRefListNode* a = x.P; - GctNameRefListNode* h = &NilGctNameRefListNode; - if (a != &NilGctNameRefListNode) - { - h = newGctNameRefListNode((*f)(a->hd)); - GctNameRefListNode* trail = h; - for(a = a->tl; a != &NilGctNameRefListNode; a = a->tl) - { - GctNameRefListNode* n = newGctNameRefListNode((*f)(a->hd)); - trail->tl = n; - trail = n; - } - trail->tl = &NilGctNameRefListNode; - } - return GctNameRefList(h); -} - - -GctNameRefList merge(GctNameRefList& x, GctNameRefList& y, GctNameRefComparator f) -{ - GctNameRefListNode* a = x.P; - GctNameRefListNode* b = y.P; - - if (a == &NilGctNameRefListNode) - { - if (b == &NilGctNameRefListNode) - return GctNameRefList(&NilGctNameRefListNode); - else - return copy(y); - } - else if (b == &NilGctNameRefListNode) - return copy(x); - - GctNameRefListNode* h = new GctNameRefListNode; - h->ref = 1; - if ((*f)(a->hd, b->hd) <= 0) - { - h->hd = a->hd; - a = a->tl; - } - else - { - h->hd = b->hd; - b = b->tl; - } - - GctNameRefListNode* r = h; - - for(;;) - { - if (a == &NilGctNameRefListNode) - { - while (b != &NilGctNameRefListNode) - { - GctNameRefListNode* n = new GctNameRefListNode; - n->ref = 1; - n->hd = b->hd; - r->tl = n; - r = n; - b = b->tl; - } - r->tl = &NilGctNameRefListNode; - return GctNameRefList(h); - } - else if (b == &NilGctNameRefListNode) - { - while (a != &NilGctNameRefListNode) - { - GctNameRefListNode* n = new GctNameRefListNode; - n->ref = 1; - n->hd = a->hd; - r->tl = n; - r = n; - a = a->tl; - } - r->tl = &NilGctNameRefListNode; - return GctNameRefList(h); - } - else if ((*f)(a->hd, b->hd) <= 0) - { - GctNameRefListNode* n = new GctNameRefListNode; - n->ref = 1; - n->hd = a->hd; - r->tl = n; - r = n; - a = a->tl; - } - else - { - GctNameRefListNode* n = new GctNameRefListNode; - n->ref = 1; - n->hd = b->hd; - r->tl = n; - r = n; - b = b->tl; - } - } -} - -void GctNameRefList::sort(GctNameRefComparator f) -{ - // strategy: place runs in queue, merge runs until done - // This is often very fast - - if (P == &NilGctNameRefListNode || P->tl == &NilGctNameRefListNode) - return; - - int qlen = 250; // guess a good queue size, realloc if necessary - - GctNameRefListNode** queue = (GctNameRefListNode**)malloc(qlen * sizeof(GctNameRefListNode*)); - - GctNameRefListNode* h = P; - GctNameRefListNode* a = h; - GctNameRefListNode* b = a->tl; - int qin = 0; - - while (b != &NilGctNameRefListNode) - { - if ((*f)(a->hd, b->hd) > 0) - { - if (h == a) // minor optimization: ensure runlen >= 2 - { - h = b; - a->tl = b->tl; - b->tl = a; - b = a->tl; - } - else - { - if (qin >= qlen) - { - qlen *= 2; - queue = (GctNameRefListNode**)realloc(queue, qlen * sizeof(GctNameRefListNode*)); - } - queue[qin++] = h; - a->tl = &NilGctNameRefListNode; - h = a = b; - b = b->tl; - } - } - else - { - a = b; - b = b->tl; - } - } - - int count = qin; - queue[qin] = h; - if (++qin >= qlen) qin = 0; - int qout = 0; - - while (count-- > 0) - { - a = queue[qout]; - if (++qout >= qlen) qout = 0; - b = queue[qout]; - if (++qout >= qlen) qout = 0; - - if ((*f)(a->hd, b->hd) <= 0) - { - h = a; - a = a->tl; - } - else - { - h = b; - b = b->tl; - } - queue[qin] = h; - if (++qin >= qlen) qin = 0; - - for (;;) - { - if (a == &NilGctNameRefListNode) - { - h->tl = b; - break; - } - else if (b == &NilGctNameRefListNode) - { - h->tl = a; - break; - } - else if ((*f)(a->hd, b->hd) <= 0) - { - h->tl = a; - h = a; - a = a->tl; - } - else - { - h->tl = b; - h = b; - b = b->tl; - } - } - } - P = queue[qout]; - free(queue); -} - -int GctNameRefList::list_length() -{ - GctNameRefListNode* fast = P; - if (fast == &NilGctNameRefListNode) - return 0; - - GctNameRefListNode* slow = fast->tl; - if (slow == &NilGctNameRefListNode) - return 1; - - fast = slow->tl; - int n = 2; - - for (;;) - { - if (fast == &NilGctNameRefListNode) - return n; - else if (fast->tl == &NilGctNameRefListNode) - return n+1; - else if (fast == slow) - return -1; - else - { - n += 2; - fast = fast->tl->tl; - slow = slow->tl; - } - } -} - -void GctNameRefList::error(const char* msg) const -{ - (*lib_error_handler)("List", msg); -} - -int GctNameRefList::OK() const -{ - int v = P != 0; // have a node - // check that all nodes OK, even if circular: - - GctNameRefListNode* fast = P; - if (fast != &NilGctNameRefListNode) - { - v &= fast->ref != 0; - GctNameRefListNode* slow = fast->tl; - v &= slow->ref != 0; - if (v && slow != &NilGctNameRefListNode) - { - fast = slow->tl; - v &= fast->ref != 0; - while (v) - { - if (fast == &NilGctNameRefListNode) - break; - else if (fast->tl == &NilGctNameRefListNode) - break; - else if (fast == slow) - break; - else - { - v &= fast->ref != 0 && slow->ref != 0; - fast = fast->tl->tl; - slow = slow->tl; - } - } - } - } - if (!v) error ("invariant failure"); - return v; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p786.C b/gcc/testsuite/g++.old-deja/g++.mike/p786.C deleted file mode 100755 index c55d0c0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p786.C +++ /dev/null @@ -1,35 +0,0 @@ -// prms-id: 786 - -extern "C" void printf (char *, ...); -extern "C" void exit(int); -class C - { - int a; -public: - C() {a = 1;} - }; - -void func(const C& a, C& b) -{ - printf ("in const func\n"); - exit(1); -} - -void func(C& a, C& b) -{ - printf ("in non-const func\n"); -} - -void testit(const C& a, C& b) -{ - func(a,b); -} - -int main() -{ - C a; - C b; - - func(a,b); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p7865.C b/gcc/testsuite/g++.old-deja/g++.mike/p7865.C deleted file mode 100755 index 2cac1d5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p7865.C +++ /dev/null @@ -1,28 +0,0 @@ -// prms-id: 7865 - -int count; - -struct A { - A() { ++count; } - ~A() { --count; } -}; - -int foo() { return 1; } - -int bar() -{ - A a; - for (;;) { - A b; - if (foo()) - return 0; - if (foo()) - return 0; - } - return 0; -} - -int main() { - bar(); - return count; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p7868.C b/gcc/testsuite/g++.old-deja/g++.mike/p7868.C deleted file mode 100755 index d8ce95d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p7868.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// prms-id: 7868 - -struct DIAGTYP { -}; -struct DIAGTYP1 { - struct DIAGTYP; - void bar() { new struct DIAGTYP; } // ERROR - undefined - void foo() { new struct DIAGTYP1; } -}; - -int main () { - struct DIAGTYP; - struct DIAGTYP *lerror_desc; - lerror_desc= new struct DIAGTYP; // ERROR - undefined -} - -void foo () { - struct DIAGTYP *lerror_desc; - lerror_desc= new struct DIAGTYP; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p789.C b/gcc/testsuite/g++.old-deja/g++.mike/p789.C deleted file mode 100755 index 9cad4fd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p789.C +++ /dev/null @@ -1,28 +0,0 @@ -// prms-id: 789 - -extern "C" void printf (char *, ...); -struct foo -{ - static int count; - virtual void print (int i, int j) { printf ("foo[%d][%d] = %d\n", i, j, x); } - int x; - foo () { x = count++; } -}; -int foo::count; -struct bar : virtual public foo -{ - virtual void print (int i, int j) { printf ("bar[%d][%d] = %d\n", i, j, x); } -}; - -// bar array[3][3]; -foo array[3][3]; - -int main () -{ - for (int i = 0; i < 3; i++) - for (int j = 0; j < 3; j++) { -// printf("&a[%d][%d] = %x\n", i, j, (void *)&array[i][j]); - array[i][j].print (i, j); - } - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p789a.C b/gcc/testsuite/g++.old-deja/g++.mike/p789a.C deleted file mode 100755 index b0df9f6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p789a.C +++ /dev/null @@ -1,43 +0,0 @@ -// global and local multidimensional array objects are not getting -// constructors called on any dimension, other than the first. Also, -// the destructors are not being called. Seems odd, they probably -// used to work. :-( -// prms-id: 789 - -extern "C" void printf (char *, ...); -struct foo -{ - static int count; - void print (int i, int j) { printf ("foo[%d][%d] = %d\n", i, j, x); } - int x; - foo () { - x = count++; - printf("this %d = %x\n", x, (void *)this); - } - virtual ~foo () { - printf("this %d = %x\n", x, (void *)this); - --count; - } -}; -int foo::count; - - -int main () -{ - { - foo array[3][3]; - for (int i = 0; i < 3; i++) - { - for (int j = 0; j < 3; j++) - { - printf("&a[%d][%d] = %x\n", i, j, (void *)&array[i][j]); - } - } - // The count should be nine, if not, fail the test. - if (foo::count != 9) - return 1; - } - if (foo::count != 0) - return 1; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p7912.C b/gcc/testsuite/g++.old-deja/g++.mike/p7912.C deleted file mode 100755 index 40f45c4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p7912.C +++ /dev/null @@ -1,23 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* -// prms-id: 7912 - -int count = 0; - -class Foo { -public: - Foo() { ++count; }; - Foo(const Foo&) { ++count; }; - ~Foo() { --count; }; -}; - - -main() -{ - try { - throw Foo(); - } - catch (Foo object) { - } - return count; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p8009.C b/gcc/testsuite/g++.old-deja/g++.mike/p8009.C deleted file mode 100755 index e8a124b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p8009.C +++ /dev/null @@ -1,12 +0,0 @@ -// prms-id: 8009 - -class A { -public: - int i; -}; - -class B : public A { - B(); -}; - -B::B() : i (-1) {} // ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p8018.C b/gcc/testsuite/g++.old-deja/g++.mike/p8018.C deleted file mode 100755 index 37035bc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p8018.C +++ /dev/null @@ -1,85 +0,0 @@ -// prms-id: 8018 - -class RefCount { -private: - int nref; - -public: - RefCount() : nref(0) {} - ~RefCount() {} - - int nrefs() const { return nref; } - int reference() { - nref++; - return nref; - } - int unreference() { - nref--; - return nref; - } -}; - -class A : public RefCount { -public: - A() {} - ~A() {} -}; - -class RefA { -private: - A *p; - - void clear() { - if (p) { - p->unreference(); - if (!p->nrefs()) - delete p; - } - } - -public: - RefA(A* a) : p(a) { if (p) p->reference(); } - RefA(const RefA& a) : p(a.p) { if (p) p->reference(); } - ~RefA() { clear(); } - - A* operator->() { return p; } - - RefA& operator=(const RefA& a) { - clear(); - p=a.p; - if (p) - p->reference(); - return *this; - } - - RefA& operator=(A* a) { - clear(); - p=a; - if (p) - p->reference(); - return *this; - } -}; - -class AccRefA { -private: - RefA a; - -public: - AccRefA(A* ap) : a(ap) {} - AccRefA(const RefA& ar) : a(ar) {} - ~AccRefA() {} - - operator RefA&() { return a; } - RefA& result() { return a; } -}; - -int -main() { - RefA a1 = new A; - AccRefA aa1(a1); - RefA a3 = aa1; - - if (a1->nrefs() != 3) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p8039.C b/gcc/testsuite/g++.old-deja/g++.mike/p8039.C deleted file mode 100755 index fe58d09..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p8039.C +++ /dev/null @@ -1,14 +0,0 @@ -// prms-id: 8039 - -class C { -public: - int func (); -}; - -extern void bar(int*); - -int main() -{ - int (C::*mfp)() = &C::func; - bar((int*)mfp); // ERROR - no clear semantics -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p807.C b/gcc/testsuite/g++.old-deja/g++.mike/p807.C deleted file mode 100755 index 00c49e7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p807.C +++ /dev/null @@ -1,34 +0,0 @@ -// prms-id: 807 - -extern "C" int printf(const char*, ...); - -class B; - -class AX -{ - protected: - int x; - - public: - operator B(); -}; - - -class B -{ - private: - int x; - public: - B(const AX&); -}; - - -int foo(B& b); // ERROR - referenced below - - -int main() -{ - AX a; - foo(a); // ERROR - Ambiguous B(a) or a.operator B() // See ARM 12.3.2 - -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p807a.C b/gcc/testsuite/g++.old-deja/g++.mike/p807a.C deleted file mode 100755 index d7b797a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p807a.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: -// prms-id: 807 - -// See ARM page 275 Section 12.3.2 - -extern "C" void printf (char *, ...); -extern "C" void exit(int); - -class B; - -class A { -public: - A(B&); // ERROR - fn ref in err msg -}; - -class B { -public: - operator A(); // ERROR - fn ref in err msg -}; - -B b; -A a = b; // ERROR - should fail as it is ambigious. diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p811.C b/gcc/testsuite/g++.old-deja/g++.mike/p811.C deleted file mode 100755 index 07ab940..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p811.C +++ /dev/null @@ -1,549 +0,0 @@ -// This test case caused the compiler to abort at one point in time. -// Build don't link: -// Special g++ Options: -// prms-id: 811 - -class ostream; class streambuf; - -typedef long streamoff, streampos; - -struct _ios_fields { - streambuf *_strbuf; - ostream* _tie; - int _width; - unsigned long _flags; - char _fill; - unsigned char _state; - unsigned short _precision; -}; - - -enum state_value { _good = 0, _eof = 1, _fail = 2, _bad = 4 }; -enum open_mode { input=1, output=2, append=8 }; - - -class ios : public _ios_fields { - public: - enum io_state { goodbit=0, eofbit=1, failbit=2, badbit=4 }; - enum open_mode { - in=1, - out=2, - ate=4, - app=8, - trunc=16, - nocreate=32, - noreplace=64 }; - enum seek_dir { beg, cur, end}; - enum { skipws=01, left=02, right=04, internal=010, - dec=020, oct=040, hex=0100, - showbase=0200, showpoint=0400, uppercase=01000, showpos=02000, - scientific=04000, fixed=0100000, unitbuf=020000, stdio=040000, - dont_close=0x80000000 - }; - - ostream* tie() const { return _tie; } - ostream* tie(ostream* val) { ostream* save=_tie; _tie=val; return save; } - - - char fill() const { return _fill; } - char fill(char newf) { char oldf = _fill; _fill = newf; return oldf; } - unsigned long flags() const { return _flags; } - unsigned long flags(unsigned long new_val) { - unsigned long old_val = _flags; _flags = new_val; return old_val; } - unsigned short precision() const { return _precision; } - unsigned short precision(int newp) { - unsigned short oldp = _precision; _precision = (unsigned short)newp; - return oldp; } - unsigned long setf(unsigned long val) { - unsigned long oldbits = _flags; - _flags |= val; return oldbits; } - unsigned long setf(unsigned long val, unsigned long mask) { - unsigned long oldbits = _flags; - _flags = (_flags & ~mask) | (val & mask); return oldbits; } - unsigned long unsetf(unsigned long mask) { - unsigned long oldbits = _flags & mask; - _flags &= ~mask; return oldbits; } - int width() const { return _width; } - int width(long val) { long save = _width; _width = val; return save; } - - static const unsigned long basefield; - static const unsigned long adjustfield; - static const unsigned long floatfield; - - streambuf* rdbuf() const { return _strbuf; } - void clear(int state = 0) { _state = state; } - int good() const { return _state == 0; } - int eof() const { return _state & ios::eofbit; } - int fail() const { return _state & (ios::badbit|ios::failbit); } - int bad() const { return _state & ios::badbit; } - int rdstate() const { return _state; } - void set(int flag) { _state |= flag; } - operator void*() const { return fail() ? (void*)0 : (void*)this; } - int operator!() const { return fail(); } - - - void unset(state_value flag) { _state &= ~flag; } - void close(); - int is_open(); - int readable(); - int writable(); - - - protected: - ios(streambuf*sb) { _strbuf=sb; _state=0; _width=0; _fill=' '; - _flags=ios::skipws; _precision=6; } -}; - - - - -typedef ios::seek_dir _seek_dir; - - - - - - - - - - - - - - - - - - - - - - -//# 168 "/usr/latest/lib/g++-include/streambuf.h" 3 - - -struct __streambuf { - - int _flags; - char* _gptr; - char* _egptr; - char* _eback; - char* _pbase; - char* _pptr; - char* _epptr; - char* _base; - char* _ebuf; - struct streambuf *_chain; - - - - -}; - -struct streambuf : private __streambuf { - friend class ios; - friend class istream; - friend class ostream; - protected: - static streambuf* _list_all; - streambuf*& xchain() { return _chain; } - void _un_link(); - void _link_in(); - char* gptr() const { return _gptr; } - char* pptr() const { return _pptr; } - char* egptr() const { return _egptr; } - char* epptr() const { return _epptr; } - char* pbase() const { return _pbase; } - char* eback() const { return _eback; } - char* ebuf() const { return _ebuf; } - char* base() const { return _base; } - void xput_char(char c) { *_pptr++ = c; } - int xflags() { return _flags; } - int xflags(int f) { int fl = _flags; _flags = f; return fl; } - void xsetflags(int f) { _flags |= f; } - void gbump(int n) { _gptr += n; } - void pbump(int n) { _pptr += n; } - void setb(char* b, char* eb, int a=0); - void setp(char* p, char* ep) { _pbase=_pptr=p; _epptr=ep; } - void setg(char* eb, char* g, char *eg) { _eback=eb; _gptr=g; _egptr=eg; } - public: - static int flush_all(); - static void flush_all_linebuffered(); - virtual int underflow(); - virtual int overflow(int c = (-1) ); - virtual int doallocate(); - virtual streampos seekoff(streamoff, _seek_dir, int mode=ios::in|ios::out); - virtual streampos seekpos(streampos pos, int mode = ios::in|ios::out); - int sputbackc(char c); - int sungetc(); - streambuf(); - virtual ~streambuf(); - int unbuffered() { return _flags & 2 ? 1 : 0; } - int linebuffered() { return _flags & 0x4000 ? 1 : 0; } - void unbuffered(int i) - { if (i) _flags |= 2 ; else _flags &= ~2 ; } - void linebuffered(int i) - { if (i) _flags |= 0x4000 ; else _flags &= ~0x4000 ; } - int allocate() { - if (base() || unbuffered()) return 0; - else return doallocate(); } - virtual int sync(); - virtual int pbackfail(int c); - virtual int ungetfail(); - virtual streambuf* setbuf(char* p, int len); - int in_avail() { return _egptr - _gptr; } - int out_waiting() { return _pptr - _pbase; } - virtual int sputn(const char* s, int n); - virtual int sgetn(char* s, int n); - long sgetline(char* buf, int n, char delim, int putback_delim); - int sbumpc() { - if (_gptr >= _egptr && underflow() == (-1) ) return (-1) ; - else return *(unsigned char*)_gptr++; } - int sgetc() { - if (_gptr >= _egptr && underflow() == (-1) ) return (-1) ; - else return *(unsigned char*)_gptr; } - int snextc() { - if (++_gptr >= _egptr && underflow() == (-1) ) return (-1) ; - else return *(unsigned char*)_gptr; } - int sputc(int c) { - if (_pptr >= _epptr) return overflow(c); - return *_pptr++ = c, (unsigned char)c; } - int vscan(char const *fmt0, char* ap); - int vform(char const *fmt0, char* ap); - - - - - - -}; - -struct __file_fields { - char _fake; - char _shortbuf[1]; - short _fileno; - int _blksize; - char* _save_gptr; - char* _save_egptr; - long _offset; -}; - -class filebuf : public streambuf { - struct __file_fields _fb; - void init(); - public: - filebuf(); - filebuf(int fd); - filebuf(int fd, char* p, int len); - ~filebuf(); - filebuf* attach(int fd); - filebuf* open(const char *filename, const char *mode); - filebuf* open(const char *filename, int mode, int prot = 0664); - virtual int underflow(); - virtual int overflow(int c = (-1) ); - int is_open() { return _fb._fileno >= 0; } - int fd() { return is_open() ? _fb._fileno : (-1) ; } - filebuf* close(); - virtual int doallocate(); - virtual streampos seekoff(streamoff, _seek_dir, int mode=ios::in|ios::out); - int sputn(const char* s, int n); - int sgetn(char* s, int n); - virtual int sync(); - protected: - virtual int pbackfail(int c); - int is_reading() { return eback() != egptr(); } - char* cur_ptr() { return is_reading() ? gptr() : pptr(); } - - char* file_ptr() { return _fb._save_gptr ? _fb._save_egptr : egptr(); } - int do_flush(); - - virtual int sys_read(char* buf, int size); - virtual long sys_seek(long , _seek_dir); - virtual long sys_write(const void*, long); - virtual int sys_stat(void*); - virtual int sys_close(); -}; - - -inline int ios::readable() { return rdbuf()->_flags & 4 ; } -inline int ios::writable() { return rdbuf()->_flags & 8 ; } -inline int ios::is_open() {return rdbuf()->_flags & 4 +8 ;} - - - - -//# 25 "/usr/latest/lib/g++-include/iostream.h" 2 3 - - -class istream; class ostream; -typedef istream& (*__imanip)(istream&); -typedef ostream& (*__omanip)(ostream&); - -extern istream& ws(istream& ins); -extern ostream& flush(ostream& outs); -extern ostream& endl(ostream& outs); -extern ostream& ends(ostream& outs); - -class ostream : public ios -{ - void do_osfx(); - public: - ostream(); - ostream(streambuf* sb, ostream* tied=__null ); - ~ostream(); - - int opfx() { if (!good()) return 0; if (_tie) _tie->flush(); return 1; } - void osfx() { if (flags() & (ios::unitbuf|ios::stdio)) - do_osfx(); } - streambuf* ostreambuf() const { return _strbuf; } - ostream& flush(); - ostream& put(char c); - ostream& write(const char *s, int n); - ostream& write(const unsigned char *s, int n) { return write((char*)s, n);} - ostream& write(const void *s, int n) { return write((char*)s, n);} - ostream& seekp(streampos); - ostream& seekp(streamoff, _seek_dir); - streampos tellp(); - ostream& form(const char *format ...); - ostream& vform(const char *format, char* args); -}; - -extern ostream& operator<<(ostream&, char c); -inline ostream& operator<<(ostream& os, unsigned char c) -{ return os << (char)c; } - -extern ostream& operator<<(ostream&, const char *s); -inline ostream& operator<<(ostream& os, const unsigned char *s) -{ return os << (const char*)s; } - - -extern ostream& operator<<(ostream&, void *p); -extern ostream& operator<<(ostream&, int n); -extern ostream& operator<<(ostream&, long n); -extern ostream& operator<<(ostream&, unsigned int n); -extern ostream& operator<<(ostream&, unsigned long n); -inline ostream& operator<<(ostream& os, short n) {return os << (int)n;} -inline ostream& operator<<(ostream& os, unsigned short n) -{return os << (unsigned int)n;} -extern ostream& operator<<(ostream&, float n); -extern ostream& operator<<(ostream&, double n); -inline ostream& operator<<(ostream& os, __omanip func) { return (*func)(os); } -extern ostream& operator<<(ostream&, streambuf*); - -class istream : public ios -{ - int _gcount; - public: - istream(); - istream(streambuf* sb, ostream*tied=__null ); - ~istream(); - streambuf* istreambuf() const { return _strbuf; } - istream& get(char& c); - istream& get(unsigned char& c); - istream& read(char *ptr, int n); - istream& read(unsigned char *ptr, int n) { return read((char*)ptr, n); } - istream& read(void *ptr, int n) { return read((char*)ptr, n); } - - istream& getline(char* ptr, int len, char delim = '\n'); - istream& get(char* ptr, int len, char delim = '\n'); - istream& gets(char **s, char delim = '\n'); - int ipfx(int need) { - if (!good()) { set(ios::failbit); return 0; } - if (_tie && (need == 0 || rdbuf()->in_avail() < need)) _tie->flush(); - if (!need && (flags() & ios::skipws) && !ws(*this)) return 0; - return 1; - } - int ipfx0() { - if (!good()) { set(ios::failbit); return 0; } - if (_tie) _tie->flush(); - if ((flags() & ios::skipws) && !ws(*this)) return 0; - return 1; - } - int ipfx1() { - if (!good()) { set(ios::failbit); return 0; } - if (_tie && rdbuf()->in_avail() == 0) _tie->flush(); - return 1; - } - int get() { if (!ipfx1()) return (-1) ; - int ch = _strbuf->sbumpc(); - if (ch == (-1) ) set(ios::eofbit); - return ch; } - int peek() { if (!ipfx1()) return (-1) ; - int ch = _strbuf->sgetc(); - if (ch == (-1) ) set(ios::eofbit); - return ch; } - int gcount() { return _gcount; } - istream& ignore(int n=1, int delim = (-1) ); - istream& seekg(streampos); - istream& seekg(streamoff, _seek_dir); - streampos tellg(); - istream& putback(char ch) { - if (good() && _strbuf->sputbackc(ch) == (-1) ) clear(ios::badbit); - return *this;} - istream& unget() { - if (good() && _strbuf->sungetc() == (-1) ) clear(ios::badbit); - return *this;} - - istream& unget(char ch) { return putback(ch); } - int skip(int i); - -}; - -extern istream& operator>>(istream&, char*); -inline istream& operator>>(istream& is, unsigned char* p) -{ return is >> (char*)p; } - -extern istream& operator>>(istream&, char& c); -extern istream& operator>>(istream&, unsigned char& c); - -extern istream& operator>>(istream&, int&); -extern istream& operator>>(istream&, long&); -extern istream& operator>>(istream&, short&); -extern istream& operator>>(istream&, unsigned int&); -extern istream& operator>>(istream&, unsigned long&); -extern istream& operator>>(istream&, unsigned short&); -extern istream& operator>>(istream&, float&); -extern istream& operator>>(istream&, double&); -inline istream& operator>>(istream& is, __imanip func) { return (*func)(is); } - -inline ostream& ostream::put(char c) { _strbuf->sputc(c); return *this; } - -class iostream : public ios { - int _gcount; - public: - iostream(); - iostream(streambuf* sb, ostream*tied=__null ); - operator istream&() { return *(istream*)this; } - operator ostream&() { return *(ostream*)this; } - ~iostream(); - - istream& get(char& c) { return ((istream*)this)->get(c); } - istream& get(unsigned char& c) { return ((istream*)this)->get(c); } - istream& read(char *ptr, int n) { return ((istream*)this)->read(ptr, n); } - istream& read(unsigned char *ptr, int n) - { return ((istream*)this)->read((char*)ptr, n); } - istream& read(void *ptr, int n) - { return ((istream*)this)->read((char*)ptr, n); } - istream& getline(char* ptr, int len, char delim = '\n') - { return ((istream*)this)->getline(ptr, len, delim); } - istream& get(char* ptr, int len, char delim = '\n') - { return ((istream*)this)->get(ptr, len, delim); } - istream& gets(char **s, char delim = '\n') - { return ((istream*)this)->gets(s, delim); } - istream& ignore(int n=1, int delim = (-1) ) - { return ((istream*)this)->ignore(n, delim); } - int ipfx(int need) { return ((istream*)this)->ipfx(need); } - int ipfx0() { return ((istream*)this)->ipfx0(); } - int ipfx1() { return ((istream*)this)->ipfx1(); } - int get() { return _strbuf->sbumpc(); } - int peek() { return ipfx1() ? _strbuf->sgetc() : (-1) ; } - int gcount() { return _gcount; } - istream& putback(char ch) { return ((istream*)this)->putback(ch); } - istream& unget() { return ((istream*)this)->unget(); } - istream& seekg(streampos pos) { return ((istream*)this)->seekg(pos); } - istream& seekg(streamoff off, _seek_dir dir) - { return ((istream*)this)->seekg(off, dir); } - streampos tellg() { return ((istream*)this)->tellg(); } - - istream& unget(char ch) { return putback(ch); } - - - - int opfx() { return ((ostream*)this)->opfx(); } - void osfx() { ((ostream*)this)->osfx(); } - ostream& flush() { return ((ostream*)this)->flush(); } - ostream& put(char c) { return ((ostream*)this)->put(c); } - ostream& write(const char *s, int n) - { return ((ostream*)this)->write(s, n); } - ostream& write(const unsigned char *s, int n) - { return ((ostream*)this)->write((char*)s, n); } - ostream& write(const void *s, int n) - { return ((ostream*)this)->write((char*)s, n); } - ostream& form(const char *format ...); - ostream& vform(const char *format, char* args) - { return ((ostream*)this)->vform(format, args); } - ostream& seekp(streampos pos) { return ((ostream*)this)->seekp(pos); } - ostream& seekp(streamoff off, _seek_dir dir) - { return ((ostream*)this)->seekp(off, dir); } - streampos tellp() { return ((ostream*)this)->tellp(); } -}; - -extern istream cin; -extern ostream cout, cerr, clog; - -struct Iostream_init { } ; - -inline ios& dec(ios& i) -{ i.setf(ios::dec, ios::dec|ios::hex|ios::oct); return i; } -inline ios& hex(ios& i) -{ i.setf(ios::hex, ios::dec|ios::hex|ios::oct); return i; } -inline ios& oct(ios& i) -{ i.setf(ios::oct, ios::dec|ios::hex|ios::oct); return i; } - - -//# 7 "/usr/latest/lib/g++-include/stream.h" 2 3 - - -extern char* form(const char*, ...); - -extern char* dec(long, int=0); -extern char* dec(int, int=0); -extern char* dec(unsigned long, int=0); -extern char* dec(unsigned int, int=0); - -extern char* hex(long, int=0); -extern char* hex(int, int=0); -extern char* hex(unsigned long, int=0); -extern char* hex(unsigned int, int=0); - -extern char* oct(long, int=0); -extern char* oct(int, int=0); -extern char* oct(unsigned long, int=0); -extern char* oct(unsigned int, int=0); - -inline istream& WS(istream& str) { return ws(str); } - - -//# 9 "test.C" 2 - - -class Y { -public: - Y() {} - virtual const char *stringify() = 0; - virtual char *stringify2() const = 0; // ERROR - -}; - -class X: public Y { -public: - X(): Y() {} - char *stringify(); // ERROR - ok - const char *stringify2() const; // ERROR - ok -}; - -char * -X::stringify() const -{ // ERROR - ok - return "stringify"; -} - -const char * -X::stringify2() -{ // ERROR - ok - return "stringify2"; -} - -main() -{ - X x; - Y& y = x; - - cout << "x\n"; - cout << x.stringify() << '\n'; - cout << x.stringify2() << '\n'; - - cout << "y\n"; - cout << y.stringify() << '\n'; - cout << y.stringify2() << '\n'; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p8154.C b/gcc/testsuite/g++.old-deja/g++.mike/p8154.C deleted file mode 100755 index b68ea5d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p8154.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// Special g++ Options: -// prms-id: 8154 - -class QvFieldData; -class QvNode { - QvFieldData *fieldData; -}; -class QvGroup : public QvNode { - static QvFieldData *fieldData; -}; -class QvUnknownNode : public QvGroup -{ -public: - QvUnknownNode :: QvUnknownNode (); -private: - static QvFieldData *fieldData; - virtual QvFieldData *getFieldData() { return fieldData; } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p8155.C b/gcc/testsuite/g++.old-deja/g++.mike/p8155.C deleted file mode 100755 index 5be1491..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p8155.C +++ /dev/null @@ -1,147 +0,0 @@ -// prms-id: 8155 - -int fail = 1; - -class CMainWindow; -class CFrameWnd; -class CWnd; -class CCmdTarget; - -typedef void (CCmdTarget::*AFX_PMSG)( void); -typedef void (CWnd::*AFX_PMSGW)( void); - -struct AFX_MSGMAP_ENTRY { - unsigned int nMessage; - AFX_PMSG pfn; -}; - -struct AFX_MSGMAP { - const AFX_MSGMAP* pBaseMap; - const AFX_MSGMAP_ENTRY* lpEntries; -}; - -class CCmdTarget { -public: - CCmdTarget(); -private: - static AFX_MSGMAP_ENTRY _messageEntries[]; -protected: - static const AFX_MSGMAP messageMap; - virtual const AFX_MSGMAP* GetMessageMap() const; -}; - -const AFX_MSGMAP CCmdTarget::messageMap = { - 0, &CCmdTarget::_messageEntries[0] -}; - -const AFX_MSGMAP* CCmdTarget::GetMessageMap() const { - return &CCmdTarget::messageMap; -} - -AFX_MSGMAP_ENTRY CCmdTarget::_messageEntries[] = -{ - { 0, 0 } -}; - -CCmdTarget :: CCmdTarget() { } - -class CWnd : public CCmdTarget { -public: - CWnd(); - -protected: - void OnPaint(); -private: - static AFX_MSGMAP_ENTRY _messageEntries[]; -protected: - static const AFX_MSGMAP messageMap; - virtual const AFX_MSGMAP* GetMessageMap() const; -}; - -CWnd :: CWnd() { -} - -void CWnd :: OnPaint() { -} - -const AFX_MSGMAP* CWnd ::GetMessageMap() const { - return & CWnd ::messageMap; -} -const AFX_MSGMAP CWnd ::messageMap = { - & CCmdTarget ::messageMap, & CWnd ::_messageEntries[0] - }; -AFX_MSGMAP_ENTRY CWnd ::_messageEntries[] = { - {0, (AFX_PMSG)0 } }; - -class CFrameWnd : public CWnd { -public: - CFrameWnd(); -protected: -private: - static AFX_MSGMAP_ENTRY _messageEntries[]; -protected: - static const AFX_MSGMAP messageMap; - virtual const AFX_MSGMAP* GetMessageMap() const; -}; - -CFrameWnd :: CFrameWnd() { } - -const AFX_MSGMAP* CFrameWnd ::GetMessageMap() const { - return & CFrameWnd ::messageMap; -} -const AFX_MSGMAP CFrameWnd ::messageMap = { - & CWnd ::messageMap, & CFrameWnd ::_messageEntries[0] - }; -AFX_MSGMAP_ENTRY CFrameWnd ::_messageEntries[] = { - {0, (AFX_PMSG)0 } }; - -class CMainWindow : public CFrameWnd { -public: - CMainWindow(); - void OnPaint(); - void callProc(); -private: - static AFX_MSGMAP_ENTRY _messageEntries[]; -protected: - static const AFX_MSGMAP messageMap; - virtual const AFX_MSGMAP* GetMessageMap() const; -}; - -CMainWindow :: CMainWindow() -{ -} -void CMainWindow :: OnPaint() -{ - fail = 0; -} - -void CMainWindow :: callProc() -{ - const AFX_MSGMAP* pMessageMap; - const AFX_MSGMAP_ENTRY *lpEntry; - - pMessageMap = GetMessageMap(); - lpEntry = pMessageMap->lpEntries; - - if( lpEntry->nMessage == 100) { - (this->*lpEntry->pfn)(); - } -} - -const AFX_MSGMAP* CMainWindow ::GetMessageMap() const { - return & CMainWindow ::messageMap; -} -const AFX_MSGMAP CMainWindow ::messageMap = { - & CFrameWnd ::messageMap, & CMainWindow ::_messageEntries[0] - }; -AFX_MSGMAP_ENTRY CMainWindow ::_messageEntries[] = { - { 100, (AFX_PMSG)(AFX_PMSGW)(void (CWnd::*)(void))&CMainWindow::OnPaint }, - {0, (AFX_PMSG)0 } -}; - -int main( int argc, char **argv) { - CMainWindow myWindow; - - myWindow.callProc(); - return fail; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p8175.C b/gcc/testsuite/g++.old-deja/g++.mike/p8175.C deleted file mode 100755 index 8ae4058..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p8175.C +++ /dev/null @@ -1,14 +0,0 @@ -// prms-id: 8175 - -class AtoBoolC { -public: - AtoBoolC(const AtoBoolC& aBool); -private: - int myValue; -}; - -struct TestCase { - AtoBoolC is_call_on_unack; -}; - -static TestCase the_cases[] = { { 0 } }; // ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p8269.C b/gcc/testsuite/g++.old-deja/g++.mike/p8269.C deleted file mode 100755 index f886fe7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p8269.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// prms-id: 8269 - -typedef char* const char_ptr; - -class Foo_Bar { -public: - static char* const counter; -}; - -char_ptr Foo_Bar::counter = 0; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p8460.C b/gcc/testsuite/g++.old-deja/g++.mike/p8460.C deleted file mode 100755 index d4b3e8f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p8460.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: -// prms-id: 8460 - -class A { -public: - A(); - A(int) { } - A(const A&) { } -private: -}; - -int main() -{ - A a; - - a.A(1); // ERROR - cannot find name this way -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p8483.C b/gcc/testsuite/g++.old-deja/g++.mike/p8483.C deleted file mode 100755 index 8e6293f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p8483.C +++ /dev/null @@ -1,35 +0,0 @@ -// prms-id: 8483 - -int count; - -class A { -public: - A() { ++count; } - ~A() { } -}; - -class B { -private: - A b[2]; -}; - -class C { -public: -private: - A c[2][2]; -}; - -class D { -public: -private: - A d[2][2][2]; -}; - -int main() { - { A a; } - { B b; } - { C c; } - { D d; } - if (count != 15) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p8620.C b/gcc/testsuite/g++.old-deja/g++.mike/p8620.C deleted file mode 100755 index dc6f017..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p8620.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// prms-id: 8620 - -struct S { - long l; -}; - -typedef unsigned long l; - -void f() { - S* p; - if (p->l < 0) - return; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p8785.C b/gcc/testsuite/g++.old-deja/g++.mike/p8785.C deleted file mode 100755 index 4f5146b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p8785.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: -// prms-id: 8785 - -class Outer { -private: - int x; -public: - struct Inner { - int y; - void f( Outer * p, int i) { - p->x = i; // ERROR - - }; - void f( Outer & p) { - p.x = y; // ERROR - - }; - }; -}; - -int main() { - Outer::Inner A; - Outer Thing; - - A.f(Thing); - A.f(&Thing,2); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p8786.C b/gcc/testsuite/g++.old-deja/g++.mike/p8786.C deleted file mode 100755 index b5443c0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p8786.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: -// Special g++ Options: -O -// prms-id: 8786 - -class B { -public: - inline ~B(); -}; - -class D : public B { -public: - D(int); -}; - -int foo() { - D t(0); - - bool h = 1; - if (h) { - D p(0); - return 0; - } - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p8804.C b/gcc/testsuite/g++.old-deja/g++.mike/p8804.C deleted file mode 100755 index df787b8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p8804.C +++ /dev/null @@ -1,18 +0,0 @@ -// prms-id: 8804 - -extern "C" int printf (const char *, ...); - -struct Fails { - int i; - union { - union { - int c; - }; - }; -}; - -Fails d; - -int main() { - return &d.i == &d.c; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p8825.C b/gcc/testsuite/g++.old-deja/g++.mike/p8825.C deleted file mode 100755 index 11de74e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p8825.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// prms-id: 8825 - -class A { - typedef A x; -}; - -class B { - typedef B x; -}; - -class C : public A, public B { - typedef C x; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p9068.C b/gcc/testsuite/g++.old-deja/g++.mike/p9068.C deleted file mode 100755 index 67e879f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p9068.C +++ /dev/null @@ -1,21 +0,0 @@ -// prms-id: 9068 - -struct ostream { - void operator<< (int); // ERROR - fn ref in err msg -}; - -class C { -public: - static int& i (); - static int& i (int signatureDummy); -}; - -void foo (ostream& lhs, const C& rhs) -{ - lhs << rhs.i; // ERROR - no such i for any opr << () -} - -int& C::i () { - static int _i = 4711; - return _i; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p9129.C b/gcc/testsuite/g++.old-deja/g++.mike/p9129.C deleted file mode 100755 index d66dab5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p9129.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// Special g++ Options: -ansi -pedantic-errors -// prms-id: 9129 - -class Foo { -public: - int DoSomething(); -}; - -int (Foo::*pA)() = { &Foo::DoSomething }; -int (Foo::*X[1])(int) = { { &Foo::DoSomething } }; // ERROR - -int (Foo::*Y[])(int) = { { &Foo::DoSomething, &Foo::DoSomething, 0 } }; // ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p9206.C b/gcc/testsuite/g++.old-deja/g++.mike/p9206.C deleted file mode 100755 index 5c4b578..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p9206.C +++ /dev/null @@ -1,21 +0,0 @@ -// prms-id: 9206 - -class X { -public: - void xtest() { } -}; - -class Y { }; - -typedef void (X::*Xptr)(); -typedef void (Y::*Yptr)(); - -int main() { - X xx; - - Xptr xp = &X::xtest; - Yptr yp = reinterpret_cast<Yptr>(xp); - xp = reinterpret_cast<Xptr>(yp); - - (xx.*xp)(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p9506.C b/gcc/testsuite/g++.old-deja/g++.mike/p9506.C deleted file mode 100755 index 7c6e47b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p9506.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// prms-id: 9506 - -char * volatile p; -void foo() { - --p = 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p9706.C b/gcc/testsuite/g++.old-deja/g++.mike/p9706.C deleted file mode 100755 index c21f6c6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p9706.C +++ /dev/null @@ -1,33 +0,0 @@ -// Special g++ Options: -fexceptions -// excess errors test - XFAIL a29k-*-* sparc64-*-elf sh-*-* arm-*-pe**-* -// prms-id: 9706 - -#include <stdlib.h> - -int count, acount; - -void *operator new(size_t sz) { ++count; return malloc (sz); } -void operator delete(void *p) throw() { --count; free (p); } - -class A { -public: - A() { ++acount; } - A(const A&) { ++acount; } - ~A() { --acount; } -}; - -int main() { - int i; - - for( i = 0; i < 10; i++ ) { - try { - throw A(); - } - catch (A& a) { - } - } - if (acount) - return 1; - if (count) - return 2; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p9732a.C b/gcc/testsuite/g++.old-deja/g++.mike/p9732a.C deleted file mode 100755 index 13c8989..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p9732a.C +++ /dev/null @@ -1,36 +0,0 @@ -// prms-id: 9732 - -class A { - int i; -public: - A() { i = 1; } - ~A() { } -}; - -struct value { - A x,y,z; -}; - -int crash(const value* capt, value* jet) { - return capt == jet; -} - -class euler { -public: - value number() const { return _value; } - int distance(); - -private: - value _value; -}; - -int euler::distance() { - const value& capt = number(); - value jet; - return crash (&capt, &jet); -} - -int main() { - euler e; - return e.distance(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p9732b.C b/gcc/testsuite/g++.old-deja/g++.mike/p9732b.C deleted file mode 100755 index 59cfe4c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p9732b.C +++ /dev/null @@ -1,44 +0,0 @@ -// prms-id: 9732 - -int count; -int bail = 0; - -extern "C" void _exit (int); - -struct base { - base () { ++count; } - ~base () { --count; } - base(const base&o) { ++count; } -}; - -class D { -public: - ~D() { - if (bail++) - { - // On some Linux boxes, we run the dtor for d twice, - // once before exit, and once after! - abort (); - } - else - { - if (count != 0) - _exit (1); - _exit (0); - } - } -} d; - -base base_object; - -base base_returning_function (); - -const base& base_ref = base_returning_function (); - -int main () { -} - -base base_returning_function () { - base local_base_object; - return local_base_object; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p9732c.C b/gcc/testsuite/g++.old-deja/g++.mike/p9732c.C deleted file mode 100755 index 9ec773c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p9732c.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: -// prms-id: 9732 - -struct foo {}; -foo& x() { return foo(); } // WARNING - diff --git a/gcc/testsuite/g++.old-deja/g++.mike/p991.C b/gcc/testsuite/g++.old-deja/g++.mike/p991.C deleted file mode 100755 index 037227c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/p991.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: -// prms-id: 991 - -class Complex { -public: - double re; - double im; - Complex(double r,double i) : re(r), im(i) {} -}; - -Complex cos(const Complex&); - -extern "C" double cos (double); // not the same as the above -extern "C" double cosh (double); -extern "C" double sin (double); -extern "C" double sinh (double); - -Complex cos(const Complex& arg) { - double nr = cos(arg.re)*cosh(arg.im); - double ni = -sin(arg.re)*sinh(arg.im); - return Complex(nr,ni); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/parse1.C b/gcc/testsuite/g++.old-deja/g++.mike/parse1.C deleted file mode 100755 index 12e26cf..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/parse1.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: - -enum { name1 }; -struct name0 { }; -struct name1 { }; -struct derived1 : public name1 { }; -struct derived2 : public name0, public name1 { }; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/pmd1.C b/gcc/testsuite/g++.old-deja/g++.mike/pmd1.C deleted file mode 100755 index 260dc09..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/pmd1.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: - -class A; -struct XX { int A::*py; }; - -class A { -public: - int p; - void setp(XX *xp); -}; - -void A::setp(XX *xp) { xp->py = &A::p; } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/pmf1.C b/gcc/testsuite/g++.old-deja/g++.mike/pmf1.C deleted file mode 100755 index a39512f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/pmf1.C +++ /dev/null @@ -1,90 +0,0 @@ -// extern "C" printf(const char *, ...); - -class X -{ -public: - int a; - int f(int); -}; - -class Y -{ -public: - int b; - int c; - int g(int); -}; - -class MD : public X, public Y -{ -public: - int c; - int hf(int); -}; - -int MD::* pmi0 = &MD::a; -int MD::* pmi1 = &MD::b; -int MD::* pmi2 = &MD::c; - -int (MD::* pmf0)(int) = &MD::f; -int (MD::* pmf1)(int) = &MD::g; -int (MD::* pmf2)(int) = &MD::hf; - -int main() -{ - MD obj; - int fail = 0; - - obj.a = 1; - obj.b = 2; - obj.c = 3; - - obj.*pmi0 = 7; - obj.*pmi1 = 8; - obj.*pmi2 = 9; - - fail += (obj.*pmf0)(7); - fail += (obj.*pmf1)(8); - fail += (obj.*pmf2)(9); - -#if 0 - if (fail != 0) - printf ("failed %d tests\n", fail); - else - printf ("passed\n"); - - printf ("sizeof(X) = %d, sizeof(Y) = %d, sizeof(MD) = %d\n", - sizeof(X), sizeof(Y), sizeof(MD)); -#endif - return fail; -} - -int X::f(int v) -{ - if (v != a) - { -// printf ("failed in X::f, a = %d\n", a); - return 1; - } - return 0; -} - -int Y::g(int v) -{ - if (v != b) - { -// printf ("failed in Y::g, b = %d\n", b); - return 1; - } - return 0; -} - -int MD::hf(int v) -{ - if (v != c) - { -// printf ("failed in MD::hf, c = %d\n", c); - return 1; - } - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/pmf2.C b/gcc/testsuite/g++.old-deja/g++.mike/pmf2.C deleted file mode 100755 index 5a5aa06..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/pmf2.C +++ /dev/null @@ -1,54 +0,0 @@ -extern "C" int printf(const char *, ...); - -class A_table { - int c; -public: - A_table() { c = 3;} - virtual void func2(int &item) { printf("func2(%d,) c=%d\n",item,c);} -}; - -class B_table : private A_table { - typedef void (B_table::* B_ti_fn) (int &item); -public: - B_table() { j = 0x4321;} - virtual void call_fn_fn1(int &item, void *pfn1); - void func1(int &item) { printf("func1(%d)\n",item);} - virtual void func2(int &item) { printf("func2(%d) j=%d\n",item,j);} - int j; -}; - -class foo : public A_table { -public: - int i; - virtual ~foo(); - virtual void func2(int &item) { printf("func2(%d) i=%d\n",item,i);} -}; -foo::~foo() { i = 0;} - -class bar :public foo,public B_table { -public: - int w; - virtual ~bar(); - virtual void func2(int &item) { printf("func2(%d) w=%d\n",item,w);} -}; -bar::~bar() { w = 0;} - -void B_table::call_fn_fn1(int &item, void *pfn1) { - (this->*(*(B_ti_fn*)pfn1))(item); -} - -B_table b; -bar jar; - -int main() { - printf("ptr to B_table=%x, ptr to A_table=%x\n",&b,(A_table*)&b); - B_table::B_ti_fn z = &B_table::func1; - int j = 1; - jar.call_fn_fn1(j,(void *)&z); - j++; - z = &B_table::func2; - b.call_fn_fn1(j,(void *)&z); - j++; - jar.call_fn_fn1(j,(void *)&z); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/pmf3.C b/gcc/testsuite/g++.old-deja/g++.mike/pmf3.C deleted file mode 100755 index b38f0b7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/pmf3.C +++ /dev/null @@ -1,19 +0,0 @@ -struct Fooey { - void f(char* pX); - void f(int in); - void f(float fx); - void h(double dx); -}; - -void Fooey::f(char*) { } // ERROR - candidate -void Fooey::f(int) { } // ERROR - candidate -void Fooey::f(float) { } // ERROR - candidate -void Fooey::h(double zahl) { } - -int main() { - Fooey Blah; - void (Fooey::*pointer)(double); - pointer = &Fooey::f; // ERROR - don't call Fooey::h - (Blah.*pointer)(42.5); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/pmf4.C b/gcc/testsuite/g++.old-deja/g++.mike/pmf4.C deleted file mode 100755 index 02e5b10..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/pmf4.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: - -class NF { }; - -struct QF { - NF nf; - - typedef float(NF::* const NPF)() const; - - void p (NPF npf) const { - float q = (nf.*npf)(); - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/pmf5.C b/gcc/testsuite/g++.old-deja/g++.mike/pmf5.C deleted file mode 100755 index 685801a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/pmf5.C +++ /dev/null @@ -1,31 +0,0 @@ -// Special g++ Options: -w - -class A { - int j; -}; - -class Space { - int j; -}; - -typedef int (A::*pma)(); - -class B : public Space, virtual public A { -public: - int i; - int foo () { - return i!=42; - } - B() { - i = 42; - } -}; - -int call_base (A* ap, pma pmf) { - return (ap->*pmf)(); -} - -int main() { - B b; - return call_base ((A*)&b, (pma)&B::foo); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/pmf6.C b/gcc/testsuite/g++.old-deja/g++.mike/pmf6.C deleted file mode 100755 index 6848781..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/pmf6.C +++ /dev/null @@ -1,12 +0,0 @@ -// Special g++ Options: - -class S { -public: - void (S::*pmf)(); - void foo() { - pmf(); // WARNING - - } - static void foo1(S* sp) { - (sp->pmf)(); // ERROR - - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/pmf7.C b/gcc/testsuite/g++.old-deja/g++.mike/pmf7.C deleted file mode 100755 index b238171..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/pmf7.C +++ /dev/null @@ -1,29 +0,0 @@ -class A; -typedef int (A::*f_ptr) (void); - -class B { -public: - B() {}; ~B() {}; - B& dummy(f_ptr cb) { return *this; }; -}; - -template<class SP, class CB> SP& call_dummy(SP* sp, CB cb) { - sp->dummy(cb); - return *sp; -}; - -class A { -public: - A() {}; ~A() {}; - int ok() { return 0; }; - A& call_it(B* s) { - call_dummy(s, &A::ok); - return *this; - }; -}; - -int main() { - A a; B b; - a.call_it(&b); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/pmf8.C b/gcc/testsuite/g++.old-deja/g++.mike/pmf8.C deleted file mode 100755 index 41a4c01..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/pmf8.C +++ /dev/null @@ -1,31 +0,0 @@ -int fail; - -class A *ptr_a; - -class A { -public: - char space1[24]; - virtual void foo() { - if (this != ptr_a) - fail = 1; - } -}; - -class Space { - char space2[36]; -}; - -class B : public Space, public A { -} b; - -void (B::*pmf1)() = &A::foo; -void (A::*pmf2)() = &A::foo; - -int main() { - ptr_a = &b; - (b .* (void (B::*) ()) &A::foo) (); - (b .* pmf1) (); - (b .* pmf2) (); - (b .* &A::foo) (); - return fail; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/pmf9.C b/gcc/testsuite/g++.old-deja/g++.mike/pmf9.C deleted file mode 100755 index 800618f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/pmf9.C +++ /dev/null @@ -1,23 +0,0 @@ -class K { -public: - int f(int i) { return i; } -}; - -class Q { -public: - Q() { kp = new K; } - int g(); -private: - K * kp; -}; - -int Q::g() { - return (kp->f)(42); -}; - - -int main () { - Q q; - if (q.g() != 42) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/pt1.C b/gcc/testsuite/g++.old-deja/g++.mike/pt1.C deleted file mode 100755 index 2ef8556..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/pt1.C +++ /dev/null @@ -1,36 +0,0 @@ -template <class T, class V> -class A { -public: - A (T at, V av); - void print () { } -protected: - T t; - V v; -}; - -template <class T, class V> -A<T, V>::A (T at, V av) { - t = at; - v = av; -} - - -template <class T, class V> -class B: public virtual A<T, V> { -public: - B (T at, V av); - void print () { } -}; - -template <class T, class V> -B<T, V>::B (T at, V av) : A<T, V> (at, av) { } // gets bogus error - - -int main () { - int i = 2; - double x = 2; - - B<int, double> ab(i, x); - ab.print(); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/pt2.C b/gcc/testsuite/g++.old-deja/g++.mike/pt2.C deleted file mode 100755 index 7c96cab..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/pt2.C +++ /dev/null @@ -1,22 +0,0 @@ -class A { -public: -}; - -template <class T> -class B: public virtual A { -public: - B (); - ~B (); -}; - -template <class T> -B<T>::B () { } - -template <class T> -B<T>::~B () { } - -int main () { - B<int> ab; - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/pt3.C b/gcc/testsuite/g++.old-deja/g++.mike/pt3.C deleted file mode 100755 index a61d902..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/pt3.C +++ /dev/null @@ -1,29 +0,0 @@ -// Build don't link: - -template<class Repr> -class syHandle -{ -protected: - syHandle(); - ~syHandle(); - Repr *_repr; -}; - -template<class Repr> -syHandle<Repr>::~syHandle() -{ -} - -typedef char * char_ptr_t; - -template <> -syHandle<char_ptr_t>::syHandle() -{ - _repr = 0; -} - -template <> -syHandle<char_ptr_t>::~syHandle() -{ - _repr = 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/pt4.C b/gcc/testsuite/g++.old-deja/g++.mike/pt4.C deleted file mode 100755 index 7c1563e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/pt4.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: - -template <char* c> struct B { B() { } }; -B<0> bnull; // ERROR - could not convert template argument diff --git a/gcc/testsuite/g++.old-deja/g++.mike/ref1.C b/gcc/testsuite/g++.old-deja/g++.mike/ref1.C deleted file mode 100755 index 054c985..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/ref1.C +++ /dev/null @@ -1,21 +0,0 @@ -int count; - -struct base { - base () { ++count; } - ~base () { --count; } - base(const base&o) { ++count; } -}; - -base base_returning_function (); - -const base& base_ref = base_returning_function (); - -int main () { - if (count != 1) - return 1; -} - -base base_returning_function () { - base local_base_object; - return local_base_object; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/rtti1.C b/gcc/testsuite/g++.old-deja/g++.mike/rtti1.C deleted file mode 100755 index e44c5fa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/rtti1.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: - -#include <typeinfo> -#include <iostream.h> diff --git a/gcc/testsuite/g++.old-deja/g++.mike/rtti2.C b/gcc/testsuite/g++.old-deja/g++.mike/rtti2.C deleted file mode 100755 index 0c8b8b0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/rtti2.C +++ /dev/null @@ -1,5 +0,0 @@ -#include <typeinfo> - -int main() { - typeid(bool); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/rtti3.C b/gcc/testsuite/g++.old-deja/g++.mike/rtti3.C deleted file mode 100755 index a250a26..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/rtti3.C +++ /dev/null @@ -1,23 +0,0 @@ -class base { -public: - virtual ~base() {} - virtual void m1() = 0; - virtual void m2() = 0; -}; - -class intermediate : public virtual base { -public: - virtual ~intermediate() {} - virtual void m1() {} - virtual void m2() {} -}; - -class derived : public intermediate { -public: - virtual int IwantedThisMethod() { return 0; } - virtual int ButIgotThisOne() { return 1; } -}; - -int main() { - return derived().IwantedThisMethod(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/s9959.C b/gcc/testsuite/g++.old-deja/g++.mike/s9959.C deleted file mode 100755 index 654f7d5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/s9959.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: - -class A { -protected: - int aData; -}; - -class B : public A { -public: - virtual void func1() { - A::aData = 1; - } -}; - -class C : virtual public B { -public: - virtual void func1(void) { - A::aData = 2; - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/scast1.C b/gcc/testsuite/g++.old-deja/g++.mike/scast1.C deleted file mode 100755 index 11666b4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/scast1.C +++ /dev/null @@ -1,7 +0,0 @@ -class A {}; -class C {}; - -int main() { - A* a = 0; - C* c = static_cast<C*>(a); // ERROR - bad static cast -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/temp.C b/gcc/testsuite/g++.old-deja/g++.mike/temp.C deleted file mode 100755 index 5a1ce67..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/temp.C +++ /dev/null @@ -1,31 +0,0 @@ -extern "C" int printf(const char *, ...); -extern "C" const char *getenv(const char *); - -class T { - int i; -public: - T() { - i = 1; - printf("T() at %x\n", this); - } - T(const T& o) { - i = o.i; - printf("T(const T&) at %x <-- %x\n", this, &o); - } - T operator +(const T& o) { - T r; - r.i = this->i + o.i; - return r; - } - operator int () { - return i; - } - ~T() { printf("~T() at %x\n", this); } -} s, b; - -int foo() { return getenv("TEST") == 0; } - -int main() { - int i = foo() ? s+b : s; - return i != 2; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/thunk1.C b/gcc/testsuite/g++.old-deja/g++.mike/thunk1.C deleted file mode 100755 index 9780c05..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/thunk1.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// Special g++ Options: -fvtable-thunks - -struct C1 -{ - virtual ~C1(); -}; - -struct C2 : public virtual C1 -{ - virtual ~C2(); -}; - -struct C3 : public virtual C2 -{ - virtual ~C3(); -}; - -C3::~C3() {} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/thunk2.C b/gcc/testsuite/g++.old-deja/g++.mike/thunk2.C deleted file mode 100755 index 9bc4558..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/thunk2.C +++ /dev/null @@ -1,39 +0,0 @@ -// Special g++ Options: -fvtable-thunks - -#include <typeinfo> - -int state; -int fail; - -class A { -public: - A() { - if (++state != 1) - fail = 1; - } - virtual int foo() { - if (++state != 2) - fail = 1; - } - virtual ~A() { - if (++state != 3) - fail = 1; - } -}; - -A* bar() { - return new A; -} - -main() { - A *aptr = bar(); - aptr->foo(); - if (dynamic_cast <void*> (aptr) != aptr) - fail = 1; - if (typeid (*aptr) != typeid (A)) - fail = 1; - delete aptr; - if (++state != 4) - fail = 1; - return fail; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/thunk3.C b/gcc/testsuite/g++.old-deja/g++.mike/thunk3.C deleted file mode 100755 index 9a52c9d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/thunk3.C +++ /dev/null @@ -1,35 +0,0 @@ -// Special g++ Options: -fvtable-thunks - -int state; -int fail; - -class A { -public: - A() { - if (++state != 1) - fail = 1; - } - virtual int foo() { - if (++state != 2) - fail = 1; - } - virtual ~A() { - if (++state != 3) - fail = 1; - } -}; - -A* bar() { - return new A; -} - -main() { - A *aptr = bar(); - aptr->foo(); - if (dynamic_cast <void*> (aptr) != aptr) - fail = 1; - delete aptr; - if (++state != 4) - fail = 1; - return fail; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/unroll1.C b/gcc/testsuite/g++.old-deja/g++.mike/unroll1.C deleted file mode 100755 index 90f37f1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/unroll1.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// Special g++ Options: -g -O -funroll-loops - -struct A { - inline ~A() { } -}; - -void foo (A) { - while (1) - A bar; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/virt1.C b/gcc/testsuite/g++.old-deja/g++.mike/virt1.C deleted file mode 100755 index 2848317..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/virt1.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: - -struct S0 { virtual void f1 () { } }; - -struct S1 : virtual public S0 { virtual void f1 () { } }; - -struct S2 : public S1 { virtual void f1 () { } }; - -struct S3 : virtual public S0 { virtual void f1 () { } }; - -struct S4 : public S3 { }; - -void creator () { new S4; } diff --git a/gcc/testsuite/g++.old-deja/g++.mike/virt2.C b/gcc/testsuite/g++.old-deja/g++.mike/virt2.C deleted file mode 100755 index 612d07e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/virt2.C +++ /dev/null @@ -1,25 +0,0 @@ -struct S0 { - virtual int is_kind_of_S1 () const { return 0; } - virtual void dummy () { } -}; - -struct S1 : virtual public S0 { - virtual int is_kind_of_S1 () const { return 1; } - virtual void dummy () { } -}; - -struct S2 : virtual public S0 { - virtual void dummy () { } -}; - -struct S3 : public S2, public S1 { - virtual void dummy () { } -}; - -static struct S0 *var = new S3 (); - -int main () { - if (var->is_kind_of_S1() != 1) - return 1; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/virt3.C b/gcc/testsuite/g++.old-deja/g++.mike/virt3.C deleted file mode 100755 index de3ea3d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/virt3.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: - -class B { -public: - int Bi; - virtual int g() { }; -}; - -class D : private B { - int Di; -}; - -class E : public virtual D, public B { - int Ei; -}; // WARNING - direct base inaccessible due to ambiguity - -E e; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/virt4.C b/gcc/testsuite/g++.old-deja/g++.mike/virt4.C deleted file mode 100755 index 9750af6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/virt4.C +++ /dev/null @@ -1,27 +0,0 @@ -// Special g++ Options: - -void Foo () {} - -class B { -public: - virtual void foo() = 0; -}; - -class D: virtual public B { -public: - void foo() { Foo(); } -}; - -class D1: public D {}; - -class D2: public D {}; - -class D1_2: public D1, public D2 { -public: - void foo() { D1::foo(); D2::foo(); } -}; - -main() { - D1_2 h; - h.foo(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/virt5.C b/gcc/testsuite/g++.old-deja/g++.mike/virt5.C deleted file mode 100755 index dac85cc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/virt5.C +++ /dev/null @@ -1,53 +0,0 @@ -// Ensure that virtual base upcast and downcasting works on this -// conversions during virtual function dispatch at ctor/dtor time -// when dynamic vtable fixups for deltas are needed. - -int fail = 0; - -struct BASE1 { - virtual ~BASE1 () { } -}; - -class MID; - -class BASE2 { -public: - virtual MID *VFN (){ return 0; } -}; - -class MIBASE : public BASE1, public BASE2 { }; - -class VBB : public MIBASE { -public: - virtual long get_STATE () const = 0; - void print_STATE() { if (get_STATE () != 87654321) fail = 1; } -}; - -class VBD : public virtual VBB { - long STATE; -public: - long get_STATE() const { return STATE; } - VBD() { STATE = 87654321; } - ~VBD() { STATE = 87654321; } -}; - -class MID : public virtual VBD { -public: - MID () { print_STATE(); } - ~MID () { print_STATE(); } - virtual MID *VFN() { return this; } -}; - -class LAST : public MID { -public: - LAST () { print_STATE(); } - ~LAST () { print_STATE(); } -}; - -int main() { - MIBASE *o = new LAST; - MID *p = o->VFN(); - p->print_STATE(); - delete o; - return fail; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/virt6.C b/gcc/testsuite/g++.old-deja/g++.mike/virt6.C deleted file mode 100755 index 61491ce..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/virt6.C +++ /dev/null @@ -1,39 +0,0 @@ -// This testcase ensures that we can build vtable names for complex MI -// classes. - -class C_A { -public: - virtual int foo(void *) { } -} a; - -class C_B : public C_A { -} b; - -class C_C : public C_A { -} c; - -class C_D : public C_A { -} d; - -class C_E : public C_C, public C_B { -public: - virtual int foo(void *) { } -} e; - -class C_F : public C_D, public C_B { -public: - virtual int foo(void *) { } -} f; - -class C_G : public C_A { -public: - virtual int foo(void *) { } -} g; - -class C_H : public C_G, public C_E, public C_F { -public: - virtual int foo(void *) { } -} h; - -int main() { -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/warn1.C b/gcc/testsuite/g++.old-deja/g++.mike/warn1.C deleted file mode 100755 index 206042c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/warn1.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// Special g++ Options: -Wall - -typedef char * charptr; -char c[]={'A','B','C','D'}; -int i=int(&c); -int *pp=&i; -void foo() { } -int main() -{ - charptr(*pp)++; // WARNING - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/warn2.C b/gcc/testsuite/g++.old-deja/g++.mike/warn2.C deleted file mode 100755 index f865f1e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/warn2.C +++ /dev/null @@ -1,26 +0,0 @@ -// Build don't link: -// Special g++ Options: -Wall - -enum Boolean { - Ok = 0, - NotOk = 1, -}; - -enum OpResult { - Succeeded = 0, - TempFail = 1, - PermFail = 2, -}; - -OpResult fn1() { - return TempFail; -} - -extern void foo(); - -int -main () { - if (fn1() == Ok) { // WARNING - - foo(); - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/warn3.C b/gcc/testsuite/g++.old-deja/g++.mike/warn3.C deleted file mode 100755 index 7adc8a1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/warn3.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// Special g++ Options: -Wall - -class B { -public: - B(int) { } -}; - -class D : public B { - int member; - D() : member(0), B(member) { } // WARNING - reordered -}; diff --git a/gcc/testsuite/g++.old-deja/g++.mike/warn4.C b/gcc/testsuite/g++.old-deja/g++.mike/warn4.C deleted file mode 100755 index 9b959b0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/warn4.C +++ /dev/null @@ -1 +0,0 @@ -void foo (int a, int a) { } // ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.mike/warn5.C b/gcc/testsuite/g++.old-deja/g++.mike/warn5.C deleted file mode 100755 index 742c4bc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/warn5.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// Special g++ Options: -Wpointer-arith - -double X(const double x) { return x; } -double Y() { return 1.0; } -double Z() { return 2.0; } - -struct A { - void bar() { } - void foo() { } -}; - -typedef void (A::*pmf)(); - -static int mememe = &A::foo - &A::bar; // WARNING - -pmf b = &A::foo-1; // WARNING - - -int main() { - double y; - y=X(Y-Z); // WARNING - -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/warn6.C b/gcc/testsuite/g++.old-deja/g++.mike/warn6.C deleted file mode 100755 index 381a342..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/warn6.C +++ /dev/null @@ -1,42 +0,0 @@ -// Build don't link: -// Special g++ Options: -Woverloaded-virtual - -struct B4 { - virtual void bothfardiff(float); // WARNING - was hidden -}; - -struct B3 : public B4 { -}; - -struct B2 { -}; - -struct B { - virtual void baseonly(int); - - virtual void bothsame(int); - - virtual void bothdiff(float); // WARNING - was hidden - - virtual void both2same(int); - virtual void both2same(float); - - virtual void both12diff(int); - virtual void both12diff(float); // WARNING - was hidden -}; - -struct D : public B, public B2, public B3 { - virtual void derivedonly(int); - - virtual void bothsame(int); - - virtual void bothdiff(int); // WARNING - - - virtual void both2same(int); - virtual void both2same(float); - - virtual void both12diff(int); // WARNING - - - virtual void bothfardiff(int); // WARNING - -}; - diff --git a/gcc/testsuite/g++.old-deja/g++.mike/warn7.C b/gcc/testsuite/g++.old-deja/g++.mike/warn7.C deleted file mode 100755 index 6772f95..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/warn7.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// Special g++ Options: -Wall - -const int& foo() { - extern int bar; - - return bar; -} - -const int* baz() { - extern int bar; - - return &bar; -} diff --git a/gcc/testsuite/g++.old-deja/g++.mike/warn8.C b/gcc/testsuite/g++.old-deja/g++.mike/warn8.C deleted file mode 100755 index 3c61c8e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.mike/warn8.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: - -struct foo { - bool test(); -}; -bool func(); - -void test() { - foo A; - bool (foo::* pmf)() = &foo::test; - bool (*pf)() = func; - - if (A.test) ; // WARNING - - if (func) ; // WARNING - - if (bool(A.test)) ; // WARNING - - if (bool(func)) ; - if (pmf) ; - if (pf) ; -} diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/.cvsignore b/gcc/testsuite/g++.old-deja/g++.niklas/.cvsignore deleted file mode 100755 index 7abff1d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -config.status diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/Makefile.in b/gcc/testsuite/g++.old-deja/g++.niklas/Makefile.in deleted file mode 100755 index d5eb149..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/Makefile.in +++ /dev/null @@ -1,12 +0,0 @@ -#### host, target, and site specific Makefile frags come in here. - -srcdir = . - -# Nothing to do... -all: - -clean: - -rm -f *.o *.diff *~ *.bad core - -distclean: clean - -rm -f Makefile config.status diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/README b/gcc/testsuite/g++.old-deja/g++.niklas/README deleted file mode 100755 index b729b9a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/README +++ /dev/null @@ -1,18 +0,0 @@ -Date: Fri, 22 Jan 93 15:20:55 +0100 -From: niklas@della.appli.se (Niklas Hallqvist) -Message-Id: <9301221420.AA18489@della.appli.se> -Subject: g++.niklas DejaGnu sharfile - -These are my test-cases in DejaGnu format. - -The tests which have "passed" in the groups variable do actually pass -on my local G++ so if there is a specific "passed" test you'd like to -see working in your version of G++ but it doesn't pass, contact me and -I'll dig up the specific patches you'll need. - -I have about a hundred or so unsorted test-cases which are not -included in this archive, due to lack of time and boredom stemming -from writing .exp-files. But they will show up eventually. - -All these files, and this file are Copyright FSF 1993, and fall under -the GPL version 2.0 or later. diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/configure.in b/gcc/testsuite/g++.old-deja/g++.niklas/configure.in deleted file mode 100755 index 2ec1354..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/configure.in +++ /dev/null @@ -1,15 +0,0 @@ -# This file is a shell script fragment that supplies the information -# necessary to tailor a template configure script into the configure -# script appropriate for this directory. For more information, check -# any existing configure script. - -srctrigger=t131.exp -srcname="DejaGnu" - -# per-host: - -# per-target: - -target_makefile_frag=../config/mt-${target_alias} - -# post-target: diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t113.C b/gcc/testsuite/g++.old-deja/g++.niklas/t113.C deleted file mode 100755 index fdbf455..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t113.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// GROUPS passed niklas explicit-construct virtual-base -struct A {}; -struct B : virtual A { B(); }; -struct C : B {}; -struct D { D(C&); }; -D d(C()); diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t114.C b/gcc/testsuite/g++.old-deja/g++.niklas/t114.C deleted file mode 100755 index c5b458a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t114.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: -// GROUPS passed niklas explicit-construct -struct A { A(); }; -struct B { B(A&); }; -B b(A()); diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t115.C b/gcc/testsuite/g++.old-deja/g++.niklas/t115.C deleted file mode 100755 index 7ec5b46..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t115.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// GROUPS passed niklas virtual-base -struct A { A(); virtual void f(); }; -struct B : virtual A { B(); }; -struct C : B {}; -C *c = new C; - diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t118.C b/gcc/testsuite/g++.old-deja/g++.niklas/t118.C deleted file mode 100755 index 255747f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t118.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// GROUPS niklas pt -template <class T> class C1 {}; -class C1<int> C1_int_object; diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t119.C b/gcc/testsuite/g++.old-deja/g++.niklas/t119.C deleted file mode 100755 index 522e514..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t119.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// GROUPS passed niklas i386 -unsigned long foo(unsigned long x) -{ - return x & ~0104000; -} diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t120.C b/gcc/testsuite/g++.old-deja/g++.niklas/t120.C deleted file mode 100755 index c041580..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t120.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: -// GROUPS passed niklas ellipsis -typedef void (*T) (...); -void f (); -struct S { void g (T); void h() { g(f); } };// ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t121.C b/gcc/testsuite/g++.old-deja/g++.niklas/t121.C deleted file mode 100755 index e99c940..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t121.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: -// GROUPS passed niklas ellipsis -void f (); -void g1 (void (*) (...)); void h1 () { g1 (f); }// ERROR - .* -struct S { void g2 (void (*) (...)); void h2 () { g2 (f); } };// ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t122.C b/gcc/testsuite/g++.old-deja/g++.niklas/t122.C deleted file mode 100755 index a4ec045..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t122.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed niklas dwarf -struct S { S(); }; - -inline void -foo ( - S a, - S b - ) -{} - -void -bar (S s1, S s2) -{ foo (s1, s2); } diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t123.C b/gcc/testsuite/g++.old-deja/g++.niklas/t123.C deleted file mode 100755 index 37db787..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t123.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// GROUPS passed niklas dwarf -struct S { S(); }; -void f(S) {} diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t124.C b/gcc/testsuite/g++.old-deja/g++.niklas/t124.C deleted file mode 100755 index ba1aa55..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t124.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed niklas nested-types static-members -struct A -{ - static void f (); - struct B - { - static void g () { f (); } - }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t125.C b/gcc/testsuite/g++.old-deja/g++.niklas/t125.C deleted file mode 100755 index e5947ef..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t125.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed niklas nested-types static-members -struct A -{ - static void f (); - struct B - { - void h () { f (); } - }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t126.C b/gcc/testsuite/g++.old-deja/g++.niklas/t126.C deleted file mode 100755 index 7313a6a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t126.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS passed niklas nested-types static-members -struct A -{ - static void f (); - struct B - { - void g () {} - void h () {} - }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t127.C b/gcc/testsuite/g++.old-deja/g++.niklas/t127.C deleted file mode 100755 index a53d2d4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t127.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// GROUPS passed niklas nested-types -struct A { struct B { ~B (); }; }; -A::B::~B () {} diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t128.C b/gcc/testsuite/g++.old-deja/g++.niklas/t128.C deleted file mode 100755 index 7ada1dc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t128.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: -// GROUPS niklas uncaught default-construct -struct A { A (int); }; -struct B : A {}; // ERROR - -void f () { B (0); }// ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t129.C b/gcc/testsuite/g++.old-deja/g++.niklas/t129.C deleted file mode 100755 index 11e316a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t129.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// GROUPS passed niklas nested-types -struct X { -struct A { A (int); }; -struct B : A { B (int a) : A (a) {} }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t130.C b/gcc/testsuite/g++.old-deja/g++.niklas/t130.C deleted file mode 100755 index 7b2fb43..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t130.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// GROUPS passed niklas nested-types -struct A; -struct B { struct A { A(int); }; struct C : A { C() : A (0) {} }; }; diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t131.C b/gcc/testsuite/g++.old-deja/g++.niklas/t131.C deleted file mode 100755 index 75283a8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t131.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// GROUPS passed niklas static-members -struct A { static A a; }; -A f () { return A::a; } diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t132.C b/gcc/testsuite/g++.old-deja/g++.niklas/t132.C deleted file mode 100755 index 18cd01c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t132.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: -// GROUPS passed niklas construct-destruct -struct S { S (); ~S (); }; -void f () { while (1) S s; } - diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t133.C b/gcc/testsuite/g++.old-deja/g++.niklas/t133.C deleted file mode 100755 index f79c6db..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t133.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// GROUPS passed niklas nested-types -struct A { struct B { void operator = (const B&); }; }; -void A::B::operator = (const B&) {} diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t134.C b/gcc/testsuite/g++.old-deja/g++.niklas/t134.C deleted file mode 100755 index faa1555..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t134.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// GROUPS passed niklas static-members -extern "C" int f (); -struct A { static void f () {} }; diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t135.C b/gcc/testsuite/g++.old-deja/g++.niklas/t135.C deleted file mode 100755 index 138c278..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t135.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't link: -// GROUPS niklas pt friend -// excess errors test - XFAIL *-*-* -template <class T> class C1 -{ -public: - void diddle_C2 (); -}; - -class C2 -{ - int data_member; - friend class C1; -}; - -class C2 C2_object; - -template <class T> void C1<T>::diddle_C2 () -{ - C2_object.data_member = 99; -} - -C1<int> C1_int_object; - -void foobar () -{ - C1_int_object.diddle_C2 (); -} diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t136.C b/gcc/testsuite/g++.old-deja/g++.niklas/t136.C deleted file mode 100755 index 4890f61..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t136.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -// GROUPS niklas overloading -extern "C" void f (char*); -void f (const char*) {} diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t137.C b/gcc/testsuite/g++.old-deja/g++.niklas/t137.C deleted file mode 100755 index 9a64f0f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t137.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// GROUPS passed niklas nested-types -struct A { - struct B { void f (); }; - struct C : B { void f () { B::f (); } }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t138.C b/gcc/testsuite/g++.old-deja/g++.niklas/t138.C deleted file mode 100755 index 0f30d95..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t138.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// GROUPS passed niklas hiding -struct A; -void f (A*); -A* A; -void g () { f (A); } diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t139.C b/gcc/testsuite/g++.old-deja/g++.niklas/t139.C deleted file mode 100755 index 702d065..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t139.C +++ /dev/null @@ -1,7 +0,0 @@ -// GROUPS passed niklas hiding ARM -// Build don't link: -// Special g++ Options: -w -struct stat {}; -stat gstat; -int stat (struct stat*); -void f () { struct stat* ps; stat (ps); } diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t140.C b/gcc/testsuite/g++.old-deja/g++.niklas/t140.C deleted file mode 100755 index f840c62..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t140.C +++ /dev/null @@ -1,11 +0,0 @@ -// GROUPS passed niklas hiding local-types -extern "C" int printf (const char*, ...); -int val = 1; -void S () { printf ("FAIL\n"); } -void f () { printf ("PASS\n"); val = 0; } -int main () -{ - struct S { S () { f (); } }; - S (); - return val; -} diff --git a/gcc/testsuite/g++.old-deja/g++.niklas/t141.C b/gcc/testsuite/g++.old-deja/g++.niklas/t141.C deleted file mode 100755 index d85e97e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.niklas/t141.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -// Special g++ Options: -Wshadow -// GROUPS passed niklas scoping ARM -class X { X (int); }; -void X (int);// ERROR - .*hides constructor.* -void f () { X (1); } diff --git a/gcc/testsuite/g++.old-deja/g++.ns/alias1.C b/gcc/testsuite/g++.old-deja/g++.ns/alias1.C deleted file mode 100755 index 797e2b2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/alias1.C +++ /dev/null @@ -1,18 +0,0 @@ -namespace foo{ - int eine_funktion(int) - { - return 0; - } -} - -namespace foo{ - void eine_funktion(int,int) - {} -} - -namespace bar = foo; - -int main() -{ - return bar::eine_funktion(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/alias2.C b/gcc/testsuite/g++.old-deja/g++.ns/alias2.C deleted file mode 100755 index 95b2a23..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/alias2.C +++ /dev/null @@ -1,8 +0,0 @@ -//Build don't link: -namespace NS1 -{ - int a; -} - -namespace NS2 = NonExistant; //ERROR - - diff --git a/gcc/testsuite/g++.old-deja/g++.ns/alias3.C b/gcc/testsuite/g++.old-deja/g++.ns/alias3.C deleted file mode 100755 index 3b8de0c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/alias3.C +++ /dev/null @@ -1,30 +0,0 @@ -namespace A{ - struct X{}; - void f(X&); - extern int i; - namespace a_very_long_namespace_name{ - int k; - } -} - -namespace B = A; -namespace B = A; -namespace B = B; - -namespace avl = A::a_very_long_namespace_name; - -void B::f(A::X& x) -{ - B::f(x); - f(x); - avl::k = 1; -} - -int B::i = 0; - -int main() -{ - B::X x; - if (B::i) - A::f(x); -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/alias4.C b/gcc/testsuite/g++.old-deja/g++.ns/alias4.C deleted file mode 100755 index 16c4dca..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/alias4.C +++ /dev/null @@ -1,13 +0,0 @@ -namespace A = B; // ERROR - unknown namespace - -namespace C{} -namespace D = C; -namespace D { // ERROR - reopening namespace with alias - void f(); -} - -void C::f(){} // ERROR - previous definition - -void D::f(){} // ERROR - redefinition - -namespace E = C::F; // ERROR - unknown namespace diff --git a/gcc/testsuite/g++.old-deja/g++.ns/alias5.C b/gcc/testsuite/g++.old-deja/g++.ns/alias5.C deleted file mode 100755 index 797e2b2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/alias5.C +++ /dev/null @@ -1,18 +0,0 @@ -namespace foo{ - int eine_funktion(int) - { - return 0; - } -} - -namespace foo{ - void eine_funktion(int,int) - {} -} - -namespace bar = foo; - -int main() -{ - return bar::eine_funktion(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/alias6.C b/gcc/testsuite/g++.old-deja/g++.ns/alias6.C deleted file mode 100755 index b0799ab..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/alias6.C +++ /dev/null @@ -1,35 +0,0 @@ -// Check namespace aliases inside blocks -namespace A { - int i; - void f(){ - i = 0; - } -} - -int g(); - -int main () -{ - namespace B = A; - B::i=42; - B::f(); - using namespace B; - f(); - // A::i is now 0, B::i is 1 - return g(); -} - -namespace B { - int i = 1; -} - -int g() -{ - namespace x = A; - if (x::i) - { - namespace x = B; - return x::i; - } - return x::i; -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/anon1.C b/gcc/testsuite/g++.old-deja/g++.ns/anon1.C deleted file mode 100755 index c4a242a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/anon1.C +++ /dev/null @@ -1,12 +0,0 @@ -namespace{ - void f(); -} - -int main() -{ - f(); -} - -namespace{ - void f(){} -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/bogus1.C b/gcc/testsuite/g++.old-deja/g++.ns/bogus1.C deleted file mode 100755 index c61dea8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/bogus1.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -namespace N {} - -void f(int N::k); // ERROR - cannot use `::' in parameter declaration - -class Foo -{ - int N::j; // ERROR - invalid use of `::' -}; diff --git a/gcc/testsuite/g++.old-deja/g++.ns/crash1.C b/gcc/testsuite/g++.old-deja/g++.ns/crash1.C deleted file mode 100755 index 5a002bd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/crash1.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: - -template <class T> -struct S1 {}; - -namespace N { -} - -struct S2 -{ - typedef N::S1<int> S2_T; // ERROR - parse error -}; diff --git a/gcc/testsuite/g++.old-deja/g++.ns/crash2.C b/gcc/testsuite/g++.old-deja/g++.ns/crash2.C deleted file mode 100755 index d49189b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/crash2.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: - -// Submitted by bjornw@fairplay.no - -// crash test - XFAIL *-*-* - -namespace hei { - class CSomeClass {}; - extern CSomeClass SomeClass; -}; - -hei::CSomeClass hei::CSomeClass; // ERROR - should be hei::SomeClass diff --git a/gcc/testsuite/g++.old-deja/g++.ns/crash3.C b/gcc/testsuite/g++.old-deja/g++.ns/crash3.C deleted file mode 100755 index 842ed09..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/crash3.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -namespace N { - template <class T> struct S; -}; - -void f() -{ - N::S(); // ERROR - invalid use of template -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/extern1.C b/gcc/testsuite/g++.old-deja/g++.ns/extern1.C deleted file mode 100755 index 906b97b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/extern1.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't run: - -// Based on a testcase by eyal.ben-david@aks.com - -// An extern declaration of an undeclared object within a function -// introduces the object into the enclosing namespace [basic.link]/7 - -namespace { - void foo() { - extern int xx; - xx = 0; - } - int xx = 1; -} - -int main() { - xx = 2; -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/friend1.C b/gcc/testsuite/g++.old-deja/g++.ns/friend1.C deleted file mode 100755 index 859a84e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/friend1.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: -namespace A{ - void f(int); -} - -class X{ - friend void A::f(int); -}; diff --git a/gcc/testsuite/g++.old-deja/g++.ns/invalid1.C b/gcc/testsuite/g++.old-deja/g++.ns/invalid1.C deleted file mode 100755 index 76d3d70..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/invalid1.C +++ /dev/null @@ -1,12 +0,0 @@ -//Build don't link: -namespace x { }; - -void f(int); - -int main() -{ - x(); // ERROR - calling a namespace - x=4; // ERROR - assigning to a namespace - f(x); // ERROR - passing a namespace as parameter -} - diff --git a/gcc/testsuite/g++.old-deja/g++.ns/koenig1.C b/gcc/testsuite/g++.old-deja/g++.ns/koenig1.C deleted file mode 100755 index bd721fe..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/koenig1.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -class ostream; -extern ostream cout; -namespace foo -{ - struct S - { - int i; - }; - - extern ostream &operator<<(ostream &, const S &); -} - - -void bar(foo::S s) -{ - cout << s ; -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/koenig2.C b/gcc/testsuite/g++.old-deja/g++.ns/koenig2.C deleted file mode 100755 index 629cd38..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/koenig2.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// Check association of {error} for Koenig lookup -// Special g++ Options: - -struct QString { operator void * (); }; -int foo() -{ - QString bar; - return (bar == __null ); -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/koenig3.C b/gcc/testsuite/g++.old-deja/g++.ns/koenig3.C deleted file mode 100755 index e039df6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/koenig3.C +++ /dev/null @@ -1,21 +0,0 @@ -//Check association of member pointer in overload resolution. -struct A { - int m_val; - friend int operator ->* (A & other, int A::*pm) - { return 31; } -}; - -int A::*pi = & A::m_val; - -int -main(void) -{ - A c; - c.m_val = 42; - int j = c ->* pi; - - if (j == 31) - return 0; - else - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/koenig4.C b/gcc/testsuite/g++.old-deja/g++.ns/koenig4.C deleted file mode 100755 index 009327c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/koenig4.C +++ /dev/null @@ -1,24 +0,0 @@ -void f(); -void f(int); - -namespace A{ - struct S{ - void f(); - void f(S); - }; - void f(S&){} - void h(S&){} -} - -template<class T> -void g(T t){ - f(t); -} - -int main() -{ - A::S s; - f(s); - g(s); - h(s); -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/koenig5.C b/gcc/testsuite/g++.old-deja/g++.ns/koenig5.C deleted file mode 100755 index e5500cb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/koenig5.C +++ /dev/null @@ -1,15 +0,0 @@ -// To find function pointers in Koenig lookup is ok as long as we only find one. -namespace A{ - void foo(); // ERROR - - struct X{}; - void (*bar)(X*)=0; -} -using A::X; - -void (*foo)(X*)=0; // ERROR - - -void g() -{ - foo(new X); // ERROR - both objects and functions found - bar(new X); // ok -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/koenig6.C b/gcc/testsuite/g++.old-deja/g++.ns/koenig6.C deleted file mode 100755 index dc54903..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/koenig6.C +++ /dev/null @@ -1,12 +0,0 @@ -namespace A{ - struct X{}; - - X foo(X a){return a;} - void bar(X*){} -} - -int main() -{ - A::X x; - bar(&foo(x)); // WARNING - address of temporary -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/koenig7.C b/gcc/testsuite/g++.old-deja/g++.ns/koenig7.C deleted file mode 100755 index 2565a9e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/koenig7.C +++ /dev/null @@ -1,22 +0,0 @@ -// Test for Koenig lookup involving overloaded functions. - -namespace N1 { - struct A { }; - void f1(A) {} - void f2(float) {} - void g(void (*)(float)) {} -} - -using N1::f1; -void f1(float) {} - -using N1::f2; -template <class T> -void f2(N1::A, T) {} - -void g(void (*)(int)) {} - -int main() { - g(&f1); // Works? - g(f2); // Works? -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/lookup1.C b/gcc/testsuite/g++.old-deja/g++.ns/lookup1.C deleted file mode 100755 index 6b6f0cc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/lookup1.C +++ /dev/null @@ -1,3 +0,0 @@ -// Build don't link: -typedef int __quad_t; -typedef __quad_t __qaddr_t; diff --git a/gcc/testsuite/g++.old-deja/g++.ns/lookup2.C b/gcc/testsuite/g++.old-deja/g++.ns/lookup2.C deleted file mode 100755 index 0143290..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/lookup2.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -template <class charT> -struct basic_string -{ - charT append (charT c) - { return c; } -}; -typedef char c; -template class basic_string <char>; diff --git a/gcc/testsuite/g++.old-deja/g++.ns/lookup3.C b/gcc/testsuite/g++.old-deja/g++.ns/lookup3.C deleted file mode 100755 index 3ace233..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/lookup3.C +++ /dev/null @@ -1,14 +0,0 @@ -namespace A{ - int i; - int f(); -} - -int A::f() -{ - return i; -} - -int main() -{ - return A::f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/lookup4.C b/gcc/testsuite/g++.old-deja/g++.ns/lookup4.C deleted file mode 100755 index 208a9d6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/lookup4.C +++ /dev/null @@ -1,23 +0,0 @@ -//Build don't link: -namespace X{ - typedef int foo; - const int bar=2; - namespace Y{ - void f(foo); - extern int g; - extern int g1; - struct h{ - void i(foo); - }; - } -} - -void X::Y::f(foo) -{ -} - -int X::Y::g = bar; -int X::Y::g1(bar); - -void X::Y::h::i(foo) -{} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/lookup5.C b/gcc/testsuite/g++.old-deja/g++.ns/lookup5.C deleted file mode 100755 index c83b50a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/lookup5.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: -namespace A{ - void f(); -} - -namespace B{ - using namespace A; - void f(int); // ERROR - referenced below -} - -using namespace B; - -void g() -{ - ::f(); // ERROR - A::f is not found -} - -using namespace A; - -void g1() -{ - ::f(); // ok, it is found now -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/main1.C b/gcc/testsuite/g++.old-deja/g++.ns/main1.C deleted file mode 100755 index 0e5a07f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/main1.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: - -// main is only reserved in the global namespace [basic.start.main]/3 - -// submitted by Gerald Gutierrez <gutier@intergate.bc.ca> - -namespace A { void main () { } } -namespace B { void main () { } } -namespace C { - void main () { } - namespace D { - void main () { } - } -} - diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns1.C b/gcc/testsuite/g++.old-deja/g++.ns/ns1.C deleted file mode 100755 index f835716..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/ns1.C +++ /dev/null @@ -1,16 +0,0 @@ -namespace foo{ - int eine_funktion(int) - { - return 0; - } - - int eine_funktion(int,int) - { - return 1; - } -} - -int main(int,char**) -{ - return foo::eine_funktion(1); -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns10.C b/gcc/testsuite/g++.old-deja/g++.ns/ns10.C deleted file mode 100755 index 3eb70a8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/ns10.C +++ /dev/null @@ -1,13 +0,0 @@ -//Build don't link: -namespace bb -{ - int f(int); - - namespace k - { - void foo(int bar) - { - int i=bb:f(bar); // ERROR - namespace - } - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns11.C b/gcc/testsuite/g++.old-deja/g++.ns/ns11.C deleted file mode 100755 index ffc5acb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/ns11.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link -// Check [namespace.memdef]/2 - -namespace A{ - void f(int); - void f(int,int); - int i; // ERROR - .* -} - -void A::f(){} // ERROR - should have been declared before - -namespace B{ - void A::f(int){} // ERROR - B does not surround A -} - -int A::i; // ERROR - redefinition - -void A::f(int,int){} // ok - diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns12.C b/gcc/testsuite/g++.old-deja/g++.ns/ns12.C deleted file mode 100755 index 40f5b7c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/ns12.C +++ /dev/null @@ -1,22 +0,0 @@ -namespace fred -{ - int barney(); - extern int wilma; -} - -int fred::barney() -{ - return fred::wilma; -} - -int fred::wilma; - -int barney() -{ - return 1; -} - -int main() -{ - return fred::barney(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns13.C b/gcc/testsuite/g++.old-deja/g++.ns/ns13.C deleted file mode 100755 index 0b8c38a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/ns13.C +++ /dev/null @@ -1,13 +0,0 @@ -namespace std{ - void f(){} - void g(); - int i=5; -} - -void std::g() -{} - -int main() -{ - return std::i-5; -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns14.C b/gcc/testsuite/g++.old-deja/g++.ns/ns14.C deleted file mode 100755 index 5a3cc70..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/ns14.C +++ /dev/null @@ -1,16 +0,0 @@ -//Special g++ Options: -fhonor-std -namespace std{ - int f(){ - return 0; - } -} - -int f() -{ - return 1; -} - -int main() -{ - return std::f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns15.C b/gcc/testsuite/g++.old-deja/g++.ns/ns15.C deleted file mode 100755 index cbb6292..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/ns15.C +++ /dev/null @@ -1,2 +0,0 @@ -//Build don't link: -namespace std {} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns16.C b/gcc/testsuite/g++.old-deja/g++.ns/ns16.C deleted file mode 100755 index 1f04ae8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/ns16.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: - -class Y { -public: - void operator +(int) const; -}; - -namespace X { - extern Y const& z; -} - -void f(void) { - X::z + 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns2.C b/gcc/testsuite/g++.old-deja/g++.ns/ns2.C deleted file mode 100755 index e0d1bda..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/ns2.C +++ /dev/null @@ -1,26 +0,0 @@ -namespace foo{ - struct X{ - int i; - void f(); - static int k1,k2; - }; - void X::f(){} - int var; - int X::k1; -} - -using namespace foo; -X zzz; -int X::k2; - -void andere_funktion() -{ - zzz.f(); - var=4; -} - -int main(int,char**) -{ - andere_funktion(); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns3.C b/gcc/testsuite/g++.old-deja/g++.ns/ns3.C deleted file mode 100755 index a1c8f53..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/ns3.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: -namespace foo{ - void eine_funktion(int) - {} -} - -using namespace foo; - -namespace foo{ - void eine_funktion(int,int) - {} -} - -void andere_funktion() -{ - eine_funktion(3,4); -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns4.C b/gcc/testsuite/g++.old-deja/g++.ns/ns4.C deleted file mode 100755 index f720da3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/ns4.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -namespace A{ - enum foo{a,b,c}; -} -using A::foo; -using A::b; -void g() -{ - foo x; - x=b; -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns5.C b/gcc/testsuite/g++.old-deja/g++.ns/ns5.C deleted file mode 100755 index f35b247..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/ns5.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -namespace X{ - class Y{}; -} - -X::Y z; diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns6.C b/gcc/testsuite/g++.old-deja/g++.ns/ns6.C deleted file mode 100755 index ba2508c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/ns6.C +++ /dev/null @@ -1,13 +0,0 @@ -namespace A{ - int i; - namespace B{ - void f(){i++;} - int i; - void g(){i++;} - } -} - -int main() -{ - return A::i-A::B::i; -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns7.C b/gcc/testsuite/g++.old-deja/g++.ns/ns7.C deleted file mode 100755 index 9afc97c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/ns7.C +++ /dev/null @@ -1,26 +0,0 @@ -// Build don't link: -namespace A{ - struct X{ - int i; - X(){} - X(int j); - void operator=(const X&); - virtual ~X(){} - }; - void X::operator=(const X&o) - { - i=o.i; - } -} - -A::X::X(int j):i(j){} - -namespace A{ - struct Y:public X{ - int j; - Y(int,int); - }; -} - -A::Y::Y(int a,int b):X(a),j(b) -{} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns8.C b/gcc/testsuite/g++.old-deja/g++.ns/ns8.C deleted file mode 100755 index 4d1ab40..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/ns8.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -namespace B{ - void f(); -} - -using namespace B; - -void g() -{ - ::f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/ns9.C b/gcc/testsuite/g++.old-deja/g++.ns/ns9.C deleted file mode 100755 index a8803b8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/ns9.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -namespace bb -{ - int f(int); - - namespace k - { - void foo(int bar) - { - return bb:f(bar); //ERROR - syntax error - } - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/overload1.C b/gcc/testsuite/g++.old-deja/g++.ns/overload1.C deleted file mode 100755 index 55d66a1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/overload1.C +++ /dev/null @@ -1,33 +0,0 @@ -// Unqualified lookup should find all functions. -// Duplicates are ignored as long as they lose during overload resolution. -namespace A{ - int f(){ - return 1; - } - int f(double); -} -namespace B{ - int f(int){ - return 2; - } - int f(double); -} - -int f(int,int) -{ - return 3; -} - -using namespace A; -using namespace B; - -int main() -{ - if(f() != 1) - return 1; - if(f(1) != 2) - return 1; - if(f(0,0) != 3) - return 1; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/overload2.C b/gcc/testsuite/g++.old-deja/g++.ns/overload2.C deleted file mode 100755 index 500d780..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/overload2.C +++ /dev/null @@ -1,12 +0,0 @@ -namespace A{ - void f(); // ERROR - .* -} - -using namespace A; - -void f(); // ERROR - .* - -void g() -{ - f(); // ERROR - ambiguous, ::f or A::f ? -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/overload3.C b/gcc/testsuite/g++.old-deja/g++.ns/overload3.C deleted file mode 100755 index 945f948..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/overload3.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// Declarations after the first one don't affect the set of used decls. - -namespace A{ - void f(); // ERROR - .* -} - -using A::f; - -namespace A{ - void f(int); -} - -using A::f; - -void g() -{ - f(4); // ERROR - too many arguments -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/overload4.C b/gcc/testsuite/g++.old-deja/g++.ns/overload4.C deleted file mode 100755 index ad96157..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/overload4.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: -namespace A{ - void f(); -} - -using A::f; -void f(); // ERROR - duplicate declaration - diff --git a/gcc/testsuite/g++.old-deja/g++.ns/overload5.C b/gcc/testsuite/g++.old-deja/g++.ns/overload5.C deleted file mode 100755 index 24a0a6d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/overload5.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -namespace A{ - void f(){} -} - -using A::f; - -void f(int); -void f(){} // ERROR - conflict - -void g() -{ - f(4); -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/template1.C b/gcc/testsuite/g++.old-deja/g++.ns/template1.C deleted file mode 100755 index 593df9e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/template1.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -namespace foo { - - template <class T> - class x {}; - -} - -foo::x<int> y; diff --git a/gcc/testsuite/g++.old-deja/g++.ns/template2.C b/gcc/testsuite/g++.old-deja/g++.ns/template2.C deleted file mode 100755 index bb7c1dc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/template2.C +++ /dev/null @@ -1,14 +0,0 @@ -//Build don't link: -//Inheritance from templates which are namespace members -namespace foo { - - template <class T> - struct x { - x(){} - }; - -} - -class y : public foo::x<int> {}; - -y r; diff --git a/gcc/testsuite/g++.old-deja/g++.ns/template3.C b/gcc/testsuite/g++.old-deja/g++.ns/template3.C deleted file mode 100755 index 761656f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/template3.C +++ /dev/null @@ -1,21 +0,0 @@ -//Check instantiation of templates outside their namespace -namespace A{ -template <class T>void g(){} -template <class T> struct B { - B(){ - f(); - } - void f() - { - g<T>(); - } -}; -} - -template class A::B<int>; -A::B<int> s; - -int main() -{ - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/template4.C b/gcc/testsuite/g++.old-deja/g++.ns/template4.C deleted file mode 100755 index dd32444..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/template4.C +++ /dev/null @@ -1,17 +0,0 @@ -namespace NS -{ -template <typename T> -void solver (){} - -} - -template<typename T> -void solver(){} - -int main() -{ - solver<double>(); - NS::solver<double>(); -} - - diff --git a/gcc/testsuite/g++.old-deja/g++.ns/template5.C b/gcc/testsuite/g++.old-deja/g++.ns/template5.C deleted file mode 100755 index 9dc7a39..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/template5.C +++ /dev/null @@ -1,33 +0,0 @@ -//Check whether namespace-scoped template instantiations -//are mangled differently. - -namespace X{ - template<class T> - struct Y{ - int f(T){ - return 1; - } - template<class X>void g(){} - }; -} - -template<class T> -struct Y{ - int f(T){ - return 2; - } -}; - -int main() -{ - X::Y<int> z; - if (z.f(4) != 1) - return 1; - z.template g<long>(); - - Y<int> z1; - if (z1.f(5) != 2) - return 1; - return 0; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.ns/template6.C b/gcc/testsuite/g++.old-deja/g++.ns/template6.C deleted file mode 100755 index 324b4d2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/template6.C +++ /dev/null @@ -1,24 +0,0 @@ -//Build don't link: -//reported by Theodore Papadopoulo (Theodore.Papadopoulo@sophia.inria.fr) - -namespace A { - - namespace B { - - template <class T1,class T2> - struct B { - static const unsigned count = 0; - template <class ForwardIter> - void SetError(ForwardIter it,const T1& p1,const T2& p2) const { } - }; - - template <> - const unsigned B<int,int>::count = 2; // ERROR - duplicate init - } -}; - -int -main() -{ - unsigned kk = A::B<int,int>::count; // ERROR - not a template: syntax error -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/template7.C b/gcc/testsuite/g++.old-deja/g++.ns/template7.C deleted file mode 100755 index 3c85735..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/template7.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: - -// crash test - XFAIL *-*-* - -// Based on bug report by Eric NICOLAS <nicolas@bnp-eng.remcomp.com> - -namespace foo { - template<class F> struct bar {}; -} - -void baz() { - foo::bar(); // ERROR - template used as expression -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/undef1.C b/gcc/testsuite/g++.old-deja/g++.ns/undef1.C deleted file mode 100755 index d13b8e7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/undef1.C +++ /dev/null @@ -1,5 +0,0 @@ -//Build don't link: -namespace A{ -} - -struct Y: A::S<int>{}; //ERROR - no such type diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using1.C b/gcc/testsuite/g++.old-deja/g++.ns/using1.C deleted file mode 100755 index 489faac..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/using1.C +++ /dev/null @@ -1,3 +0,0 @@ -// Build don't link: -using namespace bb; // ERROR - .* - diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using10.C b/gcc/testsuite/g++.old-deja/g++.ns/using10.C deleted file mode 100755 index cd5cd47..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/using10.C +++ /dev/null @@ -1,9 +0,0 @@ -//Build don't link: -//Based on a report by Helmut Jarausch <jarausch@IGPM.Rwth-Aachen.DE> -template<class> -class foo{}; - -namespace ABC -{ - using ::foo; -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using11.C b/gcc/testsuite/g++.old-deja/g++.ns/using11.C deleted file mode 100755 index 23943f2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/using11.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - -class joey { -public: - typedef int SVec; -}; - -using joey::SVec; // ERROR - joey is not a namespace - diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using12.C b/gcc/testsuite/g++.old-deja/g++.ns/using12.C deleted file mode 100755 index edc863b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/using12.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// Origin: Brendan Kehoe <brendan@cygnus.com> - -namespace foo -{ - void x (bool); // ERROR - candidates - void x (char); // ERROR - candidates - void x (int); // ERROR - candidates - void x (double); // ERROR - candidates -} - -namespace baz { void x (int); } // ERROR - candidates - -void fn (int i) -{ - using foo::x; - using baz::x; - x(i); // ERROR - ambiguous -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using2.C b/gcc/testsuite/g++.old-deja/g++.ns/using2.C deleted file mode 100755 index 879e0c5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/using2.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: -void f(); -namespace A{ - using ::f; -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using3.C b/gcc/testsuite/g++.old-deja/g++.ns/using3.C deleted file mode 100755 index a8c1761..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/using3.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: - -typedef unsigned int atypedef; -struct astruct{}; -void afunction(); -void aovlfunction(); -void aovlfunction(int); -int avariable; - -namespace foo { - using ::atypedef; - using ::astruct; - using ::afunction; - using ::aovlfunction; - using ::avariable; -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using4.C b/gcc/testsuite/g++.old-deja/g++.ns/using4.C deleted file mode 100755 index f3197be..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/using4.C +++ /dev/null @@ -1,5 +0,0 @@ -//Build don't link -#include <vector> -namespace csp { -using namespace std::vector; // ERROR - vector is not a namespace -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using5.C b/gcc/testsuite/g++.old-deja/g++.ns/using5.C deleted file mode 100755 index 37fc6a8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/using5.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -namespace a { - class b { - using std::c; //ERROR - namespace using on class level - }; -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using6.C b/gcc/testsuite/g++.old-deja/g++.ns/using6.C deleted file mode 100755 index b770950..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/using6.C +++ /dev/null @@ -1,9 +0,0 @@ -//Build don't link: -#include <vector> - -namespace csp { - using namespace std; - struct X { - vector<int> v; - }; -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using7.C b/gcc/testsuite/g++.old-deja/g++.ns/using7.C deleted file mode 100755 index a449284..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/using7.C +++ /dev/null @@ -1,11 +0,0 @@ -namespace X{ - void f(int){} -} - -void f(); - -int main() -{ - using X::f; - f(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using8.C b/gcc/testsuite/g++.old-deja/g++.ns/using8.C deleted file mode 100755 index 2234f58..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/using8.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -namespace M { - int i; -} -namespace N { - using namespace M; -} - -using namespace N; -int j = i; - -namespace O{ - int k; -} - -namespace N { - using namespace O; -} - -int l = k; diff --git a/gcc/testsuite/g++.old-deja/g++.ns/using9.C b/gcc/testsuite/g++.old-deja/g++.ns/using9.C deleted file mode 100755 index 547ae31..0000000 --- a/gcc/testsuite/g++.old-deja/g++.ns/using9.C +++ /dev/null @@ -1,24 +0,0 @@ -// 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 -} - diff --git a/gcc/testsuite/g++.old-deja/g++.other/.cvsignore b/gcc/testsuite/g++.old-deja/g++.other/.cvsignore deleted file mode 100755 index 7abff1d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -config.status diff --git a/gcc/testsuite/g++.old-deja/g++.other/900403_04.C b/gcc/testsuite/g++.old-deja/g++.other/900403_04.C deleted file mode 100755 index 9d55a37..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/900403_04.C +++ /dev/null @@ -1,12 +0,0 @@ -// GROUPS passed abort -// Build don't link: -// g++ 1.37.1 bug 900403_04 - -// The following erroneous code causes g++ to abort. - -// keywords: abort, bit-fields, zero length - -struct s { - unsigned int foo:0; // ERROR - causes abort - unsigned int field; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/900519_12.C b/gcc/testsuite/g++.old-deja/g++.other/900519_12.C deleted file mode 100755 index 1170b06..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/900519_12.C +++ /dev/null @@ -1,11 +0,0 @@ -// GROUPS abort -// Build don't link: -// g++ 1.37.1 bug 900519_12 - -// The following erroneous code causes g++ to segfault. - -// cfront 2.0 passes this test. - -// keywords: segfault, typedef, pointer type, function type - -typedef eek void (*)(); // ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.other/Makefile.in b/gcc/testsuite/g++.old-deja/g++.other/Makefile.in deleted file mode 100755 index d5eb149..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/Makefile.in +++ /dev/null @@ -1,12 +0,0 @@ -#### host, target, and site specific Makefile frags come in here. - -srcdir = . - -# Nothing to do... -all: - -clean: - -rm -f *.o *.diff *~ *.bad core - -distclean: clean - -rm -f Makefile config.status diff --git a/gcc/testsuite/g++.old-deja/g++.other/access1.C b/gcc/testsuite/g++.old-deja/g++.other/access1.C deleted file mode 100755 index 43aff60..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/access1.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: - -class X{ - unsigned int i; - public: - void f(); -}; - -void X::f() -{ - union { - int foo[sizeof (i)]; - }; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/access2.C b/gcc/testsuite/g++.old-deja/g++.other/access2.C deleted file mode 100755 index beb02a1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/access2.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// Based on a test-case in the Standard, submitted by several people - -class Outer { - typedef int T; - struct Inner { - T i; // ERROR - not accessible - XFAIL *-*-* - void f() { - T j; // ERROR - not accessible - XFAIL *-*-* - } - }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/access3.C b/gcc/testsuite/g++.old-deja/g++.other/access3.C deleted file mode 100755 index 87c4c81..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/access3.C +++ /dev/null @@ -1,25 +0,0 @@ -// The standard sez that a use of a name gets the most access it can through -// the various paths that can reach it. Here, the access decl in B gives -// us access. - -struct A -{ - void f (); // gets bogus error - ref below XFAIL *-*-* -}; - -struct B: private virtual A -{ - A::f; -}; - -struct C: private virtual A, public B -{ -}; - -int -main () -{ - C c; - - c.f (); // gets bogus error - private XFAIL *-*-* -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/addrof1.C b/gcc/testsuite/g++.old-deja/g++.other/addrof1.C deleted file mode 100755 index b4d55f6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/addrof1.C +++ /dev/null @@ -1,30 +0,0 @@ -typedef struct st { - unsigned char a; - unsigned char b; - unsigned char c; - unsigned char d; -} __attribute__((aligned(4))) st; - -void testme(int, int, int); - -static inline void -stupid_func(st s) -{ - testme(s.a, s.b, s.c); -} - -int main() -{ - st s; - - s.a = s.b = s.c = 216; - stupid_func(s); - - return 0; -} - -void testme(int a, int b, int c) -{ - if (a != 216 || b != 216 || c != 216) - abort(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/ambig1.C b/gcc/testsuite/g++.old-deja/g++.other/ambig1.C deleted file mode 100755 index 04e4afa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/ambig1.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't link: - -struct A { - int operator ++(); - void operator ()(); - void operator delete(void*); -}; - -struct B { - int operator ++(int); - void operator ()(); - void operator delete(void*); - void f(); -}; - -struct C : public A, public B { -}; - -void f() -{ - C c; - C* cp; - - delete cp; // ERROR - ambiguous - c(); // ERROR - ambiguous - c++; // ERROR - ambiguous -} - diff --git a/gcc/testsuite/g++.old-deja/g++.other/anon1.C b/gcc/testsuite/g++.old-deja/g++.other/anon1.C deleted file mode 100755 index 8794848..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/anon1.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: - -static union { - union { - }; -}; // ERROR - anonymous union with no members diff --git a/gcc/testsuite/g++.old-deja/g++.other/anon2.C b/gcc/testsuite/g++.old-deja/g++.other/anon2.C deleted file mode 100755 index 49a7b2c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/anon2.C +++ /dev/null @@ -1,31 +0,0 @@ -extern "C" void abort (void); - -static union { - int x1; - long x2; - short x3; - long x4; -}; - -static union { - union { - union { - int z; - }; - }; - union { - union { - double d; - int i; - }; - }; -}; - - -int main() -{ - z = 3; - if (i != 3) - abort (); - d = 2.5; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/array1.C b/gcc/testsuite/g++.old-deja/g++.other/array1.C deleted file mode 100755 index 0ecba77..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/array1.C +++ /dev/null @@ -1,26 +0,0 @@ -int i; - -struct S { - S (int) { - ++i; - if (i == 3) - throw 3; - }; - - S () {} - - ~S() { - --i; - } -}; - -int main() -{ - try { - S s[5] = { 0, 1, 2, 3, 4 }; - } catch (...) { - } - - if (i != 1) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/array2.C b/gcc/testsuite/g++.old-deja/g++.other/array2.C deleted file mode 100755 index 255d8cc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/array2.C +++ /dev/null @@ -1,18 +0,0 @@ -int i; - -struct S { - S () { - ++i; - }; - - S (int) { - }; -}; - -int main() -{ - S s[3][3] = { 2 }; - - if (i != 8) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/badarrow.C b/gcc/testsuite/g++.old-deja/g++.other/badarrow.C deleted file mode 100755 index e5946fd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/badarrow.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -struct S { - int i; -} s; - -void f() -{ - s->i = 3; // ERROR - base operand -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/badopt1.C b/gcc/testsuite/g++.old-deja/g++.other/badopt1.C deleted file mode 100755 index 096770e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/badopt1.C +++ /dev/null @@ -1,15 +0,0 @@ -// Based on a testcase by Bryan Weston <bryanw@bluemoon.sps.mot.com> -// egcs 1.1 fails to increment count - -#include <cstdlib> - -struct Base { Base() {} }; // removing the constructor fixes the problem -struct Derived : Base {}; // so does removing the base class - -int main() { - int count = 0; - Derived* array[1]; // making this Base*[1] does not fix the problem - array[count++] = new Derived (); // but then new Base() does - if (count!=1) - std::abort(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/bitfld1.C b/gcc/testsuite/g++.old-deja/g++.other/bitfld1.C deleted file mode 100755 index ad21fd7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/bitfld1.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// Based on a bug report by Stephen Vavasis <vavasis@CS.Cornell.EDU> - -// excess errors test - XFAIL *-*-* - -// declares template operator!= -#include <utility> - -struct foo { - enum e { bar } baz:1; - void test() { - baz != bar; - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/cast1.C b/gcc/testsuite/g++.old-deja/g++.other/cast1.C deleted file mode 100755 index 7cd8059..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/cast1.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: - -struct S0 { }; -struct S1 : virtual public S0 { }; -struct S2 : virtual public S0 { }; - -struct S3 : public S1, public S2, virtual public S0 -{ -}; - -void f(const S0*) {} - -void g() -{ - f(static_cast<S3*>(0)); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/cleanup1.C b/gcc/testsuite/g++.old-deja/g++.other/cleanup1.C deleted file mode 100755 index fd4dc6e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/cleanup1.C +++ /dev/null @@ -1,20 +0,0 @@ -// Bug: fold is too eager about pushing down CLEANUP_POINT_EXPR. - -int d; - -struct A { - A() { } - ~A() { d = 1; } -}; - -int f (const A& a) -{ - return 1; -} - -int main () -{ - if (f (A()) && d == 0) - return 0; - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/configure.in b/gcc/testsuite/g++.old-deja/g++.other/configure.in deleted file mode 100755 index e198b4f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/configure.in +++ /dev/null @@ -1,15 +0,0 @@ -# This file is a shell script fragment that supplies the information -# necessary to tailor a template configure script into the configure -# script appropriate for this directory. For more information, check -# any existing configure script. - -srctrigger=g++-03.exp -srcname="DejaGnu" - -# per-host: - -# per-target: - -target_makefile_frag=../config/mt-${target_alias} - -# post-target: diff --git a/gcc/testsuite/g++.old-deja/g++.other/const1.C b/gcc/testsuite/g++.old-deja/g++.other/const1.C deleted file mode 100755 index 7c26da1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/const1.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - -struct S -{ - void f() - { - const int i; // ERROR - uninitialized const - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/const2.C b/gcc/testsuite/g++.old-deja/g++.other/const2.C deleted file mode 100755 index 90b70d1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/const2.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: - -struct S { - static const char* cp = "abc"; // ERROR - initialization of non-const -}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/conv1.C b/gcc/testsuite/g++.old-deja/g++.other/conv1.C deleted file mode 100755 index a558c5e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/conv1.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: - -class X { -public: - const operator int (); // ERROR - invalid declaration. -}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/conv2.C b/gcc/testsuite/g++.old-deja/g++.other/conv2.C deleted file mode 100755 index e713304..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/conv2.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// Special g++ Options: -pedantic-errors - -void cheat( int* i ) { ++(*i); } - -struct t { - void cheat( int& i ) { ++i; } -}; - -int main() -{ - void (t::*member)( const int& ) = &t::cheat; // ERROR - conversion - void (*cheater)( const int* ) = &cheat; // ERROR - converting - t t2; - const int i=1; - int j=1; - (t2.*member)( i ); - (t2.*member)( j ); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/conv3.C b/gcc/testsuite/g++.old-deja/g++.other/conv3.C deleted file mode 100755 index 7690f56..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/conv3.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: - -// submitted by David C Binderman <dcb@pncl.co.uk> - -typedef const int ci; -typedef ci aci[ 10]; -aci var = { 2, 3, 5, 7, 11, 13 }; - -void -f() -{ - int * ip = var; // ERROR - requires const_cast -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/conv4.C b/gcc/testsuite/g++.old-deja/g++.other/conv4.C deleted file mode 100755 index 0ed0ee8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/conv4.C +++ /dev/null @@ -1,17 +0,0 @@ -// Testcase for proper hiding of base conversion ops. - -struct A -{ - operator const char *(); -}; - -struct B : public A -{ - operator const char *() { return 0; } -}; - -int main( void ) -{ - B b; - const char *p = b; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/conv5.C b/gcc/testsuite/g++.old-deja/g++.other/conv5.C deleted file mode 100755 index 97bf238..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/conv5.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: - -// Based on bug report by Thomas Kunert <kunert@physik.tu-dresden.de> - -// Special g++ Options: - -int foo(); -const int (*bar)() = foo; // ERROR - adding const - XFAIL *-*-* diff --git a/gcc/testsuite/g++.old-deja/g++.other/copy1.C b/gcc/testsuite/g++.old-deja/g++.other/copy1.C deleted file mode 100755 index 5cc68a5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/copy1.C +++ /dev/null @@ -1,25 +0,0 @@ -// Bug: expand_vec_init doesn't copy arrays of builtin types. - -struct B { - B() { } - B(const B&) { } -}; - -struct A -{ - B b; - int ar[5]; -}; - -int main() -{ - A a; - for (int i = 0; i < 5; ++i) - a.ar[i] = i; - - A a2 = a; - - for (int i = 0; i < 5; ++i) - if (a2.ar[i] != a.ar[i]) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/crash1.C b/gcc/testsuite/g++.old-deja/g++.other/crash1.C deleted file mode 100755 index f7caa2f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/crash1.C +++ /dev/null @@ -1,6 +0,0 @@ -class A -{ - enum B { ONE, TWO, THREE }; -}; - -class A::B; // ERROR - A::B is not a class type diff --git a/gcc/testsuite/g++.old-deja/g++.other/crash2.C b/gcc/testsuite/g++.old-deja/g++.other/crash2.C deleted file mode 100755 index 93e0a6e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/crash2.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - -struct A { - int rep; - static const A a(0); // ERROR - initialization - static const A b = 3; // ERROR - initialization - static const A& c = 2; // ERROR - initialization - A(int x) : rep(x) {} -}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/crash3.C b/gcc/testsuite/g++.old-deja/g++.other/crash3.C deleted file mode 100755 index 0114843..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/crash3.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// Special g++ Options: -g -O2 - -inline void f() { - struct S {}; - S s; -} - -int g() -{ - for (int i = 0; i < 2; ++i) - f(); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.other/crash4.C b/gcc/testsuite/g++.old-deja/g++.other/crash4.C deleted file mode 100755 index d86a6bb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/crash4.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: - -struct T { - struct S __attribute__ ((packed)) { // ERROR - parse error - int i; - }; -}; // ERROR - parse error diff --git a/gcc/testsuite/g++.old-deja/g++.other/crash5.C b/gcc/testsuite/g++.old-deja/g++.other/crash5.C deleted file mode 100755 index 761ec0d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/crash5.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: - -class TecMesh {}; - -extern TecMesh& m; - -struct X { - X(TecMesh&); -}; - -struct D { - D(); - TecMesh& Mesh; -}; - - -D::D () - : Mesh(m) -{ - X x(D::Mesh); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/crash6.C b/gcc/testsuite/g++.old-deja/g++.other/crash6.C deleted file mode 100755 index 498c983..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/crash6.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// Special g++ Options: -O2 - -struct E -{ - int f(int); -}; - -int ha() -{ - enum {X = 0}; - - int A, C; - - E vList[10]; - - A = (C + 1) % 3; - vList[1].f(A); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/cvt1.C b/gcc/testsuite/g++.old-deja/g++.other/cvt1.C deleted file mode 100755 index f448cc1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/cvt1.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: - -typedef int Array_T[2]; - -struct S1 { - S1(const Array_T&); -}; - -struct S2 { - S1 g(); - Array_T a; -}; - -S1 S2::g() -{ - return S1(a); -} - -void h() -{ - S2 s2; - s2.g(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/dcast1.C b/gcc/testsuite/g++.old-deja/g++.other/dcast1.C deleted file mode 100755 index d9dd657..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/dcast1.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: - -class C { -public: - virtual void f(); -}; - -extern volatile C* cp; -extern volatile C& cr; - -void f () -{ - dynamic_cast<void*>(cp); // ERROR - cannot dynamic_cast - dynamic_cast<C&>(cr); // ERROR - cannot dynamic_cast -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/dcast2.C b/gcc/testsuite/g++.old-deja/g++.other/dcast2.C deleted file mode 100755 index bd343a7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/dcast2.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: - -// Based on a testcase by Ruslan Shevchenko <Ruslan@Shevchenko.Kiev.UA> - -struct B { - virtual ~B(); -}; - -struct D : public B { -}; - -void foo() { - B x; - dynamic_cast<D*>(&x); // WARNING - will never succeed - B* p = &x; - dynamic_cast<D*>(p); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/debug1.C b/gcc/testsuite/g++.old-deja/g++.other/debug1.C deleted file mode 100755 index 8485895..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/debug1.C +++ /dev/null @@ -1,48 +0,0 @@ -// Build don't link: -// Special g++ Options: -g - -typedef unsigned int size_t; - - -struct dummy { }; - -struct arrrrrgh { }; - - -template<class Par,class Rand = arrrrrgh> -struct whyyyyyyy { }; - - - - -template<class T, class S =dummy> -struct grrrrrrrr { }; - - -template<class Par, class Par2 =Par, class Rand =arrrrrgh> -class no_future -{ -public: - - - template<class S> - no_future(const grrrrrrrr<whyyyyyyy<Par,Rand>*,S>& man ) { } - - ~no_future( ) { } - -private: - - - no_future(const no_future&); - no_future& operator=(const no_future&); -}; - - -int main( ) -{ - grrrrrrrr<whyyyyyyy<double>*> man; - - no_future<double> here(man); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/debug2.C b/gcc/testsuite/g++.old-deja/g++.other/debug2.C deleted file mode 100755 index 200aeb3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/debug2.C +++ /dev/null @@ -1,31 +0,0 @@ -// Build don't link: -// Special g++ Options: -funroll-loops -O2 -g - -inline void f() -{ - typedef int T; -} - -inline void g() -{ - typedef double U; -} - -int n; - -struct B -{ - ~B() { - for (int i = 0; i < n; ++i) - g(); - } -}; - -struct D : public B { - ~D() { - for (int j = 0; j < n; ++j) - f(); - } -}; - -D d; diff --git a/gcc/testsuite/g++.old-deja/g++.other/decl1.C b/gcc/testsuite/g++.old-deja/g++.other/decl1.C deleted file mode 100755 index 7a55ce0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/decl1.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// Based on a test case by Phil Blecker <tmwg@inxservices.com> - -// excess errors test - XFAIL *-*-* - -int foo(int); -int bar() { - int baz(int(foo(0))); - int foo = baz; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/decl2.C b/gcc/testsuite/g++.old-deja/g++.other/decl2.C deleted file mode 100755 index 1da7540..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/decl2.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// Based on a test-case by Maciej Radziejewski <maciejr@iws.uni-stuttgart.de> - -int i(0)(1); // ERROR - multiple initialization -int j(2) = 3; // ERROR - multiple initialization -int k(4)(5)(6); // ERROR - multiple initialization -int m, n(7)(8); // ERROR - multiple initialization diff --git a/gcc/testsuite/g++.old-deja/g++.other/defarg1.C b/gcc/testsuite/g++.old-deja/g++.other/defarg1.C deleted file mode 100755 index 68b07a5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/defarg1.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't link: - -int f (int x) -{ - extern void g (int i = f (x)); // ERROR - default argument uses local - - g(); - - return 0; -} - -int f (void); - -int h1 (int (*)(int) = f); -int h2 (int (*)(double) = f); // ERROR - no matching f - -template <class T> -int j (T t) -{ - extern void k (int i = j (t)); // ERROR - default argument uses local - - k (); - - return 0; -} - -template int j (double); // ERROR - instantiated from here - diff --git a/gcc/testsuite/g++.old-deja/g++.other/delete1.C b/gcc/testsuite/g++.old-deja/g++.other/delete1.C deleted file mode 100755 index 6386fe1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/delete1.C +++ /dev/null @@ -1,15 +0,0 @@ -//Build don't link: -struct cl_heap_ring{ - void operator delete (void* ptr) { } - cl_heap_ring () - { } -}; - -struct cl_heap_null_ring : public cl_heap_ring { - void operator delete (void* ptr) { } -}; - -void f() -{ - new cl_heap_null_ring(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/delete2.C b/gcc/testsuite/g++.old-deja/g++.other/delete2.C deleted file mode 100755 index d90def0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/delete2.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: - -struct foo { - operator char*() const; -}; - -void bar(foo a) { - delete a; // should be accepted - delete[] a; // should be accepted - char b[1]; - delete b; // ERROR - expecting pointer type - delete[] b; // ERROR - expecting pointer type -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/delete3.C b/gcc/testsuite/g++.old-deja/g++.other/delete3.C deleted file mode 100755 index eb56350..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/delete3.C +++ /dev/null @@ -1,38 +0,0 @@ -#include <new> - -int i; - -extern "C" void printf(const char*, ...); - -template <class T, class U> -struct map { - ~map (); -}; - -template <class T, class U> -map<T, U>::~map () -{} - -struct SomeClass { }; - -void* operator new(size_t numBytes, SomeClass&, const nothrow_t&) throw() -{ - return operator new(numBytes, nothrow); -} - -void operator delete(void* pMemory, SomeClass&, const nothrow_t&) throw() -{ - i = 7; - return operator delete(pMemory); -} - -int -main() -{ - map< int, int>* pMap = new map< int, int>; - - delete pMap; - - if (i == 7) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/dll-1.C b/gcc/testsuite/g++.old-deja/g++.other/dll-1.C deleted file mode 100755 index 0c66b7f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/dll-1.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// Special g++ Options: -mno-nop-fun-dllimport -// Skip if not target: arm-*pe -// declspec test #1 -// set compiler_result "__imp_imp.*\.section${spaces}.drectve\n\[^\n\]*-export:exp" -// set not_compiler_result "__imp_exp" - -__declspec (dllimport) void imp (); - -__declspec (dllexport) void exp () { imp (); } diff --git a/gcc/testsuite/g++.old-deja/g++.other/dll-2.C b/gcc/testsuite/g++.old-deja/g++.other/dll-2.C deleted file mode 100755 index f5c7b2e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/dll-2.C +++ /dev/null @@ -1,19 +0,0 @@ -// Skip if not target: arm-*pe -// Build don't link: -// Microsoft's MSVC 2.0 allows dllimport followed by dllexport for variables, -// but does not allow dllexport followed by dllimport. -// -// Switching between dll{export,import} works for functions. -// We test for that too (by ensuring no error is produced). - -__declspec (dllimport) int foo1 (); -__declspec (dllexport) int foo1 (); - -__declspec (dllexport) int foo2 (); -__declspec (dllimport) int foo2 (); - -__declspec (dllimport) int bar1; -__declspec (dllexport) int bar1; - -__declspec (dllexport) int bar2; // ERROR - previously declared -__declspec (dllimport) int bar2; // ERROR - redefinition diff --git a/gcc/testsuite/g++.old-deja/g++.other/dll-3.C b/gcc/testsuite/g++.old-deja/g++.other/dll-3.C deleted file mode 100755 index 469ea1c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/dll-3.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: -// Skip if not target: arm-*pe -// Special g++ Options: -mno-nop-fun-dllimport -// set compiler_result "__imp_f1.*\.section${spaces}.drectve\n\[^\n\]*-export:f2" -// set not_compiler_result "__imp_f2" - -class aClass -{ -public: - __declspec(dllimport) int f1(); - __declspec(dllexport) int f2(); -}; - -__declspec(dllexport) int aClass::f2() -{ - return f1(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/dll-4.C b/gcc/testsuite/g++.old-deja/g++.other/dll-4.C deleted file mode 100755 index 322f003..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/dll-4.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// Skip if not target: arm-*pe -// Ensure dllexport overrides dllimport. -// set compiler_result "\.section${spaces}\.drectve\n\[^\n\]*-export:foo1.*\.section${spaces}\.drectve\n\[^\n\]*-export:foo2" -// set not_compiler_result "(__imp_foo1|__imp_foo2)" - -__declspec (dllimport) int foo1 (); -__declspec (dllexport) int foo1 (); - -__declspec (dllexport) int foo2 (); -__declspec (dllimport) int foo2 (); - -__declspec (dllexport) int foo1 () { return foo2 (); } -__declspec (dllexport) int foo2 () { return foo1 (); } diff --git a/gcc/testsuite/g++.old-deja/g++.other/dll-5.C b/gcc/testsuite/g++.old-deja/g++.other/dll-5.C deleted file mode 100755 index b2ad9f5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/dll-5.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// Skip if not target: arm-*pe -// dllimport is "sorta like" to "extern". -// set compiler_result "(\nfoo1:.*\nfoo2:|\nfoo2:.*\nfoo1:)" -// set not_compiler_result "__imp_" - -__declspec (dllimport) int foo1; -int foo1; - -__declspec (dllimport) int foo2; -int foo2 = 5; - -int f () { return foo1 + foo2; } diff --git a/gcc/testsuite/g++.old-deja/g++.other/dll-6.C b/gcc/testsuite/g++.old-deja/g++.other/dll-6.C deleted file mode 100755 index b4e0b42..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/dll-6.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// Skip if not target: arm-*pe -// set not_compiler_result "__imp_" -// dll.h -class aClass - { -public: - __declspec(dllimport) aClass(); - }; - -// dll.cpp - -__declspec(dllexport) aClass::aClass() - { - } diff --git a/gcc/testsuite/g++.old-deja/g++.other/dtor1.C b/gcc/testsuite/g++.old-deja/g++.other/dtor1.C deleted file mode 100755 index 3f9803c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/dtor1.C +++ /dev/null @@ -1,17 +0,0 @@ -// Test for use of typedef in explicit destructor call. - -#include <new> - -struct X { - typedef X foo; -}; - -X x; -unsigned char bar[sizeof (X)]; - -int -main () -{ - X* p = new (bar) X; - p->~foo(); -}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/dtor2.C b/gcc/testsuite/g++.old-deja/g++.other/dtor2.C deleted file mode 100755 index 201068c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/dtor2.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: - -class K { -public: - friend class C; - -private: - static K qwe; - K(); - ~K(); -}; - -K K::qwe; diff --git a/gcc/testsuite/g++.old-deja/g++.other/dtor3.C b/gcc/testsuite/g++.old-deja/g++.other/dtor3.C deleted file mode 100755 index a2ad16d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/dtor3.C +++ /dev/null @@ -1,51 +0,0 @@ -// Build don't link: - -struct S1 -{ - ~S1(int); // ERROR - destructors may not have parameters -}; - - -template <class T> -struct S2 -{ - ~S2(int); // ERROR - destructors may not have parameters -}; - - -struct S3 -{ - ~S3(double) {} // ERROR - destructors may not have parameters -}; - - -template <class T> -struct S4 -{ - ~S4(double) {} // ERROR - destructors may not have parameters -}; - - -struct S5 -{ - ~S5(); -}; - -S5::~S5(float) -{ // ERROR - destructors may not have parameters -} - - -template <class T> -struct S6 -{ - ~S6(); -}; - -template <class T> -S6<T>::~S6(float) -{ // ERROR - destructors may not have parameters -} - - - diff --git a/gcc/testsuite/g++.old-deja/g++.other/dtor4.C b/gcc/testsuite/g++.old-deja/g++.other/dtor4.C deleted file mode 100755 index f23ab78..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/dtor4.C +++ /dev/null @@ -1,31 +0,0 @@ -// Build don't link: - -struct S1 { - ~S1(); // ERROR - candidate -}; - -S1::~S1() const -{ // ERROR - prototype does not match -} - - -struct S2 { - ~S2() volatile; // ERROR - destructors may not be volatile -}; - - -template <class T> -struct S3 { - ~S3(); // ERROR - candidate -}; - -template <class T> -S3<T>::~S3() volatile -{ // ERROR - prototype does not match -} - - -template <class T> -struct S4 { - ~S4() const; // ERROR - destructors may not be const -}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/elab1.C b/gcc/testsuite/g++.old-deja/g++.other/elab1.C deleted file mode 100755 index 614e73b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/elab1.C +++ /dev/null @@ -1,9 +0,0 @@ -typedef struct {} S; - -S s1; -struct S* s2; // ERROR - S is a typedef name - -template <class T> -struct X { - friend class T; // ERROR - T is a template type parameter -}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/enum1.C b/gcc/testsuite/g++.old-deja/g++.other/enum1.C deleted file mode 100755 index f692991..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/enum1.C +++ /dev/null @@ -1,15 +0,0 @@ -extern "C" void abort(); - -struct A -{ - enum { a = 3}* p; - int f() { return (int) a; } -}; - -int main() -{ - A a; - - if (a.f() != 3) - abort(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/expr1.C b/gcc/testsuite/g++.old-deja/g++.other/expr1.C deleted file mode 100755 index fece8d4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/expr1.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: - -// Simplified from bug report by Trevor Taylor <ttaylor@powerup.com.au> - -struct T { - int operator()(int) { } // ERROR - candidate -}; - -int main() { - T()(); // ERROR - no such operator -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/field1.C b/gcc/testsuite/g++.old-deja/g++.other/field1.C deleted file mode 100755 index e734830..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/field1.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: - -struct X -{ - static const bool b = true; - static const int i = b ? 1 : 2; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/for1.C b/gcc/testsuite/g++.old-deja/g++.other/for1.C deleted file mode 100755 index 31cd741..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/for1.C +++ /dev/null @@ -1,41 +0,0 @@ -// Build don't link: - -int i; -int j; - -struct S { - int operator()(int) - { - i = 1; - } - - typedef int I; - - void f() { - for (S I; false; ) - ; - int k = I(3); - } -}; - -typedef int J; - -struct T { - int operator()(int) - { - j = 1; - } - - void f() { - for (T J; false; ) - ; - int k = J(3); - } -}; - -int main() -{ - S s; - s.f(); - return 2 * i + j; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/friend1.C b/gcc/testsuite/g++.old-deja/g++.other/friend1.C deleted file mode 100755 index e00f5e6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/friend1.C +++ /dev/null @@ -1,29 +0,0 @@ -// Build don't link: -// f() should be able to access B::j, as of FDIS [class.protected]/1 - -// Subject: Re: [bug] Inheritance and friend access control broken -// References: <199803032141.WAA09332@piano.dptmaths.ens-cachan.fr> -// <orhg5ff544.fsf@iguacu.dcc.unicamp.br> -// <199803041125.MAA06937@cor.dptmaths.ens-cachan.fr> -// <orn2f6ek92.fsf@iguacu.dcc.unicamp.br> <19980304102900.46897@dgii.com> -// From: Alexandre Oliva <oliva@dcc.unicamp.br> -// Date: 06 Mar 1998 01:43:18 -0300 - - -class B { -protected: - int i; - static int j; -}; - -class D : public B { - friend void f(); -}; - -void f() -{ - ((B*)0)->i = 3; // ERROR - protected - ((D*)0)->i = 4; - B::j = 5; // gets bogus error - XFAIL *-*-* - D::j = 6; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/friend2.C b/gcc/testsuite/g++.old-deja/g++.other/friend2.C deleted file mode 100755 index 32a0a28..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/friend2.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: - -void -f() -{ - class Local_2 { - friend class Friend; - - int i; - }; - - class Friend { - public: - void g() { - Local_2 l2; - l2.i = 3; - } - }; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/friend3.C b/gcc/testsuite/g++.old-deja/g++.other/friend3.C deleted file mode 100755 index 84c6b2d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/friend3.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: - -class foo { -public: - class bar; - void func(bar *); - class bar { - int st; - friend void foo::func(bar *); - }; -}; - - -void foo::func(bar *obj) { - obj->st++; -} - -void test02() { - foo obj_f; - foo::bar obj_b; - - obj_f.func( &obj_b); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/friend4.C b/gcc/testsuite/g++.old-deja/g++.other/friend4.C deleted file mode 100755 index 468340f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/friend4.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: - -// by Alexandre Oliva <oliva@dcc.unicamp.br> - -// I'm not 100% sure this program is correct, but g++ shouldn't just -// crash. - -// The idea is to give privileged access to bar<A> only to -// specializations foo<A,B>, for all B. - -template <class A, class B> void foo(); -template <class C> class bar { - int i; - template <class B> friend void foo<C,B>(); // ERROR - bogus declaration -}; -template <class A, class B> void foo() { - bar<A> baz; baz.i = 1; // ERROR - foo cannot access bar<int>::i - bar<int> buz; buz.i = 1; // ERROR - foo cannot access bar<int>::i -} -int main() { - foo<void,void>(); - foo<int,void>(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/friend5.C b/gcc/testsuite/g++.old-deja/g++.other/friend5.C deleted file mode 100755 index ab15fa5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/friend5.C +++ /dev/null @@ -1,5 +0,0 @@ -// submitted by David C Binderman <dcb@pncl.co.uk> - -struct A { - friend bool(); // ERROR - invalid declaration -}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/incomplete.C b/gcc/testsuite/g++.old-deja/g++.other/incomplete.C deleted file mode 100755 index 0c230c1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/incomplete.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: - -struct S; - -void f(S s) {} // ERROR - incomplete type diff --git a/gcc/testsuite/g++.old-deja/g++.other/init1.C b/gcc/testsuite/g++.old-deja/g++.other/init1.C deleted file mode 100755 index a87f14b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/init1.C +++ /dev/null @@ -1,10 +0,0 @@ -extern "C" void abort(); - -int i; -int j = i++; - -int main() -{ - if (i != 1) - abort(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/init10.C b/gcc/testsuite/g++.old-deja/g++.other/init10.C deleted file mode 100755 index fa23813..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/init10.C +++ /dev/null @@ -1,22 +0,0 @@ -int i; - -struct D { - D () { - i++; - } -}; - -struct C { - C() {} - - D d[1]; -}; - - -int main () -{ - C c; - - if (i != 1) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/init11.C b/gcc/testsuite/g++.old-deja/g++.other/init11.C deleted file mode 100755 index 79d7d6c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/init11.C +++ /dev/null @@ -1,38 +0,0 @@ -// Check that elements for which no explicit initializer was given are -// default-initialized properly. - -extern "C" int printf (const char *, ...); - -struct A -{ - int i; - A(): i (42) { } - A(int j): i(j) { } -}; - -A ar[4] = { 1, 2 }; - -struct B -{ - A a1, a2, a3, a4; -}; - -B b = { 1, 2 }; - -struct C -{ - A ar[4]; -}; - -C c = { 1, 2 }; - -int -main () -{ - printf ("%d %d %d %d\n%d %d %d %d\n%d %d %d %d\n", - ar[0].i, ar[1].i, ar[2].i, ar[3].i, - b.a1.i, b.a2.i, b.a3.i, b.a4.i, - c.ar[1-1].i, c.ar[2-1].i, c.ar[3-1].i, c.ar[4-1].i); - - return (b.a4.i != 42 || c.ar[3].i != 42); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/init2.C b/gcc/testsuite/g++.old-deja/g++.other/init2.C deleted file mode 100755 index c17427a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/init2.C +++ /dev/null @@ -1,20 +0,0 @@ -// Special g++ Options: -O3 - -typedef int (*fp)(); - -struct S -{ - fp f; -}; - -static int f() -{ - return 0; -} - -static const S s = { &f }; - -int main() -{ - return (*s.f)(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/init3.C b/gcc/testsuite/g++.old-deja/g++.other/init3.C deleted file mode 100755 index a4c6e76..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/init3.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: - -struct X -{ - static const bool is_signed = true ; - static const int digits = is_signed ? 8 *sizeof(wchar_t)-1 : 0; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/init4.C b/gcc/testsuite/g++.old-deja/g++.other/init4.C deleted file mode 100755 index 9bc473f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/init4.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: - -class error { -public: - error(int) {} -}; - -class foo { - const error x = 1; // ERROR - initialization of non-static data member -}; - - diff --git a/gcc/testsuite/g++.old-deja/g++.other/init5.C b/gcc/testsuite/g++.old-deja/g++.other/init5.C deleted file mode 100755 index 3f4785e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/init5.C +++ /dev/null @@ -1,27 +0,0 @@ -// Objects must be destructed in decreasing cnt order -// Original test attributed to James Kanze <jkanze@otelo.ibmmail.com> -// execution test - XFAIL *-*-* - -static int cnt; - -class A { - int myCnt; -public: - A() : myCnt(cnt++) {} - ~A() { if (--cnt != myCnt) abort(); } -}; - -void f() { static A a; /* a.myCnt == 1 */ } - -class B { - int myCnt; -public: - B() : myCnt(cnt+1) { f(); ++cnt; } - ~B() { if (--cnt != myCnt) abort(); } -}; - -static A a1; // a1.myCnt == 0 -static B b1; // b1.myCnt == 2 -static A a2; // a2.myCnt == 3 - -int main() {} diff --git a/gcc/testsuite/g++.old-deja/g++.other/init6.C b/gcc/testsuite/g++.old-deja/g++.other/init6.C deleted file mode 100755 index a684ae1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/init6.C +++ /dev/null @@ -1,12 +0,0 @@ -// Test for default-initialization of POD-structs in functional cast notation. - -struct foo { int a[10]; }; - -int main() -{ - foo f = foo(); - int r = 0; - for (int i = 0; i < 10; ++i) - r |= f.a[i]; - return r; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/init7.C b/gcc/testsuite/g++.old-deja/g++.other/init7.C deleted file mode 100755 index 3b17da0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/init7.C +++ /dev/null @@ -1,28 +0,0 @@ -// simplified from testcase in Windows Developer Journal, -// submitted by eyal.ben-david@aks.com - -// The initialization of a static local variable must be retried if a -// previous try finished by throwing an exception [stmt.dcl]/4 - -struct foo { - foo() { throw true; } -}; - -void bar() { - static foo baz; -} - -int main() { - try { - bar(); // must throw - } - catch (bool) { - try { - bar(); // must throw again! - } - catch (bool) { - return 0; - } - } - abort(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/init8.C b/gcc/testsuite/g++.old-deja/g++.other/init8.C deleted file mode 100755 index 80df498..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/init8.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: - -// submitted by David C Binderman <dcb@pncl.co.uk> - -// According to [dcl.init]/9, this should be ill-formed - -void -f() -{ - const int var [ 10 ]; // ERROR - missing initializer -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/init9.C b/gcc/testsuite/g++.old-deja/g++.other/init9.C deleted file mode 100755 index 5626174..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/init9.C +++ /dev/null @@ -1,40 +0,0 @@ -// Build don't link: - -// Based on a testcase submitted by Tudor Hulubei <tudor@cs.unh.edu> - -// X is not a POD because it has a user-defined destructor. -// Therefore, we can't cross its initialization. - -// vector<int> is not even an aggregate; nevertheless, no error is -// reported... - -struct A { - A() {} -}; - -void a() { - goto bar; // ERROR - jump from here - A x; // ERROR - jump crosses initialization - bar: // ERROR - jump to here - ; -} - -struct X { - ~X() {} -}; - -void b() { - goto bar; // ERROR - jump from here - X x; // ERROR - jump crosses initialization - bar: // ERROR - jump to here - ; -} - -#include <vector> - -void c() { - goto bar; // ERROR - jump from here - vector<int> x; // ERROR - jump crosses initialization - bar: // ERROR - jump to here - ; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/lineno1.C b/gcc/testsuite/g++.old-deja/g++.other/lineno1.C deleted file mode 100755 index ab003e0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/lineno1.C +++ /dev/null @@ -1,14 +0,0 @@ -// Submitted by Nathan Sidwell <nathan@acm.org> -// Bug: g++ was giving the wrong line number for statics. -// Special g++ Options: -w - -class A -{ - A(); // ERROR - private - ~A(); // ERROR - private -}; - -static A a; // ERROR - here - - - diff --git a/gcc/testsuite/g++.old-deja/g++.other/lineno2.C b/gcc/testsuite/g++.old-deja/g++.other/lineno2.C deleted file mode 100755 index 4d64d1a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/lineno2.C +++ /dev/null @@ -1,14 +0,0 @@ -// Submitted by Nathan Sidwell <nathan@acm.org> -// Bug: g++ wasn't listing candidates for a failed conversion. - -void f(int, double); // ERROR - candidate -void f(double, int); // ERROR - candidate -void f(int); // ERROR - candidate - -int -main () -{ - void (*ptr)(int, int); - - ptr = &f; // ERROR - no match -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/linkage1.C b/gcc/testsuite/g++.old-deja/g++.other/linkage1.C deleted file mode 100755 index 65a2848..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/linkage1.C +++ /dev/null @@ -1,14 +0,0 @@ -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 -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/linkage2.C b/gcc/testsuite/g++.old-deja/g++.other/linkage2.C deleted file mode 100755 index c9b6e2a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/linkage2.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// From: Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-karlsruhe.de> -extern "C" -{ -typedef struct {int dummy[10];} *GDBM_FILE; -extern GDBM_FILE gdbm_open(); -} - -typedef struct { int dummy[10]; } *FAIL_FILE; -extern FAIL_FILE fail_open(); // ERROR - non-local function - -typedef struct { int dummy[10]; } *SUCCESS_FILE, S; -extern SUCCESS_FILE success_open(); - diff --git a/gcc/testsuite/g++.old-deja/g++.other/local1.C b/gcc/testsuite/g++.old-deja/g++.other/local1.C deleted file mode 100755 index d0ed4f0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/local1.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't run: - -struct Outer { - virtual ~Outer() {} -}; - -int -main() -{ - { struct Inner : virtual public Outer {} inner; } - { struct Inner : virtual public Outer {} inner; } -} - diff --git a/gcc/testsuite/g++.old-deja/g++.other/local2.C b/gcc/testsuite/g++.old-deja/g++.other/local2.C deleted file mode 100755 index 2d17b33..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/local2.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// Special g++ Options: -O2 - -void f () -{ - struct Init { - Init () { - } - }; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/lookup1.C b/gcc/testsuite/g++.old-deja/g++.other/lookup1.C deleted file mode 100755 index f3ea5eb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/lookup1.C +++ /dev/null @@ -1,9 +0,0 @@ -// simple test for id from base class during class defn -// Build don't link: - -struct foo { - enum { blah = 1 }; -}; -struct bar : public foo { - char cache[blah]; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/lookup2.C b/gcc/testsuite/g++.old-deja/g++.other/lookup2.C deleted file mode 100755 index 0772399..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/lookup2.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: - -struct B { - int i; -}; - -struct D: virtual public B { - int i; -}; - -struct D2 : public D { - void f() { i = 3; } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/lookup3.C b/gcc/testsuite/g++.old-deja/g++.other/lookup3.C deleted file mode 100755 index 347be4e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/lookup3.C +++ /dev/null @@ -1,17 +0,0 @@ -// Test to make sure that the use of __typeof__ in WIFEXITED works. - -int main () -{ - int stat_loc = 0; - (__extension__ - ({ - union - { - __typeof__ (stat_loc) __in; - int __i; - } __u; - __u.__in = (stat_loc); - __u.__i; - }) - ); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/lookup4.C b/gcc/testsuite/g++.old-deja/g++.other/lookup4.C deleted file mode 100755 index 59b7a75..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/lookup4.C +++ /dev/null @@ -1,21 +0,0 @@ -// Test for proper handling of references to overloaded member functions. - -struct A { - static void f (int) { } - void f (); -}; - -void (*p)(int) = &A::f; - -void A::f () -{ - p = f; -} - -int main() -{ - A a; - p = &a.f; - (a.f)(); - (a.f)(42); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/lookup5.C b/gcc/testsuite/g++.old-deja/g++.other/lookup5.C deleted file mode 100755 index 9fe0415..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/lookup5.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// Simplified from bug report by Paris Smaragdis <paris@media.mit.edu> - -// crash test - XFAIL *-*-* - -template <class T> class vector {}; -class foo {}; -int main() { - foo f; - f.vector(); // ERROR - not a method -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/lookup6.C b/gcc/testsuite/g++.old-deja/g++.other/lookup6.C deleted file mode 100755 index 08f5ac5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/lookup6.C +++ /dev/null @@ -1,25 +0,0 @@ -int f(int i) -{ - struct C { - int i; - C () : i(1) {} - int f() { - struct D { - int i; - D () : i(2) {} - int g() { return i; } - } d; - - return d.g(); - } - } c; - - return c.f(); -} - - -int main() -{ - if (f(0) != 2) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/lookup7.C b/gcc/testsuite/g++.old-deja/g++.other/lookup7.C deleted file mode 100755 index 55726a5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/lookup7.C +++ /dev/null @@ -1,12 +0,0 @@ -// Test for handling of type shadowing in function scope. - -int main() -{ - int A = 42; - struct A - { - enum { a }; - }; - A = A::a; - return A; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/lookup8.C b/gcc/testsuite/g++.old-deja/g++.other/lookup8.C deleted file mode 100755 index f81572a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/lookup8.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: - -struct S { - int A; - struct A { - enum { a = 0 }; - }; - - void f(); -}; - -void S::f() { - A = A::a; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/loop1.C b/gcc/testsuite/g++.old-deja/g++.other/loop1.C deleted file mode 100755 index 3380dd4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/loop1.C +++ /dev/null @@ -1,30 +0,0 @@ -// Test for bad loop optimization of goto fixups. -// Special g++ Options: -O2 - -typedef bool (*ftype) (); - -int c, d; -struct A { - A() { ++c; } - A(const A&) { ++c; } - ~A() { ++d; } -}; - -void f (ftype func) -{ - A a; - do { - if ((*func)()) return; - } while (true); -} - -bool test () -{ - return true; -} - -main () -{ - f (test); - return (c != d); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/main1.C b/gcc/testsuite/g++.old-deja/g++.other/main1.C deleted file mode 100755 index 09ab411..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/main1.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't linK: - -int main() -{ // ERROR - invalid redeclaration of - return 0; -} - - -int main(int, const char**) -{ // ERROR - as - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/mutable1.C b/gcc/testsuite/g++.old-deja/g++.other/mutable1.C deleted file mode 100755 index 3fd0c3e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/mutable1.C +++ /dev/null @@ -1,43 +0,0 @@ -// Copyright (C) 1999 Free Software Foundation, Inc. -// Contributed by Nathan Sidwell 14 Jan 1999 <nathan@acm.org> - -// Make sure objects with mutable members are never placed in a read only -// section. - -// All these are POD structs, and hence do not need ctors -struct A { mutable int i; }; -struct B { A a; }; -struct C { A a[1]; }; -struct D { static A const a; }; - -// all these are static consts and hence naively suitable for a read only -// section. But they contain a mutable, so must be in a writable section. -static int const i = 0; -static A const a = {0}; -static B const b = {{0}}; -static C const c = {{{0}}}; -static A const aa[] = {{0}}; -static B const bb[] = {{{0}}}; -static C const cc[] = {{{{0}}}}; -A const D::a = {0}; - -int main() -{ - a.i = 05; - b.a.i = 05; - c.a[0].i = 05; - aa[0].i = 05; - bb[0].a.i = 05; - cc[0].a[0].i = 05; - D::a.i = 05; - - if(!a.i) return 1; - if(!b.a.i) return 1; - if(!c.a[0].i) return 1; - if(!aa[0].i) return 1; - if(!bb[0].a.i) return 1; - if(!cc[0].a[0].i) return 1; - if(!D::a.i) return 1; - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/nested1.C b/gcc/testsuite/g++.old-deja/g++.other/nested1.C deleted file mode 100755 index 0c03856..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/nested1.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: - -struct C -{ - struct D - { - }; -}; - -struct E -{ - C& c; - void g(); -}; - -void E::g() -{ - c.D().f(); // ERROR - no matching function -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/nested2.C b/gcc/testsuite/g++.old-deja/g++.other/nested2.C deleted file mode 100755 index 5492b53..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/nested2.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// by Bert Bril <bert@dgb.nl> - -struct M1 { - struct I {}; -}; - -struct M2 { - struct I {}; - struct J : virtual public M2::I, - virtual public M1::I {}; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/new.C b/gcc/testsuite/g++.old-deja/g++.other/new.C deleted file mode 100755 index e283957..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/new.C +++ /dev/null @@ -1,57 +0,0 @@ -// Build don't link: - -typedef __SIZE_TYPE__ size_t; -inline void * -operator new(size_t alloc_sz, const char *fname, unsigned lineno) -{ -} -inline void * -operator new[](size_t alloc_sz, const char *fname, unsigned lineno) -{ -} -inline void -operator delete(void *ptr, const char *fname, unsigned lineno) -{ -} -inline void -operator delete[](void *ptr, const char *fname, unsigned lineno) -{ -} - -class DEF { -public: - DEF( DEF *parent=0, const char *name=0 ); -}; - -class ABC -{ -public: - enum stuff { ID0, ID1 }; - ABC( stuff, DEF *parent=0, const char *name=0 ); -}; - -class GHI : public DEF -{ -}; - -class LMNFrame; -class LMN : public DEF -{ - friend class LMNFrame; - public: -public: - LMN(); -private: - LMNFrame *draw_area; - - ABC *scroll_h; -}; -class LMNFrame : public GHI { -}; -LMN::LMN() -{ - draw_area = new ("abc", 69) LMNFrame; - - scroll_h = new ("def", 71) ABC(ABC::ID0, this); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.other/new2.C b/gcc/testsuite/g++.old-deja/g++.other/new2.C deleted file mode 100755 index 9a6e051..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/new2.C +++ /dev/null @@ -1,21 +0,0 @@ -//Build don't link: -typedef __SIZE_TYPE__ size_t; -void *operator new(size_t, unsigned int); - -struct X{ - X(); - X(int); -}; - - -void f(X *x = new X); // ERROR - - -void f(X *x = new X(4)); // ERROR - - -void f(X *x = new X[4]); // ERROR - - -void f(X *x = new (3) X(6)); // ERROR - - -void f(X *x = new (2) X[10]); // ERROR - - -void f(X *x = new X[10][5]); // ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.other/null1.C b/gcc/testsuite/g++.old-deja/g++.other/null1.C deleted file mode 100755 index 1c72d1c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/null1.C +++ /dev/null @@ -1,40 +0,0 @@ -// Build don't run: - -#include <cstddef> - -void g(int) {} -extern void g(void*); - -template <int I> -void h() {} - -void k(int) {} - -template <class T> -void l(T); - -template <> -void l(int) {} - -int main() -{ - int i = NULL; // WARNING - converting NULL to non-pointer type - float z = NULL; // WARNING - converting NULL to non-pointer type - int a[2]; - - i != NULL; // WARNING - NULL used in arithmetic - NULL != z; // WARNING - NULL used in arithmetic - k != NULL; // No warning: decay conversion - NULL != a; // Likewise. - -NULL; // WARNING - converting NULL to non-pointer type - +NULL; // WARNING - converting NULL to non-pointer type - ~NULL; // WARNING - converting NULL to non-pointer type - a[NULL] = 3; // WARNING - converting NULL to non-pointer-type - i = NULL; // WARNING - converting NULL to non-pointer type - z = NULL; // WARNING - converting NULL to non-pointer type - k(NULL); // WARNING - converting NULL to int - g(NULL); // WARNING - converting NULL to int - h<NULL>(); // WARNING - NULL bound to integer template parameter - l(NULL); // WARNING - converting NULL to int - NULL && NULL; // No warning: converting NULL to bool is OK -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/null2.C b/gcc/testsuite/g++.old-deja/g++.other/null2.C deleted file mode 100755 index 9dc5b13..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/null2.C +++ /dev/null @@ -1,12 +0,0 @@ -// Based on a testcase by Eric Dumazet <Eric.Dumazet@COSMOSBAY.COM> - -#include <cstdlib> - -const char * const foo = ""; // foo is not NULL - -int main() { - if ((foo == 0) ? 0 : foo) // so this should evaluate to `foo' - return 0; - else - std::abort(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/overcnv1.C b/gcc/testsuite/g++.old-deja/g++.other/overcnv1.C deleted file mode 100755 index 05941df..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/overcnv1.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: - -class A { -public: - void f(const char * const * ); -}; -void f(const char * const *) {} - -void g() -{ - char *ar[10]; - A a; - f(ar); - a.f(ar); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/overload1.C b/gcc/testsuite/g++.old-deja/g++.other/overload1.C deleted file mode 100755 index 59191d5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/overload1.C +++ /dev/null @@ -1,11 +0,0 @@ -struct A { - A operator+ (int) const { return *this; } -}; - -A operator+ (A, float); - -int main () -{ - A a; - a + 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/overload2.C b/gcc/testsuite/g++.old-deja/g++.other/overload2.C deleted file mode 100755 index 598f71c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/overload2.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't run: - -template <class T> -class ConstArray { -}; - -template <class T1, class T2> -void operator+(const ConstArray<T1>&, const ConstArray<T2>&) -{ -} - -template <class T1, class T2> -void operator+(const ConstArray<T1>&, T2); - -template <class T1, class T2> -void operator+(T1, const ConstArray<T2>&); - -const ConstArray<int> cai() { return ConstArray<int>(); } -const ConstArray<double> cad() { return ConstArray<double>(); } - -int main() -{ - cai () + cad (); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/overload3.C b/gcc/testsuite/g++.old-deja/g++.other/overload3.C deleted file mode 100755 index fc1d5c0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/overload3.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't run: - -void f(const int *); -void f(int *) {} - -void f2(const volatile int *); -void f2(volatile int *) {} - -int i; - -int main() -{ - f(&i); - f2(&i); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.other/overload4.C b/gcc/testsuite/g++.old-deja/g++.other/overload4.C deleted file mode 100755 index 2247853..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/overload4.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't run: - -void f(int* const volatile * const * const*); -void f(int* const * const * const*) {} - -int main() -{ - int*** ip; - f(&ip); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/overload5.C b/gcc/testsuite/g++.old-deja/g++.other/overload5.C deleted file mode 100755 index 5f5e11f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/overload5.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't run: - -struct S {}; - -struct T : public S {}; - -struct U : public T {}; - -void f(int T::*) {} -void f(int U::*); - -void g(void (T::*)(int)) {} -void g(void (U::*)(int)); - -int main() -{ - int S::*ip; - void (S::*fp)(int); - - f(ip); - g(fp); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/overload6.C b/gcc/testsuite/g++.old-deja/g++.other/overload6.C deleted file mode 100755 index fae26c3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/overload6.C +++ /dev/null @@ -1,18 +0,0 @@ -extern "C" void abort(); - -struct S1 -{ - int f() { return 0; } - int f() const { return 1; } -}; - -struct S2 : public S1 -{ -}; - -int main() -{ - S2 s2; - if (s2.f() != 0) - abort (); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/overload7.C b/gcc/testsuite/g++.old-deja/g++.other/overload7.C deleted file mode 100755 index 57bec8b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/overload7.C +++ /dev/null @@ -1,22 +0,0 @@ -// Check that object call works when there are multiple conversion ops -// returning the same type. - -typedef int (*pfn)(); - -int zero () { return 0; } -int one () { return 1; } -int two () { return 2; } - -struct A { - A() { } - operator pfn () { return one; } - operator pfn () const { return zero; } - operator pfn () volatile { return two; } -}; - -int -main () -{ - const A a; - return a(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/overload8.C b/gcc/testsuite/g++.old-deja/g++.other/overload8.C deleted file mode 100755 index d2c1483..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/overload8.C +++ /dev/null @@ -1,22 +0,0 @@ -class a { -public: - int f() { return 0; } - int f() const { return 1; } -}; - -class b : public a { -}; - -int main() -{ - int (b::* ptr1)() = &b::f; - int (b::* ptr2)() const = &b::f; - - b ao; - - if ((ao.*ptr1)() != 0) - return 1; - if ((ao.*ptr2)() != 1) - return 1; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.other/overload9.C b/gcc/testsuite/g++.old-deja/g++.other/overload9.C deleted file mode 100755 index 521f4bd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/overload9.C +++ /dev/null @@ -1,31 +0,0 @@ -struct T { ~T() {}; }; - -int g () -{ - foo: - T t; - int f(int); - bar: - T t2; - int f(double); - return f(3); -} - - -int f(int) -{ - return 0; -} - - -int f(double) -{ - return 1; -} - - -int main() -{ - return g(); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.other/pmf1.C b/gcc/testsuite/g++.old-deja/g++.other/pmf1.C deleted file mode 100755 index e84a39a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/pmf1.C +++ /dev/null @@ -1,8 +0,0 @@ -struct foo {}; -typedef long unsigned int & (foo::*pmf)(void); -void fn (...) {} -int main () -{ - pmf y = 0; - fn (y); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/pmf2.C b/gcc/testsuite/g++.old-deja/g++.other/pmf2.C deleted file mode 100755 index 92935c0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/pmf2.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: - -// submitted by David C Binderman <dcb@pncl.co.uk> - -struct S -{ - void f(); -}; - -void (S ::* pmf) (); - -S * pf; - -void -f() -{ - pmf = & pf->f; // ERROR - not a valid pmf expression -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/pmf3.C b/gcc/testsuite/g++.old-deja/g++.other/pmf3.C deleted file mode 100755 index 2378122..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/pmf3.C +++ /dev/null @@ -1,24 +0,0 @@ -// Submitted by Nathan Sidwell <nathan@acm.org> -// Bug: g++ was crashing after giving errors. - -template<class T> - void connect_to_method( - T *receiver, - void (T::*method)()) - {} - -class Gtk_Base -{ -public: - void expose(); - void show(); - void show(int); - Gtk_Base(); -}; - - -Gtk_Base::Gtk_Base() -{ - connect_to_method(this,&show); // ERROR - invalid pmf expression - connect_to_method(this,&expose); // ERROR - invalid pmf expression -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/printf1.C b/gcc/testsuite/g++.old-deja/g++.other/printf1.C deleted file mode 100755 index 04c4d9f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/printf1.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// Special g++ Options: -Wall - -struct a -{ - void x(char *f,...) __attribute__((format(printf,2,3))); -}; - -int main() -{ - a A; - A.x("%d"); // WARNING - too few arguments for format - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/ptrmem1.C b/gcc/testsuite/g++.old-deja/g++.other/ptrmem1.C deleted file mode 100755 index 1b5d5df..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/ptrmem1.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: - -class x -{ -public: - virtual int is_constant(); -}; - -void foo() -{ - x* y; - if (y->is_constant) // ERROR - assuming & - { - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/ptrmem2.C b/gcc/testsuite/g++.old-deja/g++.other/ptrmem2.C deleted file mode 100755 index 8573095..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/ptrmem2.C +++ /dev/null @@ -1,15 +0,0 @@ -class cow { -public: - void moo (char *); -}; - -void f() -{ - cow* c; - - void (cow::*fp0)(char*) = &cow::moo; // OK - void (cow::*fp1)(int) = &cow::moo; // ERROR - conversion - int (cow::*fp2)(char*) = &cow::moo; // ERROR - conversion - int (cow::*fp3)(char*, void*) = fp2; // ERROR - conversion - int (cow::*fp4)(double) = (int (cow::*)(double)) fp2; // OK -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/ptrmem3.C b/gcc/testsuite/g++.old-deja/g++.other/ptrmem3.C deleted file mode 100755 index 3f6a2af..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/ptrmem3.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: - -class c { - void (c::*x)(); -public: - void f() { this->x(); } // ERROR - pointer-to-member -}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/realloc.C b/gcc/testsuite/g++.old-deja/g++.other/realloc.C deleted file mode 100755 index 1e1c6db..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/realloc.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: - -extern "C" void realloc(); - -class bug { -public: - void realloc(int foo,int bar); -}; - -void f() { - bug c; - c.realloc(50,50); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.other/redecl1.C b/gcc/testsuite/g++.old-deja/g++.other/redecl1.C deleted file mode 100755 index d08e5aa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/redecl1.C +++ /dev/null @@ -1,6 +0,0 @@ -//Build don't link: -struct X{ - void i(); - void i(int); // ERROR - - int i; // ERROR - conflict -}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/ref1.C b/gcc/testsuite/g++.old-deja/g++.other/ref1.C deleted file mode 100755 index b6d82aa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/ref1.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -int f(); - -void g() -{ - const int& i = f(); // OK - int& j = f(); // ERROR - initialization of non-const reference - const volatile int& k = f(); // ERROR - initialization of volatile ref -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/rtti1.C b/gcc/testsuite/g++.old-deja/g++.other/rtti1.C deleted file mode 100755 index 7377e15..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/rtti1.C +++ /dev/null @@ -1,121 +0,0 @@ -// test of rtti of non-class types -// Special g++ Options: -frtti - -#include <typeinfo> - -extern "C" { - int printf(const char *, ...); - void exit(int); -} - -int i; -short s; -char c; -long l; - -unsigned int ui; -unsigned short us; -unsigned char uc; -unsigned long ul; - -float f; -double d; - -int& ri = i; -const volatile int cvi = 10; -volatile const int vci = 20; -const int ci = 100; - -int *pi; -int ai[10]; - -enum color { red, blue, green, yellow}; - -int (*fp)(); -int (*gp)(); -int (*hp)(int); - -class XX { -public: - int xxi; - float xxf; - int xxf1 () {}; - int xxf2 (int k) {}; -}; - -class YY { -public: - int yyi; - double yyd; - int yyf1 (float f) {}; - double yyf2 () {return yyd;}; -}; - -int XX::*ptmd1; -int XX::*ptmd2; -float XX::*ptmd3; -int YY::*ptmd4; - -int (XX::*ptmf1) (); -int (XX::*ptmf2) (); -int (XX::*ptmf3) (int); -int (YY::*ptmf4) (); - -int func1 () -{ return 0;} - -int func2 () -{ return 1;} - -int func3 (int i) -{ return i;} - -short func4 () -{ return 99;} - -void error (int i) -{ - exit(i); -} - -int main () -{ - if (typeid(i) != typeid(int)) error(1); - if (typeid(s) != typeid(short)) error(2); - if (typeid(c) != typeid(char)) error(3); - if (typeid(l) != typeid(long)) error(4); - if (typeid(ui) != typeid(unsigned int)) error(5); - if (typeid(us) != typeid(unsigned short)) error(6); - if (typeid(uc) != typeid(unsigned char)) error(7); - if (typeid(ul) != typeid(unsigned long)) error(8); - if (typeid(f) != typeid(float)) error(9); - if (typeid(d) != typeid(double)) error(10); - - if (typeid(*pi) != typeid(int)) error(51); - if (typeid(pi) == typeid(ai)) error(52); - if (typeid(ri) != typeid(i)) error(53); - if (typeid(cvi) != typeid(vci)) error (54); - if (typeid(vci) != typeid(i)) error(55); - if (typeid(ci) != typeid(cvi)) error (56); - if (typeid(ci) != typeid(const int)) error(57); - - if (typeid(func1) != typeid(func2)) error (81); - if (typeid(func2) == typeid(func3)) error (82); - if (typeid(func1) == typeid(func4)) error (83); - if (typeid(func3) == typeid(func4)) error (84); - - if (typeid(red) != typeid(color)) error (101); - if (typeid(green) != typeid(blue)) error (102); - - if (typeid(fp) != typeid(gp)) error (103); - if (typeid(gp) == typeid(hp)) error (104); - - if (typeid(ptmd1) != typeid(ptmd2)) error (105); - if (typeid(ptmd1) == typeid(ptmd3)) error (106); - if (typeid(ptmd2) == typeid(ptmd4)) error (107); - - if (typeid(ptmf1) != typeid(ptmf2)) error (108); - if (typeid(ptmf2) == typeid(ptmf3)) error (109); - if (typeid(ptmf1) == typeid(ptmf4)) error (110); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/rtti2.C b/gcc/testsuite/g++.old-deja/g++.other/rtti2.C deleted file mode 100755 index a7a218b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/rtti2.C +++ /dev/null @@ -1,88 +0,0 @@ -// test of rtti of single inheritance and multiple inheritance classes -// Special g++ Options: -frtti - -#include <typeinfo> - -extern "C" { - int printf(const char *, ...); - void exit(int); -} - -class X { - public: - int xi; -}; - -class Y : public X { - short ys; -}; - -class Z : public Y { - int zi; -}; - -Z z; -Y y; -Y *yp = &z; -X *xp = &z; -Z *zp = &z; - -class A { - public: - int Ai; -}; - -class B { - public: - int Bi; -}; - -class D : public A, public B { - int Di; -}; - -/* -class E : public D, public B { - int Ei; -}; -*/ -class E { - int Ei; -}; - -class F : public E, public D { - int Fi; -}; - -D d; -A *ap = &d; -B *bp = &d; -F f; -A *aap = &f; -D *dp = &f; -B *bbp = dp; - -void *vp = zp; - -void error (int i) -{ - exit(i); -} - -int main () -{ - if (typeid(z) != typeid(Z)) error(1); - if (typeid(*yp) == typeid(Z)) error(2); - if (typeid(*yp) == typeid(*zp)) error(3); - if (typeid(xp) == typeid(yp)) error(4); - - xp = (X *)&y; - if (typeid(*xp) == typeid(*yp)) error(5); - if (typeid(*xp) == typeid(Y)) error(6); - - if (typeid(*ap) == typeid(*bp)) error (31); - if (typeid(*ap) == typeid(D)) error(32); - - if (typeid(*aap) == typeid(*bbp)) error(33); - if (typeid(*dp) == typeid(*aap)) error(34); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/rtti3.C b/gcc/testsuite/g++.old-deja/g++.other/rtti3.C deleted file mode 100755 index fdb1f9e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/rtti3.C +++ /dev/null @@ -1,96 +0,0 @@ -// test of rtti of single inheritance and multiple inheritance with -// virtual functions -// Special g++ Options: -frtti - -#include <typeinfo> - -extern "C" { - int printf(const char *, ...); - void exit(int); -} - -class X { - public: - int xi; - virtual int f() {}; -}; - -class Y : public X { - short ys; -}; - -class Z : public Y { - int zi; -}; - -Z z; -Y y; -Y *yp = &z; -X *xp = &z; -Z *zp = &z; - -class A { - public: - int Ai; - virtual int a() {}; -}; - -class B { - public: - int Bi; - virtual int g() {}; -}; - -class D : public A, public B { - int Di; -}; - -/* -class E : public D, public B { - int Ei; -}; -*/ -class E { - int Ei; -}; - -class F : public E, public D { - int Fi; -}; - -D d; -A *ap = &d; -B *bp = &d; -D *dp = &d; -F f; -A *aap = &f; -B *bbp = &f; - -void *vp = zp; - -void error (int i) -{ - exit(i); -} - -int main () -{ - if (typeid(z) != typeid(Z)) error(1); - if (typeid(*yp) != typeid(Z)) error(2); - if (typeid(*yp) != typeid(*zp)) error(3); - if (typeid(xp) == typeid(yp)) error(4); - - xp = (X *)&y; - if (typeid(*xp) == typeid(*yp)) error(5); - if (typeid(*xp) != typeid(Y)) error(6); - - if (typeid(*ap) != typeid(*bp)) error (31); - if (typeid(*ap) != typeid(D)) error(32); - vp = dp; - vp = dynamic_cast<void*> ((B *)vp); - if (dp != (D *)vp) error(35); - - dp = (D *)&f; - if (typeid(*aap) != typeid(*bbp)) error(37); - if (typeid(*dp) != typeid(*aap)) error(38); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/rtti4.C b/gcc/testsuite/g++.old-deja/g++.other/rtti4.C deleted file mode 100755 index 571ed68..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/rtti4.C +++ /dev/null @@ -1,86 +0,0 @@ -// test of rtti of single inheritance and multiple inheritance with -// virtual inheritance -// Special g++ Options: -frtti -w - -#include <typeinfo> - -extern "C" { - int printf(const char *, ...); - void exit(int); -} - -class X { - public: - int xi; - virtual int f() {}; -}; - -class Y : public virtual X { - short ys; -}; - -class Z : public virtual Y { - int zi; -}; - -Z z; -Y y; -Y *yp = &z; -X *xp = &z; -Z *zp = &z; - -class A { -public: - int Ai; - virtual int a() {}; -}; - -class B { -public: - int Bi; - virtual int g() {}; -}; - -class D : public virtual A, private B { - int Di; -}; - -class E : public virtual D, public B { - int Ei; -}; - -class F : public E, public virtual D { - int Fi; -}; - -D d; -A *ap = &d; -B *bp = (B *)&d; -F f; -A *aap = &f; -D *dp = &f; -B *bbp = (B *)dp; - -void *vp = zp; - -void error (int i) -{ - exit(i); -} - -int main () -{ - if (typeid(z) != typeid(Z)) error(1); - if (typeid(*yp) != typeid(Z)) error(2); - if (typeid(*yp) != typeid(*zp)) error(3); - if (typeid(xp) == typeid(yp)) error(4); - - xp = (X *)&y; - if (typeid(*xp) == typeid(*yp)) error(5); - if (typeid(*xp) != typeid(Y)) error(6); - - if (typeid(*ap) != typeid(*bp)) error (31); - if (typeid(*ap) != typeid(D)) error(32); - if (typeid(*aap) != typeid(*bbp)) error(33); - if (typeid(*dp) != typeid(*aap)) error(34); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/rttid2.C b/gcc/testsuite/g++.old-deja/g++.other/rttid2.C deleted file mode 100755 index 50c1867..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/rttid2.C +++ /dev/null @@ -1,100 +0,0 @@ -// test of rtti of single inheritance and multiple inheritance classes -// dynamic casting -// Special g++ Options: -frtti - -#include <typeinfo> - -extern "C" { - int printf(const char *, ...); - void exit(int); -} - -class X { - public: - int xi; -}; - -class Y : public X { - short ys; -}; - -class Z : public Y { - int zi; -}; - -Z z; -Y y; -Y *yp = &z; -X *xp = &z; -Z *zp = &z; - -class A { - public: - int Ai; -}; - -class B { - public: - int Bi; -}; - -class D : public A, public B { - int Di; -}; - -/* -class E : public D, public B { - int Ei; -}; -*/ -class E { - int Ei; -}; - -class F : public E, public D { - int Fi; -}; - -D d; -A *ap = &d; -B *bp = &d; -F f; -F *fp = &f; -A *aap = &f; -D *dp = &f; -B *bbp = dp; - -void *vp = zp; - -/* -void error (int i) -{ - printf("FAIL\n"); - exit(i); -} -*/ - -void error (int i) -{ - exit(i); -} - -int main () -{ - - vp = (void *)0; - - vp = dynamic_cast<Y *> (&z); - if (vp == 0) error(11); - - vp = dynamic_cast<X *> (yp); - if (vp == 0) error(12); - - vp = dynamic_cast<D *> (dp); - if (vp != (void *)dp) error(21); - - vp = dynamic_cast<B *> (fp); - if (vp != (void *)bbp) error(22); - -} - diff --git a/gcc/testsuite/g++.old-deja/g++.other/rttid3.C b/gcc/testsuite/g++.old-deja/g++.other/rttid3.C deleted file mode 100755 index 69b7fc5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/rttid3.C +++ /dev/null @@ -1,115 +0,0 @@ -// test of rtti of single inheritance and multiple inheritance with -// virtual functions -// dynamic casting -// Special g++ Options: -frtti - -#include <typeinfo> - -extern "C" { - int printf(const char *, ...); - void exit(int); -} - -class X { - public: - int xi; - virtual int f() {}; -}; - -class Y : public X { - short ys; -}; - -class Z : public Y { - int zi; -}; - -Z z; -Y y; -Y *yp = &z; -X *xp = &z; -Z *zp = &z; - -class A { - public: - int Ai; - virtual int a() {}; -}; - -class B { - public: - int Bi; - virtual int g() {}; -}; - -class D : public A, public B { - int Di; -}; - -/* -class E : public D, public B { - int Ei; -}; -*/ -class E { - int Ei; -}; - -class F : public E, public D { - int Fi; -}; - -D d; -A *ap = &d; -B *bp = &d; -D *dp = &d; -F f; -F *fp = &f; -A *aap = &f; -B *bbp = &f; - -void *vp = zp; - -/* -void error (int i) -{ - printf("FAIL\n"); - exit(i); -} -*/ - -void error (int i) -{ - exit(i); -} - -int main () -{ - vp = (void *)0; - - vp = dynamic_cast<Y *> (&z); - if (vp == 0) error(11); - - vp = dynamic_cast<Z *> (yp); - if (vp == 0) error(11); - - vp = dynamic_cast<X *> (yp); - if (vp == 0) error(12); - - vp = dynamic_cast<D *> (dp); - if (vp != (void *)dp) error(21); - - vp = dynamic_cast<B *> (dp); - if (vp == (void *)dp) error(21); - - vp = dynamic_cast<B *> (fp); - if (vp != (void *)bbp) error(22); - - vp = dynamic_cast<void *> (aap); - if (vp != (void *)fp) error(23); - - vp = dynamic_cast<B *> (aap); - if (vp != (void *)bbp) error(24); - -} - diff --git a/gcc/testsuite/g++.old-deja/g++.other/rttid4.C b/gcc/testsuite/g++.old-deja/g++.other/rttid4.C deleted file mode 100755 index 0b72bae..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/rttid4.C +++ /dev/null @@ -1,111 +0,0 @@ -// test of rtti of single inheritance and multiple inheritance with -// virtual inheritance -// dynamic casting -// Special g++ Options: -w - -#include <typeinfo> - -extern "C" { - int printf(const char *, ...); - void exit(int); -} - -class X { - public: - int xi; - virtual int f() {}; -}; - -class Y : public virtual X { - short ys; -}; - -class Z : public virtual Y { - int zi; -}; - -Z z; -Y y; -Y *yp = &z; -X *xp = &z; -Z *zp = &z; - -class A { -public: - int Ai; - virtual int a() {}; -}; - -class B { -public: - int Bi; - virtual int g() {}; -}; - -class D : public virtual A, private B { - int Di; -}; - -class E : public virtual D, public B { - int Ei; -}; - -class F : public E, public virtual D { - int Fi; -}; - -D d; -A *ap = &d; -B *bp = (B *)&d; -F f; -F *fp = &f; -A *aap = &f; -D *dp = &f; -E *ep = &f; -B *bbp = (B *)dp; - -void *vp = zp; - -/* -void error (int i) -{ - printf("FAIL\n"); - exit(i); -} -*/ - -void error (int i) -{ - exit(i); -} - -int main () -{ - vp = (void *)0; - - vp = dynamic_cast<Y *> (&z); - if (vp == 0) error(11); - - vp = dynamic_cast<Z *> (yp); - if (vp == 0) error(11); - - vp = dynamic_cast<X *> (yp); - if (vp == 0) error(12); - - vp = dynamic_cast<D *> (dp); - if (vp != (void *)dp) error(21); - - // Ill-formed: dynamic_cast to private or ambiguous base - // vp = dynamic_cast<B *> (dp); - // if (vp == (void *)dp) error(21); - - // vp = dynamic_cast<B *> (fp); - // if (vp == (void *)bbp) error(22); - - vp = dynamic_cast<void *> (aap); - if (vp != (void *)fp) error(23); - - vp = dynamic_cast<B *> (aap); - if (vp == (void *)bbp) error(24); - -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/singleton.C b/gcc/testsuite/g++.old-deja/g++.other/singleton.C deleted file mode 100755 index 075d83a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/singleton.C +++ /dev/null @@ -1,38 +0,0 @@ -// This tests two things: -// 1. there is an annoying warning. -// singleton.C:26: warning: `class singleton' only defines private constructors and has no friends -// egcs fails to see that there is a public static accessor function. -// 2. the program crashes, because apparently the static variable s in -// singleton::instance() is considered constructed although the ctor -// exited via an exception. (crash changed to non-zero return here) - -class singleton { -public: - static singleton& instance() { - static singleton s; - return s; - } - int check() {return initialized;} - -private: - singleton() : initialized(1) { - if ( counter++ == 0 ) throw "just for the heck of it"; - initialized = 2; - } - singleton( const singleton& rhs ); - void operator=( const singleton& rhs ); - int initialized; - static int counter; -}; - -int singleton::counter; - -int main() -{ - while (1) { - try { - return singleton::instance().check()-2; - } catch (...) { } - } -} - diff --git a/gcc/testsuite/g++.old-deja/g++.other/static1.C b/gcc/testsuite/g++.old-deja/g++.other/static1.C deleted file mode 100755 index c18e55c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/static1.C +++ /dev/null @@ -1,8 +0,0 @@ -extern "C" void abort(); - -struct S -{ - static const int i = 3; -}; - -const int S::i = 2; // ERROR - duplicate initialization diff --git a/gcc/testsuite/g++.old-deja/g++.other/static2.C b/gcc/testsuite/g++.old-deja/g++.other/static2.C deleted file mode 100755 index 471448d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/static2.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// Based on a test case by Koos Vriezen <koos@polder.ubc.kun.nl> - -struct foo { - static void (*mystatic) (); -}; - -void bar(foo& t) { - t.mystatic (); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/static3.C b/gcc/testsuite/g++.old-deja/g++.other/static3.C deleted file mode 100755 index b75771e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/static3.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: - -class S -{ - ~S(); -public: - friend void f(); -}; - - -S::~S() -{ - static S s; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/temporary1.C b/gcc/testsuite/g++.old-deja/g++.other/temporary1.C deleted file mode 100755 index 93cd709..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/temporary1.C +++ /dev/null @@ -1,40 +0,0 @@ -extern "C" int printf(char*, ...); - -int c, d; -class Foo -{ -public: - Foo() { printf("Foo() 0x%08lx\n", (unsigned long)this); ++c; } - Foo(Foo const &) { printf("Foo(Foo const &) 0x%08lx\n", (unsigned long)this); } - ~Foo() { printf("~Foo() 0x%08lx\n", (unsigned long)this); ++d; } -}; - -// Bar creates constructs a temporary Foo() as a default -class Bar -{ -public: - Bar(Foo const & = Foo()) { printf("Bar(Foo const &) 0x%08lx\n", (unsigned long)this); } -}; - -void fakeRef(Bar *) -{ -} - -int main() -{ - // Create array of Bar. Will use default argument on constructor. - // The old compiler will loop constructing Bar. Each loop will - // construct a temporary Foo() but will not destruct the Foo(). - // The Foo() temporary is destructed only once after the loop - // completes. This could lead to a memory leak if the constructor - // of Foo() allocates memory. - Bar bar[2]; - - fakeRef(bar); - - printf("Done\n"); - - if (c == d && c == 2) - return 0; - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/typeck1.C b/gcc/testsuite/g++.old-deja/g++.other/typeck1.C deleted file mode 100755 index 6dd5fed..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/typeck1.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: - -extern int a[][]; // ERROR - invalid multidimensional array -extern int b[7][]; // ERROR - invalid multidimensional array -extern int c[][7]; // OK - -extern int (*i)[]; // ERROR - previous declaration -extern int (*i)[7]; // ERROR - conflicting types for `i' - -extern int m[]; -extern int m[7]; // OK - -void f(int (*j)[3]) -{ - extern int (*k)[]; - f(k); // ERROR - passing wrong type -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/typedef1.C b/gcc/testsuite/g++.old-deja/g++.other/typedef1.C deleted file mode 100755 index d447729..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/typedef1.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: - -typedef const struct { - int x; -} Test; - -void foo(Test); - -void foo(Test t) -{ - t.x = 0; // ERROR - assignment of read-only member - return; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/typedef2.C b/gcc/testsuite/g++.old-deja/g++.other/typedef2.C deleted file mode 100755 index b12ed13..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/typedef2.C +++ /dev/null @@ -1,10 +0,0 @@ -//Build don't link: -struct S{ - - static const int i; - static const int j; -}; - -typedef S T; -const int T::i = 4; -const int T::j = 4; diff --git a/gcc/testsuite/g++.old-deja/g++.other/typedef3.C b/gcc/testsuite/g++.old-deja/g++.other/typedef3.C deleted file mode 100755 index 465e9a0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/typedef3.C +++ /dev/null @@ -1,14 +0,0 @@ -//Build don't link: -template<class T> -struct X{ - T v; - X(){} - virtual ~X(){} - virtual inline T f(T x){return x;} -}; - -void f() -{ - typedef int H; - X<H> y; -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/typedef4.C b/gcc/testsuite/g++.old-deja/g++.other/typedef4.C deleted file mode 100755 index 8b5ba49..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/typedef4.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - -struct A { - void f (); -}; - -typedef A foo; - -void foo::f() { } diff --git a/gcc/testsuite/g++.old-deja/g++.other/typedef5.C b/gcc/testsuite/g++.old-deja/g++.other/typedef5.C deleted file mode 100755 index d8f74ae..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/typedef5.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: - -// by Alexandre Oliva <oliva@dcc.unicamp.br> - -typedef int t; -typedef t* u; -typedef u v; -typedef v* (*w)(t); -typedef int t; -typedef t* u; -typedef u v; -typedef v* (*w)(t const); // this is ok -typedef v* (*w)(t); // ERROR - covers message `previously declared here' -typedef v* (*const w)(t); // ERROR - invalid redeclaration -typedef v const* (*w)(t); // ERROR - invalid redeclaration -typedef v* const (*w)(t); // ERROR - invalid redeclaration diff --git a/gcc/testsuite/g++.old-deja/g++.other/typeinfo1.C b/gcc/testsuite/g++.old-deja/g++.other/typeinfo1.C deleted file mode 100755 index 070e885..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/typeinfo1.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: - -#include <typeinfo> - -struct S { - S (const char*); -}; - -void f(S s); -void f(type_info); - -void g() -{ - f("abc"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/typename1.C b/gcc/testsuite/g++.old-deja/g++.other/typename1.C deleted file mode 100755 index 2921b3d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/typename1.C +++ /dev/null @@ -1,17 +0,0 @@ -// This code snippet should be rejected with -pedantic -// Based on a test case by Louidor Erez <s3824888@techst02.technion.ac.il> - -// Build don't link: -// Special g++ Options: -pedantic - -template<class T> -class Vector { -public: - typedef T* iterator; -}; - -template<class T> -void f() -{ - Vector<T>::iterator i = 0; // ERROR - missing typename - XFAIL *-*-* -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/union1.C b/gcc/testsuite/g++.old-deja/g++.other/union1.C deleted file mode 100755 index 6573b4d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/union1.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: - -class A -{ - private: - int myInt; - - public: - A& operator = (int right) {myInt = right; return *this;} -}; - -union B -{ - char f1; - A f2; // gets bogus error - non-copy assignment op is OK -}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/using1.C b/gcc/testsuite/g++.old-deja/g++.other/using1.C deleted file mode 100755 index d22d512..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/using1.C +++ /dev/null @@ -1,26 +0,0 @@ -class D2; - -class B { -private: - int a; // ERROR - B::a is private -protected: - int b; - - friend class D2; -}; - -class D : public B { -public: - using B::a; - using B::b; -}; // ERROR - within this context - -class D2 : public B { -public: - using B::a; - using B::b; - -private: - using B::b; -}; // ERROR - conflicting access specifications - diff --git a/gcc/testsuite/g++.old-deja/g++.other/using2.C b/gcc/testsuite/g++.old-deja/g++.other/using2.C deleted file mode 100755 index 2924498..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/using2.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -struct X{ - void f(); -}; - -struct Y:X{ - void f(int); - void f(); // ERROR - conflict - using X::f; -}; // ERROR - diff --git a/gcc/testsuite/g++.old-deja/g++.other/using3.C b/gcc/testsuite/g++.old-deja/g++.other/using3.C deleted file mode 100755 index 7d75d8a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/using3.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -struct A{ - A(); -}; - -typedef struct { - A i; -} S; - -struct B: S{ - using S::S; // ERROR - no such field -}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/using4.C b/gcc/testsuite/g++.old-deja/g++.other/using4.C deleted file mode 100755 index 218ffe2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/using4.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: - -// Based on a testcase by Martin Bachtold <martinb@coyotesystems.com> - -// excess errors test - XFAIL *-*-* - -struct foo { - void m(); -}; - -struct bar : foo { - using foo::m; - void m(int); -}; - -void f() { - bar b; - b.m(); - b.m(1); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/using5.C b/gcc/testsuite/g++.old-deja/g++.other/using5.C deleted file mode 100755 index 57a9507..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/using5.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: - -// Based on bug report by Klaus-Georg Adams -// <Klaus-Georg.Adams@chemie.uni-karlsruhe.de> - -// crash test - XFAIL *-*-* - -struct bar { - typedef bar t; -}; - -struct foo : bar { - using bar::t; - t field; - t meth(); - void baz(t arg); -}; diff --git a/gcc/testsuite/g++.old-deja/g++.other/virtual1.C b/gcc/testsuite/g++.old-deja/g++.other/virtual1.C deleted file mode 100755 index 2848317..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/virtual1.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: - -struct S0 { virtual void f1 () { } }; - -struct S1 : virtual public S0 { virtual void f1 () { } }; - -struct S2 : public S1 { virtual void f1 () { } }; - -struct S3 : virtual public S0 { virtual void f1 () { } }; - -struct S4 : public S3 { }; - -void creator () { new S4; } diff --git a/gcc/testsuite/g++.old-deja/g++.other/virtual2.C b/gcc/testsuite/g++.old-deja/g++.other/virtual2.C deleted file mode 100755 index a3ebbcd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/virtual2.C +++ /dev/null @@ -1,19 +0,0 @@ -struct B -{ - virtual int f() volatile - { return 0; } -}; - - -struct D : public B -{ - virtual int f() - { return 1; } -}; - -int main() -{ - volatile D d; - volatile B& b = d; - return b.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/virtual3.C b/gcc/testsuite/g++.old-deja/g++.other/virtual3.C deleted file mode 100755 index b9a7719..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/virtual3.C +++ /dev/null @@ -1,24 +0,0 @@ -struct B -{ - virtual int f() volatile - { return 1; } -}; - -struct D : public B -{ - int f() - { return 0; } -}; - -struct D2 : public D -{ - int f() - { return 2; } -}; - -int main() -{ - D2 d2; - D& d = d2; - return d.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.other/warn01.C b/gcc/testsuite/g++.old-deja/g++.other/warn01.C deleted file mode 100755 index 229363a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/warn01.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// Special g++ Options: -W -Wall - -typedef unsigned long size_t; -extern void* malloc (size_t); -extern void free (void*); -extern void* realloc (void*, size_t); - -struct vtable { - void* (* _malloc) (size_t); - void (* _free) (void*); - void* (* _realloc) (void*, size_t); -}; - -struct vtable mtable = { malloc, free }; // WARNING - _realloc diff --git a/gcc/testsuite/g++.old-deja/g++.other/warn3.C b/gcc/testsuite/g++.old-deja/g++.other/warn3.C deleted file mode 100755 index 4827c56..0000000 --- a/gcc/testsuite/g++.old-deja/g++.other/warn3.C +++ /dev/null @@ -1,54 +0,0 @@ -// Build don't link: - -class A { -}; - - -class B { -public: - void f(); - -private: - B (); - B (const B&); -}; // WARNING - only private constructors - - -class C { -public: - void f(); - -private: - ~C (); -}; // WARNING - only private destructors - - -class D { -private: - void f(); -}; // WARNING - all member functions are private - - -template <class T> -class X { -private: - ~X (); -}; // WARNING - only private destructors - -template class X<int>; -template class X<double>; - - -template <class T> -class Y { -private: - Y (); - Y (const Y&); -}; // WARNING - only private constructors - - -template <class T> -class Z { -private: - void f(); -}; // WARNING - all member functions are private diff --git a/gcc/testsuite/g++.old-deja/g++.pt/alignof.C b/gcc/testsuite/g++.old-deja/g++.pt/alignof.C deleted file mode 100755 index 0cfeed4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/alignof.C +++ /dev/null @@ -1,21 +0,0 @@ -extern "C" void abort(); - -struct S -{ - char c; - double d; -}; - - -template <class T> -void foo(T) -{ - if (__alignof__(T) != __alignof__(S)) - abort(); -} - - -int main() -{ - foo(S()); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/array1.C b/gcc/testsuite/g++.old-deja/g++.pt/array1.C deleted file mode 100755 index 669600f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/array1.C +++ /dev/null @@ -1,10 +0,0 @@ -template <class T, unsigned N> - unsigned size(T (&)[N]) { return N; } -template <class T, unsigned N> - unsigned size(T const (&)[N]) { return N; } - -int main() { - short iarray[] = { 1, 2, 3, 4, 5 }; - const short carray[] = { 1, 2, 3, 4, 5 }; - return size(iarray) - size(carray); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/array2.C b/gcc/testsuite/g++.old-deja/g++.pt/array2.C deleted file mode 100755 index 6c5810e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/array2.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: - -template<int N, class C> -class Bar {}; - -template<class C> -class Huh {}; - -template<int N> -void foo(const Bar<N,Huh<float[1]> > &x) {} - -int main() { - foo(Bar<3,Huh<float[1]> >()); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/array3.C b/gcc/testsuite/g++.old-deja/g++.pt/array3.C deleted file mode 100755 index ec5e1e0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/array3.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: -// Origin: Brendan Kehoe <brendan@cygnus.com> - - template <int x> int foo(char[4][x]) { return x; } - int (*bar)(char[4][3]) = &foo; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/auto_ptr.C b/gcc/testsuite/g++.old-deja/g++.pt/auto_ptr.C deleted file mode 100755 index dd5b988..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/auto_ptr.C +++ /dev/null @@ -1,54 +0,0 @@ -template <typename Y> struct auto_ptr_ref { - Y* py; - auto_ptr_ref(Y* p) : py(p) {} -}; -template<typename X> struct auto_ptr { - X* px; - public: - typedef X element_type; - - explicit auto_ptr(X* p =0) throw() : px(p) {} - auto_ptr(auto_ptr& r) throw() : px(r.release()) {} - template<typename Y> - auto_ptr(auto_ptr<Y>& r) throw() : px(r.release()) {} - - auto_ptr& operator=(auto_ptr& r) throw() { - reset(r.release()); - return *this; - } - template<typename Y> auto_ptr& operator=(auto_ptr<Y>& r) throw() { - reset(r.release()); - return *this; - } - - ~auto_ptr() { delete px; } - - X& operator*() const throw() { return *px; } - X* operator->() const throw() { return px; } - X* get() const throw() { return px; } - X* release() throw() { X* p=px; px=0; return p; } - void reset(X* p=0) throw() { if (px != p) delete px, px = p; } - - auto_ptr(auto_ptr_ref<X> r) throw() : px(r.py) {} - template<typename Y> operator auto_ptr_ref<Y>() throw() { - return auto_ptr_ref<Y>(release()); - } - template<typename Y> operator auto_ptr<Y>() throw() { - return auto_ptr<Y>(release()); - } -}; - -struct Base { Base() {} virtual ~Base() {} }; -struct Derived : Base { Derived() {}; }; - -auto_ptr<Derived> f() { auto_ptr<Derived> null(0); return null; } -void g(auto_ptr<Derived>) { } -void h(auto_ptr<Base>) { } - -int main() { - auto_ptr<Base> x(f()); - auto_ptr<Derived> y(f()); - x = y; - g(f()); - h(f()); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/bad-type.C b/gcc/testsuite/g++.old-deja/g++.pt/bad-type.C deleted file mode 100755 index 6b22b86..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/bad-type.C +++ /dev/null @@ -1,19 +0,0 @@ -template<class Type> -class A -{ -public: - Type m; -}; - -template<class Type> -void f(A<Type>& a, Type d) -{ - A.m=d; // ERROR - invalid use of template -} - -int main() -{ - A<int> a; - f(a,2); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/call1.C b/gcc/testsuite/g++.old-deja/g++.pt/call1.C deleted file mode 100755 index b9836bb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/call1.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: - -struct IsCompressed { }; -struct Field { - bool IsCompressed() const { return true; } -}; - -template<class C> -inline bool -for_each(const Field& p, IsCompressed, C) -{ - return p.IsCompressed(); -} - -template bool for_each<int>(const Field& p, IsCompressed, int); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/call2.C b/gcc/testsuite/g++.old-deja/g++.pt/call2.C deleted file mode 100755 index 51b2469..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/call2.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: - -struct IsCompressed { }; -struct Field { -}; - -template<class C> -inline bool -for_each(const Field& p, IsCompressed, C) -{ - return p.IsCompressed(); // ERROR - calling type like a method -} - -template bool for_each<int>(const Field& p, IsCompressed, int); // ERROR - instantiated from here diff --git a/gcc/testsuite/g++.old-deja/g++.pt/const1.C b/gcc/testsuite/g++.old-deja/g++.pt/const1.C deleted file mode 100755 index 8ac8a51..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/const1.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: -template <class T> struct B { static const int i = 3; }; -template <class T> struct A { static const int i = B<T>::i; }; -enum { i = A<int>::i }; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/conv1.C b/gcc/testsuite/g++.old-deja/g++.pt/conv1.C deleted file mode 100755 index 19e433e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/conv1.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: - -template <class T> -struct S1 {}; - -struct S2 -{ - template <class T> - operator S1<T>*(); -}; - -struct D: public S1<int> { -}; - -void f() -{ - S2 s; - (D*) s; // ERROR - cannot convert -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/conv2.C b/gcc/testsuite/g++.old-deja/g++.pt/conv2.C deleted file mode 100755 index f3e0b35..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/conv2.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: - -template<class T> -class A { -public: - operator const T*() const; - const T* cast() const; -}; - -template<class T> -const T* A<T>::cast() const { - return operator const T*(); -} - -template class A<char>; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/copy1.C b/gcc/testsuite/g++.old-deja/g++.pt/copy1.C deleted file mode 100755 index 7981530..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/copy1.C +++ /dev/null @@ -1,29 +0,0 @@ -int i = 0; - -template <class T> -class F -{ -public: - F() {} - - template <class T2> F(F<T2>) - { - i = 1; - } -}; - - -F<int> -foo() -{ - F<int> f1; - F<int> f2(f1); - return f1; -} - -int -main() -{ - return i; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash1.C b/gcc/testsuite/g++.old-deja/g++.pt/crash1.C deleted file mode 100755 index 3d3dd5e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash1.C +++ /dev/null @@ -1,11 +0,0 @@ -template<class T> class A { - public: - class subA {}; -}; - - -template<class T> class B : public A<T> { - public: - class subB : public A::subA {}; // ERROR - not a class or namespace -}; - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash10.C b/gcc/testsuite/g++.old-deja/g++.pt/crash10.C deleted file mode 100755 index 033e234..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash10.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: - -template<int M, int N> -class GCD { -public: - enum { val = (N == 0) ? M : GCD<N, M % N>::val }; -}; - -int main() { - GCD< 1, 0 >::val; // ERROR - division -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash11.C b/gcc/testsuite/g++.old-deja/g++.pt/crash11.C deleted file mode 100755 index 30c72a6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash11.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: - -class A -{ - class A_impl; - public: - A(){} -}; - - -template <class j> class A::A_impl -{ // ERROR - does not declare a template -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash12.C b/gcc/testsuite/g++.old-deja/g++.pt/crash12.C deleted file mode 100755 index ade8139..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash12.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// Special g++ Options: -g - -template <class C> -class CenteringTag { -}; - -struct S { - template <class B, class C> - static void f() { - CenteringTag<C> ctag; - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash13.C b/gcc/testsuite/g++.old-deja/g++.pt/crash13.C deleted file mode 100755 index f3de38e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash13.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: - -template <class T> struct A {}; -template <class T> struct A<T>; // ERROR - does not specialize args -template <class T> const struct A; // ERROR - parse error -template <class T> template A<int>; // ERROR - .* diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash14.C b/gcc/testsuite/g++.old-deja/g++.pt/crash14.C deleted file mode 100755 index f698316..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash14.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: - -template <class T> struct A {}; -template <class T> struct A<T*>; -A<int*> ai; // ERROR - incomplete type diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash15.C b/gcc/testsuite/g++.old-deja/g++.pt/crash15.C deleted file mode 100755 index 75b1054..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash15.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -template <class T> -template <class U> -struct A { // ERROR - too many template parameter lists -public: - A() {} - - A(const A<T>& b) {} // ERROR - invalid use of template -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash16.C b/gcc/testsuite/g++.old-deja/g++.pt/crash16.C deleted file mode 100755 index ed12b90..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash16.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't link: -// Special g++ Options: - -extern "C" void qsort(); - -struct R { - int count; - int state1; - int state2; -}; - -int cmp_d(const R* a, const R* b) { - return a->count > b->count; -} - -namespace CXX { - template<class T, int i1, int i2> - inline void qsort (T b[i1][i2], int (*cmp)(const T*, const T*)) { - ::qsort ((void*)b, i1*i2, sizeof(T), (int (*)(const void *, const void *))cmp); - } -} - -using namespace CXX; - -void sort_machine() { - struct R d[256][256]; - qsort<R,256> (d, cmp_d); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash17.C b/gcc/testsuite/g++.old-deja/g++.pt/crash17.C deleted file mode 100755 index c4dd969..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash17.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -template <int B> -class foo; - -template <class U> -class bar -{ - typedef foo<(U::id > 0)> foobar; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash18.C b/gcc/testsuite/g++.old-deja/g++.pt/crash18.C deleted file mode 100755 index b12c702..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash18.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't run: - -template<class T> -class foo { - T deft; - - template<class U> int priv (U u, T t) { return u - t; } -public: - foo (T t) : deft (t) {} - - template<class U> int pub (U u) { - int (foo::*fn) (U, T); - fn = &foo<T>::template priv<U>; - return (this->*fn) (u, deft); - } -}; - -int -main () -{ - foo<long> fff (5); - return fff.pub (3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash19.C b/gcc/testsuite/g++.old-deja/g++.pt/crash19.C deleted file mode 100755 index 2da6dd9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash19.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: - -template <int I> -void f() -{ - class C { public: int c; }; - - struct S { - void g() { - C e; - e.c = 3; - }; - }; - - S s; - s.g(); -} - -template void f<7>(); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash2.C b/gcc/testsuite/g++.old-deja/g++.pt/crash2.C deleted file mode 100755 index 3b900c7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash2.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: - -template <class T> -struct S1 -{ - T* t; - static int foo; -}; - - -struct S2 : public S1<S2> -{ - S2* s; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash20.C b/gcc/testsuite/g++.old-deja/g++.pt/crash20.C deleted file mode 100755 index 29b4281..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash20.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - -template <class T = int> -struct A { const T x; A() : x(0) { } A(T x) : x(x) { } }; - -template <class B> -void func () { B y; y = B(); } // ERROR - can't use default assignment - -int main (void) { func< A<> >(); } // ERROR - instantiated from here diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash21.C b/gcc/testsuite/g++.old-deja/g++.pt/crash21.C deleted file mode 100755 index c84809b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash21.C +++ /dev/null @@ -1,26 +0,0 @@ -// Build don't link: -// Special g++ Options: - -class Pooled -{ -}; - -class RefCounted -{ -}; - -class BrickExpressionBase : public RefCounted, public Pooled -{ -}; - -template<unsigned Dim, class LHS, class RHS, class OP> -class BrickExpression : public BrickExpressionBase -{ -}; - -template <unsigned Dim, class T> -void f() -{ - typedef BrickExpression<Dim, T, T, T> ExprT; - ExprT(3).apply; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash22.C b/gcc/testsuite/g++.old-deja/g++.pt/crash22.C deleted file mode 100755 index e947ef3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash22.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - -template <class T> -struct S1 {}; - -template <class T, class U = S1<T> > -struct S2 {}; - -template struct S2<100>; // ERROR - type/value mismatch diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash23.C b/gcc/testsuite/g++.old-deja/g++.pt/crash23.C deleted file mode 100755 index ac4fae0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash23.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: - -template <class A, class B> void foo(); -template <class C> class bar { -public: - int i; - template <class B> friend void foo<C,B>(); // ERROR - template-id -}; -template <class A, class B> void foo() { - bar<A> baz; baz.i = 1; - bar<int> buz; buz.i = 1; -} -int main() { - foo<void,void>(); - foo<int,void>(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash24.C b/gcc/testsuite/g++.old-deja/g++.pt/crash24.C deleted file mode 100755 index 9c31af6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash24.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: - -template<typename T, template <class> class U> void template_fn (T); -template<typename T> void callme ( void (*)(T)); - -template<typename T> struct S1; - -int main() -{ - callme(&template_fn<double, S1>); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash25.C b/gcc/testsuite/g++.old-deja/g++.pt/crash25.C deleted file mode 100755 index f587585..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash25.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: - -template <class T> -void f() -{ - int i[1 << 3]; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash26.C b/gcc/testsuite/g++.old-deja/g++.pt/crash26.C deleted file mode 100755 index d2101bd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash26.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// Origin: Theodore Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr> - -double f(double); -typedef double (*M)(double); - -class A { -public: - template <const M n> void g(); -}; - -class B: public A { -public: - void g() { A::g<f>(); } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash27.C b/gcc/testsuite/g++.old-deja/g++.pt/crash27.C deleted file mode 100755 index f52f1ba..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash27.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: - -template<int i> int f (void) -{ - if (__extension__ ({ 1; })) - return 0; - return 1; -} - -void g (void) -{ - f<1> (); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash28.C b/gcc/testsuite/g++.old-deja/g++.pt/crash28.C deleted file mode 100755 index 752c970..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash28.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// Special g++ Options: - -template <class ARRY> -inline unsigned int asize(ARRY &a) -{ - return sizeof(a) / sizeof(a[0]); -} - -int f(unsigned int n) { - int x[n]; - - asize(x); // ERROR - no matching function -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash3.C b/gcc/testsuite/g++.old-deja/g++.pt/crash3.C deleted file mode 100755 index 0d2a7cd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash3.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: - -template <class Type> -class CVector { -public: - CVector<int> f() const - { - CVector<int> v(n); - return v; - } - CVector<long> g() const - { - CVector<long> v(n); - return v; - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash4.C b/gcc/testsuite/g++.old-deja/g++.pt/crash4.C deleted file mode 100755 index 510d4cd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash4.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: - -template <unsigned rank> -class Tensor -{ -}; - -template <unsigned rank> -class Tensor<2> : Tensor<rank> { // ERROR - template parameters not used -}; - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash5.C b/gcc/testsuite/g++.old-deja/g++.pt/crash5.C deleted file mode 100755 index 786cdf2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash5.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: - -template <class T, int i> -struct K { - void f(); -}; - -template <class T> -void -K<T, i>::f() -{ // ERROR - template parameters -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash6.C b/gcc/testsuite/g++.old-deja/g++.pt/crash6.C deleted file mode 100755 index 09e8df0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash6.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: - -template <class T> class List; - -template <class T> -struct ListIterator -{ - ListIterator (); - ListIterator (const ListIterator<T>& rhs); -}; - -template <class T> -struct List -{ - void length () const { - for (ListIterator<T> li; li; ); // ERROR - used where a `bool' - } -}; - -void test(List<int>& vals) -{ - vals.length(); // ERROR - instantiated from here -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash7.C b/gcc/testsuite/g++.old-deja/g++.pt/crash7.C deleted file mode 100755 index 9ee7b2c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash7.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -class foo -{ -}; - -template <class T : public foo> // ERROR - base clause -struct bar -{ -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash8.C b/gcc/testsuite/g++.old-deja/g++.pt/crash8.C deleted file mode 100755 index deff42d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash8.C +++ /dev/null @@ -1,34 +0,0 @@ -// Build don't link: - -template<class T> -class TestClass1 { -public: - TestClass1() { } -}; - -template<class T> -class TestClass2 { -public: - TestClass2() { } - T operator()(int) { } -}; - -template<class T> -void doit(T x) { - TestClass1<T> q1; - q1 = TestClass1<T>(); - TestClass2<T> q2; - q2 = TestClass2<T>(); - - TestClass1<T> p1; - p1 = TestClass1(); // ERROR - template used as expression - - TestClass2<T> p2; - p2 = TestClass2(); // ERROR - template used as expression -} - -int main() { - double x; - doit(x); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/crash9.C b/gcc/testsuite/g++.old-deja/g++.pt/crash9.C deleted file mode 100755 index 297b8ac..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/crash9.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: - -template <class T> -void f(T) {} // ERROR - parameter has incomplete type - -class C; - -void g(const C& c) -{ - f(c); // ERROR - invalid use of undefined type -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ctor1.C b/gcc/testsuite/g++.old-deja/g++.pt/ctor1.C deleted file mode 100755 index 9e36706..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ctor1.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -template <typename _CharT> - struct moneypunct -{ - moneypunct (); -}; - -template <> - moneypunct<char>::moneypunct (); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/decl1.C b/gcc/testsuite/g++.old-deja/g++.pt/decl1.C deleted file mode 100755 index 5814251..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/decl1.C +++ /dev/null @@ -1,19 +0,0 @@ -struct S { - template <class T> - int f(T), g(T); // ERROR - more than one declarator -}; - -template <class T> -void x(T), y(T); // ERROR - more than one declarator - -template <class T> -struct S2 -{ - static int i, j; // OK. -}; - -template <class T> -int S2<T>::i, S2<T>::j; // ERROR - more than one declarator - -template <> -int S2<int>::i, S2<double>::i; // ERROR - more than one declarator diff --git a/gcc/testsuite/g++.old-deja/g++.pt/decl2.C b/gcc/testsuite/g++.old-deja/g++.pt/decl2.C deleted file mode 100755 index 2e2b91c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/decl2.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - -// Simplified from testcase by Christophe Boyanique <boyan@imac.u-paris2.fr> - -// crash test - XFAIL *-*-* - -template <class T> struct foo { foo(); }; -template<class T> foo<T>::foo() {} -T // ERROR - currently an ICE diff --git a/gcc/testsuite/g++.old-deja/g++.pt/defarg.C b/gcc/testsuite/g++.old-deja/g++.pt/defarg.C deleted file mode 100755 index 314339d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/defarg.C +++ /dev/null @@ -1,10 +0,0 @@ -template <class T> -void f(T t, int i = 10); - -template <class T> -void f(T t, int i) {} - -int main() -{ - f(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/defarg2.C b/gcc/testsuite/g++.old-deja/g++.pt/defarg2.C deleted file mode 100755 index 444ecc4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/defarg2.C +++ /dev/null @@ -1,17 +0,0 @@ -template <int S=0, class T=int> -struct X -{}; - -template <> -struct X<0,int> -{}; - -template <int S> -struct X<S,int> -: X<> -{}; - -int main() -{ - X<1,int> x; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/defarg3.C b/gcc/testsuite/g++.old-deja/g++.pt/defarg3.C deleted file mode 100755 index 9a7e046..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/defarg3.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: - -template <class T> -struct S; - -template <class T = int> -struct S {}; - -template <class T> -struct S; - -void f() -{ - S<> s; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/defarg4.C b/gcc/testsuite/g++.old-deja/g++.pt/defarg4.C deleted file mode 100755 index 9d5df8c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/defarg4.C +++ /dev/null @@ -1,32 +0,0 @@ -// Build don't link: - -template <class T> -struct S1 -{ - void foo(T = t()); - - static T t(); -}; - - -template <class T> -struct S2 -{ - void bar(); -}; - - -template <class T> -void S2<T>::bar () -{ - S1<T> st; - st.foo(); -} - - -int main() -{ - S2<int> s2i; - s2i.bar(); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/defarg5.C b/gcc/testsuite/g++.old-deja/g++.pt/defarg5.C deleted file mode 100755 index 6a68bad..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/defarg5.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: - -template <int dim> -class Point { - public: - Point (Point<dim> &); - Point<dim> & operator = (Point<dim> &); -}; - - - -template <int dim> -class bar{ - public: - void foo (Point<dim> p = Point<dim>()); -}; - - - -template <> -void bar<2>::foo (Point<2> p) { - const int dim = 2; - Point<dim> q = p; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/defarg6.C b/gcc/testsuite/g++.old-deja/g++.pt/defarg6.C deleted file mode 100755 index 0094c5c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/defarg6.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't link: - -template <class T> -struct C { - template <class U> - void f(U); // OK - - template <class V = int> - struct I {}; // OK - - template <class W = int> - void h(W); // ERROR - default argument - - template <class Y> - void k(Y); -}; - -template <class T> -template <class U = double> -void C<T>::f(U) {} // ERROR - default argument - -template <class X = void*> -void g(X); // ERROR - default argument - -template <class T = double> -template <class Y> -void C<T>::k(Y) {} // ERROR - default argument diff --git a/gcc/testsuite/g++.old-deja/g++.pt/defarg7.C b/gcc/testsuite/g++.old-deja/g++.pt/defarg7.C deleted file mode 100755 index 0db043f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/defarg7.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: - -template <int Dim, class T, class EngineTag> -class Engine {}; - -struct Brick; - -template<int Dim, class T = double , class EngineTag = Brick > -struct ConstArray { - static const int dimensions = Engine<Dim, T, EngineTag>::dimensions; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/defarg8.C b/gcc/testsuite/g++.old-deja/g++.pt/defarg8.C deleted file mode 100755 index 6bb1125..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/defarg8.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: - -// Default arguments containing more than one non-nested explicit -// template argument leads to parse error - -template <class T> class foo1; -template <class T, class U> class foo2; - -struct bar { - template <class T, class U> - bar(int i = foo1<T>::baz, // ok - int j = int(foo2<T, U>::baz), // ok - int k = foo2<T, U>::baz) {} // gets bogus error - before > - XFAIL *-*-* -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/derived1.C b/gcc/testsuite/g++.old-deja/g++.pt/derived1.C deleted file mode 100755 index e2275f4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/derived1.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: - -class A -{ -public: - typedef int Info; -}; - -template <class T> -class B : public A -{ -public: - typedef struct{ - int a; - int b; - } Info; -}; - -void f() -{ - B<A>::Info ie; - ie.a=1; - ie.b=2; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/eichin01.C b/gcc/testsuite/g++.old-deja/g++.pt/eichin01.C deleted file mode 100755 index 154587b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/eichin01.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't run: - -/* - - -*/ - - -template <class X> class TC { -public: - X aaa; - static X sss; - TC(X a) { aaa = a; } - TC(X a, X s) { aaa = a; sss = s; } - void sz(X s) { sss = s; } -}; - -float TC<float>::sss; -long TC<long>::sss; - -TC<long> xjj(1,2); - -int main(int,char*) { - TC<float> xff(9.9,3.14); - xjj.sz(123); - xff.sz(2.71828); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/eichin01a.C b/gcc/testsuite/g++.old-deja/g++.pt/eichin01a.C deleted file mode 100755 index 1a37eeb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/eichin01a.C +++ /dev/null @@ -1,21 +0,0 @@ -template <class X> class TC { -public: - X aaa; - static X sss; - TC(X a) {aaa = a; } - TC(X a, X s) {aaa = a; sss = s; } - void sz(X s) { sss = s; } -}; - - -long TC<long>::sss; -float TC<float>::sss; - -TC<long> xjj(1,2); - -int main(int,char*) { - TC<float> xff(9.9,3.14); - xjj.sz(123); - xff.sz(2.71828); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/eichin01b.C b/gcc/testsuite/g++.old-deja/g++.pt/eichin01b.C deleted file mode 100755 index 51bb447..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/eichin01b.C +++ /dev/null @@ -1,21 +0,0 @@ -template <class X> class TC { -public: - X aaa; - static X sss; - TC(X a) {aaa = a; } - TC(X a, X s) {aaa = a; sss = s; } - void sz(X s) { sss = s; } - void syy(X syarg) { sss = syarg; } -}; - -long TC<long>::sss; -float TC<float>::sss; - -TC<long> xjj(1,2); - -int main(int,char*) { - TC<float> xff(9.9,3.14); - xjj.sz(123); - xff.sz(2.71828); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/enum.C b/gcc/testsuite/g++.old-deja/g++.pt/enum.C deleted file mode 100755 index 4fe84a4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/enum.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: -// GROUPS passed enums -template<class T> -struct templ -{ - enum { val = 0 }; -}; -struct Foo -{ - enum { - bar = 0, - len = templ<int>::val - }; -}; -void func() -{ - int s = Foo::bar; // Ensure that expansion of templ did not erase bar -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/enum10.C b/gcc/testsuite/g++.old-deja/g++.pt/enum10.C deleted file mode 100755 index 713c11c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/enum10.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: - -template <class T> -struct S { - enum E { a = (int) T::b }; -}; - -struct S2 { - enum E2 { b }; -}; - -template class S<S2>; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/enum11.C b/gcc/testsuite/g++.old-deja/g++.pt/enum11.C deleted file mode 100755 index 77631c4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/enum11.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -template <class T> void f1() -{ - struct foo { enum T2 { - un, du, toi }; - }; -} - -void f2() { f1<int>(); } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/enum12.C b/gcc/testsuite/g++.old-deja/g++.pt/enum12.C deleted file mode 100755 index b1c2b16..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/enum12.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: - -template <int I> -struct S1 { }; - -template <class T> -struct S2 { - enum { x = 3 }; - - void f(S1<x>&); -}; - -template <class T> -void S2<T>::f(S1<x>&) -{ -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/enum2.C b/gcc/testsuite/g++.old-deja/g++.pt/enum2.C deleted file mode 100755 index 5a2d7f3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/enum2.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: - -struct U { - static int STATIC; -}; - -template <int* x> class FOO { -public: - enum { n = 0 }; -}; - -template <class A> class BAR { -public: - enum { n = FOO<&A::STATIC>::n }; -}; - -int n = BAR<U>::n; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/enum3.C b/gcc/testsuite/g++.old-deja/g++.pt/enum3.C deleted file mode 100755 index d39da3a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/enum3.C +++ /dev/null @@ -1,14 +0,0 @@ -struct S { enum en { s0, s1, s2 }; }; - -template<typename S::en e> -int val( ) -{ - return e; -} - - -int main() -{ - return val<S::s0>( ); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/enum4.C b/gcc/testsuite/g++.old-deja/g++.pt/enum4.C deleted file mode 100755 index 28f4b29..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/enum4.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: - -template <class T> -struct U -{ - T mT; -}; - -template <class H> -struct M -{ - enum FLAG {On, Off}; - U<FLAG> mUF; -}; - -M<char> gm; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/enum5.C b/gcc/testsuite/g++.old-deja/g++.pt/enum5.C deleted file mode 100755 index fc88afa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/enum5.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: - -template <> -enum E {e}; // ERROR - template declaration of enum XFAIL *-*-* diff --git a/gcc/testsuite/g++.old-deja/g++.pt/enum6.C b/gcc/testsuite/g++.old-deja/g++.pt/enum6.C deleted file mode 100755 index acfd681..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/enum6.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: - -template <class T> -struct vector {}; - -template<class T> -void fn(T) -{ - enum tern { H, L, X, U }; - - vector<tern> ternvec; // ERROR - composed from a local type -} - -template void fn(int); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/enum7.C b/gcc/testsuite/g++.old-deja/g++.pt/enum7.C deleted file mode 100755 index 47dcbfa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/enum7.C +++ /dev/null @@ -1,27 +0,0 @@ -template <int I> -int f() -{ - enum E { a = I }; - - struct S { - int g() { - E e; - e = a; - return (int) e; - }; - }; - - S s; - - return s.g(); -} - - -int main() -{ - if (f<7>() != 7) - return 1; - if (f<-3>() != -3) - return 1; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/enum8.C b/gcc/testsuite/g++.old-deja/g++.pt/enum8.C deleted file mode 100755 index e5cc58a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/enum8.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: - -template <int I> -void f(); - -template <> -void f<4>() {} - -template <class T> -struct S -{ - enum E { a = 1, b = a + 3 }; -}; - -int main() -{ - f<S<int>::b>(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/enum9.C b/gcc/testsuite/g++.old-deja/g++.pt/enum9.C deleted file mode 100755 index 5ab8e8b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/enum9.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: - -template <typename _CharT> -class _Format_cache -{ -public: - enum { - _S_digits, _S_digits_end = _S_digits+10, - _S_xdigits = _S_digits_end - }; -}; - -template class _Format_cache<int>; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit1.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit1.C deleted file mode 100755 index 0daf54f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit1.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class T> -void foo(T t) {} - -void bar() -{ - &foo<double>; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit10.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit10.C deleted file mode 100755 index d90b8d0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit10.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class T> -void foo(T t); - -int main() -{ - foo<int>(3.0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit11.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit11.C deleted file mode 100755 index fb7834f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit11.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class T> -void foo(T t); - -template <class T> -struct S {}; - -int main() -{ - S<int> si; - - foo<S<int> >(si); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit12.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit12.C deleted file mode 100755 index 0defb19..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit12.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't run: -// GROUPS passed templates -template <class U> -struct S -{ - template <class T> - void foo(T t); -}; - - -template <> -template <> -void S<char*>::foo<int>(int) {} - -int main() -{ - S<char*> s; - s.template foo<int>(3.0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit13.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit13.C deleted file mode 100755 index fbb7901..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit13.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't run: -// GROUPS passed templates - -template <class U> -struct S -{ - template <class T> - void foo(T t); - - template <class T> - void bar(T t) { this->template foo<U>(3.74); } -}; - -template <> -template <> -void S<int>::foo(int) { } - -int main() -{ - S<int> s; - s.bar(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit14.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit14.C deleted file mode 100755 index aa9d03f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit14.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class T> -struct S -{ - template <class U> - typename U::R foo(U u); -}; - - -void bar() -{ - S<int> si; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit15.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit15.C deleted file mode 100755 index 290da42..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit15.C +++ /dev/null @@ -1,30 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template<int N_rank> -class Array; - - -template<class T> -class ArraySectionInfo { -public: - enum { rank = 0 }; -}; - - -template<class T1> -class SliceInfo { -public: - enum { - rank = ArraySectionInfo<T1>::rank - }; - - typedef Array<rank> T_slice; -}; - -template<class T2> -typename SliceInfo<T2>::T_slice -foo(T2 r2) -{ - return SliceInfo<T2>::T_slice(); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit16.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit16.C deleted file mode 100755 index c7a8733..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit16.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template<int N_rank> -class Array; - - -template<class T> -class ArraySectionInfo { -public: - enum { rank = 0 }; -}; - - -template<class T1> -class SliceInfo { -public: - static const int rank = ArraySectionInfo<T1>::rank; - - typedef Array<rank> T_slice; -}; - -template<class T2> -typename SliceInfo<T2>::T_slice -foo(T2 r2) -{ - return SliceInfo<T2>::T_slice(); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit17.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit17.C deleted file mode 100755 index 8e8688d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit17.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class T, class U> -void foo(U u, T t); - -template <class T> -void foo(T t); - -template <class T> -struct S {}; - -template <class T> -void foo(const S<T>&); - -void bar() -{ - void (*fn)(double, int) = - (void (*)(double, int)) &foo<int>; - void (*fn2)(double) = foo<double>; - foo<int>(3, 3.0); - foo<int>(S<int>()); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit18.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit18.C deleted file mode 100755 index 20c4b75..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit18.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't run: -// GROUPS passed templates -template <class T> -int foo(T t) { return 0; } - -int foo(int i); - -int main() -{ - return foo<int>(3.0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit19.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit19.C deleted file mode 100755 index b209bbe..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit19.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't run: -// GROUPS passed templates -template <class T> -int foo(T t); - -template <> -int foo<int>(int i) { return 0; } - -int main() -{ - return foo<int>(3.0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit2.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit2.C deleted file mode 100755 index 4d88c39..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit2.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class T> -void foo(T t) {} - -void bar() -{ - (void (*)(int)) &foo<double>; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit20.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit20.C deleted file mode 100755 index 918ff3a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit20.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class T> -T foo(T t); - -template <> -int foo<char>(char c); // ERROR - does not match any template declaration diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit21.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit21.C deleted file mode 100755 index a99a49b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit21.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class T> -T foo(T* t); - -template <> -int foo<char>(char c); // ERROR - does not match declaration. - -template <> -int bar<char>(); // ERROR - no template bar. diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit22.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit22.C deleted file mode 100755 index 2cb2338..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit22.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class T, class U> -T foo(T t, U* u); // ERROR - template candidate - -template <class T> -T foo(T t, T* t); // ERROR - template candidate - -template <> -int foo<int>(int, int*); // ERROR - ambiguous template specialization diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit23.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit23.C deleted file mode 100755 index cdffb15..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit23.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't run: -// GROUPS passed templates -template <class T> -int foo(T t) { return 1; } - -template <> -int foo<int>(int i) { return 0; } - -int main() -{ - return foo<int>(3.0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit24.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit24.C deleted file mode 100755 index 42f4c3c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit24.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class T> -int foo(T t); - -int foo<int>(int i) { return 0; } // ERROR - missing template <> - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit25.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit25.C deleted file mode 100755 index 0225216..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit25.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <int I> -class S {}; - -template <int I, class T> -void foo(T t, S<I>); - -void bar() -{ - S<3> s3; - foo<3>("abc", s3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit26.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit26.C deleted file mode 100755 index eba8d79..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit26.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't run: -// GROUPS passed templates -template <class T> -int foo(T t) { return 1; } - -template <> -int foo(int i) { return 0; } - -int main() -{ - &foo<int>; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit27.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit27.C deleted file mode 100755 index 4a5adb5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit27.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't run: -// GROUPS passed templates -template <class T> -void foo(T t); - -template <> -void foo(int i) {} - -int main() -{ - &foo<int>; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit28.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit28.C deleted file mode 100755 index b842b89..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit28.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't run: -// GROUPS passed templates -template <class T> -int foo(T t) { return 1; } - -template <> -int foo(int i) { return 0; } - -int main() -{ - return (*&foo<int>)(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit29.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit29.C deleted file mode 100755 index a247779..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit29.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't run: -// GROUPS passed templates -template <class T> -int foo(T) { return 0; } - -int foo(int); - -int main() -{ - return foo<int>(3); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit3.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit3.C deleted file mode 100755 index 2a5309f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit3.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class T, class U> -void foo(T t, U u) {} - -void bar() -{ - (void (*)(double, int)) &foo<double>; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit30.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit30.C deleted file mode 100755 index 5a69713..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit30.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class T> -void foo(T, T*); - - -void bar() -{ - double d; - (*((void (*)(int, double*)) &foo<int>))(3, &d); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit31.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit31.C deleted file mode 100755 index 61190f7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit31.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't run: -// GROUPS passed templates -template <class T> -struct S -{ - template <class U> - static double foo(U u) { return (double) u; } -}; - - -int main() -{ - double d = S<int>::template foo<char>(3.3); - - return (d >= 3.1); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit32.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit32.C deleted file mode 100755 index 5942fe7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit32.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class T> -struct S -{ -}; - - -template <> -struct S<int> -{ - void foo(); -}; - - -void S<int>::foo() -{ -} - - -void bar() -{ - S<int> si; - si.foo(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit33.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit33.C deleted file mode 100755 index 048a356..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit33.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class T> -void foo(T t); - -template <> -void foo(int) {}; - -void foo(int) {} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit34.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit34.C deleted file mode 100755 index 0aede38..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit34.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class T> -void foo(T t); - -template <> -void foo(int) {}; // ERROR - previously defined here. - -template <> -void foo<int>(int) {} // ERROR - duplicate specialization. diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit35.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit35.C deleted file mode 100755 index c928263..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit35.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't run: -// GROUPS passed templates -struct S -{ - template <class T> - void foo(T t); -}; - -template <> -void S::foo<int>(int i) { } - -int main() -{ - S s; - s.template foo<int>(3.0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit36.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit36.C deleted file mode 100755 index 6f9e7c6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit36.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't run: -// GROUPS passed templates -template <class T> -void foo(T); - -class S { - friend void foo<>(int); - - int i; -}; - - -template <> -void foo(int) -{ - S s; - s.i = 3; -} - - -int main() -{ - foo(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit37.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit37.C deleted file mode 100755 index 4d911a4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit37.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't run: -// GROUPS passed templates -class ostream {}; - -template <class T> -class S; - -template <class T> -void operator<<(ostream&, S<T>) {} - -template <class T> -class S -{ - friend void operator<<<>(ostream&, const S<T>); -}; - - -int main() -{ - ostream o; - - o << S<int>(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit38.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit38.C deleted file mode 100755 index 27121b6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit38.C +++ /dev/null @@ -1,7 +0,0 @@ -template <int I> -void f(int j); - -void g() -{ - f<7, 12>(3); // ERROR - no matching function. -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit39.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit39.C deleted file mode 100755 index 906ef30..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit39.C +++ /dev/null @@ -1,7 +0,0 @@ -template <class T> -void f(int i); - -void g() -{ - f<7>(3); // ERROR - no matching function. -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit4.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit4.C deleted file mode 100755 index 911e7b3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit4.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class T> -void foo(T t); - -template <class T> -struct S {}; - -template <class T> -void bar(T t) -{ - void (*f)(S<T> ) = &foo<S<T> >; -} - - -void baz() -{ - bar(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit40.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit40.C deleted file mode 100755 index d237924..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit40.C +++ /dev/null @@ -1,27 +0,0 @@ -extern "C" void abort(); - -template <void* P> -void f(int j); - -template <unsigned int I> -void f(int j); - - -template <void* P> -void f(int j) -{ - abort(); -} - - -template <unsigned int I> -void f(int j) -{ -} - - -int main() -{ - f<3>(7); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit41.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit41.C deleted file mode 100755 index b5ca475..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit41.C +++ /dev/null @@ -1,8 +0,0 @@ -template <int I> -void f(int i); - -void g() -{ - int i; - f<i>(7); // ERROR - template argument 1 is invalid. -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit42.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit42.C deleted file mode 100755 index c19ffd0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit42.C +++ /dev/null @@ -1,17 +0,0 @@ -extern "C" void abort(void); - -template <int I> -void f(int i) -{ -} - -template <void*> -void f(int i) -{ - abort(); -} - -int main() -{ - f<0>(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit43.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit43.C deleted file mode 100755 index 6396f09..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit43.C +++ /dev/null @@ -1,23 +0,0 @@ -extern "C" void abort(void); - -void F(int) -{ -} - - -void F(double) -{ - abort(); -} - -template <void (*F)(int)> -void g() -{ - (*F)(3); -} - - -int main() -{ - g<&F>(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit5.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit5.C deleted file mode 100755 index 2c2b763..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit5.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class T> -void foo(T t) {} - -template <class T> -struct S {}; - -template <class T> -void bar(T t) -{ - void (*f)(S<T> ) = &foo<S<T> >; -} - - -void baz() -{ - bar(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit50.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit50.C deleted file mode 100755 index 8c424cc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit50.C +++ /dev/null @@ -1,15 +0,0 @@ -extern "C" void abort (); - -template <class T> int f () -{ - return sizeof(T); -} - -int main () -{ - if (f<long> () != sizeof(long) - || f<char> () != sizeof(char) - || f<long> () != sizeof(long) - || f<long int> () != sizeof(long int)) - abort (); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit51.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit51.C deleted file mode 100755 index e4a0a64..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit51.C +++ /dev/null @@ -1,18 +0,0 @@ -extern "C" void abort (); - -template <int a> int fact () -{ - return 0; -} - -template <> int fact<1> () -{ - return 1; -} - -int main() -{ - if (fact<3> () != 0 || fact<1> () != 1 - || fact<3> () != 0 || fact<1> () != 1 || fact<1+0> () != 1) - abort (); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit52.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit52.C deleted file mode 100755 index 368573e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit52.C +++ /dev/null @@ -1,18 +0,0 @@ -extern "C" void abort (); - -template <int a> inline int fact () -{ - return a * fact<a-1> (); -} - -template <> inline int fact<1> () -{ - return 1; -} - -int main() -{ - if (fact<3> () != 6 || fact<1> () != 1 - || fact<3> () != 6 || fact<1> () != 1 || fact<1+0> () != 1) - abort (); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit53.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit53.C deleted file mode 100755 index e66cca9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit53.C +++ /dev/null @@ -1,21 +0,0 @@ -extern "C" void abort (); - -template <int a> inline int fact (); -template <> inline int fact<1> (); - -template <int a> inline int fact () -{ - return a * fact<a-1> (); -} - -template <> inline int fact<1> () -{ - return 1; -} - -int main() -{ - if (fact<3> () != 6 || fact<1> () != 1 - || fact<3> () != 6 || fact<1> () != 1 || fact<1+0> () != 1) - abort (); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit54.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit54.C deleted file mode 100755 index 9d185be..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit54.C +++ /dev/null @@ -1,35 +0,0 @@ -extern "C" void abort (); - -template <int a> inline int fact2 (); - -template <int a> inline int fact () -{ - return a * fact2<a-1> (); -} - -template <> inline int fact<1> () -{ - return 1; -} - -template <int a> inline int fact2 () -{ - return a*fact<a-1>(); -} - -template <> inline int fact2<1> () -{ - return 1; -} - -int main() -{ - if (fact<3> () != 6 || fact<1> () != 1 - || fact<3> () != 6 || fact<1> () != 1 || fact<1+0> () != 1) - abort (); - if (fact2<3> () != 6 || fact2<1> () != 1 - || fact2<3> () != 6 || fact2<1> () != 1 || fact2<1+0> () != 1) - abort (); - if (fact2<4> () != 24 || fact<4> () != 24) - abort (); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit55.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit55.C deleted file mode 100755 index c9d3125..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit55.C +++ /dev/null @@ -1,14 +0,0 @@ -template <class T> T* create () -{ - return new T; -} - -template <class T> T* create2() -{ - return create<T>(); -} - -int main() -{ - int *p = create2<int>(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit56.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit56.C deleted file mode 100755 index d202160..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit56.C +++ /dev/null @@ -1,16 +0,0 @@ -template <class T> T* create (); - -template <class T> T* create2() -{ - return create<T>(); -} - -template <class T> T* create () -{ - return new T; -} - -int main() -{ - int *p = create2<int>(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit57.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit57.C deleted file mode 100755 index d1f0ea8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit57.C +++ /dev/null @@ -1,42 +0,0 @@ -extern "C" void abort (); - -int a = 0; - -template <class T> void f (); -template <class T> void g () -{ - if (a) - abort (); -} - -template <> void g<char> () -{ -} - -template <class T> class C -{ - public: - void ff () { f<T> (); } - void gg () { g<T> (); } -}; - -template <class T> void f () -{ - if (a) - abort (); -} - -template <> void f<char> () -{ -} - -int main () -{ - C<int> c; - c.ff(); - c.gg(); - a = 1; - C<char> d; - d.ff(); - d.gg(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit58.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit58.C deleted file mode 100755 index 7193d2d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit58.C +++ /dev/null @@ -1,41 +0,0 @@ -extern "C" void abort (); - -template <class T> void f (); -template <class T> void g () -{ - abort (); -} - -template <> void g<char> () -{ - abort (); -} - -template <class T> class C -{ - public: - template <class U> void f () {} - template <class U> void g () {} - void ff () { f<T> (); } - void gg () { g<T> (); } -}; - -template <class T> void f () -{ - abort (); -} - -template <> void f<char> () -{ - abort (); -} - -int main () -{ - C<int> c; - c.ff(); - c.gg(); - C<char> d; - d.ff(); - d.gg(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit59.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit59.C deleted file mode 100755 index 847a80a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit59.C +++ /dev/null @@ -1,41 +0,0 @@ -extern "C" void abort (); - -template <class T> void f (); -template <class T> void g () -{ - abort (); -} - -template <> void g<char> () -{ - abort (); -} - -template <class T> class C -{ - public: - void ff () { f<T> (); } - void gg () { g<T> (); } - template <class U> void f () {} - template <class U> void g () {} -}; - -template <class T> void f () -{ - abort (); -} - -template <> void f<char> () -{ - abort (); -} - -int main () -{ - C<int> c; - c.ff(); - c.gg(); - C<char> d; - d.ff(); - d.gg(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit6.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit6.C deleted file mode 100755 index 1ee7751..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit6.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't run: -// GROUPS passed templates -template <class T> -int foo(T t); - -template <> -int foo(int i) { return 0; } - -int main() -{ - return foo<int>(3.0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit60.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit60.C deleted file mode 100755 index 5fda333..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit60.C +++ /dev/null @@ -1,43 +0,0 @@ -extern "C" void abort (); - -template <class T> void f (); -template <class T> void g () -{ - abort (); -} - -template <> void g<char> () -{ - abort (); -} - -template <class T> class C -{ - public: - void ff () { f<T> (); } - void gg () { g<T> (); } - template <class U> void f () {} - template <class U> void g () {} - template <class U> void f (int) { abort(); } - template <class U> void g (int) { abort(); } -}; - -template <class T> void f () -{ - abort (); -} - -template <> void f<char> () -{ - abort (); -} - -int main () -{ - C<int> c; - c.ff(); - c.gg(); - C<char> d; - d.ff(); - d.gg(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit61.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit61.C deleted file mode 100755 index 69b7891..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit61.C +++ /dev/null @@ -1,43 +0,0 @@ -extern "C" void abort (); - -template <class T> void f (); -template <class T> void g () -{ - abort (); -} - -template <> void g<char> () -{ - abort (); -} - -template <class T> class C -{ - public: - void ff () { f<T> (0); } - void gg () { g<T> (1); } - template <class U> void f () { abort(); } - template <class U> void g () { abort(); } - template <class U> void f (int) {} - template <class U> void g (int) {} -}; - -template <class T> void f () -{ - abort (); -} - -template <> void f<char> () -{ - abort (); -} - -int main () -{ - C<int> c; - c.ff(); - c.gg(); - C<char> d; - d.ff(); - d.gg(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit62.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit62.C deleted file mode 100755 index 5917ce0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit62.C +++ /dev/null @@ -1,19 +0,0 @@ -extern "C" void abort (); - -template <class T> void f () -{ -} - - -template <class T> class C -{ - friend void f<char> (); - public: - void ff () { f<char> (); } -}; - -int main () -{ - C<int> c; - c.ff(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit63.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit63.C deleted file mode 100755 index ce4d99a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit63.C +++ /dev/null @@ -1,19 +0,0 @@ -extern "C" void abort (); - -template <class T> void f () -{ -} - - -template <class T> class C -{ - friend void f<T> (); - public: - void ff () { f<T> (); } -}; - -int main () -{ - C<int> c; - c.ff(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit64.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit64.C deleted file mode 100755 index 2208b30..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit64.C +++ /dev/null @@ -1,23 +0,0 @@ -extern "C" void abort (); - -template <class T> void f () -{ - abort (); -} - -template <> void f<char> () -{ -} - -template <class T> class C -{ - friend void f<char> (); - public: - void ff () { f<char> (); } -}; - -int main () -{ - C<int> c; - c.ff(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit65.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit65.C deleted file mode 100755 index a026e8e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit65.C +++ /dev/null @@ -1,33 +0,0 @@ -extern "C" void abort (); - -template <class T> void f () -{ - abort (); -} - -template <> void f<char> () -{ - abort (); -} - -template <class T> void f (int) -{ - abort (); -} - -template <> void f<char> (int) -{ -} - -template <class T> class C -{ - friend void f<char> (int); - public: - void ff () { f<char> (0); } -}; - -int main () -{ - C<int> c; - c.ff(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit66.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit66.C deleted file mode 100755 index d4a3c62..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit66.C +++ /dev/null @@ -1,11 +0,0 @@ -void f(int) {} -void f(double); - -template <void (*fn)(int)> -void foo() {} - -int main() -{ - foo<f>(); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit67.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit67.C deleted file mode 100755 index c8705f4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit67.C +++ /dev/null @@ -1,20 +0,0 @@ -struct S -{ - void f(int); - void f(double); -}; - -void g(int); -void g(double); - -template <int* IP> -void foo(); -template <long l> -void foo(); - -void bar() -{ - foo<S::f>(); // ERROR - no matching function - foo<g>(); // ERROR - no matching function - -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit68.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit68.C deleted file mode 100755 index bc47c6c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit68.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: - -template <bool B> -struct S -{ - static void g(); -}; - -template <bool B> -void g(); - -template<unsigned Length> -void f() -{ - const bool b = true; - g<b>(); - const bool b1 = (Length == 2); - S<b1>::g(); -} - -void h() -{ - f<3>(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit69.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit69.C deleted file mode 100755 index 671cf00..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit69.C +++ /dev/null @@ -1,2 +0,0 @@ -//Build don't link: -template class x {}; // ERROR - not a template instantiation diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit70.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit70.C deleted file mode 100755 index ade83fd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit70.C +++ /dev/null @@ -1,43 +0,0 @@ -// Build don't link: - -template <class T> -void f(T) {} - -template <class T> -struct S { - static T t; -}; - -template <class T> -T S<T>::t; - -template void f(int); -template void f(int); // ERROR - duplicate explicit instantiation -template int S<int>::t; -template int S<int>::t; // ERROR - duplicate explicit instantiation -template class S<double>; -template class S<double>; // ERROR - duplicate explicit instantiation - -extern template void f(double); // WARNING - extern not allowed -inline template class S<float>; // WARNING - inline not allowed - -template <class T> -struct S<T*> {}; - -template class S<void*>; // OK - explicit instantiation of partial - // specialization - -template <> -struct S<long double> {}; // ERROR - explicit specialization - -template class S<long double>; // ERROR - explicit instantiation after - -template <> -void f(long double) {} // ERROR - explicit specialization - -template void f(long double); // ERROR - explicit instantiation after - -template <class T> -void g(T); - -template void g(int); // ERROR - no definition of g. diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit71.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit71.C deleted file mode 100755 index c84eebc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit71.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// by Alexandre Oliva <oliva@dcc.unicamp.br> -// Based on a testcase by Reid M. Pinchback <reidmp@MIT.EDU> -// According to the C++ Standard [temp.expl.spec]/17-18, explicit -// specializations are only valid if all enclosing template classes -// of the specialized template are fully specialized too - -template <class X> -class bug { - template <class Y> - class a {}; -}; -template <class X> -template <> // ERROR - invalid specialization -class bug<X>::a<char> {}; // ERROR - "" diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit72.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit72.C deleted file mode 100755 index bc9edfb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit72.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// Contributed by Reid M. Pinchback <reidmp@MIT.EDU> -// Adapted by Alexandre Oliva <oliva@dcc.unicamp.br> -// plain char, signed char and unsigned char are distinct types - -template <class X, class Y> class bug {}; -template <class X> class bug<X,char> { typedef char t; }; -template <class X> class bug<X,unsigned char> { typedef unsigned char t; }; -template <class X> class bug<X,signed char> { typedef signed char t; }; -template <class X> class bug<char,X> { typedef char t; }; -template <class X> class bug<unsigned char,X> { typedef unsigned char t; }; -template <class X> class bug<signed char,X> { typedef signed char t; }; - -void foo() { - bug<int,char>::t(); - bug<int,signed char>::t(); - bug<int,unsigned char>::t(); - bug<char,int>::t(); - bug<signed char,int>::t(); - bug<unsigned char,int>::t(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit73.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit73.C deleted file mode 100755 index 106f573..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit73.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: - -// by Alexandre Oliva <oliva@dcc.unicamp.br> - -// According to [temp.expl.spec]/2, a template explicit specialization -// must be declared in the namespace that contains the declaration of -// the template - -namespace N { - template <class T> class foo; -} - -using namespace N; - -template <> class foo<void>; // ERROR - invalid specialization - XFAIL *-*-* diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit74.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit74.C deleted file mode 100755 index c49d169..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit74.C +++ /dev/null @@ -1,10 +0,0 @@ -// Reduced from a testcase by Yotam Medini <yotam@avanticorp.com> - -// egcs 1.1 seems to generate code that deletes a NULL pointer. - -template <class bar> struct foo { void fuz(); ~foo(); }; -struct baz { int i; foo<baz> j; } *p = 0; -template <class bar> void foo<bar>::fuz() { delete p; } -template <class bar> foo<bar>::~foo() { delete p; } -template class foo<baz>; -int main() { foo<baz>(); } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit75.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit75.C deleted file mode 100755 index 433f0b1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit75.C +++ /dev/null @@ -1,11 +0,0 @@ -// Test for not complaining about mismatches during unification. -// Build don't link: - -template <void (*F)(int)> void f(); -template <void (*F)(double)> void f(); -extern void g(double); - -void h () -{ - f<g>(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit76.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit76.C deleted file mode 100755 index 18c161c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit76.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: - -// Based on bug report by Simon A. Crase <s.crase@ieee.org> - -// crash test - XFAIL *-*-* - -struct foo { - template <class T> void bar(); -}; - -template void foo::bar<void>(); // gets bogus error - ICE - XFAIL *-*-* diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit8.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit8.C deleted file mode 100755 index 777c5d4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit8.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// GROUPS passed templates -template <class T, class U> -void foo(T t, U u); - -template <class U> -void foo(double, U) {} - -void baz() -{ - foo<char*>(3.0, "abc"); - foo<char*, double>("abc", 3.0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/explicit9.C b/gcc/testsuite/g++.old-deja/g++.pt/explicit9.C deleted file mode 100755 index 908374b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/explicit9.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: -// GROUPS passed templates -void foo(int); - -void bar() -{ - foo<int>(3); // ERROR - foo is not a template. -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/expr1.C b/gcc/testsuite/g++.old-deja/g++.pt/expr1.C deleted file mode 100755 index cdb8687..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/expr1.C +++ /dev/null @@ -1,33 +0,0 @@ -template <int n> class vec { - double x[n]; - - public: - vec() { - for (int i=0; i<n-1; ++i) x[i]=0; - } - - vec(const vec<n>& v) { - for (int i=0; i<n; ++i) x[i]=v(i); - } - - vec(const vec<n-1>& v, const double& y) { - for (int i=0; i<n-1; ++i) x[i]=v(i); - x[n-1]=y; - } - - inline double operator()(const int i) const { - return x[i]; - } -}; - - -template <int n> vec<n + 1>& operator,(const vec<n>& v, const double& y) { - return *(new vec<n + 1>(v, y)); -} - - -int main() { - vec<4> v; - vec<5> w; - w=(v,3.); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/expr2.C b/gcc/testsuite/g++.old-deja/g++.pt/expr2.C deleted file mode 100755 index d6e5593..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/expr2.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: - -template <int I> -struct S {}; - -template <int J> -void foo(S<J + 2>); - -void bar() -{ - foo(S<3>()); // ERROR - no way to deduce J from this. -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/expr3.C b/gcc/testsuite/g++.old-deja/g++.pt/expr3.C deleted file mode 100755 index 4d77370..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/expr3.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: - -template <int I> -struct S {}; - -template <int J> -void foo(S<J - 1>); - -template <class T> -void baz(S<sizeof(T)>); - -template <int J> -void fun(S<J>, S<J * 2>); - -void bar() -{ - foo<5>(S<4>()); // OK - 4 is 5 - 1. - baz<int>(S<sizeof(int)>()); // OK - fun(S<4>(), S<8>()); // OK - deduce J from first argument. -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/expr4.C b/gcc/testsuite/g++.old-deja/g++.pt/expr4.C deleted file mode 100755 index 13298fe..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/expr4.C +++ /dev/null @@ -1,373 +0,0 @@ -template<class View, class W> -class TinyContainer { -public: - - typedef W T_Wrapped; - - TinyContainer() { } - TinyContainer(View data) : m_data(data) { } - - T_Wrapped &unwrap() - { - return *static_cast<T_Wrapped *>(this); - } - const T_Wrapped &unwrap() const - { - return *static_cast<const T_Wrapped *>(this); - } - -protected: - - mutable View m_data; -}; - -template<class Op, class Left, class Right> -class TinyBinaryExpr : - public TinyContainer< Op, TinyBinaryExpr<Op, Left, Right> > { -public: - - typedef typename Left::T_Return T_Return; - typedef TinyBinaryExpr<Op, Left, Right> T_Expr; - - T_Expr makeExpr() const { return *this; } - - TinyBinaryExpr(const Op &op, const Left &left, const Right &right) - : TinyContainer< Op, TinyBinaryExpr<Op, Left, Right> >(op), - m_left(left), m_right(right) - { } - - TinyBinaryExpr(const Left &left, const Right &right) - : m_left(left), m_right(right) - { } - - Op op() const { return m_data; } - Left left() const { return m_left; } - Right right() const { return m_right; } - -private: - - Left m_left; - Right m_right; -}; - -struct OpAdd { - - template<class T1, class T2> - static T1 apply(const T1 &l, const T2 &r) - { - return l + r; - } - -}; - -template<class V1, class T1, class V2, class T2> -inline TinyBinaryExpr<OpAdd, typename T1::T_Expr, typename T2::T_Expr> -operator+(const TinyContainer<V1,T1>& l, const TinyContainer<V2,T2>& r) -{ - typedef TinyBinaryExpr<OpAdd, typename T1::T_Expr, typename T2::T_Expr> ret; - return ret(l.unwrap().makeExpr(), r.unwrap().makeExpr()); -} - - -template<class Op, class T1, class T2, class Functor> -inline -typename T1::T_Return -for_each(const TinyBinaryExpr<Op,T1,T2>& node, Functor f) -{ - return Op::apply(for_each(node.left(),f), for_each(node.right(),f)); -} - -template<class T, unsigned Nrows, unsigned Ncols, unsigned S1, unsigned S2> -class DenseDataView - : public TinyContainer< T*, DenseDataView<T, Nrows, Ncols, S1, S2> > { -public: - - typedef T T_Return; - typedef DenseDataView<T, Nrows, Ncols, S1, S2> T_Expr; - - T_Expr makeExpr() const { return *this; } - - T *beginLoc(unsigned i, unsigned j) const - { return m_data + S1 * i + S2 * j; } - - DenseDataView(T *pData) - : TinyContainer< T*, DenseDataView<T, Nrows, Ncols, S1, S2> >(pData) { } - - T &offset(unsigned i, unsigned j) - { - return m_data[S1 * i + S2 * j]; - } - - T offset(unsigned i, unsigned j) const - { - return m_data[S1 * i + S2 * j]; - } - - template<unsigned I, unsigned J> - struct Offset { - - static T &apply(DenseDataView<T, Nrows, Ncols, S1, S2> &d) - { - return d.m_data[S1 * I + S2 * J]; - } - - static T constApply(const DenseDataView<T, Nrows, Ncols, S1, S2> &d) - { - return d.m_data[S1 * I + S2 * J]; - } - - }; - -}; - -template<unsigned I, unsigned J> -struct Eval2 { }; - -template<class T, unsigned Nrows, unsigned Ncols, unsigned S1, unsigned S2, - unsigned I, unsigned J> -inline T -for_each(const DenseDataView<T, Nrows, Ncols, S1, S2> &d, - const Eval2<I,J> &e) -{ - return d.offset(I, J); -} - -template<class T, unsigned Nrows, unsigned Ncols> -class DenseData - : public TinyContainer< T[Nrows * Ncols], DenseData<T, Nrows, Ncols> > { -public: - - typedef T T_Return; - typedef DenseDataView<T, Nrows, Ncols, 1, Nrows> T_Expr; - - T_Expr makeExpr() const { return T_Expr(m_data); } - - T *beginLoc(unsigned i, unsigned j) const - { return &m_data[i + Nrows * j]; } - - T &operator[](unsigned i) - { - return m_data[i]; - } - - T operator[](unsigned i) const - { - return m_data[i]; - } - - T &offset(unsigned i, unsigned j) - { - return m_data[i + Nrows * j]; - } - - T offset(unsigned i, unsigned j) const - { - return m_data[i + Nrows * j]; - } - - template<unsigned I, unsigned J> - struct Offset { - - static T &apply(DenseData<T, Nrows, Ncols> &d) - { - return d.m_data[I + Nrows * J]; - } - - static T constApply(const DenseData<T, Nrows, Ncols> &d) - { - return d.m_data[I + Nrows * J]; - } - - }; - -}; - -template<class T, unsigned Nrc> -class DiagonalData { -public: - - T &offset(unsigned i, unsigned j) - { - assert(i == j); - return m_data[i]; - } - - T offset(unsigned i, unsigned j) const - { - return (i == j) ? m_data[i] : T(0); - } - - template<unsigned I, unsigned J> - struct Offset { - - static T &apply(DiagonalData<T,Nrc> &d) - { - assert(I == J); - return d.m_data[I]; - } - - static T constApply(const DiagonalData<T,Nrc> &d) - { - return (I == J) ? d.m_data[I] : T(0); - } - - }; - -private: - - T m_data[Nrc]; -}; - -template<unsigned I, unsigned J, unsigned C1> -struct InnerLoop { - - template<class LHS, class RHS> - static inline void eval(LHS &l, const RHS &r) - { - l.offset(I,J) = for_each(r, Eval2<I,J>()); - InnerLoop<I + 1, J, C1 - 1>::eval(l, r); - } - -}; - -template<unsigned I, unsigned J> -struct InnerLoop<I, J, 0> { - - template<class LHS, class RHS> - static inline void eval(LHS &, const RHS &) { } - -}; - -template<unsigned I, unsigned J, unsigned C1, unsigned C2> -struct Loop2 { - - template<class LHS, class RHS> - static inline void eval(LHS &l, const RHS &r) - { - InnerLoop<I, J, C1>::eval(l, r); - Loop2<I, J + 1, C1, C2 - 1>::eval(l, r); - } -}; - -template<unsigned I, unsigned J, unsigned C1> -struct Loop2<I, J, C1, 0> { - - template<class LHS, class RHS> - static inline void eval(LHS &l, const RHS &r) { } - -}; - - -template<unsigned Begin, unsigned End, unsigned Stride = 1> -class TinyRange { -public: - - static const unsigned b = Begin; - static const unsigned e = End; - static const unsigned s = Stride; - static const unsigned n = (End - Begin) / Stride + 1; - - static unsigned index(unsigned i) - { - return b + s * i; - } -}; - -template<class Range1, class Range2, class Data> -struct Merge { }; - -template<class Range1, class Range2, class T, unsigned Nrows, unsigned Ncols> -struct Merge<Range1, Range2, DenseData<T, Nrows, Ncols> > -{ - static const unsigned s2 = Nrows * Range2::s; - typedef - DenseDataView<T, Range1::n, Range2::n, Range1::s, s2> type; -}; - -template<class Range1, class Range2, class T, unsigned Nrows, unsigned Ncols, - unsigned S1, unsigned S2> -struct Merge<Range1, Range2, DenseDataView<T, Nrows, Ncols, S1, S2> > -{ - static const unsigned s1 = S1 * Range1::s; - static const unsigned s2 = S2 * Range2::s; - - typedef - DenseDataView<T, Range1::n, Range2::n, s1, s2> type; -}; - -template<class T, unsigned Nrows, unsigned Ncols, - class Data = DenseData<T, Nrows, Ncols> > -class TinyMatrix : - public TinyContainer< Data, TinyMatrix<T, Nrows, Ncols, Data> > { -public: - - typedef T T_Return; - typedef typename Data::T_Expr T_Expr; - typedef TinyContainer< Data, TinyMatrix<T, Nrows, Ncols, Data> > T_Base; - - T_Expr makeExpr() const { return m_data.makeExpr(); } - - TinyMatrix() { } - - TinyMatrix(const T &a0, const T &a1, const T &a2, - const T &a3, const T &a4, const T &a5) - { - m_data[0] = a0; m_data[1] = a1; m_data[2] = a2; - m_data[3] = a3; m_data[4] = a4; m_data[5] = a5; - } - - TinyMatrix(const T &a0, const T &a1) - { - m_data[0] = a0; m_data[1] = a1; - } - - TinyMatrix(const Data &d) : T_Base(d) { } - - T operator()(unsigned i, unsigned j) const - { - return m_data.offset(i, j); - } - - template<unsigned B1, unsigned E1, unsigned S1, - unsigned B2, unsigned E2, unsigned S2> - TinyMatrix<T, TinyRange<B1, E1, S1>::n, - TinyRange<B2, E2, S2>::n, - typename - Merge< TinyRange<B1, E1, S1>, TinyRange<B2, E2, S2>, Data>::type> - operator()(const TinyRange<B1, E1, S1> &r1, const TinyRange<B2, E2, S2> &r2) - { - typedef typename - Merge< TinyRange<B1, E1, S1>, TinyRange<B2, E2, S2>, Data>::type - T_DataType; - typedef TinyMatrix<T, TinyRange<B1, E1, S1>::n, - TinyRange<B2, E2, S2>::n, T_DataType> T_RetType; - - return T_RetType(T_DataType(m_data.beginLoc(B1, B2))); - } - - template<class V1, class T1> - void operator=(const TinyContainer<V1, T1> &rhs) - { - Loop2<0, 0, Nrows, Ncols>::eval(m_data, rhs.unwrap().makeExpr()); - } - -}; - - -int main() -{ - TinyMatrix<double, 2, 3> a, b(1.0, 2.0, 3.0, 4.0, 5.0, 6.0), - c(0.1, 0.2, 0.3, 0.4, 0.5, 0.6), d(0.01, 0.02, 0.03, 0.04, 0.05, 0.06); - TinyMatrix<double, 1, 2> e, f(17.0, 48.3); - - a = b + c + d; - - a(TinyRange<0,1>(), TinyRange<0,2,2>()); - - a(TinyRange<0,1>(), TinyRange<0,2,2>()) - (TinyRange<0,0>(), TinyRange<0,1>()); - - e = f + a(TinyRange<0,1>(), TinyRange<0,2,2>()) - (TinyRange<0,0>(), TinyRange<0,1>()); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/expr5.C b/gcc/testsuite/g++.old-deja/g++.pt/expr5.C deleted file mode 100755 index 4cb5078..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/expr5.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -template <class T, int i> -struct S1; - -template <class T, int i, int j> -struct S2 -{ - typedef typename S1<T, (i >= j ? 0 : 1) >::type type; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/expr6.C b/gcc/testsuite/g++.old-deja/g++.pt/expr6.C deleted file mode 100755 index e1d38de..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/expr6.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - -// Based on a bug report by tveldhui <tveldhui@extreme.indiana.edu> - -// excess errors test - XFAIL *-*-* - -template <int X> class foo {}; - -foo< true ? 1 : 0 > bar; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend1.C b/gcc/testsuite/g++.old-deja/g++.pt/friend1.C deleted file mode 100755 index ba642ba..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend1.C +++ /dev/null @@ -1,24 +0,0 @@ -template <class T> -void f(T); - -class C -{ - template <class T> - friend void f(T); - - int i; -}; - - -template <class T> -void f(T) -{ - C c; - c.i = 3; -} - - -int main() -{ - f(7); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend10.C b/gcc/testsuite/g++.old-deja/g++.pt/friend10.C deleted file mode 100755 index bff432b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend10.C +++ /dev/null @@ -1,29 +0,0 @@ -template <class T> -void f(T); - -template <class U> -class C -{ - template <class T> - friend void f(T) - { - C<U> c; - c.i = 3; - } - -public: - - void g() - { - f(3.0); - } - - int i; -}; - -int main() -{ - f(7); - C<double> c; - c.g(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend11.C b/gcc/testsuite/g++.old-deja/g++.pt/friend11.C deleted file mode 100755 index d70fae6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend11.C +++ /dev/null @@ -1,31 +0,0 @@ -template <class T> -class C; - -template <class T> -struct S -{ - template <class U> - void f(U u) - { - C<U> cu; - cu.i = 3; // ERROR - S<double>::f<U> is a friend, but this is - // S<int>::f<double>. - } -}; - - -template <class T> -class C -{ - template <class U> - friend void S<T>::f(U); - - int i; -}; - - -int main() -{ - S<int> si; - si.f(3.0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend12.C b/gcc/testsuite/g++.old-deja/g++.pt/friend12.C deleted file mode 100755 index ef9bfc8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend12.C +++ /dev/null @@ -1,33 +0,0 @@ -template <class T> -class C; - -template <class T> -struct S -{ - template <class U> - void f(U u1, U u2) {} - - template <class U> - void f(U u) - { - C<T> ct; - ct.i = 3; - } -}; - - -template <class T> -class C -{ - template <class U> - friend void S<T>::f(U); - - int i; -}; - - -int main() -{ - S<int> si; - si.f(3.0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend13.C b/gcc/testsuite/g++.old-deja/g++.pt/friend13.C deleted file mode 100755 index 251d52a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend13.C +++ /dev/null @@ -1,33 +0,0 @@ -template <class T> -class C; - -template <class U> -struct S -{ - template <class V> - void f(V v) - { - C<V> cv; - cv.i = 3; - } -}; - - -template <class T> -class C -{ - template <class U> - template <class V> - friend void S<U>::f(V); - - int i; -}; - - -int main() -{ - S<int> si; - si.f(3.0); - S<long> sl; - sl.f('c'); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend14.C b/gcc/testsuite/g++.old-deja/g++.pt/friend14.C deleted file mode 100755 index 4ed5fcc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend14.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: - -template <class U> -class S1 -{ - template <class T> - friend class S2; - - static int i; -}; - - -template <class T> -class S2 -{ -public: - static void f() { S1<T>::i = 3; } -}; - - -void g() -{ - S2<double>::f(); - S2<long>::f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend15.C b/gcc/testsuite/g++.old-deja/g++.pt/friend15.C deleted file mode 100755 index 8d49f6a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend15.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: - -class S1 -{ - template <class T> - friend class S2; - - static int i; -}; - - -template <class T> -class S2 -{ -public: - static void f() { S1::i = 3; } -}; - - -void g() -{ - S2<double>::f(); - S2<char>::f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend16.C b/gcc/testsuite/g++.old-deja/g++.pt/friend16.C deleted file mode 100755 index 7f13e5b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend16.C +++ /dev/null @@ -1,31 +0,0 @@ -// Build don't link: - -template <class T> -class S2 -{ -public: - static void f(); -}; - - -template <class U> -class S1 -{ - template <class T> - friend class S2; - - static int i; -}; - - -template <class T> -void S2<T>::f() -{ - S1<T>::i = 3; -} - -void g() -{ - S2<double>::f(); - S2<char>::f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend17.C b/gcc/testsuite/g++.old-deja/g++.pt/friend17.C deleted file mode 100755 index cb12ce8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend17.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't link: - -template <class T> -class S2 -{ -public: - static void f(); -}; - -class S1 -{ - template <class T> - friend class S2; - - static int i; -}; - -template <class T> -void S2<T>::f() -{ - S1::i = 3; -} - -void g() -{ - S2<double>::f(); - S2<char>::f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend18.C b/gcc/testsuite/g++.old-deja/g++.pt/friend18.C deleted file mode 100755 index 998e163..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend18.C +++ /dev/null @@ -1,26 +0,0 @@ -// Build don't link: - -template <class U> -class S1 -{ - template <class T> - friend class S2; - - static int i; -}; - - -template <class T> -class S2 -{ -public: - static void f() { S1<T>::i = 3; } -}; - - -void g() -{ - S2<double>::f(); - S2<long>::f(); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend19.C b/gcc/testsuite/g++.old-deja/g++.pt/friend19.C deleted file mode 100755 index 998e163..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend19.C +++ /dev/null @@ -1,26 +0,0 @@ -// Build don't link: - -template <class U> -class S1 -{ - template <class T> - friend class S2; - - static int i; -}; - - -template <class T> -class S2 -{ -public: - static void f() { S1<T>::i = 3; } -}; - - -void g() -{ - S2<double>::f(); - S2<long>::f(); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend20.C b/gcc/testsuite/g++.old-deja/g++.pt/friend20.C deleted file mode 100755 index 40d5370..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend20.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -template <class T = int> struct A; - -template <class T> struct B -{ - friend class A<T>; -}; - -template class B<int>; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend21.C b/gcc/testsuite/g++.old-deja/g++.pt/friend21.C deleted file mode 100755 index c89fe1d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend21.C +++ /dev/null @@ -1,30 +0,0 @@ -// Build don't link: - -template <class T> struct A { - static void f(); -}; - -template <class T> class B -{ - friend class A<T>; - static int i; -}; - -template <class T> class C -{ - template <class U> - friend class A; - - static int i; -}; - -template <class T> -void A<T>::f() -{ - B<T>::i = 3; - C<T>::i = 3; - C<double>::i = 3; - B<double>::i = 3; // ERROR - member `i' is private -} - -template void A<int>::f(); // ERROR - instantiated from here diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend22.C b/gcc/testsuite/g++.old-deja/g++.pt/friend22.C deleted file mode 100755 index ed459d7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend22.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -template <class T = int> -struct S -{ - template <class U> - friend class S; -}; - -template struct S<int>; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend23.C b/gcc/testsuite/g++.old-deja/g++.pt/friend23.C deleted file mode 100755 index 21065f1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend23.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -template <class T = int> // ERROR - original definition -struct S -{ // ERROR - redefinition of default arg - template <class U = int> - friend class S; -}; - -template struct S<int>; // ERROR - instantiated from here diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend24.C b/gcc/testsuite/g++.old-deja/g++.pt/friend24.C deleted file mode 100755 index d312b38..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend24.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: - -template <class T> -struct S -{ - template <class U = T> - friend class S; - - void f(T); -}; - -template struct S<int>; - -void g() -{ - S<> s; - s.f(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend25.C b/gcc/testsuite/g++.old-deja/g++.pt/friend25.C deleted file mode 100755 index f93e73b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend25.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: - -template <class T> struct A; - -struct B -{ - template <class U> - friend class A<U>; // ERROR - does not specialize any args -}; - -struct C -{ - template <class U> - friend class A<U*>; // ERROR - partial specialization -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend26.C b/gcc/testsuite/g++.old-deja/g++.pt/friend26.C deleted file mode 100755 index a426f8b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend26.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: - -struct S -{ - friend void f<>(int); // ERROR - does not match any template -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend27.C b/gcc/testsuite/g++.old-deja/g++.pt/friend27.C deleted file mode 100755 index 0f11a49..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend27.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: - -class S -{ - friend void f<>(int); // ERROR - does not match any template - int i; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend28.C b/gcc/testsuite/g++.old-deja/g++.pt/friend28.C deleted file mode 100755 index f86d0b6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend28.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: - -class mystream; - -template <class T> class a { -public: - friend mystream& operator>> <>( mystream&, a<T>& thea ); -private: - T amember; -}; - -template <class T> mystream& operator>>( mystream& s, a<T>& thea ); - -template<> mystream& operator>> <int>( mystream& s, a<int>& thea ); - -template class a<int>; - -template<> mystream& operator>> <int>( mystream& s, a<int>& thea ) -{ - thea.amember = 0; - return s; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend29.C b/gcc/testsuite/g++.old-deja/g++.pt/friend29.C deleted file mode 100755 index e141aaa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend29.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: - -template <class T> class a { -public: - friend void foo<>( a<T>& thea ); -private: - T amember; -}; - -template <class T> void foo( a<T>& thea ) -{ - thea.amember = 0; -} - -template class a<int>; - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend3.C b/gcc/testsuite/g++.old-deja/g++.pt/friend3.C deleted file mode 100755 index 77aabd3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend3.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: - -template <class T> -void f(T); - -class C -{ - friend void f<>(double); - - int i; -}; - - -template <class T> -void f(T) -{ - C c; - c.i = 3; // ERROR - f<double> is a friend, this is f<int>. -} - - -int main() -{ - f(7); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend30.C b/gcc/testsuite/g++.old-deja/g++.pt/friend30.C deleted file mode 100755 index 61dd8fc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend30.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: - -template <class T, class U> -struct S { - template <class X, class Y, class Z> - friend X f(X, Y, Z); -}; - -template <class X, class Y, class Z> -X f(X x, Y, Z) { - return x; -} - -template char f(char, long, short); -template char* f(char*, long*, short*); -template class S<int, double>; -template class S<void*, double>; -template double* f(double*, long*, short*); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend31.C b/gcc/testsuite/g++.old-deja/g++.pt/friend31.C deleted file mode 100755 index 15a380b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend31.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: - -template <class T> -struct S1 { -}; - -template <> -struct S1<int> {}; - -struct S2 { - friend class S1<int>; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend32.C b/gcc/testsuite/g++.old-deja/g++.pt/friend32.C deleted file mode 100755 index b1f173a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend32.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: - -template <class T, class U> -struct S { - template <class X, class Y, class Z> - friend X f(X, Y, Z); -}; - -template class S<int, double>; -template char f(char, long, short); -template char* f(char*, long*, short*); - -template <class X, class Y, class Z> -X f(X x, Y, Z) { - return x; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend33.C b/gcc/testsuite/g++.old-deja/g++.pt/friend33.C deleted file mode 100755 index 5feec1a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend33.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't run: -// Special g++ Options: -g - -template <class P1> -struct S1 -{ - struct SS1 - { - }; - friend void Foo (const SS1& ss1) - { - } -}; - -template <class P1> -void Foo(const S1<P1>& s1) -{ - typedef typename S1<P1>::SS1 TYPE; - TYPE t; - Foo(t); -} - -int main () -{ - S1<double> obj; - Foo(obj); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend34.C b/gcc/testsuite/g++.old-deja/g++.pt/friend34.C deleted file mode 100755 index 56eb80a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend34.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// excess errors test - -// This testcase won't fail if class ::foo is forward-declared in the -// global namespace, nor if class bar is not a template class. - -template <typename T = void> -class bar { -public: - friend class foo; // this is not bar::foo, it forward-declares ::foo - class foo {}; - bar() { foo(); } // but this should refer to bar::foo -}; - -bar<> baz; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend35.C b/gcc/testsuite/g++.old-deja/g++.pt/friend35.C deleted file mode 100755 index c2c22c7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend35.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: - -class foo { - friend void bar<int>(int); // ERROR - must be declared first -}; - -template <typename T> void bar(T); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend36.C b/gcc/testsuite/g++.old-deja/g++.pt/friend36.C deleted file mode 100755 index 4a9042a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend36.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: - -template <class T> -void f(T) {} // ERROR - previously defined here - -template <class U> -struct S { - template <class T> - friend void f(T) {} // ERROR - redeclaration -}; - -S<int> si; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend37.C b/gcc/testsuite/g++.old-deja/g++.pt/friend37.C deleted file mode 100755 index 2379d5f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend37.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: -// Simplified from report by Volker Dobler <volker@hugo.physik.uni-konstanz.de> - -// crash test - XFAIL *-*-* - -template <class T> class A { - friend int ice<>( int k=0 ); // ERROR - undeclared -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend38.C b/gcc/testsuite/g++.old-deja/g++.pt/friend38.C deleted file mode 100755 index 41c7714..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend38.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -// Overly simplified from testcase by "B. K. Oxley" <binkley@bigfoot.com> - -// crash test - XFAIL *-*-* - -template<class P> struct foo { - typedef P parent_type; - friend parent_type; // ERROR - template parameters cannot be friends -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend39.C b/gcc/testsuite/g++.old-deja/g++.pt/friend39.C deleted file mode 100755 index 836c830..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend39.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: - -template <class T> -struct S; - -template <class T> -class C -{ - friend void S<T>::f(); - - int i; -}; - -template <class T> -struct S -{ - void f() { - C<T> c; - c.i = 3; - } -}; - -template void S<int>::f(); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend4.C b/gcc/testsuite/g++.old-deja/g++.pt/friend4.C deleted file mode 100755 index ea43927..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend4.C +++ /dev/null @@ -1,21 +0,0 @@ -class C -{ - template <class T> - friend void f(T); - - int i; -}; - - -template <class T> -void f(T) -{ - C c; - c.i = 3; -} - - -int main() -{ - f(7); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend5.C b/gcc/testsuite/g++.old-deja/g++.pt/friend5.C deleted file mode 100755 index 516be4d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend5.C +++ /dev/null @@ -1,17 +0,0 @@ -class C -{ - template <class T> - friend void f(T) - { - C c; - c.i = 3; - } - - int i; -}; - - -int main() -{ - f(7); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend6.C b/gcc/testsuite/g++.old-deja/g++.pt/friend6.C deleted file mode 100755 index 5651421..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend6.C +++ /dev/null @@ -1,28 +0,0 @@ -template <class T> -void f(T); - -class C -{ - template <class T> - friend void f(T) - { - C c; - c.i = 3; - } - -public: - - void g() - { - f(3.0); - } - - int i; -}; - -int main() -{ - f(7); - C c; - c.g(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend7.C b/gcc/testsuite/g++.old-deja/g++.pt/friend7.C deleted file mode 100755 index 2962d92..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend7.C +++ /dev/null @@ -1,25 +0,0 @@ -template <class T> -void f(T); - -template <class U> -class C -{ - template <class T> - friend void f(T); - - int i; -}; - - -template <class T> -void f(T) -{ - C<T> c; - c.i = 3; -} - - -int main() -{ - f(7); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend8.C b/gcc/testsuite/g++.old-deja/g++.pt/friend8.C deleted file mode 100755 index ffa9122..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend8.C +++ /dev/null @@ -1,18 +0,0 @@ -template <class T> -class C -{ - friend void f (C<T> c) - { - c.i = 3; - } - - int i; -}; - - -int main() -{ - C<int> ci; - - f(ci); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/friend9.C b/gcc/testsuite/g++.old-deja/g++.pt/friend9.C deleted file mode 100755 index 63455d0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/friend9.C +++ /dev/null @@ -1,22 +0,0 @@ -template <class U> -class C -{ - template <class T> - friend void f(T); - - int i; -}; - - -template <class T> -void f(T) -{ - C<int> c; - c.i = 3; -} - - -int main() -{ - f(7); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/goto.C b/gcc/testsuite/g++.old-deja/g++.pt/goto.C deleted file mode 100755 index c6c1a56..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/goto.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: - -template<class T> -void compute(T) { - goto Exit; -Exit: ; - } - -int main() -{ - compute(0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/instantiate1.C b/gcc/testsuite/g++.old-deja/g++.pt/instantiate1.C deleted file mode 100755 index 11f9c78..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/instantiate1.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: - -template <class T> -void f(T t) {} - -template void f<int>(int); -template void f<>(long); - -template <class T> -struct S -{ - void bar(int) {} - - template <class U> - void baz(U u) {} -}; - - -template S<char>; -template void S<int>::bar(int); -template void S<double>::baz<short>(short); -template void S<long>::baz<>(char); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/instantiate2.C b/gcc/testsuite/g++.old-deja/g++.pt/instantiate2.C deleted file mode 100755 index a5c6c49..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/instantiate2.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: - -template<class T> -struct X_two { - template <class T2> T2 conv_compare_ge(T2 test) { - T2 tmp_value = T2 (0); - return (tmp_value > test ? tmp_value : test); - } -}; - -template int X_two<double>::conv_compare_ge(int); - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/instantiate3.C b/gcc/testsuite/g++.old-deja/g++.pt/instantiate3.C deleted file mode 100755 index 62062f7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/instantiate3.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -template <class T> -struct S -{ - S(const T&) {} - S(int, long); -}; - -template S<double>::S(const double&); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/instantiate4.C b/gcc/testsuite/g++.old-deja/g++.pt/instantiate4.C deleted file mode 100755 index 296356b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/instantiate4.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build then link: - -// Special g++ Options: -frepo -Werror - -// Submitted by Melissa O'Neill <oneill@cs.sfu.ca> -// the vtable of Foo<int> wouldn't be generated - -template <typename A> -struct Foo { - virtual void foo() {} -}; - -template <typename A> -struct Bar { - void bar(); -}; - -template <typename A> -void Bar<A>::bar() { - Foo<A> oof; -} - -int main () { - Bar<int> rab; - - rab.bar(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/instantiate5-main.cc b/gcc/testsuite/g++.old-deja/g++.pt/instantiate5-main.cc deleted file mode 100755 index be64bdb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/instantiate5-main.cc +++ /dev/null @@ -1,3 +0,0 @@ -// this file is part of testcase instantiate5.C - -int main() {} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/instantiate5.C b/gcc/testsuite/g++.old-deja/g++.pt/instantiate5.C deleted file mode 100755 index 70eefcb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/instantiate5.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't run: - -// Additional sources: instantiate5.cc instantiate5-main.cc - -// `global constructors' are given the same name, based on foo(), on -// both translation units, which is wrong, because it must be possible -// to define template functions in multiple translation units, as long -// as they're given the same definition - -// simplified from test case submitted by Daniel X. Pape <dpape@canis.uiuc.edu> - -template <class T> void foo() { } -inline int bar() { foo<void>(); return 1; } -static int i = bar(); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/instantiate5.cc b/gcc/testsuite/g++.old-deja/g++.pt/instantiate5.cc deleted file mode 100755 index fc86e0f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/instantiate5.cc +++ /dev/null @@ -1,5 +0,0 @@ -// this file is part of testcase instantiate5.C - -template <class T> void foo() { } -inline int bar() { foo<void>(); return 1; } -static int i = bar(); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/instantiate6.C b/gcc/testsuite/g++.old-deja/g++.pt/instantiate6.C deleted file mode 100755 index e896ed3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/instantiate6.C +++ /dev/null @@ -1,26 +0,0 @@ -// Build then link: -// Special g++ Options: -frepo - -// Simplified from testcase by Erez Louidor Lior <s3824888@techst02.technion.ac.il> -// excess errors test - XFAIL *-*-* - -template <class T> -class foo{ -public: - void g(); - void h(); -}; - -template <class T> -void foo<T>::g() { - h(); -} - -template <class T> -void foo<T>::h() { -} - -int main() { - foo<int> f; - f.g(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/label1.C b/gcc/testsuite/g++.old-deja/g++.pt/label1.C deleted file mode 100755 index 964d1d7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/label1.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: - -template <class T> -struct S {}; - -template <class T> -inline void g(T t) -{ - here: - S<T> st; - goto here; -} - -template <class T> -void f(T t) -{ - here: - g(t); - goto here; -} - -void h() -{ - f(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/local1.C b/gcc/testsuite/g++.old-deja/g++.pt/local1.C deleted file mode 100755 index 1b9e515..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/local1.C +++ /dev/null @@ -1,21 +0,0 @@ -template <class STRUCT, class MEMBER> inline STRUCT * -setback(MEMBER *bp, MEMBER STRUCT::*offset) -{ - if(!bp) return 0; - union { int i; MEMBER STRUCT::*of; } u; - u.of = offset; - return (STRUCT *) ((int) bp - u.i); -} - - -struct S -{ - int i; -}; - -int main() -{ - S s; - - S* sp = setback (&s.i, &S::i); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/local2.C b/gcc/testsuite/g++.old-deja/g++.pt/local2.C deleted file mode 100755 index 4aafc69..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/local2.C +++ /dev/null @@ -1,20 +0,0 @@ -extern "C" void abort(); - -template <class T> -void f(T) -{ - struct S { - int i; - } s; - - s.i = 3; - - if (s.i != 3) - abort(); -} - - -int main() -{ - f(7); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/local3.C b/gcc/testsuite/g++.old-deja/g++.pt/local3.C deleted file mode 100755 index ea1b386..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/local3.C +++ /dev/null @@ -1,26 +0,0 @@ -extern "C" void abort(); - -template <class T> -void f(T) -{ - int j; - - j = 6; - - struct S { - int i; - }; - - S s; - - s.i = j; - - if (s.i != 6) - abort(); -} - - -int main() -{ - f(7); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/local4.C b/gcc/testsuite/g++.old-deja/g++.pt/local4.C deleted file mode 100755 index 6a7eb34..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/local4.C +++ /dev/null @@ -1,25 +0,0 @@ -extern "C" void abort(); - -template <class T> -struct S {}; - -S<int> si; - -template <class T> -int f(T t) -{ - struct S { - int g(int i) { return i + 2; } - }; - - S s; - - return s.g(t) + s.g(t); -} - - -int main() -{ - if (f(3) != 10) - abort(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/local5.C b/gcc/testsuite/g++.old-deja/g++.pt/local5.C deleted file mode 100755 index b49525c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/local5.C +++ /dev/null @@ -1,24 +0,0 @@ -template <class INT> -class b -{ -private: - char a(int x) - { - union { - int i; - char c; - } val; - val.i = x; - return val.c; - }; - -public: - b() { - } -}; - -int main() { - b<int> n; - return 0; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/local6.C b/gcc/testsuite/g++.old-deja/g++.pt/local6.C deleted file mode 100755 index d3f2f4c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/local6.C +++ /dev/null @@ -1,24 +0,0 @@ -extern "C" void abort(); - -template <class T> -int f(T) -{ - struct S1 { - virtual int foo() { return 1; } - }; - - struct S2 : public S1 { - int foo() { return 2; } - }; - - S1* s2 = new S2; - - return s2->foo(); -} - - -int main() -{ - if (f(3) != 2) - abort(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/lookup1.C b/gcc/testsuite/g++.old-deja/g++.pt/lookup1.C deleted file mode 100755 index 359915c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/lookup1.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: - -template <class T, class Allocator> - struct __vector_alloc_base -{ - typedef int allocator_type; -}; - -template <class T> - struct vector : __vector_alloc_base<T,int> -{ - typedef short allocator_type; - explicit vector(const allocator_type& a = allocator_type()) {} -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/lookup2.C b/gcc/testsuite/g++.old-deja/g++.pt/lookup2.C deleted file mode 100755 index 169aee0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/lookup2.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// Special g++ Options: - -class A -{ -protected: - void f1() {}; -}; - -template <class T> class B : private A { -protected: - using A::f1; -}; - -template <class T> class D : private B<T> -{ -public: - void f2() { f1(); }; -}; - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/lookup3.C b/gcc/testsuite/g++.old-deja/g++.pt/lookup3.C deleted file mode 100755 index 9ada72f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/lookup3.C +++ /dev/null @@ -1,17 +0,0 @@ -template<class T> -class A { -public: - void f() { } -}; - -class B : public A<int> { -public: - void f(); -}; - -int main() -{ - B b; - B& b1 = b; - b1.A<int>::f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/lookup4.C b/gcc/testsuite/g++.old-deja/g++.pt/lookup4.C deleted file mode 100755 index fe15252..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/lookup4.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: - -void h(int); - -template <class T> -class i {}; - -struct B -{ - int i; -}; - -template <class T> -struct D : public B -{ - void f(); - void g() { h(i); } -}; - -template <class T> -void D<T>::f() -{ - h(i); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/lookup5.C b/gcc/testsuite/g++.old-deja/g++.pt/lookup5.C deleted file mode 100755 index e38b222..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/lookup5.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: - -struct B { - int i; -}; - -struct D: public B { - int i; -}; - -template <class T> -struct D2 : public D { - void f() { i = 3; } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/lookup6.C b/gcc/testsuite/g++.old-deja/g++.pt/lookup6.C deleted file mode 100755 index ae1f5ca..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/lookup6.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: - -// Based on bug report by Miniussi <miniussi@ilog.fr> - -class t {}; - -template <class T> struct A { typedef T t; typedef T u; }; - -template <class T> struct B : public A<T> { - // according to [temp.dep.type], `t' and `u' cannot be dependent types, - // and so there's no reason to delay lookup to specialization time. - void f(t p); // this is ::t [temp.dep]/3 - void f(typename A<T>::t p); // gets bogus error - redefinition - void g(u p); // ERROR - unknown type name -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/m1.C b/gcc/testsuite/g++.old-deja/g++.pt/m1.C deleted file mode 100755 index 7de0e0c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/m1.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: - -int f1 () { - struct A { - A() : b (2) { } - int fred () { return b.hi_mom; } - struct B { - int hi_mom; - B (int a) { hi_mom = a; } - }; - B b; - }; - A aa; - return aa.fred(); -} -/* crashes with signal 11 */ diff --git a/gcc/testsuite/g++.old-deja/g++.pt/m2.C b/gcc/testsuite/g++.old-deja/g++.pt/m2.C deleted file mode 100755 index 00fdbad..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/m2.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - -struct A { A() { a = 2; } int a; }; - -int f1 () { - struct A { A() { a = 2; } int a; }; - A aa; - return aa.a; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/m3.C b/gcc/testsuite/g++.old-deja/g++.pt/m3.C deleted file mode 100755 index 492b261..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/m3.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - -struct A { A() { a = 2; } int a; }; - -struct B { - struct A { A() { a = 2; } int a; }; - A aa; -}; -char xx[]="../tests/m3.cc:4: redefinition of `struct A'"; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/m4.C b/gcc/testsuite/g++.old-deja/g++.pt/m4.C deleted file mode 100755 index bbfb227..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/m4.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: - -struct A1 { struct B { B(); } b; }; -struct A2 { struct B { ~B(); } b; }; -char xx[] ="../tests/m4.cc:1: warning: return type specification for constructor invalid"; - - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/m5.C b/gcc/testsuite/g++.old-deja/g++.pt/m5.C deleted file mode 100755 index e834970..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/m5.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: - -struct B { struct A { A(); int a; } aa; }; -struct A { A(); int a; }; -B::A::A () { a = 37; } -char xx[]="../tests/m5.cc:3: Segmentation violation"; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/m6.C b/gcc/testsuite/g++.old-deja/g++.pt/m6.C deleted file mode 100755 index 5d0c81e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/m6.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: - -struct B { struct A { A(); int a; } aa; }; -B::A::A () { a = 37; } -char* xx[] = { -"../tests/m6.cc:1: warning: return type specification for constructor invalid", -"../tests/m6.cc:2: semicolon missing after declaration of `A'", -"../tests/m6.cc:2: warning: empty declaration", -"../tests/m6.cc: In function int A ():", -"../tests/m6.cc:2: `a' undeclared (first use this function)", -"../tests/m6.cc:2: (Each undeclared identifier is reported only once", -"../tests/m6.cc:2: for each function it appears in.)", -"../tests/m6.cc:2: warning: control reaches end of non-void function" }; - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/m7.C b/gcc/testsuite/g++.old-deja/g++.pt/m7.C deleted file mode 100755 index 06d2ba3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/m7.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: - -struct B { struct A { A(); int a; }; A aa; }; -B::A::A () { a = 37; } -char *xx[]= {"/*", -"../tests/m7.cc:1: warning: return type specification for constructor invalid", -"../tests/m7.cc: In function struct A A ():", -"../tests/m7.cc:2: `a' undeclared (first use this function)", -"../tests/m7.cc:2: (Each undeclared identifier is reported only once", -"../tests/m7.cc:2: for each function it appears in.)", -"../tests/m7.cc:2: warning: control reaches end of non-void function", - "*/" }; - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/m8.C b/gcc/testsuite/g++.old-deja/g++.pt/m8.C deleted file mode 100755 index 22d0144..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/m8.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: - -class A { - int a; - public: - A (int aa = 3); -}; - -class B { - class A { - public: - A (int, int); - }; - A aa; - public: - B (int); -}; - -extern void foo(); -B::B (int z) : aa (1, z) { - foo (); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/m9.C b/gcc/testsuite/g++.old-deja/g++.pt/m9.C deleted file mode 100755 index d519dbd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/m9.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: - -struct A { A() { a = 1; } int a; }; -struct Q { - struct A { A() { a = 2; } int a; }; - struct R { - struct A { A() { a = 3; } int a; }; - A aaz; - }; - R rrr; - A aay; -} -; - -Q qqq; -A aav; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/m9a.C b/gcc/testsuite/g++.old-deja/g++.pt/m9a.C deleted file mode 100755 index 9118306..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/m9a.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: - -struct A { A() { a = 1; } int a; }; // ERROR - -struct A { A() { a = 2; } int a; }; // ERROR - -A aavv; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memclass1.C b/gcc/testsuite/g++.old-deja/g++.pt/memclass1.C deleted file mode 100755 index 5ad839c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memclass1.C +++ /dev/null @@ -1,13 +0,0 @@ -template <class T> struct A { - template <class U> struct B { - template <class V> void f (V) { } - void g () { } - }; -}; - -int main () -{ - A<int>::B<char> b; - b.f (42); - b.g (); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memclass10.C b/gcc/testsuite/g++.old-deja/g++.pt/memclass10.C deleted file mode 100755 index 1deb380..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memclass10.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -struct S1 -{ - template <class T> - struct S2 {}; // ERROR - previous definition - - template <class T> - struct S2 {}; // ERROR - redefinition -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memclass11.C b/gcc/testsuite/g++.old-deja/g++.pt/memclass11.C deleted file mode 100755 index 6eee67a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memclass11.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: - -struct S1 -{ - template <class T> - struct S2; - - template <class T> - struct S2 { - enum E { a }; - }; -}; - -int i = (int) S1::S2<double>::a; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memclass12.C b/gcc/testsuite/g++.old-deja/g++.pt/memclass12.C deleted file mode 100755 index f4d0354..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memclass12.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: - -struct outer { - template <class T> struct inner; -} o; -template <class T> struct outer::inner {}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memclass13.C b/gcc/testsuite/g++.old-deja/g++.pt/memclass13.C deleted file mode 100755 index 7eddc27..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memclass13.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: - -template <class X, class Y> -struct Inner; - -template <class T> -struct S -{ - template <class U> - struct Inner - { - }; -}; - - -S<double>::Inner<int> si; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memclass14.C b/gcc/testsuite/g++.old-deja/g++.pt/memclass14.C deleted file mode 100755 index ad1b2b4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memclass14.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: - -template <class X, class Y> -struct Inner; - -struct S -{ - template <class U> - struct Inner - { - }; -}; - - -S::Inner<int> si; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memclass15.C b/gcc/testsuite/g++.old-deja/g++.pt/memclass15.C deleted file mode 100755 index 52f92bf..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memclass15.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't link: - -template <class T> -struct S1 -{ - template <class U> - struct S2 {}; - - template <class X, class Y, class Z> - void f(X, Y, Z) - { - S2<Z> s2z; - } - - template <class X, class Z> - void g(X, Z) - { - S2<Z> s2z; - } -}; - - -void h() -{ - S1<int> si; - si.g(3, 4); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memclass16.C b/gcc/testsuite/g++.old-deja/g++.pt/memclass16.C deleted file mode 100755 index e8e5643..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memclass16.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: - -template <class Q> -class A { -public: - - typedef enum { X, Y } B; - template <B c> class Traits{ }; -}; - - -template class A<int>; -template class A<double>::Traits<A<double>::X>; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memclass17.C b/gcc/testsuite/g++.old-deja/g++.pt/memclass17.C deleted file mode 100755 index 96024e2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memclass17.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: - -template <class T> struct S -{ - template <class U> struct I - { - }; - - S(); - S(S& s); - S(I<T>); - - template <class U> operator I<U>(); -}; - -S<int> f(); -void g(S<int>); - -void h() -{ - g(f()); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memclass18.C b/gcc/testsuite/g++.old-deja/g++.pt/memclass18.C deleted file mode 100755 index bb7f6f1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memclass18.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - -template <class T> struct A { - template <class U> struct B; -}; - -template <class T> template <class U> struct A<T>::B { }; - -A<int>::B<int> b; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memclass19.C b/gcc/testsuite/g++.old-deja/g++.pt/memclass19.C deleted file mode 100755 index 6a8b0a7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memclass19.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - -template <class T> struct A { - template <class U> struct B; -}; - -template <class T> template <class U> struct A<T>::B<U*> { }; - -A<int>::B<int*> b; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memclass2.C b/gcc/testsuite/g++.old-deja/g++.pt/memclass2.C deleted file mode 100755 index 895fd61..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memclass2.C +++ /dev/null @@ -1,18 +0,0 @@ -template <class T> struct A { - template <class U> struct B { - template <class V> void f (V) { } - void g () { } - }; - template <class W> struct B<W*> { - void h () { } - }; -}; - -int main () -{ - A<int>::B<char> b; - b.f (42); - b.g (); - A<double>::B<void*> b2; - b2.h (); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memclass3.C b/gcc/testsuite/g++.old-deja/g++.pt/memclass3.C deleted file mode 100755 index 77744f8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memclass3.C +++ /dev/null @@ -1,21 +0,0 @@ -template <class T> struct A { - template <class U> struct B { - template <class V> struct C { - template <class W> struct D { - template <class X> struct E { - template <class Y> struct F { - template <class Z> void f (Z) { } - void g () { } - }; - }; - }; - }; - }; -}; - -int main () -{ - A<int>::B<int>::C<int>::D<int>::E<int>::F<int> b; - b.f (42); - b.g (); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memclass4.C b/gcc/testsuite/g++.old-deja/g++.pt/memclass4.C deleted file mode 100755 index 4c101c6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memclass4.C +++ /dev/null @@ -1,23 +0,0 @@ -#include <typeinfo> - -template <class T> -struct allocator { - typedef T* pointer; - - template <class U> struct rebind { - typedef allocator<U> other; - }; -}; - -template <class T, class Allocator> -struct alloc_traits -{ - typedef typename Allocator::template rebind<T>::other allocator_type; -}; - -int main () -{ - typedef alloc_traits<int, allocator<void> >::allocator_type at; - - return typeid (at) != typeid (allocator <int>); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memclass5.C b/gcc/testsuite/g++.old-deja/g++.pt/memclass5.C deleted file mode 100755 index 06a1413..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memclass5.C +++ /dev/null @@ -1,22 +0,0 @@ -template <class T> struct A { - template <class U> struct B { - template <class V> static void f () { } - void g () { } - }; -}; - -template <class T, class U> -void f () -{ - A<T>::template B<U>::template f<T> (); - typename A<T>::B<U> b; - typename A<T>::template B<U> b2; - b.A<T>::template B<U>::~B(); -} - -template <class T> struct C: public A<T>::B<T> { }; - -int main () -{ - f<int, char>(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memclass6.C b/gcc/testsuite/g++.old-deja/g++.pt/memclass6.C deleted file mode 100755 index 65de1d1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memclass6.C +++ /dev/null @@ -1,18 +0,0 @@ -// Compiler: egcs-2.91.12 980302 -// Error: compiler error in ctor of 'foo::bar<T>::bar(T const &)' - -struct foo -{ - template <typename T> - struct bar - { - bar(T const &t) : tt(t) {} - T tt; - }; -}; - -int main() -{ - foo::bar<int> fb(3); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memclass7.C b/gcc/testsuite/g++.old-deja/g++.pt/memclass7.C deleted file mode 100755 index 1a5cabe..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memclass7.C +++ /dev/null @@ -1,18 +0,0 @@ -struct S -{ - template <class U> - struct Y { - template <class T> - void foo(T t); - }; -}; - -template <> -template <> -void S::Y<char>::foo<int>(int i) { } - -int main() -{ - S::Y<char> s; - s.template foo<int>(3.0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memclass8.C b/gcc/testsuite/g++.old-deja/g++.pt/memclass8.C deleted file mode 100755 index 431d41d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memclass8.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: - -template <class T> -class S -{ - template <class U> - struct S2 { - S2(const S2<U>& s2u) {} - }; -}; - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memclass9.C b/gcc/testsuite/g++.old-deja/g++.pt/memclass9.C deleted file mode 100755 index 824ee76..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memclass9.C +++ /dev/null @@ -1,32 +0,0 @@ -// Build don't link: - -template <class T> -struct S1 -{ - template <class U> - struct S2 - { - S2(U); - - void g() - { - S2<U> s2u (u); - } - - U& u; - }; - - template <class U> - void f(U u) - { - S2<U> s2u(u); - s2u.g(); - } -}; - -void g() -{ - S1<int> s1; - s1.f(3.0); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp1.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp1.C deleted file mode 100755 index 94274e5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp1.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed templates membertemplates -struct S { - template <class T> - void foo(T&); -}; - - -template <class T> -void S::foo(T&) -{ -} - - - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp10.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp10.C deleted file mode 100755 index 9e97b5e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp10.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -extern "C" int printf(const char*, ...); - -struct S { - template <class T> - operator T*(); -}; - - -template <class T> -S::operator T*() -{ - printf("Hello, world.\n"); - return 0; -} - - -int main() -{ - S s; - - char* cp = s.operator char*(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp11.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp11.C deleted file mode 100755 index a0d681d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp11.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -extern "C" int printf(const char*, ...); - -struct S -{ - template <class U> - S(U u, int i) {} - - template <class T> - T foo(T t) - { - printf("Hello, world.\n"); - return t; - } -}; - - -int main() -{ - S s(3, 4); - int i = s.foo(3); - s.foo("hello"); - s.foo(s); - - S s2("hello", 5); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp12.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp12.C deleted file mode 100755 index 94a8c3c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp12.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// GROUPS passed templates membertemplates -template <class T> -struct S -{ - template <class U> - void foo(U); -}; - -void f() -{ - S<int> s; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp13.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp13.C deleted file mode 100755 index d6bc7b9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp13.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed templates membertemplates -template <class T> -struct S -{ - template <class U> - void foo(U); -}; - -void f() -{ - S<int> s; - s.foo(3); - s.foo("hello"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp14.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp14.C deleted file mode 100755 index e24a3a7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp14.C +++ /dev/null @@ -1,30 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -extern "C" const char* printf(const char*, ...); - -template <class T> -struct S -{ - template <class U, class V> - void foo(U, V); -}; - - -template <class T> -template <class U, class V> -void S<T>::foo(U, V) -{ - printf("Hello, world.\n"); -} - - -int main() -{ - S<int> s; - s.foo(3, 3); - s.foo("hello", s); - - S<char*> s2; - s2.foo(3, 3); - s2.foo("hello", s); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp15.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp15.C deleted file mode 100755 index 140730b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp15.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed templates membertemplates -template <class T> -struct S -{ - template <class U> - void foo(U) {} -}; - - -void f() -{ - S<int> s; - s.foo(3); - s.foo("hello"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp16.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp16.C deleted file mode 100755 index cfa66aa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp16.C +++ /dev/null @@ -1,30 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -extern "C" int printf(const char*, ...); - -template <class U> -struct S { - template <class T> - void operator+(T); -}; - -template <class U> -template <class T> -void S<U>::operator+(T) -{ - printf("Hello, world.\n"); -} - - -int main() -{ - S<int> s; - s + 3; - s + s; - s.operator+("Hi"); - - S<S<int> > s2; - s2 + 3; - s2 + s; - s2.operator+("Hi"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp17.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp17.C deleted file mode 100755 index 0816b36..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp17.C +++ /dev/null @@ -1,26 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -extern "C" int printf(const char*, ...); - -template <class V> -struct S { - template <class T, class U> - S(T, U, T); -}; - - -template <class V> -template <class T, class U> -S<V>::S(T t1, U u1, T t2) -{ - printf("Hello, world.\n"); -} - - -int main() -{ - S<int> s1(3, "abc", 3); - S<int> s2('a', s1, 'a'); - - S<char> s3("abc", 3, "abc"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp18.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp18.C deleted file mode 100755 index 638e5e3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp18.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed templates membertemplates -struct S -{ - template <class T> - void foo(T) {} -}; - -template void S::foo(int); - -int main() -{ - S s; - s.foo(3); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp19.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp19.C deleted file mode 100755 index 8551531..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp19.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -extern "C" int printf(const char*, ...); - -struct S { - template <class T> - operator T(); -}; - -template <class T> -S::operator T() -{ - printf("Hello, world.\n"); - return T(); -} - - -template S::operator int(); - -int main() -{ - S s; - - int i = s.operator int(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp2.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp2.C deleted file mode 100755 index e000ffa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp2.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed templates membertemplates -struct S { - template <class T> - void foo(T&); -}; - - -template <class U> -void S::foo(U&) -{ -} - - - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp20.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp20.C deleted file mode 100755 index a79c534..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp20.C +++ /dev/null @@ -1,43 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -extern "C" int printf(const char*, ...); - -struct S -{ - template <class T, class U> - void foo(T t, U u); - - template <class U> - void foo(char*, U); - - void foo(int i); -}; - -template <class T, class U> -void S::foo(T t, U u) -{ - printf ("T,U version\n"); -} - - -template <class U> -void S::foo(char*, U u) -{ - printf ("char*,U version\n"); -} - - -void S::foo(int i) -{ - printf ("int version\n"); -} - - -int main() -{ - S s; - s.foo(3); - s.foo(3, 3); - s.foo("abc", s); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp23.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp23.C deleted file mode 100755 index 5310b62..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp23.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -extern "C" int printf(const char*, ...); - -template <class X> -struct S -{ - S() - { printf ("In S::S()\n"); f(3); } - - S(char) - { printf ("In S::S(char)\n"); f(*this); } - - template <class U> - void f(U u) - { printf ("In S::f(U)\nsizeof(U) == %d\n", sizeof(u)); } - - int c[16]; -}; - -int main() -{ - S<char*> s; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp24.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp24.C deleted file mode 100755 index b1bfac1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp24.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -extern "C" int printf(const char*, ...); - -template <class X> -struct S -{ - S() - { printf ("In S::S()\n"); f(3); } - - S(char) - { printf ("In S::S(char)\n"); f(*this); } - - template <class U> - void f(U u) - { printf ("In S::f(U)\nsizeof(U) == %d\n", sizeof(u)); } - - int c[16]; -}; - -int main() -{ - S<char*> s; - S<char*> s2('a'); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp25.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp25.C deleted file mode 100755 index 672a9c8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp25.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -extern "C" int printf(const char*, ...); - -template <class X> -struct S -{ - template <class U> - void f(U u) { printf ("%d\n", sizeof (U)); } - - int i[4]; -}; - - -int main() -{ - S<char*> s; - s.f(3); - s.f(s); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp26.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp26.C deleted file mode 100755 index cbfc93e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp26.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -extern "C" int printf(const char*, ...); - -template <class X> -struct S -{ - template <class U> - void f(U u); - - int i[4]; -}; - - -template <class X> -template <class U> -void S<X>::f(U u) -{ - printf ("%d\n", sizeof (U)); -} - - -int main() -{ - S<char*> s; - s.f(3); - s.f(s); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp27.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp27.C deleted file mode 100755 index b1bfac1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp27.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -extern "C" int printf(const char*, ...); - -template <class X> -struct S -{ - S() - { printf ("In S::S()\n"); f(3); } - - S(char) - { printf ("In S::S(char)\n"); f(*this); } - - template <class U> - void f(U u) - { printf ("In S::f(U)\nsizeof(U) == %d\n", sizeof(u)); } - - int c[16]; -}; - -int main() -{ - S<char*> s; - S<char*> s2('a'); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp28.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp28.C deleted file mode 100755 index 37e79c8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp28.C +++ /dev/null @@ -1,27 +0,0 @@ -extern "C" void abort(); - -int k; - -template <class X> -struct S -{ - template <class U> - void f(U u) - { ++k; g(u); } - - template <class U> - void g(U u) - { ++k; } - - int c[16]; -}; - -int main() -{ - S<char*> s; - s.f(3); - s.f("adf"); - - if (k != 4) - abort(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp29.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp29.C deleted file mode 100755 index 4000070..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp29.C +++ /dev/null @@ -1,32 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -extern "C" int printf(const char*, ...); - -template <class X> -struct S -{ - template <class U> - void f(U u); - - template <class U> - void g(U U); - - int c[16]; -}; - -template <class X> -template <class U> -void S<X>::f(U u) - { printf ("In S::f(U)\n"); g(u); } - -template <class X> -template <class U> -void S<X>::g(U u) - { printf ("In S::g(U)\n"); } - -int main() -{ - S<char*> s; - s.f(3); - s.f("adf"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp3.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp3.C deleted file mode 100755 index 2a4dbb8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp3.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -extern "C" int printf(const char*, ...); - -struct S { - template <class T> - void foo(T); -}; - - -template <class T> -void S::foo(T) -{ - printf("Hello, world.\n"); -} - - - -int main() -{ - S s; - s.foo(3); - s.foo(s); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp30.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp30.C deleted file mode 100755 index 923ec85..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp30.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -extern "C" int printf(const char*, ...); - -template <class X> -struct S -{ - template <class U> - void g(U u) { this; } -}; - - -int main() -{ - S<char*> s; - s.g(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp31.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp31.C deleted file mode 100755 index 3bb1cd3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp31.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -extern "C" int printf(const char*, ...); - -struct S -{ - template <class U> - void g(U u) - { this; } -}; - -int main() -{ - S s; - s.g(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp32.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp32.C deleted file mode 100755 index 3f0bfc7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp32.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -extern "C" int printf(const char*, ...); - -struct S -{ - template <class U> - void g(U u) - { i = 3; } - - int i; -}; - -int main() -{ - S s; - s.g(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp33.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp33.C deleted file mode 100755 index 500abe0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp33.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -extern "C" int printf(const char*, ...); - -template <class T> -struct S -{ - template <class U> - void g(U u) - { i; } - - int i; -}; - -int main() -{ - S<char> s; - s.g(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp34.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp34.C deleted file mode 100755 index 29e1101..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp34.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -template <class T> -struct S -{ - template <class U> - static void f(U u) - {} -}; - -int main() -{ - S<int>::f(3); - S<char>::f("abc"); - S<int>::f("abc"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp35.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp35.C deleted file mode 100755 index 7603d94..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp35.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// GROUPS passed templates membertemplates -template <class T> -struct S -{ - S(const S& s) {} - - template <class U> - S(S<U>& s) - { - S<U> s2(s); - } -}; - - -extern S<int>& si; - -void foo() -{ - S<char*> sc(si); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp36.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp36.C deleted file mode 100755 index 6c57a97..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp36.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// GROUPS passed templates membertemplates -template <class X> -struct R -{ -}; - - -template <class T> -struct S -{ - template <class U> - S(R<U> r); -}; - - -void foo() -{ - R<int> r; - S<char*> s(r); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp37.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp37.C deleted file mode 100755 index 186083b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp37.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed templates membertemplates -template <class T> -struct S -{ - template <class U> - void f(U u); -}; - - -template <class T> -template <class U> -void S<T>::f(U) -{ -} - -enum -{ - a = 3 -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp39.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp39.C deleted file mode 100755 index 146d329..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp39.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: -// GROUPS passed templates membertemplates -template <class T> -struct S -{ - template <class U> - void f(U u) { g(u); } - - template <class U> - void g(U u) { f(u); } -}; - -void foo() -{ - S<int> si; - si.f(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp4.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp4.C deleted file mode 100755 index b9f9c16..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp4.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// GROUPS passed templates membertemplates -struct S { - template <class T> - void operator+(T); -}; - - -template <class T> -void S::operator+(T) -{ -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp40.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp40.C deleted file mode 100755 index 70506f0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp40.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// GROUPS passed templates membertemplates -template <class T> -struct R -{ - template <class U> - void g(U u) {} -}; - -template <class T> -struct S -{ - template <class U> - void f(U u) { R<T> r; r.g(u); } -}; - -void foo() -{ - S<int> si; - si.f("abc"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp41.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp41.C deleted file mode 100755 index 603f702..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp41.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -// GROUPS passed templates membertemplates -template <int i> -struct S -{ - static void foo() {} -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp42.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp42.C deleted file mode 100755 index 3c11dd4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp42.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -template<class T, int N> -class Foo { - -public: - template<int N2> - Foo<T,N> operator=(const Foo<T,N2>& z) - { - return Foo<T,N>(); - } -}; - -int main() -{ - Foo<double,4> x; - Foo<double,7> y; - x = y; - - return 0; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp43.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp43.C deleted file mode 100755 index 3d8e3ad..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp43.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -template<class T, int N> -class A -{ -public: - template<class U> - void operator=(A<U, N> const & a) { return; } -}; - -int main() -{ - A<float, 3> a; - A<double, 3> b; - a = b; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp44.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp44.C deleted file mode 100755 index c8d6f16..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp44.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -template<class T> -class A -{ -}; - -template<> -class A<float> -{ -public: - template<class U> - void func(U v1) {} -}; - -int main() -{ - A<float> a; - a.func(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp45.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp45.C deleted file mode 100755 index d71f25d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp45.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -template<class T> -class A -{ -}; - -template<> -class A<float> -{ -public: - template<class U> - void func(U v1 = 0) {} -}; - -int main() -{ - A<float> a; - a.func(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp46.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp46.C deleted file mode 100755 index 2212a52..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp46.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -template<class T, class U> -class A -{ -}; - -template<class U> -class A<float, U> -{ -public: - template <class V> - void func(V v1 = 0) {} -}; - -int main() -{ - A<float, int> a; - a.func("abc"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp47.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp47.C deleted file mode 100755 index e4f7ebf..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp47.C +++ /dev/null @@ -1,29 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -extern "C" int printf(const char*, ...); - -template <class X> -struct S -{ - template <class U> - void g(U u) - { printf ("In S::g(U)\n"); } - - int c[16]; -}; - - -template <class X> -struct T : public S<X> -{ - template <class U> - void f(U u) - { printf ("In T::f(U)\n"); g(u); } -}; - -int main() -{ - T<char*> t; - t.f(3); - t.f("adf"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp48.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp48.C deleted file mode 100755 index 8ce6f66..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp48.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed templates membertemplates -struct S -{ - template <class T> - void f(T t1, T t = T()) - {} -}; - - -void foo() -{ - S si; - si.f(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp49.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp49.C deleted file mode 100755 index f2d610f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp49.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// GROUPS passed templates membertemplates -template <class X> -struct S -{ - template <class T> - void f(T t1, T t = T()) - {} -}; - - -void foo() -{ - S<int> si; - si.f(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp5.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp5.C deleted file mode 100755 index 14647a3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp5.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -extern "C" int printf(const char*, ...); - -struct S { - template <class T> - void operator+(T); -}; - - -template <class T> -void S::operator+(T) -{ - printf("Hello, world.\n"); -} - - - -int main() -{ - S s; - s + 3; - s + s; - s.operator+("Hi"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp52.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp52.C deleted file mode 100755 index 25dc7e7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp52.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// GROUPS passed templates membertemplates -template<class T, int N> -class A { }; - -template<int N> -struct X { - template<class T2, int N2> - void f(A<T2,N>&, A<int,N2>&) - { } -}; - - -void foo() -{ - X<3> x; - A<char*, 3> a1; - A<int, 2> a2; - x.f(a1, a2); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp53.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp53.C deleted file mode 100755 index 4fd65b9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp53.C +++ /dev/null @@ -1,36 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -template<int N> -struct I { -}; - -template<class T> -struct A { - - int r; - - template<class T1, class T2> - void operator()(T1, T2) - { r = 0; } - - template<int N1, int N2> - void operator()(I<N1>, I<N2>) - { r = 1; } -}; - -int main() -{ - A<float> x; - I<0> a; - I<1> b; - - x(a,b); - if (x.r != 1) - return 1; - - x(float(), double()); - if (x.r != 0) - return 1; - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp55.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp55.C deleted file mode 100755 index b955189..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp55.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed templates membertemplates -template<class X> class _bz_update { }; - -template<class T> -struct S { -template<int N_destRank> -void foo() { _bz_update<int>(); } -}; - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp56.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp56.C deleted file mode 100755 index ef6b286..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp56.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// GROUPS passed templates membertemplates -template<class P_numtype, int N_length> -class TinyVector {}; - -template<class P_numtype, int N_rank> -struct Array -{ - template<int N_rank2> - Array() {} - - template<int N_rank2> - P_numtype operator()(const TinyVector<int,N_rank2>& index) const {} -}; - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp58.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp58.C deleted file mode 100755 index 38c2953..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp58.C +++ /dev/null @@ -1,30 +0,0 @@ -// Build don't link: -// GROUPS passed templates membertemplates -template<int N, class T> -struct B { -}; - -template<int N1, int N2, int N3> -struct D { - struct E { - template<int N4, class T> - static void f(B<N4,T>) - { } - }; -}; - -template<int N> -struct A { - template<int N2, class T, int N3> - static void f(B<N2,T>, B<N3,T> b) - { - typedef typename D<N2,N3,N>::E E; - E::f(b); - } -}; - -void foo() -{ - A<5>::f(B<5,float>(),B<3,float>()); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp59.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp59.C deleted file mode 100755 index fbdc0d8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp59.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: -// GROUPS passed templates membertemplates -template <int N> -struct IndexPlaceholder {}; - -template <int N1, int N2, int N3> -struct ArrayIndexMapping {}; - -template <class T_numtype, int N_rank> -struct Array -{ - template<int N0, int N1> - ArrayIndexMapping<N_rank, N0, N1> - f(IndexPlaceholder<N0>, IndexPlaceholder<N1>); -}; - - -template <class T_numtype> -void foo(T_numtype) -{ - Array<T_numtype, 1> t; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp6.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp6.C deleted file mode 100755 index 6989a7d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp6.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// GROUPS passed templates membertemplates -struct S { - template <class T, class U> - S(T, U, T); -}; - - -template <class T, class U> -S::S(T, U, T) -{ -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp60.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp60.C deleted file mode 100755 index 7358d72..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp60.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// GROUPS passed membertemplates -template <class T> -struct S -{ - S(const S<T>& x) {} - - template <class U> - S(const S<U>& x) {} -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp61.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp61.C deleted file mode 100755 index 1fdb055..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp61.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't run: -// GROUPS passed membertemplates -struct S -{ - template <class T> - void foo(T t); -}; - - -template <> -void S::foo(int i) -{ -} - - -int main() -{ - S s; - s.foo(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp62.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp62.C deleted file mode 100755 index 8cfadef..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp62.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't run: -// GROUPS passed membertemplates -struct S -{ - template <class T> - void foo(T t); -}; - - -template <> -void S::foo<int>(int i) -{ -} - - -int main() -{ - S s; - s.foo(3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp63.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp63.C deleted file mode 100755 index 4f793d4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp63.C +++ /dev/null @@ -1,13 +0,0 @@ -template <class T> struct A { - template <class U> void f (U u); -}; - -A<int> a; - -template <class T> template <class U> void A<T>::f (U u) { } - -int main() -{ - a.f (24); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp64.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp64.C deleted file mode 100755 index 6185d3d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp64.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: - -template <class T> -struct S1 {}; - -template <class T> -void f(T); - -template <class C> -struct S2 -{ - template <class T> - void f<S1<T> >(T) {} // ERROR - bad specialization. -}; - - -template <class T> -struct S3 -{ - friend class S2<T>; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp65.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp65.C deleted file mode 100755 index ef49d84..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp65.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: - -template<unsigned int n> struct PartialDotProduct { - template<class T> - static T Expand(T* a, T* b) { return T(); } -}; - -const int N = 10; - -template<class In1, class In2> -void -dot(In1 f1, In2 f2) -{ - PartialDotProduct<N>::Expand(f1, f2); - -} - -int main() -{ - double a[N], b[N]; - - dot(&a[0], &b[0]); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp66.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp66.C deleted file mode 100755 index d7c1f57..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp66.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: - -template <class T> -struct S -{ - template <class U> - void f(U u) { this->template f<>(3); } -}; - - -void g() -{ - S<char> s; - s.f(1.0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp67.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp67.C deleted file mode 100755 index 7170c90..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp67.C +++ /dev/null @@ -1,19 +0,0 @@ -template <class T> -struct A -{ - template <class T2> - operator A<T2>() const { return A<T2>(); } -}; - -int main() -{ - A<int> a1; - A<long> a2; - A<double> a3; - A<char> a4; - - a2 = a1.operator A<long>(); - a3 = (A<double>) a1; - a4 = a1; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp68.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp68.C deleted file mode 100755 index 96a0814..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp68.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - - struct locale - { - template<class _Facet> - locale (const locale&, _Facet*); - locale(int*) throw(); - }; - void f(int* p) { locale keep (p); } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp69.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp69.C deleted file mode 100755 index 4c9a2a9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp69.C +++ /dev/null @@ -1,35 +0,0 @@ -struct S -{ - template <class T> - void f(T (&i)[7]) - {} - - void g() - { - int i[] = {1, 2, 3, 4, 5, 6, 7}; - f(i); - int j[7]; - f(j); - } -}; - -struct foo { - template <typename T, int N> - static T* array_end(T(&array)[N]) { return &array[N]; } -}; - -struct X -{ - template <class T1> - void f(const T1&) {} -}; - -int main(int ac, char* av[]) { - S s; - s.g(); - int i[] = {1,2,3,4,5}; - int* e = foo::array_end(i); - X x; - x.f("hello"); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp7.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp7.C deleted file mode 100755 index 2dee058..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp7.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -extern "C" int printf(const char*, ...); - -struct S { - template <class T, class U> - S(T, U, T); -}; - - -template <class T, class U> -S::S(T t1, U u1, T t2) -{ - printf("Hello, world.\n"); -} - - -int main() -{ - S s1(3, "abc", 3); - S s2('a', s1, 'a'); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp70.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp70.C deleted file mode 100755 index 2a9fe8a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp70.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: - -template <class T> -class X { -public: - T x; -}; - -class Y { -public: - template <class T> static void f(X<T>& a) {} - - void g(void); -}; - -void -Y::g(void) -{ - X<int> a; - - f(a); -} - - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp71.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp71.C deleted file mode 100755 index 38cf5c7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp71.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: - -class A -{ - template<class T>T epsilon; // ERROR - invalid member template -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp72.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp72.C deleted file mode 100755 index 52332c6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp72.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: - -template<class P> struct B -{ - template<class T> void f(T& t) { t = T(); } -}; - -enum ptype { t1, t2}; - -struct D : public B<ptype> -{ - void g(double& d) { f(d); } -}; - - -D d; - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp73.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp73.C deleted file mode 100755 index 5732d49..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp73.C +++ /dev/null @@ -1,18 +0,0 @@ -template <class T> struct A { - template <class U> void f(U); -}; - -template <int i> struct B { }; - -template <class T> template <class U> -void A<T>::f (U) -{ - enum { foo }; - B<foo> b; -} - -int main () -{ - A<char> a; - a.f (42); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp74.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp74.C deleted file mode 100755 index e99103f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp74.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: - -template <class T> -class S -{ -protected: - template <class U> - void f(U); // ERROR - is protected - -private: - template <class U> - void g(U); // ERROR - is private -}; - - -void f() -{ - S<double> s; - s.f(3); // ERROR - within this context - s.g(2.0); // ERROR - within this context -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp75.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp75.C deleted file mode 100755 index 4ff38b6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp75.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: - -void -print(const int& i) -{ -} - -template<class A> -class bar -{ -public: - template<void (*B)(const A& a)> - void doit(const A& a) - { - B(a); - } -}; - - -int -main() -{ - bar<int> b; - b.template doit<print>(2); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp76.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp76.C deleted file mode 100755 index b202851..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp76.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: - -class base -{ -public: - virtual void method()=0; -}; - -class der: public base -{ -public: - template<class C> - void method() - { - C foo; - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp77.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp77.C deleted file mode 100755 index ca4cf20..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp77.C +++ /dev/null @@ -1,25 +0,0 @@ -extern "C" int strcmp(const char*, const char*); - -template <class T> -struct S3 -{ - template <class U> - static char* h(U); -}; - -template <> -template <> -char* S3<double>::h(int) { return __PRETTY_FUNCTION__; } - -template <> -template <> -char* S3<char>::h(int) { return __PRETTY_FUNCTION__; } - -int main() -{ - if (strcmp (S3<double>::h(7), - "static char * S3<double>::h<int>(int)") == 0) - return 0; - else - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp78.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp78.C deleted file mode 100755 index 945e7ff..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp78.C +++ /dev/null @@ -1,56 +0,0 @@ -// Build don't link: - -struct A -{ - void f() {} - - template <class U> - void f() {} -}; - - -template <class T> -struct B -{ - void f() {} - - template <class U> - void f() {} -}; - -template struct B<int>; - -struct C -{ - template <class U> - void f() {} - - template <class U> - void f() {} // ERROR - redeclaration -}; - - -template <class T, class U> -struct D -{ - void f(T); - void f(U); -}; - -template struct D<int, double>; - -template <class T, class U> -struct D2 -{ - void f(T); - void f(U); // ERROR - redeclaration -}; - -template struct D2<int, int>; - -struct E -{ - void f(); - void f(); // ERROR - redeclaration -}; - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp79.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp79.C deleted file mode 100755 index 4eeffde..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp79.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: - -struct foo { - template<typename T> static void bar( foo* ); - template<typename T> void bar() const; // gets bogus error - quals XFAIL *-*-* -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp8.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp8.C deleted file mode 100755 index 1bf0890..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp8.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// GROUPS passed templates membertemplates -struct S { - template <class T> - operator T(); -}; - - -template <class T> -S::operator T() -{ -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp80.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp80.C deleted file mode 100755 index 61a2fb8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp80.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: - -template<typename T> T baz() { return 0; } - -struct foo { - template<typename T> static T staticbar() { return 0; } - template<typename T> T bar() { return 0; } -}; - -void f() -{ - foo t; - int i = baz<int>(); - int j = foo::staticbar<int>(); - int k = t.bar<int>(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp81.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp81.C deleted file mode 100755 index 1584f88..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp81.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: - -template <int i> class a -{ -public : -int k; - -template <int j> int f() const { return this->f<j-1>(); } - -int g() const { return f<i>(); }; -}; - -template <> -template <> -int a<2>::f<0>() const { - return 0; -} - -int main() -{ -a<2> x; -return x.g(); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp82.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp82.C deleted file mode 100755 index 9abd390..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp82.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -// excess errors test - XFAIL *-*-* - -struct foo { - template<typename T> T bar() { return staticbar<T>( this ); } - template<typename T> static T staticbar( foo* ) { return 0; } -}; - -void f() -{ - foo t; - int k = t.bar<int>(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/memtemp9.C b/gcc/testsuite/g++.old-deja/g++.pt/memtemp9.C deleted file mode 100755 index 943dbfb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/memtemp9.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't run: -// GROUPS passed templates membertemplates -extern "C" int printf(const char*, ...); - -struct S { - template <class T> - operator T(); -}; - -template <class T> -S::operator T() -{ - printf("Hello, world.\n"); - return T(); -} - -int main() -{ - S s; - - int i = s.operator int(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/mi1.C b/gcc/testsuite/g++.old-deja/g++.pt/mi1.C deleted file mode 100755 index 8282261..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/mi1.C +++ /dev/null @@ -1,75 +0,0 @@ -// Test that binfos aren't erroneously shared between instantiations. - -class PK_CryptoSystem -{ -}; -class PK_Encryptor : public virtual PK_CryptoSystem -{ -}; -class PK_FixedLengthCryptoSystem : public virtual PK_CryptoSystem -{ -public: - virtual unsigned int CipherTextLength() const =0; -}; -class PK_FixedLengthEncryptor : public virtual PK_Encryptor, public virtual PK_FixedLengthCryptoSystem -{ -}; -class PK_SignatureSystem -{ -public: - virtual ~PK_SignatureSystem() {}; -}; -class PK_Signer : public virtual PK_SignatureSystem -{ -public: - virtual void Sign() = 0; -}; -class PK_Verifier : public virtual PK_SignatureSystem -{ -}; -class PK_Precomputation -{ -}; -template <class T> class -PK_WithPrecomputation : public T, public virtual PK_Precomputation -{ -}; -typedef PK_WithPrecomputation<PK_FixedLengthEncryptor> PKWPFLE; -typedef PK_WithPrecomputation<PK_Signer> PKWPS; -template <class EC> class -ECPublicKey : public PKWPFLE -{ -public: - unsigned int CipherTextLength() const { return 1; } - EC ec; -}; -template <class EC> -class ECPrivateKey : public ECPublicKey<EC>, public PKWPS -{ - void Sign() {} - int d; -}; -template <class EC> -class ECKEP : public ECPrivateKey<EC> -{ -}; -class GF2NT : public PK_CryptoSystem -{ - int t1; -}; -class EC2N : public PK_CryptoSystem -{ - GF2NT field; - int a; -}; -template class ECKEP<EC2N>; -template class ECKEP<int>; - -int -main () -{ - ECKEP<EC2N> foo; - - return 0; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/nested1.C b/gcc/testsuite/g++.old-deja/g++.pt/nested1.C deleted file mode 100755 index 3df7c47..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/nested1.C +++ /dev/null @@ -1,47 +0,0 @@ -// Build don't link: - -template <class T1,class T2> -struct X -{ - T1 a; - - struct Y - { - T2 x; - Y (T2 _x) { x=_x; } - }; - -}; - -template <class T1> -struct X<T1,int> -{ - T1 a; - - struct Y - { - int x; - Y (int _x) { x=_x; } - }; - -}; - -template <> -struct X<int,int> -{ - int a; - - struct Y - { - int x; - Y (int _x) { x=_x; } - }; - -}; - -void f () -{ - X<char,char> t1; - X<char,int> t2; - X<int,int> t3; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/niklas01.C b/gcc/testsuite/g++.old-deja/g++.pt/niklas01.C deleted file mode 100755 index 6dcf9d3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/niklas01.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: - -template <class T> struct A {}; -template <class T> struct B : A<B<T> > {}; - -B<int> x; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/niklas01a.C b/gcc/testsuite/g++.old-deja/g++.pt/niklas01a.C deleted file mode 100755 index 027f2ae..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/niklas01a.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: - -struct A { - friend struct B : A { // ERROR - - int x; - }; - int y; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/niklas01b.C b/gcc/testsuite/g++.old-deja/g++.pt/niklas01b.C deleted file mode 100755 index fa2e5ac..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/niklas01b.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: - -template <class T> struct A { T *t; inline A() { t = 0; } }; -template <class T> struct B : A<B<T> > { int x; inline B() { x = 3; } }; - -B<int> x; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/niklas02.C b/gcc/testsuite/g++.old-deja/g++.pt/niklas02.C deleted file mode 100755 index b4d300d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/niklas02.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: - -struct B { int foo (); }; -int B::foo() { return 37; } - -template <class A> struct X { - void f(int); -}; - -template <class A> void X<A>::f (int jj) -{} - -X<int> x; - -void xxx () { x.f (1); } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/niklas03.C b/gcc/testsuite/g++.old-deja/g++.pt/niklas03.C deleted file mode 100755 index 29b1972..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/niklas03.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: - -template <class A> struct X { - A operator[] (int); -}; - -template <class A> A X<A>::operator[] (int i) -{ - return A(); // gets bogus error -} - -X<int> x; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/nontype1.C b/gcc/testsuite/g++.old-deja/g++.pt/nontype1.C deleted file mode 100755 index 120282a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/nontype1.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: - -template<int N_length> -struct B -{ - B(); - ~B(); -}; -template<class P, int N> -struct D -{ - D(int r0); - D(B<N-1> &, int); -}; -template<class T> -void func() -{ - D<T,1> tmp; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/nontype2.C b/gcc/testsuite/g++.old-deja/g++.pt/nontype2.C deleted file mode 100755 index e181411..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/nontype2.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: - -enum E { }; - -template <const E* ep> -struct S1 -{ -}; - - -struct S2 -{ - static E es[1]; -}; - - -struct S3 -{ - typedef S1<S2::es> S3_Type; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/nontype3.C b/gcc/testsuite/g++.old-deja/g++.pt/nontype3.C deleted file mode 100755 index d6f3394..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/nontype3.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't link: - -enum E { e }; - -template <const E* ep> -struct S1 -{ - static char* s; -}; - -template <int D> -struct S2 {}; - -template <> -struct S2<1> -{ - static E es[1]; -}; - -struct S3 -{ - typedef S1<S2<1>::es> S3_Type; -}; - -E S2<1>::es[1] = {e}; - -template <> -char* S1<S2<1>::es>::s = "abc"; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/nontype4.C b/gcc/testsuite/g++.old-deja/g++.pt/nontype4.C deleted file mode 100755 index 2aa38b1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/nontype4.C +++ /dev/null @@ -1,31 +0,0 @@ -// Build don't link: - -template <class R, void (R::* A) (void)> -class s -{ -public: - s (R &r) : _r (r) {} - - void e (void) { (_r.*A) (); } - -private: - R &_r; -}; - -class x -{ -public: - void test1 (void) { int j = 0; } - void test2 (void) { int j = 1; } -}; - -int -main (void) -{ - x r; - - s<x, &x::test1> c4 (r); - s<x, &x::test2> c5 (r); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/overload1.C b/gcc/testsuite/g++.old-deja/g++.pt/overload1.C deleted file mode 100755 index 25a40b1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/overload1.C +++ /dev/null @@ -1,15 +0,0 @@ -template <class T> struct B { }; - -template <class T> struct A { - template <class U, class V> int operator () (U u, V v); - template <class U, class V> void operator () (B<U> u, B<V> v) { } -}; - -int -main () -{ - A<int> a; - B<char> b1; - B<short> b2; - a (b1, b2); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/overload10.C b/gcc/testsuite/g++.old-deja/g++.pt/overload10.C deleted file mode 100755 index 19dd174..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/overload10.C +++ /dev/null @@ -1,16 +0,0 @@ -struct B { - int f(int) { return 1; } -}; - -struct D { - template <class T> - int f(T) { return 0; } -}; - -int main() -{ - int (D::*g)(int) = &D::f; - - D d; - return (d.*g)(0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/overload11.C b/gcc/testsuite/g++.old-deja/g++.pt/overload11.C deleted file mode 100755 index 300d91e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/overload11.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't run: - -template <class T> -int f(int (*fn)(T)) -{ - return (*fn)(3); -} - -struct S { - static int g(int) { return 1; } - static void g(); - - int h(); -}; - -int S::h() -{ - return f(&g); -} - - -int main() -{ - S s; - if (s.h () != 1) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/overload2.C b/gcc/testsuite/g++.old-deja/g++.pt/overload2.C deleted file mode 100755 index 809fac4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/overload2.C +++ /dev/null @@ -1,16 +0,0 @@ -//Build don't link: -template<class T> -class C -{ -public: - C<T*> O(); - C<T*> O() const; -}; - - -int -main() -{ - C<char*> c; - char* p = Z(c.O); //ERROR - ambiguous c.O -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/overload3.C b/gcc/testsuite/g++.old-deja/g++.pt/overload3.C deleted file mode 100755 index a716917..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/overload3.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: - -template <class T> -void g(T, T); - -template <class T> -void g(int*, T); - -struct S -{ - void f() const - { - g(X, X+3); - } - - double X[3]; -}; - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/overload4.C b/gcc/testsuite/g++.old-deja/g++.pt/overload4.C deleted file mode 100755 index f4e58e2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/overload4.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: - -template <class T> void foo(T); - -template <class T> void bar(void (*)(T), T); - -void baz() { - bar<int>(foo, 1); - bar(foo<int>, 1); - bar<int>(foo<int>, 1); - bar(foo, 1); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/overload5.C b/gcc/testsuite/g++.old-deja/g++.pt/overload5.C deleted file mode 100755 index 058f4f4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/overload5.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: - -template <class T> void foo(); // ERROR - candidate - -void (*bar)() = foo<void>; -void (*baz)() = foo; // ERROR - can't deduce T diff --git a/gcc/testsuite/g++.old-deja/g++.pt/overload6.C b/gcc/testsuite/g++.old-deja/g++.pt/overload6.C deleted file mode 100755 index 10f793a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/overload6.C +++ /dev/null @@ -1,13 +0,0 @@ -// Check that foo<int> isn't resolved too early. - -template <class T> void foo(T*); -template <class T, class U> void foo(T*, U) { } - -template <class T, class U> void bar(void (*)(T, U), U) { } - -int main() { - bar<int*>(&foo, 1); - bar<int*>(&foo<int>, 1); - bar<int*>(foo, 1); - bar<int*>(foo<int>, 1); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/overload7.C b/gcc/testsuite/g++.old-deja/g++.pt/overload7.C deleted file mode 100755 index bfd8b5a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/overload7.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: - -// Adapted from testcase by Corey Kosak <kosak@cs.cmu.edu> - -template<class T> -struct moo_t { - struct cow_t {}; -}; - -template<class T> void foo(typename moo_t<T>::cow_t) {} - -template<class T> void foo(moo_t<T>) { - typename moo_t<T>::cow_t p; - foo(p); // gets bogus error - no matching function for call - XFAIL *-*-* -} - -int main() { - moo_t<int> x; - foo(x); // gets bogus error - instantiated from here - XFAIL *-*-* -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/overload8.C b/gcc/testsuite/g++.old-deja/g++.pt/overload8.C deleted file mode 100755 index 9f38a5c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/overload8.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: - -// Simplified from bug report by Tim Rowley <tor@cs.brown.edu> - -struct baz; - -void operator*(baz&, double); - -template <class T> inline T operator*(double s, const T &p) - ; // gets bogus error - must have argument of class type - XFAIL *-*-* - -void m(baz& a) { a * .5; } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/overload9.C b/gcc/testsuite/g++.old-deja/g++.pt/overload9.C deleted file mode 100755 index bd9eeb1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/overload9.C +++ /dev/null @@ -1,21 +0,0 @@ -template <class T> -int f(T) -{ - return 1; -} - - -template <class T> -int f(T*) -{ - return 0; -} - - -int main() -{ - int (*h)(int*) = &f; - int (&k)(int*) = f; - - return (*h)(0) || (*k)(0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/partial1.C b/gcc/testsuite/g++.old-deja/g++.pt/partial1.C deleted file mode 100755 index 7a92996..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/partial1.C +++ /dev/null @@ -1,26 +0,0 @@ -template<class T_type, int N> -class foo { -public: - enum bar { z = 0 }; -}; - -template<int N> -class foo<double, N> { -public: - enum bar { z = 1 }; -}; - -template<class T_type> -class foo<T_type, 2> { -public: - enum bar { z = 2 }; -}; - -int main() -{ - if ((foo<int,3>::z == 0) && (foo<double,3>::z == 1) - && (foo<float,2>::z == 2)) - return 0; - else - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/partial2.C b/gcc/testsuite/g++.old-deja/g++.pt/partial2.C deleted file mode 100755 index cdf2199..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/partial2.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: -// Tests partial specialization -template<class T> struct foo1 {}; -template<class T, int n> struct foo1<T[n]>; -foo1<char> bar1; -foo1<char[10]> baz1; // ERROR - incomplete type - -template<class T> struct foo2 {}; -template<class T, unsigned n> struct foo2<T[n]>; -foo2<char> bar2; -foo2<char[10]> baz2; // ERROR - incomplete type - -typedef unsigned int other1_t; -template<class T> struct foo3 {}; -template<class T, other1_t n> struct foo3<T[n]>; -foo3<char> bar3; -foo3<char[10]> baz3; // ERROR - incomplete type - - -typedef int other2_t; -template<class T> struct foo4 {}; -template<class T, other1_t n> struct foo4<T[n]>; -foo4<char> bar4; -foo4<char[10]> baz4; // ERROR - incomplete type - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/pointer1.C b/gcc/testsuite/g++.old-deja/g++.pt/pointer1.C deleted file mode 100755 index f854976..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/pointer1.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: - -template <class T> -struct S1 -{ -}; - -template <class T> -struct S2 -{ - typedef T* pointer_t; -}; - -int f(S2<S1<int> >::pointer_t p1, S2<S1<int> >::pointer_t p2) -{ - return (int) (p1 - p2); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ptrmem1.C b/gcc/testsuite/g++.old-deja/g++.pt/ptrmem1.C deleted file mode 100755 index e14c726..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ptrmem1.C +++ /dev/null @@ -1,18 +0,0 @@ -class foo -{ -public: - template<class T> - T bar() { return 7; } -}; - -int -main() -{ - foo f; - - int (foo::*s)() = &foo::template bar<int>; - if ((f.*s)() == 7) - return 0; - else - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ptrmem2.C b/gcc/testsuite/g++.old-deja/g++.pt/ptrmem2.C deleted file mode 100755 index c6927d1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ptrmem2.C +++ /dev/null @@ -1,43 +0,0 @@ -struct S; - -template <S* (S::*p)()> -struct F { - S* f (S& s) - { - return (s.*p)(); - } -}; - -template <int S::*p> -struct D { - void d (S& s) - { - (s.*p) = 3; - } -}; - -struct S { - S* g (); - int i; - F<&S::g> fg; - D<&S::i> di; - S* h(), k(F<&S::h>); - F<&S::g> fg2; - D<&S::i> di2; -}; - -S* S::g() -{ - return this; -} - -int main() -{ - S s; - s.i = 2; - s.di.d (s); - if (s.i != 3) - return 1; - if (s.fg2.f(s) != &s) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ptrmem3.C b/gcc/testsuite/g++.old-deja/g++.pt/ptrmem3.C deleted file mode 100755 index 8b7c373..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ptrmem3.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: - -template <class T> -struct S : public S<T*> {}; -template <> -struct S<int**> {}; - -void g() -{ - int S<int*>::*p; - int S<int>::*q = p; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ptrmem4.C b/gcc/testsuite/g++.old-deja/g++.pt/ptrmem4.C deleted file mode 100755 index 139be92..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ptrmem4.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't run: - -template<class T,class T1> -int connect_to_method(T* receiver, - int (T1::*method)()) -{ - return (receiver->*method)(); -} - -class Gtk_Container -{ -public: - int remove_callback() { return 1; } - void remove_callback(int); - int f(); -}; - -int Gtk_Container::f() -{ - return connect_to_method(this, &Gtk_Container::remove_callback); -} - -int main() -{ - Gtk_Container gc; - if (gc.f () != 1) - return 1; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ptrmem5.C b/gcc/testsuite/g++.old-deja/g++.pt/ptrmem5.C deleted file mode 100755 index c9e6c9b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ptrmem5.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: - -// Based on testcase by adriang@campbellsoft.com - -struct Null { - template <typename T> operator T*() { return 0; } - template <typename C, typename T> operator T C::*() { return 0; } -#if WORK_AROUND - typedef int pmf(); - template <typename C> operator pmf C::* () { return 0; } -#endif -} NULL; - -int *pd = NULL; -int (*pf)() = NULL; -int Null::*pmd = NULL; -int (Null::*pmf)() = NULL; // gets bogus error - cannot convert - XFAIL *-*-* diff --git a/gcc/testsuite/g++.old-deja/g++.pt/recursion.C b/gcc/testsuite/g++.old-deja/g++.pt/recursion.C deleted file mode 100755 index 7efaeb0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/recursion.C +++ /dev/null @@ -1,31 +0,0 @@ -// Build don't link: - -const double M_PI=3.14159265358979323846; - -template<int N,int I,int J,int K> -inline double SineSeries() -{ - const double x=I*2*M_PI/N; - const bool go=K+1!=J; - return 1.0-x*x/(2*K+2)/(2*K+3)*SineSeries<N*go,I*go,J*go,(K+1)*go>(); -} - -template<> -inline double SineSeries<0,0,0,0>() -{ - return 1.0; -} - -template<int N,int I> -inline double Sine() -{ - const double x=(I*2*M_PI/N); - return x * SineSeries<N,I,10,0>(); -} - -int main() -{ - double f=Sine<32,5>(); - return 0; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/recursion2.C b/gcc/testsuite/g++.old-deja/g++.pt/recursion2.C deleted file mode 100755 index 8cb3a2b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/recursion2.C +++ /dev/null @@ -1,25 +0,0 @@ -template< int i > struct T : -public T< i-1 > -{ -}; - -template<> struct T< 0 > -{ -}; - -template< class F > struct T1 : -public T< F::dim > -{ -}; - -template< int i > struct S -{ - enum { dim = i } ; -}; - -int main() -{ - T1< S< 4 > > t ; - return( 0 ) ; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/redecl1.C b/gcc/testsuite/g++.old-deja/g++.pt/redecl1.C deleted file mode 100755 index 283d83f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/redecl1.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: - -template <class T> -struct S1; // ERROR - previous declaration - -template <class T, class U> -struct S1 {}; // ERROR - used 1 template parameter - -template <class T = int> // ERROR - original def of default -struct S2; - -template <class T = int> -struct S2; // ERROR - redefinition of default - -template <class T> // ERROR - template parameter -struct S3; - -template <int I> -struct S3; // ERROR - redeclared here - -template <template <class T> class C> -struct S3; // ERROR - redeclared here diff --git a/gcc/testsuite/g++.old-deja/g++.pt/redecl2.C b/gcc/testsuite/g++.old-deja/g++.pt/redecl2.C deleted file mode 100755 index 0b65e1e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/redecl2.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: - -struct A -{ - template <class A> - void f(A) {} -}; - -void g() -{ - A a; - a.f(3); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ref1.C b/gcc/testsuite/g++.old-deja/g++.pt/ref1.C deleted file mode 100755 index 8b117a5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ref1.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: - -int i; - -template <void (&FN)()> -void g () -{ - FN (); -} - -void h () -{ - i = 7; -} - -template void g<h>(); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/scope1.C b/gcc/testsuite/g++.old-deja/g++.pt/scope1.C deleted file mode 100755 index cfd9cdf..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/scope1.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: - -template<class X, class Z> -class foo -{ -public: - typedef X y; - - class bar { - public: - void blah () { y Y; } - }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/shadow1.C b/gcc/testsuite/g++.old-deja/g++.pt/shadow1.C deleted file mode 100755 index dfe99c7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/shadow1.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: - -template <class T> -struct S { - typedef T X; - - class C { - typedef T X; - }; -}; - -template <int I> -struct S2 { - enum { A = I }; - - void f() { - int A; - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/sizeof.C b/gcc/testsuite/g++.old-deja/g++.pt/sizeof.C deleted file mode 100755 index 41915b3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/sizeof.C +++ /dev/null @@ -1,17 +0,0 @@ -extern "C" void abort(); - -template <int I> -int bar() { return I; } - -template <class T> -int foo(T) -{ - return bar<sizeof(T) + 4>() + bar<sizeof(long) + 7>(); -} - - -int main() -{ - if (foo(2) != sizeof(int) + 4 + sizeof(long) + 7) - abort(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/sizeof2.C b/gcc/testsuite/g++.old-deja/g++.pt/sizeof2.C deleted file mode 100755 index 566665a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/sizeof2.C +++ /dev/null @@ -1,20 +0,0 @@ -// Although template class B is not used at all, it causes the -// incorrect specialization of A to be selected - -// Adapted from testcase by Oskar Enoksson <osken393@student.liu.se> - -extern "C" void abort(); - -template<int N, class T> // Base class -class A { public: static int n() { return sizeof(T); } }; - -template<int N> // Derived #1 -class B: public A<N,char[N]> {}; - -template<int N, int M> // Derived #2 (wrong!) -class C: public A<N,char[M]> {}; - -int main() { - if (C<1,2>::n() != 2) - abort(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/sizeof3.C b/gcc/testsuite/g++.old-deja/g++.pt/sizeof3.C deleted file mode 100755 index cd5f701..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/sizeof3.C +++ /dev/null @@ -1,25 +0,0 @@ -// Adapted from testcase by Oskar Enoksson <osken393@student.liu.se> - -extern "C" void abort(); - -template<class T0> -class A { -public: - typedef T0 T; -}; - -template<int K> -class B { - typedef A<char[K]> BC; -}; - -template<int N, int M> -class C { -public: - typedef A<char[M]> AC; -}; - -int main() { - if (sizeof(C<3,7>::AC::T) != 7) - abort(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec1.C b/gcc/testsuite/g++.old-deja/g++.pt/spec1.C deleted file mode 100755 index 7467293..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec1.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: - -template <class S, class T> -class mem_fun1_t { -public: - mem_fun1_t(S (T::*pf)(double)) {} -}; - -template <class T> -class mem_fun1_t<void, T> { -public: - mem_fun1_t(void (T::*pf)(double)) {} -}; - -struct Operation { - double eval(double) {} -}; - -int main() { - mem_fun1_t<double, Operation> m(&Operation::eval); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec10.C b/gcc/testsuite/g++.old-deja/g++.pt/spec10.C deleted file mode 100755 index 5d53e2d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec10.C +++ /dev/null @@ -1,27 +0,0 @@ -extern "C" void abort(); - -template <class T> -struct S -{ - template <int i> - int f(int j) { abort(); return 0; } -}; - -template <> -template <> -int S<double>::f<7>(int j) { return j + 7; } - -template <> -template <> -int S<double>::f<8>(int j) { return j + 8; } - -int main() -{ - S<double> s; - - if (s.template f<7>(3) != 10) - abort(); - - if (s.template f<8>(3) != 11) - abort(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec11.C b/gcc/testsuite/g++.old-deja/g++.pt/spec11.C deleted file mode 100755 index 340b58e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec11.C +++ /dev/null @@ -1,20 +0,0 @@ -extern "C" void abort(); - -template <class T> -struct S -{ - template <class U> - int f(U u); -}; - -template <> -template <> -int S<char>::f(int i) { return 1; } - -int main() -{ - S<char> sc; - - if (sc.f(3) != 1) - abort(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec12.C b/gcc/testsuite/g++.old-deja/g++.pt/spec12.C deleted file mode 100755 index d9c3965..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec12.C +++ /dev/null @@ -1,21 +0,0 @@ -extern "C" void abort(); - -template <class T> -struct S -{ - template <class U> - int f(U u); -}; - - -template <> -template <> -int S<char>::f<int>(int i) { return 1; } - -int main() -{ - S<char> sc; - - if (sc.f(3) != 1) - abort(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec13.C b/gcc/testsuite/g++.old-deja/g++.pt/spec13.C deleted file mode 100755 index e5748f5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec13.C +++ /dev/null @@ -1,43 +0,0 @@ -template <class T> -void f(T t); - -template <class T> -void f(T* t); - -template <> -void f(int* ip) {} - -struct S1 -{ - template <class T> - void f(T t); - - template <class T> - void f(T* t); -}; - -template <> -void S1::f(int* ip) {} - -template <class U> -struct S2 -{ - template <class T> - void f(T t); - - template <class T> - void f(T* t); -}; - -template <> -template <> -void S2<double>::f(int* ip) {} - -int main() -{ - int* ip; - S1 s1; - s1.f(ip); - S2<double> s2; - s2.f(ip); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec14.C b/gcc/testsuite/g++.old-deja/g++.pt/spec14.C deleted file mode 100755 index 0380c61..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec14.C +++ /dev/null @@ -1,9 +0,0 @@ -class X -{ -public: - template <typename A, typename B, typename C> - X() {} - - template <typename A, typename B> - X::X<A, void, B>() {} // ERROR - non-template type used as a template -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec15.C b/gcc/testsuite/g++.old-deja/g++.pt/spec15.C deleted file mode 100755 index 2e97b04..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec15.C +++ /dev/null @@ -1,49 +0,0 @@ -extern "C" void abort(); - -template <class T> -struct S1 -{ - static void f(); -}; - -template <> -void S1<int>::f() {} - -struct S2 -{ - template <class T> - static void g(T); -}; - -template <> -void S2::g(double) {} - -template <> -void S2::g<int>(int) {} - -template <class T> -struct S3 -{ - template <class U> - static int h(U); -}; - -template <> -template <> -int S3<double>::h(int) { return 0; } - -template <> -template <> -int S3<char>::h(int) { return 1; } - -int main() -{ - S1<int>::f(); - S2::g(3.0); - S2::g(7); - - if (S3<double>::h(7) != 0) - abort(); - if (S3<char>::h(7) != 1) - abort(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec16.C b/gcc/testsuite/g++.old-deja/g++.pt/spec16.C deleted file mode 100755 index 9f6da97..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec16.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: - -template<class K> -struct A { - int foo(const K&); - int bar(const K&); -}; - -template<class K> -int -A<K>::bar(const K& k) -{ - return(foo(k)); -} - -template<> -int -A<const char*>::foo(const char*const& k) -{ - return((int)k); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec17.C b/gcc/testsuite/g++.old-deja/g++.pt/spec17.C deleted file mode 100755 index 3e3dd63..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec17.C +++ /dev/null @@ -1,44 +0,0 @@ -// Build don't link: - -template<class T> -struct Foo { }; - -template<class T1, class T2> -struct BT { }; - -template<class T1, class T2> -struct BT< Foo<T1>, Foo<T2> > { static const int i = 1; }; - -template<class T1, class T2> -struct BT< T1, Foo<T2> > { static const int i = 2; }; - -template<class T1, class T2> -struct BT< Foo<T1>, T2 > { static const int i = 3; }; - -template<class T1, class T2> -int foo(Foo<T1>, Foo<T2>) -{ - return 1; -} - -template<class T1, class T2> -int foo(T1, Foo<T2>) -{ - return 2; -} - -template<class T1, class T2> -int foo(Foo<T1>, T2) -{ - return 3; -} - -void f() -{ - BT< double, Foo<int> >::i; - BT< Foo<int>, Foo<int> >::i; - BT< Foo<int>, float >::i; - foo(1.0, Foo<int>()); - foo(Foo<int>(), Foo<int>()); - foo(Foo<int>(), 1.0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec18.C b/gcc/testsuite/g++.old-deja/g++.pt/spec18.C deleted file mode 100755 index d7d034d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec18.C +++ /dev/null @@ -1,30 +0,0 @@ -// Build don't link: - -template<class A, class B> -void foo(const A& a, const B& b) -{ -} - -template<class A, class B> -void foo(const A& a, const int& b) -{ -} - -template<class A*, class B> -void foo(const A*& a, const B& b) -{ -} - -template<> -void foo(const int&, const double&) -{ -} - - -int -main() -{ - foo("98239", 23); - foo(232, 1.022); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec19.C b/gcc/testsuite/g++.old-deja/g++.pt/spec19.C deleted file mode 100755 index f9b6011..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec19.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: - -template<class T> T f(T o) { return o; } -template<> int f(int o) { return o; } // ERROR - after specialization -template int f(int); // ERROR - explicit instantiation diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec2.C b/gcc/testsuite/g++.old-deja/g++.pt/spec2.C deleted file mode 100755 index 338c69e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec2.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't link: - -class X -{ - public: - virtual void f() const = 0; -}; - -template <class T> -class Y: public X -{ - public: - virtual void f() const; -}; - -template <class T> -void Y<T>::f() const -{ -} - -template <> -void Y<bool>::f() const; - -template <> -void Y<bool>::f() const -{ -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec20.C b/gcc/testsuite/g++.old-deja/g++.pt/spec20.C deleted file mode 100755 index c6b699d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec20.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: - -// According to the non-normative example in -// [temp.class.spec.mfunc]/2, these should be valid, but the grammar -// in the Standard does not allow partial nor full specializations as -// member-declarations, so we'd better not support them. - -template <class T> -struct S { - template <class U> void f(U); - template <> void f<int>(int); // ERROR - invalid specialization - - template <class V> struct I {}; - template <class V> struct I<V*> {}; - template <> struct I<int>; // ERROR - invalid specialization -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec21.C b/gcc/testsuite/g++.old-deja/g++.pt/spec21.C deleted file mode 100755 index 95e12d2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec21.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: - -template <class T> struct S {}; -template <class T = int> struct S<T*> {}; // ERROR - default argument - -template <int I, int J> struct A {}; -template <int I> struct A<I+5, I*2> {}; // ERROR - argument involves parameter - -template <class T, T t> struct C {}; -template <class T> struct C<T, 1>; // ERROR - type depends on parameter -int i; -template <class T> struct C<T*, &i>; // ERROR - type depends on parameter - -template< int X, int (*array_ptr)[X] > class B {}; -int array[5]; -template< int X > class B<X,&array> { }; // ERROR - type depends on parameter diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec22.C b/gcc/testsuite/g++.old-deja/g++.pt/spec22.C deleted file mode 100755 index 88d55d3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec22.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: - -template <class T> -struct S -{ - template <class U> - void f(); -}; - - -template <class T> -template <> // ERROR - enclosing classes not specialized -void S<T>::f<int> () -{ -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec23.C b/gcc/testsuite/g++.old-deja/g++.pt/spec23.C deleted file mode 100755 index 0e9ee61..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec23.C +++ /dev/null @@ -1,10 +0,0 @@ -/* [temp.expl.spec] p18. */ - -template<class T> -struct A { - template <class U> class B { }; -}; - -template<class T> -class A<T>::B<void> { // ERROR - only one template header -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec24.C b/gcc/testsuite/g++.old-deja/g++.pt/spec24.C deleted file mode 100755 index 2b7d336..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec24.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: - -template <class T> class A; -// template <> -class A<int>; // ERROR - missing template header - XFAIL *-*-* diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec25.C b/gcc/testsuite/g++.old-deja/g++.pt/spec25.C deleted file mode 100755 index 884abf0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec25.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: - -template <class T, int I> -struct S { -}; - -template <int I> -struct S <double, I> { -}; - -template <class T> -void f () -{ - S<double, T::x> s; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec26.C b/gcc/testsuite/g++.old-deja/g++.pt/spec26.C deleted file mode 100755 index 1bd40b6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec26.C +++ /dev/null @@ -1,11 +0,0 @@ -// From: lat@iki.fi (Lassi A. Tuura) -// Test that a specialization without an initializer is not a definition, -// as specified in [temp.expl.spec]. - -// Build don't link: - -struct X; -template <class T> struct Y { static const X array[]; }; -template <> const X Y<int>::array []; -struct X { int i; }; -template <> const X Y<int>::array [] = { 0, 1, 2, 3 }; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec27.C b/gcc/testsuite/g++.old-deja/g++.pt/spec27.C deleted file mode 100755 index 63aae4c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec27.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: - -template <class T, class U> -struct Y {}; - -template <class T> -struct X {}; - -template <class T, class U> -void f() -{ - typename X<Y<T, U> >::A a; -} - -template <class T, class U> -struct X<Y<T, U> > -{ -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec3.C b/gcc/testsuite/g++.old-deja/g++.pt/spec3.C deleted file mode 100755 index b0e710f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec3.C +++ /dev/null @@ -1,37 +0,0 @@ -extern "C" void abort(); - -class X -{ - public: - virtual int f() const = 0; -}; - -template <class T> -class Y: public X -{ - public: - virtual int f() const; -}; - -template <class T> -int Y<T>::f() const -{ - abort(); - return 0; -} - -template <> -int Y<bool>::f() const; - -template <> -int Y<bool>::f() const -{ - return 0; -} - -int main() -{ - Y<bool> yb; - - yb.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec4.C b/gcc/testsuite/g++.old-deja/g++.pt/spec4.C deleted file mode 100755 index b6e6858..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec4.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: - -template <class T> -struct S {}; - -template <> -struct S<int> -{ - void f(); - void g(); -}; - -void S<int>::f() {} - -template <> -void S<int>::g() {} // ERROR - does not match any template declaration diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec5.C b/gcc/testsuite/g++.old-deja/g++.pt/spec5.C deleted file mode 100755 index 553d956..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec5.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: - -template <class T> -void f(T t1, T t2); - -template <> -void f(int i, int j); - -template <class T> -void g(T t1, T t2) {} - -template void g(int i, int j); - -void h() -{ - f(3, 'c'); // ERROR - no matching function - g(3, 'c'); // ERROR - no matching function -} - - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec6.C b/gcc/testsuite/g++.old-deja/g++.pt/spec6.C deleted file mode 100755 index 4ef8e65..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec6.C +++ /dev/null @@ -1,31 +0,0 @@ -// Build don't link: - -struct S1 -{ - template <class T> - void f(T t1, T t2); -}; - - -template <> -void S1::f(int i1, int i2); - -template <class U> -struct S2 -{ - template <class T> - void f(T t1, T t2); -}; - -template <> -template <> -void S2<char>::f(int i1, int i2); - -void h() -{ - S1 s1; - s1.f(3, 'c'); // ERROR - no matching function - - S2<char> s2; - s2.f(3, 'c'); // ERROR - no matching function -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec7.C b/gcc/testsuite/g++.old-deja/g++.pt/spec7.C deleted file mode 100755 index 81358d9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec7.C +++ /dev/null @@ -1,19 +0,0 @@ -extern "C" void abort(); - -template <class T> -void f(T t1, T t2); - -template <> -void f(int i, int j) -{ - abort(); -} - -void f(short s, char c) -{ -} - -int main() -{ - f(3, 'c'); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec8.C b/gcc/testsuite/g++.old-deja/g++.pt/spec8.C deleted file mode 100755 index 966f69f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec8.C +++ /dev/null @@ -1,27 +0,0 @@ -extern "C" void abort(); - -template <void* P> -void f(int j); - -template <int I> -void f(int j); - - -template <void* P> -void f(int j) -{ - abort(); -} - - -template <int I> -void f(int j) -{ -} - - -int main() -{ - f<3>(7); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/spec9.C b/gcc/testsuite/g++.old-deja/g++.pt/spec9.C deleted file mode 100755 index e2a2208..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/spec9.C +++ /dev/null @@ -1,21 +0,0 @@ -extern "C" void abort(); - -template <class T> -inline int f(T t) -{ - return 0; -} - -int main() -{ - if (!f(3)) - abort(); -} - -template <> -int f(int i) -{ // ERROR - specialization of f<int>(int) after instantiation - return 1; -} - - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/static1.C b/gcc/testsuite/g++.old-deja/g++.pt/static1.C deleted file mode 100755 index 67e2363..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/static1.C +++ /dev/null @@ -1,21 +0,0 @@ -extern "C" void abort(); - -template <class T> -class A -{ - public: - static int foo(int); -}; - -template <> -int A<int>::foo(int i) -{ - return i; -} - - -int main() -{ - if (A<int>::foo(22) != 22) - abort(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/static2.C b/gcc/testsuite/g++.old-deja/g++.pt/static2.C deleted file mode 100755 index 5060cfd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/static2.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: - -template <class A> -class TEST -{ -public: - TEST (A) {} -}; - -template <class A> -class TEST2 -{ - static A i; -}; - -template <class A> -A TEST2 <A>::i (0); - -TEST2 <TEST <int> > a; - -template class TEST2 <TEST <int> >; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/static3.C b/gcc/testsuite/g++.old-deja/g++.pt/static3.C deleted file mode 100755 index 6fe33f9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/static3.C +++ /dev/null @@ -1,16 +0,0 @@ -// On targets that don't support weak symbols, we require an explicit -// instantiation of arr. -// excess errors test - XFAIL *-*-aout *-*-coff *-*-hpux* - -template<class T> -struct A { - static T arr[5]; -}; - -template <class T> -T A<T>::arr[5] = { 0, 1, 2, 3, 4 }; - -int main () -{ - return A<int>::arr[0]; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/static4.C b/gcc/testsuite/g++.old-deja/g++.pt/static4.C deleted file mode 100755 index 2ff3221..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/static4.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: - -template <class T> -struct S -{ - static const T t = 3; -}; - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/static5.C b/gcc/testsuite/g++.old-deja/g++.pt/static5.C deleted file mode 100755 index f6e125d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/static5.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - -template <class T> -struct S -{ - static const T t = 3; // ERROR - initializing non-integral type -}; - -double d = S<double>::t; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/static6.C b/gcc/testsuite/g++.old-deja/g++.pt/static6.C deleted file mode 100755 index 785bc4e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/static6.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't run: - -// Simplified from testcase by Erez Louidor Lior <s3824888@techst02.technion.ac.il> - -// excess errors test - XFAIL *-*-* - -template <class T> struct A { - static const int l[1]; -}; - -template<class T> -const int A<T>::l[1] = {1}; - -int i = A<int>::l[0]; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/static_cast.C b/gcc/testsuite/g++.old-deja/g++.pt/static_cast.C deleted file mode 100755 index 26f26c5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/static_cast.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: - -template <class InputIterator, class BinaryOperation> -void accumulate(InputIterator first, - BinaryOperation binary_op) { -} - - -template<class R> int p( int val, R& r ) -{ - return val + r; -} - -template<class R> void f(R) -{ - accumulate(0, static_cast<int (*)(int, R&)>(p) ); -} - -int main() -{ - f(0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/stmtexpr.C b/gcc/testsuite/g++.old-deja/g++.pt/stmtexpr.C deleted file mode 100755 index 57ef7e3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/stmtexpr.C +++ /dev/null @@ -1,16 +0,0 @@ -extern "C" void abort(); - -template <class T> -T f(T) -{ - T t = __extension__ ({ T j = 4; j + 3; }); - return t; -} - - -int main() -{ - if (f(3) != 7) - abort(); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/stmtexpr2.C b/gcc/testsuite/g++.old-deja/g++.pt/stmtexpr2.C deleted file mode 100755 index 475ad72..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/stmtexpr2.C +++ /dev/null @@ -1,24 +0,0 @@ -extern "C" void abort(); - -int i; - -void g() -{ - i++; -} - -template <class T> -void f(T) -{ - __extension__ ({g();}); -} - -int main() -{ - f(3.0); - if (i != 1) - abort(); - - return 0; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t00.C b/gcc/testsuite/g++.old-deja/g++.pt/t00.C deleted file mode 100755 index 14bfcf8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t00.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: - -int f1 () { - struct A { A() { a = 2; } int a; } ; - A aa; - return aa.a; -} -int f2 () { - struct A { A() { a = 2; } int a; } ; - A ab; - return ab.a; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t01.C b/gcc/testsuite/g++.old-deja/g++.pt/t01.C deleted file mode 100755 index b1d7d38..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t01.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: - -template <class A> class B { public: A a; }; -static B<int> b_int; - -int foo () { return b_int.a; } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t03.C b/gcc/testsuite/g++.old-deja/g++.pt/t03.C deleted file mode 100755 index 29f687a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t03.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: - -template <class A> class B { public: A a; }; -static B<int> b_int; -static B<char> b_char; - -int foo () { return b_int.a + b_char.a; } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t04.C b/gcc/testsuite/g++.old-deja/g++.pt/t04.C deleted file mode 100755 index faa04fc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t04.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: - -template <class A> class B { public: A a; }; -static B<int> b_int; -static B<char> b_char; -static B<unsigned char> b_uchar; - -int foo () { return b_int.a + b_char.a + b_uchar.a; } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t05.C b/gcc/testsuite/g++.old-deja/g++.pt/t05.C deleted file mode 100755 index 5c99f77..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t05.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - -template <class A> class B { - A a; - public: - B(A&aa); // ERROR - near match - ~B(); -}; // ERROR - candidates -static B<int> b_int (3); // ERROR - no matching function diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t06.C b/gcc/testsuite/g++.old-deja/g++.pt/t06.C deleted file mode 100755 index 8681f53..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t06.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: - -typedef int I; -int i; - -template <class A> class B { - A a; - public: - B(A&aa); - B(); - ~B(); -}; - -template <class B> class C { public: B b; }; - -template <class I, class i> class D : I { public: i ii; }; - -typedef B<int> b_int; -typedef C<int> c_int; -typedef C<b_int> c_b_int2; - -c_b_int2 x2; -int z; -D<c_b_int2,b_int> d; -int q; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t07.C b/gcc/testsuite/g++.old-deja/g++.pt/t07.C deleted file mode 100755 index 3cdb3da..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t07.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -template <class A> class B { - A a; - public: - const A& value () { return a; } -}; -static B<int> b_int; - -int foo () { return b_int.value(); } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t08.C b/gcc/testsuite/g++.old-deja/g++.pt/t08.C deleted file mode 100755 index ce24cca..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t08.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -template <class A> class B { - A a; - public: - B (); - ~B (); -}; -B<int> b_int; -B<int> *bp = &b_int; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t09.C b/gcc/testsuite/g++.old-deja/g++.pt/t09.C deleted file mode 100755 index dab4730..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t09.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: - -struct bs_1 { - typedef int (*pfi) (void); -}; -static bs_1::pfi fp; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t10.C b/gcc/testsuite/g++.old-deja/g++.pt/t10.C deleted file mode 100755 index 4f3fc18..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t10.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: - -template <class A> class B { public: A a; B(); }; -class B<char> { public: int y[10]; }; -static B<int> bi; -static B<char> bc; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t11.C b/gcc/testsuite/g++.old-deja/g++.pt/t11.C deleted file mode 100755 index 8137349..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t11.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - -template <class A> -class B { -public: - A a; - B() { x = 2; } // ERROR - no x -}; -static B<int> bi; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t11a.C b/gcc/testsuite/g++.old-deja/g++.pt/t11a.C deleted file mode 100755 index 0dcd297..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t11a.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - -template <class A> -class B { -public: - A a; - B() { a = 2; } -}; -static B<int> bi; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t12.C b/gcc/testsuite/g++.old-deja/g++.pt/t12.C deleted file mode 100755 index 0ebb045..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t12.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: - -class OBJECT {int a;}; -class STDFILE {int b;}; - -template <class T> class VECTOR { - T *v; - int sz; -public: - T& elem(int i) { return v[i]; } - T& operator[] (int i); -}; - -template <class T> -class PVECTOR : VECTOR<void *> { -public: - T*& elem(int i) - {return (T*&) VECTOR<void *>::elem(i); } - T*& operator[] (int i) - {return (T*&) VECTOR<void *>::operator[](i);} -}; - -PVECTOR<OBJECT *> *foo; - -PVECTOR<STDFILE *> *goo; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t12a.C b/gcc/testsuite/g++.old-deja/g++.pt/t12a.C deleted file mode 100755 index e0f1e65..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t12a.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: - -int a (void * x) { return 1; } -typedef void *T; -int b (T x) { return 2; } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t13.C b/gcc/testsuite/g++.old-deja/g++.pt/t13.C deleted file mode 100755 index 2f589a7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t13.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: - -template <class A> class B { -public: - B(); - A a; - int i; -}; - -void *f () { - return new B<char *>; -} - -struct foo { int i[10]; }; -extern B<foo> *foop; - -void f2 () { - foop = new B<foo>; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t14.C b/gcc/testsuite/g++.old-deja/g++.pt/t14.C deleted file mode 100755 index 8532f2b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t14.C +++ /dev/null @@ -1,24 +0,0 @@ -// Build don't link: - -class OBJECT -{ - int a; -}; - - - -template <class T> class TESTA -{ -public: - TESTA(); - T foo(int i) {T t = 0; return t}; // ERROR - no semi -}; - - - -void foo() -{ - TESTA<OBJECT *> *foo; - - foo = new TESTA<OBJECT *>; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t14a.C b/gcc/testsuite/g++.old-deja/g++.pt/t14a.C deleted file mode 100755 index 694f846..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t14a.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: - -class OBJECT -{ - int a; -}; - - - -template <class T> class TESTA -{ -public: - TESTA(); - T foo(int i) {T t = 0; return t;} -}; - - - -void foo() -{ - TESTA<OBJECT *> *foo; - - foo = new TESTA<OBJECT *>; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t16.C b/gcc/testsuite/g++.old-deja/g++.pt/t16.C deleted file mode 100755 index 4cdf3a2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t16.C +++ /dev/null @@ -1,30 +0,0 @@ -extern "C" void printf (char *, ...); -template <class T> T max (const T&x, const T&y) -{ - return (x>y)?x:y; -} -int min (const float&, const float&); -int min (const int& i1, const int& i2) { - return (i1 < i2) ? i1 : i2; -} - -class complex -{ - double re, im; - public: - complex (double r, double i=0) { re = r; im = i; } - friend int operator > (const complex& x, const complex &y) { return 0; } - void print () { } -}; - -int main () -{ - complex c1 (1, 0); - complex c2 (2, 0); - - int j = max (1, 37); - complex m1 = max (c1, c2); - m1.print (); - printf ("j=%d\n", j); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t18.C b/gcc/testsuite/g++.old-deja/g++.pt/t18.C deleted file mode 100755 index 760747e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t18.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: - -extern void byebye (); -template <class T1, class T2> -struct A -{ - T1 t1; - T2 t2; - A() { t1 = 0; t2 = 0; } - ~A() { byebye(); } -}; - -template <class Q> -int f (A<int, Q> a) { - return a.t1; -} - -extern A<int,double*> aa; -int foop () { return f(aa); } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t20.C b/gcc/testsuite/g++.old-deja/g++.pt/t20.C deleted file mode 100755 index 07a86fa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t20.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: - -template <class X> class A { -public: - X aaa; - int foo(); -}; - -template <class X> A<X> f(X); - -void frep() { - int x; - x = f(6.4).foo(); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t21.C b/gcc/testsuite/g++.old-deja/g++.pt/t21.C deleted file mode 100755 index f05f89f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t21.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: - -template <class X> class A { public: int a; X x; }; -template <class X> X f (A<X> a) { return a.x; } - -extern A<double> a_dbl; - -double fred () { return f (a_dbl); } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t22.C b/gcc/testsuite/g++.old-deja/g++.pt/t22.C deleted file mode 100755 index 1102baa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t22.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -class AA { public: static int xx; }; -template <class X> class A { - public: - static int x; -}; - -int AA::xx; -template <class Y> int A<Y>::x; // gets bogus error diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t23.C b/gcc/testsuite/g++.old-deja/g++.pt/t23.C deleted file mode 100755 index 82221b3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t23.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: - -template <class T> class temp1 -{ -public: - T tvar; -}; - - -template <class T2> class temp2 -{ -public : - temp1<T2> t1var; -}; - - -temp1<int> temp1var; -temp2<int> temp2var; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t24.C b/gcc/testsuite/g++.old-deja/g++.pt/t24.C deleted file mode 100755 index 6032270..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t24.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: -// Special g++ Options: - -template <class X> int f (X x, X y) { return 23; } - -int foo () { - return f (7); // ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t25.C b/gcc/testsuite/g++.old-deja/g++.pt/t25.C deleted file mode 100755 index 2319774..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t25.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: - -template <class X> int f (X x, X y) { return 23; } -template <class X> int f (X x, int j = 3) { return 29; } - -int foo () { - return f (7); // gets bogus error - -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t26.C b/gcc/testsuite/g++.old-deja/g++.pt/t26.C deleted file mode 100755 index cfc1591..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t26.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: - -template <class X> int f (X x, unsigned int j = 3) { return 29; } -template <class X> int f (X x, X y) { return 23; } - -int foo () { - return f (7.0, 9.0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t27.C b/gcc/testsuite/g++.old-deja/g++.pt/t27.C deleted file mode 100755 index f3246e8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t27.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: - -template <class X> int f (X x, int * j) { return 29; } -template <class X> int f (X x, ...) { return 23; } - -int foo () { - return f (7.0, 9.0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t28.C b/gcc/testsuite/g++.old-deja/g++.pt/t28.C deleted file mode 100755 index dd524cb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t28.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -template <class X> class B; -template <class X> int f (B<X> b) { return 37; } -template <class Y> class B { public: Y y; B() { y = 1; } }; - -int foo () { - B<double> bd; - return f(bd); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t29.C b/gcc/testsuite/g++.old-deja/g++.pt/t29.C deleted file mode 100755 index 54a5052..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t29.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: - -template <class X, int n> X f (auto X (*x)[n]) { return (*x)[n/2]; } -extern int i[30]; -extern double d[99]; - -int foo (int ii) { return f (&i); } // causes abort -double foo (double dd) { return f (&d); } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t30.C b/gcc/testsuite/g++.old-deja/g++.pt/t30.C deleted file mode 100755 index 42d88ea..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t30.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: - -template <class X, int n> X f (auto X (*x)[n]) { return (*x)[n/2]; } -extern int i[30], i2[33]; -extern double d[99]; - -int foo (int ii) { return f (&i) + f(&i2); } // causes abort -double foo (double dd) { return f (&d); } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t31.C b/gcc/testsuite/g++.old-deja/g++.pt/t31.C deleted file mode 100755 index 8800ebe..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t31.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: - -struct B { int foo (); }; -int B::foo() { return 37; } - -template <class A> struct X { - void f(); -}; - -template <class A> void X<A>::f () -{} - -X<int> x; - -void xyzzy () { - x.f (); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t32.C b/gcc/testsuite/g++.old-deja/g++.pt/t32.C deleted file mode 100755 index 89f8db1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t32.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: - -template <class X> struct A { - int fooo (int x); - int x; - inline int y () { return 3; } - inline int z () { return 5; } -}; - -template <class Y> int A<Y>::fooo (int t) { return (this->*(x?&A<Y>::y : &A<Y>::z))() + t; }; // gets bogus error - -A<int> ai; - -int frop () { return ai.fooo (100); } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t32a.C b/gcc/testsuite/g++.old-deja/g++.pt/t32a.C deleted file mode 100755 index 13dfda1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t32a.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: - -struct A { - int x; - int y (); - int z (); - int foo (int j); -}; - -int A::foo (int q) { return q + (this->*(x ? &A::y : &A::z)) (); } // gets bogus error diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t34.C b/gcc/testsuite/g++.old-deja/g++.pt/t34.C deleted file mode 100755 index acf858a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t34.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: - -template <class X> struct A { int operator [] (int); }; -template <class Y> int A<Y>::operator[] (int j) { return j * j; } - -extern A<void **> avpp; - -int q () { return avpp[99]; } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t34a.C b/gcc/testsuite/g++.old-deja/g++.pt/t34a.C deleted file mode 100755 index 7d5aebf..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t34a.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: - -struct A { - int operator[] (int); -}; - -//int A::operator[] (int); - -int A::operator[] (int j) -{ - return j * j; -} - -extern A a; - -int q () { return a[99]; } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t35.C b/gcc/testsuite/g++.old-deja/g++.pt/t35.C deleted file mode 100755 index f0ed971..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t35.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// Special g++ Options: -template<class X> struct A { - A (); - ~A(); - int x, y, z; -}; - -template <class Y> inline A<Y>::A () { x = y = 3; z = 99; } -template <class Z> inline A<Z>::~A() { y = 9999; } - -A<int> ai; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t36.C b/gcc/testsuite/g++.old-deja/g++.pt/t36.C deleted file mode 100755 index bb791b9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t36.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: - -void * foo () { - typedef int * ip; - return new ip; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t37.C b/gcc/testsuite/g++.old-deja/g++.pt/t37.C deleted file mode 100755 index 434dadd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t37.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: - -class A { -public: - A(int); // ERROR - referenced below - A(float); // ERROR - referenced below - ~A(); -}; // ERROR - synthesized copy ctor - -A::A() { // ERROR - -} - -A::A(int) { -} - -A::~A() { -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t37a.C b/gcc/testsuite/g++.old-deja/g++.pt/t37a.C deleted file mode 100755 index 797b78d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t37a.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: - -class A { -public: - A(int); - A(float); - ~A(); -}; - -A::A(float f) { -} - -A::A(int i) { -} - -A::~A() { -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t38.C b/gcc/testsuite/g++.old-deja/g++.pt/t38.C deleted file mode 100755 index cd89282..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t38.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -// Special g++ Options: -extern "C" int printf (const char *, ...); - -template<class X> struct A { - A (int, char); - ~A (); - A (X *, float); -}; - -template<class Y> inline A<Y>::A (int i, char c) { - printf ("%d, %d\n", i, c); -} -template<class Z> A<Z>::~A() {} -template<class W> A<W>::A (W * d, float f) { - printf ("%x, %e\n", d, f); -} - -A<void> avoid (9, 0); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t39.C b/gcc/testsuite/g++.old-deja/g++.pt/t39.C deleted file mode 100755 index d12ef81..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t39.C +++ /dev/null @@ -1,25 +0,0 @@ -extern "C" int printf (const char *, ...); - -template <class T> -struct frob { - T *ptr; - void print (); - frob (T* init) { ptr = init; } -}; - -template <class T> -void frob<T>::print () { - printf ("this = %08x\n", this); - printf (" ptr = %08x\n", ptr); - printf (" values = %x %x %x ...\n", ptr[0], ptr[1], ptr[2]); -} - - static int x[10]; - frob<char> fc ("hello"); - frob<int> fi (x); - -int main () { - fc.print (); - fi.print (); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t40.C b/gcc/testsuite/g++.old-deja/g++.pt/t40.C deleted file mode 100755 index 34768a9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t40.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: - -struct A { - struct B { - B (int); - }; - static int foop (B); - static int splat () { - return foop (B (1)); - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t41.C b/gcc/testsuite/g++.old-deja/g++.pt/t41.C deleted file mode 100755 index c02f677..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t41.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: - -struct A { - struct B { - B (int); - }; - static int foop (B); - int splat () { - return foop (B (1)); - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/t42.C b/gcc/testsuite/g++.old-deja/g++.pt/t42.C deleted file mode 100755 index 5545994..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/t42.C +++ /dev/null @@ -1,17 +0,0 @@ -extern "C" void abort (); - -struct A { - struct stat { - int x; - stat (int j) { abort (); } - }; - static int stat (double d) { return 0; } // gets bogus error - cfront takes it - static int zap () { - stat (0); - return stat (1); // gets bogus error - this should work - } -}; - -int main () { - return A::zap (); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/test5.C b/gcc/testsuite/g++.old-deja/g++.pt/test5.C deleted file mode 100755 index dc74c2d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/test5.C +++ /dev/null @@ -1,3 +0,0 @@ -// Build don't link: - -template <char *a, const char *b, char *const c> class A{int x;}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/tiemann1r.C b/gcc/testsuite/g++.old-deja/g++.pt/tiemann1r.C deleted file mode 100755 index 65e6807..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/tiemann1r.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: - -struct bs_1 -{ - typedef int (*p_user_hashf)(int); -}; - -bs_1::p_user_hashf i_user_hashf; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/tiemann2.C b/gcc/testsuite/g++.old-deja/g++.pt/tiemann2.C deleted file mode 100755 index 4c71541..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/tiemann2.C +++ /dev/null @@ -1,34 +0,0 @@ -extern "C" void printf (char *, ...); -template <class T> T max (const T&x, const T&y) -{ - return (x>y)?x:y; -} - -class complex -{ - double re, im; - public: - complex (double r, double i=0) { re = r; im = i; } - friend int operator > (const complex& x, const complex &y); - void print () { printf ("re = %g; im = %g;\n", re, im); } -}; -int operator >(const complex& x, const complex &y) -{ - double c1 = x.re * x.re + x.im * x.im; - double c2 = y.re * y.re + y.im * y.im; - return c1 > c2; -} - -int main () -{ - complex c1 (1, 0); - complex c2 (2, 0); - complex c3 (2, 3); - complex c4 (2, 1); - - complex m1 = max (c1, c2); - complex m2 = max (c3, c4); - m1.print (); - m2.print (); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/to2.C b/gcc/testsuite/g++.old-deja/g++.pt/to2.C deleted file mode 100755 index 936729c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/to2.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: - -template <class A> class B { public: A a; }; -static B<int> b_int; -static B<int> b_int2; - -int foo () { return b_int.a + b_int2.a; } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/tt.C b/gcc/testsuite/g++.old-deja/g++.pt/tt.C deleted file mode 100755 index e597875..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/tt.C +++ /dev/null @@ -1,33 +0,0 @@ -// Build don't link: - -#define DEF_A struct A { A() { a = 2; } int a; } - -#if 1 -int f1 () { - DEF_A; - A aa; - return aa.a; -} - -int f2 () { - DEF_A; - A ab; - return ab.a; -} -/* results: -tt.cc: In function int f2 (): -tt.cc:9: conflicting types for `A::A ()' -tt.cc:3: previous declaration of `A::A ()' -/u2/projects/gcc2/src/cplus-cvt.c:1149: failed assertion `distance >= 0' -gcc2: Program cc1plus got fatal signal 6. -*/ -#else - -struct B1 { DEF_A; A aa; }; - -struct B2 { DEF_A; A aa; }; -/* results: -/u2/projects/gcc2/src/cplus-decl.c:5469: failed assertion `return_type == return_ctor' -gcc2: Program cc1plus got fatal signal 6. -*/ -#endif diff --git a/gcc/testsuite/g++.old-deja/g++.pt/tt2.C b/gcc/testsuite/g++.old-deja/g++.pt/tt2.C deleted file mode 100755 index f6c435b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/tt2.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't link: - -int f1 () { - struct A { - A() : b (2) { } - int fred () { return b.hi_mom; } - struct B { - int hi_mom; - B (int a) { hi_mom = a; } - }; - B b; - }; - A aa; - return aa.fred(); -} - -int f2 () { - struct A { - ~A() { a = 3; } - int a; - int fred () { return a + 1; } - }; - - A ab; - ab.a = 12; - return ab.fred(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp1.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp1.C deleted file mode 100755 index 4c6bac0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp1.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: - -template<class E> class D -{ -}; - -template<template<class> class D,class E> class C -{ -}; - -int main() -{ - C<int,D> c; // ERROR - args not match -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp10.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp10.C deleted file mode 100755 index ca0c9b6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp10.C +++ /dev/null @@ -1,30 +0,0 @@ -// Build don't link: - -template<class T> class D -{ - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - return sizeof(T); -} - -template<template<class> class D,class E> class C -{ - D d; // ERROR - D is a template - public: - int f(); -}; - -template<template<class> class D,class E> int C<D,E>::f() -{ - return d.f(); // ERROR - d not properly declared -} - -int main() -{ - C<D,int> c; - c.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp11.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp11.C deleted file mode 100755 index 213eb40..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp11.C +++ /dev/null @@ -1,25 +0,0 @@ -template<class T> class D -{ - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - return sizeof(T); -} - -template<template<class> class D,class E> class C -{ - D<E> d; - public: - int f() { return d.f(); } -}; - -int main() -{ - C<D,int> c; - C<D,char> d; - c.f(); - d.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp12.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp12.C deleted file mode 100755 index c9bc9f3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp12.C +++ /dev/null @@ -1,28 +0,0 @@ -template<class T> class D -{ - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - return sizeof(T); -} - -template<template<class> class E,class D> class C -{ - E<D> d; - public: - int f(); -}; - -template<template<class> class E,class D> int C<E,D>::f() -{ - return d.f(); -} - -int main() -{ - C<D,int> c; - c.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp13.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp13.C deleted file mode 100755 index 2745c7a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp13.C +++ /dev/null @@ -1,28 +0,0 @@ -template<class T> class D -{ - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - return sizeof(T); -} - -template<template<class> class D,class E> class C -{ - D<E> d; - public: - int f(); -}; - -template<template<class> class D,class E> int C<D,E>::f() -{ - return d.f(); -} - -int main() -{ - C<D,int> c; - c.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp14.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp14.C deleted file mode 100755 index 04877d6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp14.C +++ /dev/null @@ -1,30 +0,0 @@ -template<class T> class D -{ - T a; - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - return sizeof(T); -} - -template<class E,template<class> class DD = D> class C -{ - DD<E> d; - public: - int f(); -}; - -template<class E,template<class> class DD> int C<E,DD>::f() -{ - DD<E> d2; - return d2.f(); -} - -int main() -{ - C<int> c; - c.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp15.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp15.C deleted file mode 100755 index 25f3c4d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp15.C +++ /dev/null @@ -1,29 +0,0 @@ -template<class T> class D -{ - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - return sizeof(T); -} - -template<template<class> class D,class E> class C -{ - D<E> d; - public: - int f(); -}; - -template<template<class> class D,class E> int C<D,E>::f() -{ - D<E> d2; - return d2.f(); -} - -int main() -{ - C<D,int> c; - c.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp16.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp16.C deleted file mode 100755 index ac736fa..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp16.C +++ /dev/null @@ -1,30 +0,0 @@ -template<class T> class D -{ - T a; - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - return sizeof(T); -} - -template<template<class> class D,class E> class C -{ - D<E> d; - public: - int f(); -}; - -template<template<class> class D,class E> int C<D,E>::f() -{ - D<E> d2; - return d2.f(); -} - -int main() -{ - C<D,int> c; - c.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp17.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp17.C deleted file mode 100755 index 6852404..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp17.C +++ /dev/null @@ -1,30 +0,0 @@ -template<class T> class D -{ - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - return sizeof(T); -} - -template<template<class> class D,class E> class C -{ - D<E> d; - public: - int f(); - int g() { return 0; } -}; - -template<template<class> class D,class E> int C<D,E>::f() -{ - C<D,E> d2; - return d2.g(); -} - -int main() -{ - C<D,int> c; - c.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp18.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp18.C deleted file mode 100755 index 6c9e579..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp18.C +++ /dev/null @@ -1,30 +0,0 @@ -template<class T> class D -{ - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - return sizeof(T); -} - -template<template<class> class D,class E> class C -{ - D<E> d; - public: - int f(); - int g() { return 0; } -}; - -template<template<class> class D,class E> int C<D,E>::f() -{ - C<D,char> d2; - return d2.g(); -} - -int main() -{ - C<D,int> c; - c.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp19.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp19.C deleted file mode 100755 index 8a24946..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp19.C +++ /dev/null @@ -1,24 +0,0 @@ -#include <vector> - -template<template<class> class D,class E> class C -{ - D<E> d; - public: - int size() { return d.size(); } -}; - -template<template<class> class D,class E> int size(D<E> &d1) -{ - d1.size(); - C<D,E> d2; - d2.size(); - return 0; -} - -int main() -{ - std::vector<int> c1; - std::vector<char> c2; - size(c1); - size(c2); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp2.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp2.C deleted file mode 100755 index 5badbe2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp2.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: - -template<class E> class D -{ -}; - -template<template<class> class D,int> class C -{ -}; - -int main() -{ - C<1,D> c; // ERROR - args not match -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp20.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp20.C deleted file mode 100755 index e3b26c6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp20.C +++ /dev/null @@ -1,27 +0,0 @@ -template<class T> class D -{ - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - return sizeof(T); -} - -template<template<class> class D,class E> class C : D<E> -{ - public: - int g(); -}; - -template<template<class> class D,class E> int C<D,E>::g() -{ - return f(); -} - -int main() -{ - C<D,int> c; - c.g(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp21.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp21.C deleted file mode 100755 index c6cc24b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp21.C +++ /dev/null @@ -1,33 +0,0 @@ -template<class T> class D -{ - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - return sizeof(T); -} - -template<template<class> class D,class E> class C : D<E> -{ - public: - int g(); -}; - -template<template<class> class D,class E> int C<D,E>::g() -{ - return f(); -} - -class E : C<D,int> -{ - public: - int h() { return g(); } -}; - -int main() -{ - E c; - c.h(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp22.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp22.C deleted file mode 100755 index 7eac0ed..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp22.C +++ /dev/null @@ -1,33 +0,0 @@ -template<class T> class D -{ - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - return sizeof(T); -} - -template<template<class> class DD,class EE> class C : DD<EE> -{ - public: - int f(); -}; - -template<template<class> class DD,class EE> int C<DD,EE>::f() -{ - return DD<EE>::f(); -} - -class E : C<D,int> -{ - public: - int f() { return C<D,int>::f(); } -}; - -int main() -{ - E c; - c.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp23.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp23.C deleted file mode 100755 index 636bb1c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp23.C +++ /dev/null @@ -1,33 +0,0 @@ -template<class T> class D -{ - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - return sizeof(T); -} - -template<template<class> class E,class D> class C : E<D> -{ - public: - int f(); -}; - -template<template<class> class E,class D> int C<E,D>::f() -{ - return E<D>::f(); -} - -class E : C<D,int> -{ - public: - int f() { return C<D,int>::f(); } -}; - -int main() -{ - E c; - c.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp24.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp24.C deleted file mode 100755 index 1e6278f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp24.C +++ /dev/null @@ -1,22 +0,0 @@ -template<class T> class D -{ - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - return sizeof(T); -} - -template<template<class> class D,class E> int f() -{ - D<E> d; - return d.f(); -}; - -int main() -{ - f<D,int>(); - f<D,char>(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp25.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp25.C deleted file mode 100755 index c30905e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp25.C +++ /dev/null @@ -1,33 +0,0 @@ -template<class T> class D -{ - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - return sizeof(T); -} - -template<template<class> class D,class E> class C -{ - D<E> d; - public: - int f() { return d.f(); } -}; - -template<template<class> class D,class E> int f(D<E> &d1) -{ - d1.f(); - C<D,E> d2; - d2.f(); - return 0; -} - -int main() -{ - D<int> c1; - D<char> c2; - f(c1); - f(c2); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp26.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp26.C deleted file mode 100755 index 6e6425e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp26.C +++ /dev/null @@ -1,33 +0,0 @@ -template<class T, class U = int> class D -{ - public: - int f(); -}; - -template<class T, class U> int D<T,U>::f() -{ - return sizeof(T)+sizeof(U); -} - -template<template<class> class D,class E> class C -{ - D<E> d; - public: - int f() { return d.f(); } -}; - -template<template<class> class D,class E> int f(D<E> &d1) -{ - d1.f(); - C<D,E> d2; - d2.f(); - return 0; -} - -int main() -{ - D<int> c1; - D<char> c2; - f(c1); - f(c2); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp27.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp27.C deleted file mode 100755 index 7ecf301..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp27.C +++ /dev/null @@ -1,35 +0,0 @@ -template<class T> class D -{ - public: - int f() const; -}; - -template<class T> int D<T>::f() const -{ - return sizeof(T); -} - -template<template<class> class D,class E> class C -{ - D<E> d; - public: - int f() const { return d.f(); } -}; - -template<template<class> class D,class E> int f(const D<E> &d1) -{ - d1.f(); - C<D,E> d2; - d2.f(); - return 0; -} - -int main() -{ - D<const int> c1; - D<char> c2; - const D<char> c3(c2); - f(c1); - f(c2); - f(c3); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp28.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp28.C deleted file mode 100755 index 5948dc5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp28.C +++ /dev/null @@ -1,39 +0,0 @@ -template<class T> class D -{ - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - return sizeof(T); -} - -template<template<class> class D,class E> class C -{ - D<E> d; - public: - int f() { return d.f(); } -}; - -template<template<class> class D,class E> int f(D<E> &d1) -{ - d1.f(); - C<D,E> d2; - d2.f(); - return 0; -} - -template<> int f<>(D<char> &d1) -{ - d1.f(); - return 0; -} - -int main() -{ - D<int> c1; - D<char> c2; - f(c1); - f(c2); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp29.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp29.C deleted file mode 100755 index b431ad0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp29.C +++ /dev/null @@ -1,32 +0,0 @@ -template<class T> class D -{ - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - return sizeof(T); -} - -extern "C" void abort(); - -template<template<class> class D,class E> class C -{ - D<E> d; - public: - int f() { abort(); return 0; } -}; - -template<class E> class C<D,E> -{ - D<E> d; - public: - int f() { return d.f(); } -}; - -int main() -{ - C<D,int> c; - c.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp3.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp3.C deleted file mode 100755 index 322dd19..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp3.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: - -template<class E,class F> class D -{ -}; - -template<template<class> class D,class E> class C -{ -}; - -int main() -{ - C<D,int> c; // ERROR - param list not match// WARNING - sees it as not having a type -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp30.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp30.C deleted file mode 100755 index c47b157..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp30.C +++ /dev/null @@ -1,37 +0,0 @@ -template<class T> class D -{ - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - return sizeof(T); -} - -extern "C" void abort(); - -template<template<class> class D,class E> class C -{ - D<E> d; - public: - int f() { abort(); return 0; } -}; - -template<class E> class C<D,E> -{ - D<E> d; - public: - int f(); -}; - -template<class E> int C<D,E>::f() -{ - return d.f(); -} - -int main() -{ - C<D,int> c; - c.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp31.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp31.C deleted file mode 100755 index 4e1acf2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp31.C +++ /dev/null @@ -1,32 +0,0 @@ -template<class T> class D -{ - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - return sizeof(T); -} - -extern "C" void abort(); - -template<template<class> class D,class E> class C -{ - D<E> d; - public: - int f() { abort(); return 0; } -}; - -template<template <class> class F> class C<F,int> -{ - F<int> d; - public: - int f() { return d.f(); } -}; - -int main() -{ - C<D,int> c; - c.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp32.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp32.C deleted file mode 100755 index 5c7a63a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp32.C +++ /dev/null @@ -1,37 +0,0 @@ -template<class T> class D -{ - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - return sizeof(T); -} - -extern "C" void abort(); - -template<template<class> class D,class E> class C -{ - D<E> d; - public: - int f() { abort(); return 0; } -}; - -template<template <class> class F> class C<F,int> -{ - F<int> d; - public: - int f(); -}; - -template<template<class>class F> int C<F,int>::f() -{ - return d.f(); -} - -int main() -{ - C<D,int> c; - c.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp33.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp33.C deleted file mode 100755 index 3755ff3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp33.C +++ /dev/null @@ -1,31 +0,0 @@ -template<class T> class D -{ - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - return sizeof(T); -} - -template<template<class> class D,class E> class C -{ - D<E> d; - public: - template<template<class> class F> int f(F<int>); -}; - -template<template<class> class D,class E> -template<template<class> class F> int C<D,E>::f(F<int>) -{ - F<E> d2; - return d2.f(); -} - -int main() -{ - C<D,int> c; - D<int> d; - c.f(d); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp34.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp34.C deleted file mode 100755 index d605043..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp34.C +++ /dev/null @@ -1,31 +0,0 @@ -template<class T> class D -{ - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - return sizeof(T); -} - -template<template<class> class D,class E> class C -{ - D<E> d; - public: - int f(); -}; - -template<template<class> class D,class E> int C<D,E>::f() -{ - D<E> d2; - return d2.f(); -} - -template class C<D,int>; - -int main() -{ - C<D,int> c; - c.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp35.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp35.C deleted file mode 100755 index 655f406..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp35.C +++ /dev/null @@ -1,35 +0,0 @@ -template<int T, class U = int> class D -{ - public: - int f(); -}; - -template<int T, class U> int D<T,U>::f() -{ - return T+sizeof(U); -} - -template<template<int> class D,class E> class C -{ - D<1> d; - public: - int f() { return d.f(); } -}; - -template<template<int> class D> int f(D<2> &d1) -{ - d1.f(); - return 0; -} - -template<template<int> class D> int f(D<1> &d1) -{ - d1.f(); - return 0; -} - -int main() -{ - D<1> c1; - f(c1); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp36.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp36.C deleted file mode 100755 index 976bc0e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp36.C +++ /dev/null @@ -1,29 +0,0 @@ -template<int T, class U = int> class D -{ - public: - int f(); -}; - -template<int T, class U> int D<T,U>::f() -{ - return T+sizeof(U); -} - -template<template<int> class D,class E> class C -{ - D<1> d; - public: - int f() { return d.f(); } -}; - -template<template<int> class D> int f(D<1> &d1) -{ - d1.f(); - return 0; -} - -int main() -{ - D<1> c1; - f(c1); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp37.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp37.C deleted file mode 100755 index 01b0d29..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp37.C +++ /dev/null @@ -1,29 +0,0 @@ -template<int T, class U = int> class D -{ - public: - int f(); -}; - -template<int T, class U> int D<T,U>::f() -{ - return T+sizeof(U); -} - -template<template<int> class D,class E> class C -{ - D<1> d; - public: - int f() { return d.f(); } -}; - -template<template<int> class D, int T> int f(D<T> &d1) -{ - d1.f(); - return T; -} - -int main() -{ - D<1> c1; - f(c1); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp38.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp38.C deleted file mode 100755 index 00c663c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp38.C +++ /dev/null @@ -1,29 +0,0 @@ -template<class T, class U = int> class D -{ - public: - int f(); -}; - -template<class T, class U> int D<T,U>::f() -{ - return sizeof(T)+sizeof(U); -} - -template<template<class> class D,class E> class C -{ - D<E> d; - public: - int f() { return d.f(); } -}; - -template<template<class> class D> int f(D<int> &d1) -{ - d1.f(); - return 0; -} - -int main() -{ - D<int> c1; - f(c1); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp39.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp39.C deleted file mode 100755 index 24ff6c0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp39.C +++ /dev/null @@ -1,29 +0,0 @@ -template<class T, class U = T> class D -{ - public: - int f(); -}; - -template<class T, class U> int D<T,U>::f() -{ - return sizeof(T)+sizeof(U); -} - -template<template<class> class D,class E> class C -{ - D<E> d; - public: - int f() { return d.f(); } -}; - -template<template<class> class D> int f(D<int> &d1) -{ - d1.f(); - return 0; -} - -int main() -{ - D<int> c1; - f(c1); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp4.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp4.C deleted file mode 100755 index 249ad9c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp4.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: - -template<class E> class D -{ -}; - -template<template<class> class D,class E> class C -{ - D<1> d; // ERROR - arg not match -}; - -int main() -{ - C<D,int> c; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp40.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp40.C deleted file mode 100755 index d30b4d6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp40.C +++ /dev/null @@ -1,20 +0,0 @@ -#include <vector> - -template<class E,template<class> class DD = std::vector> class C -{ - DD<E> d; - public: - int f(); -}; - -template<class E,template<class> class DD> int C<E,DD>::f() -{ - DD<E> d2; - return d2.size(); -} - -int main() -{ - C<int> c; - c.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp41.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp41.C deleted file mode 100755 index f206c03..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp41.C +++ /dev/null @@ -1,23 +0,0 @@ -template<template<class> class D,class E> class C -{ - public: - int g() { return 1; } -}; - -template<class T> class D -{ - public: - int f(); -}; - -template<class T> int D<T>::f() -{ - C<D,D> c; - return c.g(); -} - -int main() -{ - D<char> d; - d.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp42.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp42.C deleted file mode 100755 index b2610df..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp42.C +++ /dev/null @@ -1,21 +0,0 @@ -template <class T, template <class T> class C> -struct X -{}; - -template <class T> -struct Y -{}; - -template <class T> -struct Z -{}; - -template <class T> -struct X<T,Y> -{}; - -int main() -{ - X<int,Y> a; - X<int,Z> b; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp43.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp43.C deleted file mode 100755 index a020655..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp43.C +++ /dev/null @@ -1,30 +0,0 @@ -// Build don't link: - -template < class T, template <class> class E1, template <class> class E2 > -struct Add { - Add(const E1<T>& e1, const E2<T>& e2) {} -}; - - -template < class T, template <class> class E1, template <class> class E2 > -struct Mul { - Mul(const E1<T>& e1, const E2<T>& e2) {} -}; - - -template < class T > -struct Lit { - Lit(const T& t) {} -}; - - -template < class T > -struct Id { - Add < T, Id, Lit > operator+(const T& t) const { - return Add < T, Id, Lit >(*this, Lit<T>(t)); - } - - Mul < T, Id, Lit > operator*(const T& t) const { - return Mul < T, Id, Lit >(*this, Lit<T>(t)); - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp44.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp44.C deleted file mode 100755 index 7f797e6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp44.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: - -template < class T, template < class > class E1, template < class > class E2 > -class Add { -public: - Add(const E1<T>& e1, const E2<T>& e2) {} -}; - -template < class T > -struct Id { - template < template < class > class E > - Add < T, Id, E > operator+(const E<T>& e) const { - return Add < T, Id, E >(*this, e); - } -}; - -template struct Id<double>; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp45.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp45.C deleted file mode 100755 index 05fcd9d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp45.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: - -template<class M, class T> struct temp2; -template<template<class> class M, class T> struct temp2<M<T>, T> {}; - -template<class M> struct temp1; -template<template<class> class M, class T> struct temp1<M<T> > {}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp46.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp46.C deleted file mode 100755 index 23a32a8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp46.C +++ /dev/null @@ -1,4 +0,0 @@ -// Build don't link: - -template <template<class> class TT> void f() {} -template <template<class,class> class TT> void f() {} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp47.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp47.C deleted file mode 100755 index 731ce40..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp47.C +++ /dev/null @@ -1,16 +0,0 @@ -template <template<class,class> class TT, class T> void f(T) -{ -} - -template <template<class> class TT, class T> void f(T) -{ -} - -template <class T> class C {}; -template <class T,class U> class D {}; - -int main() -{ - f<C>(1); - f<D>(1); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp48.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp48.C deleted file mode 100755 index 33d0d47..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp48.C +++ /dev/null @@ -1,16 +0,0 @@ -template <template<int> class TT, class T> void f(T) -{ -} - -template <template<class> class TT, class T> void f(T) -{ -} - -template <class T> class C {}; -template <int> class D {}; - -int main() -{ - f<C>(1); - f<D>(1); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp49.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp49.C deleted file mode 100755 index b0a02d2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp49.C +++ /dev/null @@ -1,9 +0,0 @@ -// Build don't link: - -template <int i> class C {}; -template <template <long> class TT> class D {}; - -int main() -{ - D<C> d; // ERROR - args not match -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp5.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp5.C deleted file mode 100755 index 4b835e8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp5.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: - -template<int> class D -{ -}; - -template<template<int> class D,class E> class C -{ - D<int> d; // ERROR - arg not match -}; - -int main() -{ - C<D,int> c; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp50.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp50.C deleted file mode 100755 index 4892e0c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp50.C +++ /dev/null @@ -1,7 +0,0 @@ -template <class T, template <T> class TT> class C {}; -template <int> class D {}; - -int main() -{ - C<int,D> c; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp51.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp51.C deleted file mode 100755 index 9a497b7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp51.C +++ /dev/null @@ -1,13 +0,0 @@ -template<class E, int i, class F, class G=int, int j=i, class H=E> class D -{ -}; - -template<template<class,int,class,class> class D,class E> class C -{ - D<E,2,char,bool> d; -}; - -int main() -{ - C<D,int> c; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp52.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp52.C deleted file mode 100755 index fb841b9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp52.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: - -template<class A,class B> class mymap {}; - -template<class Key, - class Value, - template<class, class > class MapT> -class base -{ - -}; - -// specialization -template<class Key, class Value> -class base<Key, Value, mymap<int, int > > -{ // ERROR - type/value mismatch - -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp53.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp53.C deleted file mode 100755 index e5e87b4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp53.C +++ /dev/null @@ -1,35 +0,0 @@ -// Build don't link: - -// Submitted by Erez Louidor Lior <s3824888@techst02.technion.ac.il> - -template <typename> class H; -template <typename Target, typename Source> -H<Target> foo(const H<Source>&); - -template <typename Type> -class H{ - -#ifdef OK -public: -#endif - template<template<class, class> class Caster, typename Source> - static H<Type> cast(const H<Source>& s); - -#ifndef OK - template <typename Target, typename Source> - friend H<Target> foo(const H<Source>&); -#endif - -}; - -template <class, class> class caster; - -template <typename Target, typename Source> -H<Target> foo(const H<Source>& s){ - return H<Target>::template cast<caster, Source>(s); -} - -int main(){ - H<int> i; - foo<const int>(i); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp54.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp54.C deleted file mode 100755 index bae649a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp54.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: - -// Reported by Bruce Eckel <Bruce@EckelObjects.com> - -// [temp.deduct.type] -// Make sure we treat <T> in the construct TT<T> as any type containing T. - -template <class T> class C -{ -}; - -template <class T, template <class> class TT> void f (TT<T *> &t) -{ -} - -int main () -{ - C<char *> c; - f(c); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp6.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp6.C deleted file mode 100755 index cdea182..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp6.C +++ /dev/null @@ -1,13 +0,0 @@ -template<int> class F -{ -}; - -template<template<int> class D,class E> class C -{ - D<1> d; -}; - -int main() -{ - C<F,int> c; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp7.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp7.C deleted file mode 100755 index 0b98217..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp7.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: - -template<class E> class D -{ -}; - -template<template<class> class D,class E> class C // ERROR - ref below -{ - D<int,int> d; // ERROR - arg not match -}; - -int main() -{ - C<D,int> c; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp8.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp8.C deleted file mode 100755 index fd2a67c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp8.C +++ /dev/null @@ -1,17 +0,0 @@ -template<class E> class DD -{ -}; - -template<int> class D -{ -}; - -template<template<class> class D,class E> class C -{ - D<E> d; -}; - -int main() -{ - C<DD,int> c; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/ttp9.C b/gcc/testsuite/g++.old-deja/g++.pt/ttp9.C deleted file mode 100755 index 3892b6e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/ttp9.C +++ /dev/null @@ -1,13 +0,0 @@ -template<class E,class F=int> class D -{ -}; - -template<template<class> class D,class E> class C -{ - D<E> d; -}; - -int main() -{ - C<D,int> c; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typedef1.C b/gcc/testsuite/g++.old-deja/g++.pt/typedef1.C deleted file mode 100755 index 8d674c9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/typedef1.C +++ /dev/null @@ -1,18 +0,0 @@ -// Testcase for handling of typedef wierdness. -// Build don't link: - -template <class T> -struct A -{ - typedef enum - { - foo - } B; - - A (B b); -}; - -template <class T> -A<T>::A (B b) -{ -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typedef2.C b/gcc/testsuite/g++.old-deja/g++.pt/typedef2.C deleted file mode 100755 index 18802fc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/typedef2.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: - -typedef const int cint; - -template<class T> -class A -{ -public: - T f(cint i); -}; - -template <class T> -T A<T>::f(cint i) -{ -} - -int main() -{ - A<int> a; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typedef3.C b/gcc/testsuite/g++.old-deja/g++.pt/typedef3.C deleted file mode 100755 index 110e481..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/typedef3.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: - -template <class T> -void f(T, T) -{ -} - -struct A { - typedef enum { - VAL1 - } result_t; -}; - -struct B { - typedef enum { - VAL2 - } result_t; -}; - - -void g() -{ - f(A::VAL1, A::VAL1); - f(B::VAL2, B::VAL2); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename1.C b/gcc/testsuite/g++.old-deja/g++.pt/typename1.C deleted file mode 100755 index c34eff1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/typename1.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't link: - -template<class T> -struct A { - typedef T T1; -}; - -template<class T> -struct B { - typedef T T2; -}; - -template<class T> -struct C { -}; - -template<class E> -C<typename E::T2::T1> -foo (E) -{ - return C<typename E::T2::T1>(); -} - -void test() -{ - foo(B<A<int> >()); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename10.C b/gcc/testsuite/g++.old-deja/g++.pt/typename10.C deleted file mode 100755 index 1b122b2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/typename10.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: - -struct S { - typedef int I; -}; - -void f(typename S::I); // ERROR - using typename outside of template diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename11.C b/gcc/testsuite/g++.old-deja/g++.pt/typename11.C deleted file mode 100755 index 1b4a1d5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/typename11.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// Special g++ Options: - -template <class T, int I> -struct S { - struct X {}; -}; - -template <class T, class U, int I> -S<T,I>::X f(T, U) -{ - S<T, I>::X(); -} - -template S<int, 3>::X f<int, double, 3>(int, double); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename12.C b/gcc/testsuite/g++.old-deja/g++.pt/typename12.C deleted file mode 100755 index cef6700..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/typename12.C +++ /dev/null @@ -1,31 +0,0 @@ -// Special g++ Options: -// execution test - XFAIL *-*-* -// excess errors test - XFAIL *-*-* - -int i = 0; - -template <class T> -struct S { - struct X {}; -}; - -template <class T> -void f(T) -{ - S<T>::X(); -} - -template <> -struct S<int> { - static void X() { i = 1; } -}; - -int main() -{ - f(3); - if (i != 1) - return 1; - else - return 0; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename13.C b/gcc/testsuite/g++.old-deja/g++.pt/typename13.C deleted file mode 100755 index 48d12e6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/typename13.C +++ /dev/null @@ -1,37 +0,0 @@ -// Build don't link: -// Special g++ Options: -// excess errors test - XFAIL *-*-* - -template <class T> -struct B -{ - typedef int I; -}; - - -template <class T> -struct D : public B<T> -{ - void f(); -}; - - -template <class T> -void D<T>::f() -{ - I(); -} - - -template <> -struct B<int> -{ - void I(); -}; - - -int main() -{ - D<int> di; - di.f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename14.C b/gcc/testsuite/g++.old-deja/g++.pt/typename14.C deleted file mode 100755 index 7365b66..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/typename14.C +++ /dev/null @@ -1,15 +0,0 @@ -// Build don't link: -// Special g++ Options: - -template <class T> -struct B { - typedef T X; -}; - -template <class T> -struct S : public B<T> -{ - struct I { - void f(X x); - }; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename2.C b/gcc/testsuite/g++.old-deja/g++.pt/typename2.C deleted file mode 100755 index f2f2265..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/typename2.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: - -class Base { -public: - class Bar { public: virtual ~Bar() {}; }; -}; - -class Derived : public Base { -public: - class Bar : public Base::Bar {}; -}; - -template <class T> -struct XYZ : public T::Bar { - XYZ(): T::Bar() { } -}; - -void test() { - XYZ<Base> b; - XYZ<Derived> d; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename3.C b/gcc/testsuite/g++.old-deja/g++.pt/typename3.C deleted file mode 100755 index 0b19d54..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/typename3.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// Special g++ Options: - -template <class T> -struct A -{ - typedef T A_Type; -}; - - -template <class U> -struct B : public A<U> -{ - A_Type Func(); -}; - - -template <class U> -A<U>::A_Type B<U>::Func() -{ -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename4.C b/gcc/testsuite/g++.old-deja/g++.pt/typename4.C deleted file mode 100755 index 6f9362f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/typename4.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't link: -// Special g++ Options: - -template <class T> -struct A -{ - typedef T A_Type; -}; - - -template <class U> -struct B : public A<U> -{ -}; - - -template <class U> -struct C : public B<U> -{ - A_Type Func(); -}; - - -template <class U> -C<U>::A_Type C<U>::Func() -{ -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename5.C b/gcc/testsuite/g++.old-deja/g++.pt/typename5.C deleted file mode 100755 index e967d14..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/typename5.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't link: -// Special g++ Options: - -template <class T> -struct A -{ - typedef T A_Type; -}; - - -template <class U> -struct B : public A<U> -{ -}; - - -template <class U> -struct C : public B<U> -{ - void Func(A_Type); -}; - - -template <class U> -void C<U>::Func(A_Type) -{ -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename6.C b/gcc/testsuite/g++.old-deja/g++.pt/typename6.C deleted file mode 100755 index 0b19d54..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/typename6.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -// Special g++ Options: - -template <class T> -struct A -{ - typedef T A_Type; -}; - - -template <class U> -struct B : public A<U> -{ - A_Type Func(); -}; - - -template <class U> -A<U>::A_Type B<U>::Func() -{ -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename7.C b/gcc/testsuite/g++.old-deja/g++.pt/typename7.C deleted file mode 100755 index 5c89603..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/typename7.C +++ /dev/null @@ -1,20 +0,0 @@ -// Test for implicit typename -// Build don't link: -// Special g++ Options: - -template <class T> -struct A { -protected: - typedef struct B { } B; -}; - -template <class T> -struct C { }; - -template <class T> -struct D : public A <C <T> > { - void f () - { - B* new_entries = (B *) 0; - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename8.C b/gcc/testsuite/g++.old-deja/g++.pt/typename8.C deleted file mode 100755 index d2eb4ce..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/typename8.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't link: - -template < class T > class A -{ -public: - typedef typename T::myT anotherT; // ERROR - undefined type - - anotherT t; // ERROR - undefined type - - A(anotherT _t) { // ERROR - undefined type - t=_t; - } - - anotherT getT() { - return t; - } -}; - -class B : public A< B > -{ -public: - typedef int myT; -}; - -int main() { - B b; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/typename9.C b/gcc/testsuite/g++.old-deja/g++.pt/typename9.C deleted file mode 100755 index 027d0a0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/typename9.C +++ /dev/null @@ -1,16 +0,0 @@ -// Test to make sure that implicit typename doesn't break name binding rules. -// Special g++ Options: -w - -typedef double A; -template<class T> class B { - typedef char A; -}; -template<class T> struct X : B<T> { - A a; -}; - -int main() -{ - X<char*> x; - return sizeof (x.a) != sizeof (double); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/unify1.C b/gcc/testsuite/g++.old-deja/g++.pt/unify1.C deleted file mode 100755 index 283e2f5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/unify1.C +++ /dev/null @@ -1,14 +0,0 @@ -// Tests non-unification of parms that don't use template parms. -// Build don't link: - -enum kind {a, b}; - -class C { public: C () {} }; - -template<class P> -void f (P c, kind k) {} - -template<class P> -void f (P c, P d, kind k) {} - -template void f (C c, C c, kind k); diff --git a/gcc/testsuite/g++.old-deja/g++.pt/unify2.C b/gcc/testsuite/g++.old-deja/g++.pt/unify2.C deleted file mode 100755 index 89b043d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/unify2.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't link: - -template <class T> -struct S -{ - typedef T S_Type; -}; - - -template <class T> -void foo(typename S<T>::S_Type) -{ -} - - -template <class T> -void foo(T) -{ -} - - -struct S2 {}; - -void bar() -{ - foo(S2()); // We can't unify with the first foo, so we get the second. -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/unify3.C b/gcc/testsuite/g++.old-deja/g++.pt/unify3.C deleted file mode 100755 index 847dc0e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/unify3.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: - -template <class T1, class T2> -struct ComputeBinaryType -{ -}; - -template<class T1> -struct ComputeBinaryType<T1, double> { - void g(); -}; - -template<class T1> -struct ComputeBinaryType<T1&, double> { - void h(); -}; - -void f() -{ - ComputeBinaryType<double, double> cb; - cb.g(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/unify4.C b/gcc/testsuite/g++.old-deja/g++.pt/unify4.C deleted file mode 100755 index 259920d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/unify4.C +++ /dev/null @@ -1,11 +0,0 @@ -template <class T> void f (T); - -void g (); -void g (int); - -int -main () -{ - f (g); // ERROR - ambiguous unification - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/union1.C b/gcc/testsuite/g++.old-deja/g++.pt/union1.C deleted file mode 100755 index a1da446..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/union1.C +++ /dev/null @@ -1,18 +0,0 @@ -// Build don't link: - -union Un {int i;}; - -template<class T1, class T2> struct St1 {}; -template<class T> struct St1<Un,T> {}; - -template<class T> struct St2 {}; -template<> struct St2<Un> {}; - -template<class T1, class T2> struct St3 {}; -template<> struct St3<Un,int> {}; - -void f() { - St1<int,int> s1; - St2<int> s2; - St3<int,int> s3; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/vaarg.C b/gcc/testsuite/g++.old-deja/g++.pt/vaarg.C deleted file mode 100755 index 56ae0d4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/vaarg.C +++ /dev/null @@ -1,28 +0,0 @@ -#include <stdarg.h> - -extern "C" void abort(); - -template <class T> -T* f(T t, ...) -{ - va_list ap; - - va_start(ap, t); - T* r = va_arg(ap, T*); - va_end(ap); - - return r; -} - - -struct S -{ -}; - -int main() -{ - S s; - - if (f(s, &s) != &s) - abort(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/vbase1.C b/gcc/testsuite/g++.old-deja/g++.pt/vbase1.C deleted file mode 100755 index 58d26fc..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/vbase1.C +++ /dev/null @@ -1,31 +0,0 @@ -// Check that template classes handle inherited virtual bases -// properly, initializing them before direct non-virtual bases. - -int aflag; - -struct A -{ - A() { aflag = 1; } -}; - -struct B : virtual public A -{ - B() { } -}; - -struct C -{ - C() { if (!aflag) exit (1); } -}; - -template<class Parent> -struct D : public C, public Parent -{ - D() { } -}; - -int -main () -{ - D<B> c; -} diff --git a/gcc/testsuite/g++.old-deja/g++.pt/virtual1.C b/gcc/testsuite/g++.old-deja/g++.pt/virtual1.C deleted file mode 100755 index efa97b7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/virtual1.C +++ /dev/null @@ -1,6 +0,0 @@ - struct V { virtual ~V() {} }; - template <class T> struct A : virtual V { }; - template <class T> struct B { - virtual void f() { T foo; } - }; - int main() { B< A<int> > bar; } diff --git a/gcc/testsuite/g++.old-deja/g++.pt/warn1.C b/gcc/testsuite/g++.old-deja/g++.pt/warn1.C deleted file mode 100755 index 96ed148..0000000 --- a/gcc/testsuite/g++.old-deja/g++.pt/warn1.C +++ /dev/null @@ -1,27 +0,0 @@ -// Build don't link: -// Special g++ Options: -Wunused - -template <class T> -struct S -{ - struct R - { - R(); - ~R(); - }; - - void foo() - { - R r; // no warning - int i; // WARNING - unused - } - - S(); - ~S(); -}; - -void f() -{ - S<int> si; - si.foo(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.rfg/00321_01-.C b/gcc/testsuite/g++.old-deja/g++.rfg/00321_01-.C deleted file mode 100755 index d7e08a3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.rfg/00321_01-.C +++ /dev/null @@ -1,14 +0,0 @@ -// Here is a simple one. GCC correctly gives errors for this code when the -// - -pedantic-errors option is used, whereas g++ doesn't. - -// Build don't link: - -int (*p1)[3]; -int (*p2)[5]; - -void -test () -{ - p1 == p2; // ERROR - comparison.* - p1 > p2; // ERROR - comparison.* -} diff --git a/gcc/testsuite/g++.old-deja/g++.rfg/00324_02-.C b/gcc/testsuite/g++.old-deja/g++.rfg/00324_02-.C deleted file mode 100755 index 4055ba8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.rfg/00324_02-.C +++ /dev/null @@ -1,16 +0,0 @@ -// Another simple one. GCC corerctly gives errors for this code when the -// - -pedantic-errors options is used. g++ doesn't. - -// Build don't link: - -void f (int i) { } - -void (*fp)(void); - -int i; - -void -test () -{ - i ? f : fp; // ERROR - -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/980310-1.C b/gcc/testsuite/g++.old-deja/g++.robertl/980310-1.C deleted file mode 100755 index ee558f4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/980310-1.C +++ /dev/null @@ -1,43 +0,0 @@ -// Special g++ Options: -g -// Internal compiler error on egcs 1.0.1 i586-pc-linux-gnulibc1. -// From: Max Lawson <mlawson@drfmc.ceng.cea.fr> -// Message-Id: <9803091022.AA07520@drfmc.ceng.cea.fr> - - -typedef __SIZE_TYPE__ size_t; - -struct dummy { }; - -struct arrrrrgh { }; - -template<class Par,class Rand = arrrrrgh> -struct whyyyyyyy { }; - -template<class T, class S =dummy> -struct grrrrrrrr { }; - -template<class Par, class Par2 =Par, class Rand =arrrrrgh> -class no_future -{ -public: - - template<class S> - no_future(const grrrrrrrr<whyyyyyyy<Par,Rand>*,S>& man ) { } - - ~no_future( ) { } - -private: - - no_future(const no_future&); - no_future& operator=(const no_future&); -}; - -int main( ) -{ - grrrrrrrr<whyyyyyyy<double>*> man; - - no_future<double> here(man); - - return 0; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/README b/gcc/testsuite/g++.old-deja/g++.robertl/README deleted file mode 100755 index 36029c7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/README +++ /dev/null @@ -1,18 +0,0 @@ -This directory contains a hodgepodge of problem reports that appeared on -the egcs-bugs or egcs mailing lists. Just like the reports themselves, -they tend to be poorly understood and poorly organized. However, we -drop them into the testsuite on the premise that internal compiler errors -are always bad - no matter how bogus the source. - -If you really understand C++ (and you know who you are) if you find -entries in this area that are bogus, feel free to just fix them or nuke -them. You don't need my permission. - -Many of the first entries in this area were done in "block mode" by -whipping through many months of archives. In hindsight, some important -information was lost, but being picky on over 8,000 messages is a sure -way to never get out of the gate. - -We'll do better now. - -Robert Lipe diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb10.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb10.C deleted file mode 100755 index 7da5d75..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb10.C +++ /dev/null @@ -1,30 +0,0 @@ -// Build don't link: -template <int object_size> -class _fixed_size_allocator -{ - private: - - struct something { }; - static something * asdf; - - public: - - static void delete_object (); -}; - - -template <class T> -class object_allocator -{ - private: - - typedef _fixed_size_allocator<sizeof (T)> allocator; - - public: - - static void deallocate (T * p) - { - allocator::delete_object (reinterpret_cast<void *> (p)); - } -}; - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb101.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb101.C deleted file mode 100755 index 3004c0f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb101.C +++ /dev/null @@ -1,3886 +0,0 @@ -// Special g++ Options: -fcheck-memory-usage -// Build don't link: - - - - - - - - - - - - - - - - - - - - - - - - - - - -#pragma interface - -#define _IOSTREAM_H - - - - - - - - - - - - - - - - - - - - - - - - - - -#define _STREAMBUF_H - -#pragma interface - - - - -#define _IO_NEW_STREAMS - -extern "C" { - - - - - - - - - - - - - - - - - - - - - - - - - - - -#define _IO_STDIO_H - - - -#define _G_config_h -#define _G_LIB_VERSION "0.67" -#define _G_NAMES_HAVE_UNDERSCORE 1 -#define _G_VTABLE_LABEL_HAS_LENGTH 1 -#define _G_VTABLE_LABEL_PREFIX "__vt$" -#define _G_HAVE_ST_BLKSIZE 1 -typedef long _G_clock_t; -typedef short _G_dev_t; -typedef long _G_fpos_t; -typedef unsigned short _G_gid_t; -typedef unsigned long _G_ino_t; -typedef unsigned short _G_mode_t; -typedef short _G_nlink_t; -typedef long _G_off_t; -typedef int _G_pid_t; - - - -typedef int _G_ptrdiff_t; -typedef int _G_sigset_t; - - - -typedef unsigned int _G_size_t; -typedef long _G_time_t; -typedef unsigned short _G_uid_t; - - - -typedef __wchar_t _G_wchar_t; -typedef int _G_ssize_t; -typedef int _G_wint_t; -typedef char * _G_va_list; -#define _G_signal_return_type void -#define _G_sprintf_return_type char* - -typedef signed char _G_int8_t; - -typedef unsigned char _G_uint8_t; -typedef short _G_int16_t; -typedef unsigned short _G_uint16_t; -typedef long _G_int32_t; -typedef unsigned long _G_uint32_t; - -#define HAVE_INT64 -typedef long long _G_int64_t; -typedef unsigned long long _G_uint64_t; - -#define _G_BUFSIZ 1024 -#define _G_FOPEN_MAX 32 -#define _G_FILENAME_MAX 1024 -#define _G_NULL 0 - -#define _G_ARGS(ARGLIST) ARGLIST - - - - - - - - - -#define _G_HAVE_ATEXIT 0 -#define _G_HAVE_SYS_RESOURCE 1 -#define _G_HAVE_SYS_SOCKET 1 -#define _G_HAVE_SYS_WAIT 1 -#define _G_HAVE_UNISTD 1 -#define _G_HAVE_DIRENT 1 -#define _G_HAVE_CURSES 1 -#define _G_MATH_H_INLINES 0 -#define _G_HAVE_BOOL 1 - - -#define _IO_pos_t _G_fpos_t -#define _IO_fpos_t _G_fpos_t -#define _IO_size_t _G_size_t -#define _IO_ssize_t _G_ssize_t -#define _IO_off_t _G_off_t -#define _IO_pid_t _G_pid_t -#define _IO_uid_t _G_uid_t -#define _IO_HAVE_SYS_WAIT _G_HAVE_SYS_WAIT -#define _IO_HAVE_ST_BLKSIZE _G_HAVE_ST_BLKSIZE -#define _IO_BUFSIZ _G_BUFSIZ -#define _IO_va_list _G_va_list - - - - - - - - -#define __P(protos) protos - - - - - - - - -#define _PARAMS(protos) __P(protos) - - - - - -#define _IO_UNIFIED_JUMPTABLES 1 - -#define _IO_USE_DTOA 1 - - - -#define EOF (-1) - - - - -#define NULL (__null) - - - - - - - - - -#define _IOS_INPUT 1 -#define _IOS_OUTPUT 2 -#define _IOS_ATEND 4 -#define _IOS_APPEND 8 -#define _IOS_TRUNC 16 -#define _IOS_NOCREATE 32 -#define _IOS_NOREPLACE 64 -#define _IOS_BIN 128 - - - - - - - -#define _IO_MAGIC 0xFBAD0000 -#define _OLD_STDIO_MAGIC 0xFABC0000 -#define _IO_MAGIC_MASK 0xFFFF0000 -#define _IO_USER_BUF 1 -#define _IO_UNBUFFERED 2 -#define _IO_NO_READS 4 -#define _IO_NO_WRITES 8 -#define _IO_EOF_SEEN 0x10 -#define _IO_ERR_SEEN 0x20 -#define _IO_DELETE_DONT_CLOSE 0x40 -#define _IO_LINKED 0x80 -#define _IO_IN_BACKUP 0x100 -#define _IO_LINE_BUF 0x200 -#define _IO_TIED_PUT_GET 0x400 -#define _IO_CURRENTLY_PUTTING 0x800 -#define _IO_IS_APPENDING 0x1000 -#define _IO_IS_FILEBUF 0x2000 -#define _IO_BAD_SEEN 0x4000 - - -#define _IO_SKIPWS 01 -#define _IO_LEFT 02 -#define _IO_RIGHT 04 -#define _IO_INTERNAL 010 -#define _IO_DEC 020 -#define _IO_OCT 040 -#define _IO_HEX 0100 -#define _IO_SHOWBASE 0200 -#define _IO_SHOWPOINT 0400 -#define _IO_UPPERCASE 01000 -#define _IO_SHOWPOS 02000 -#define _IO_SCIENTIFIC 04000 -#define _IO_FIXED 010000 -#define _IO_UNITBUF 020000 -#define _IO_STDIO 040000 -#define _IO_DONT_CLOSE 0100000 -#define _IO_BOOLALPHA 0200000 - - -struct _IO_jump_t; struct _IO_FILE; - - - - - - - - - - - - typedef void _IO_lock_t; - - - - - - - -struct _IO_marker { - struct _IO_marker *_next; - struct _IO_FILE *_sbuf; - - - - int _pos; - -}; - -struct _IO_FILE { - int _flags; -#define _IO_file_flags _flags - - - - char* _IO_read_ptr; - char* _IO_read_end; - char* _IO_read_base; - char* _IO_write_base; - char* _IO_write_ptr; - char* _IO_write_end; - char* _IO_buf_base; - char* _IO_buf_end; - - char *_IO_save_base; - char *_IO_backup_base; - char *_IO_save_end; - - struct _IO_marker *_markers; - - struct _IO_FILE *_chain; - - int _fileno; - int _blksize; - _G_off_t _offset; - -#define __HAVE_COLUMN - - unsigned short _cur_column; - char _unused; - char _shortbuf[1]; - - - - - - -}; - - - - - -struct _IO_FILE_plus; -extern struct _IO_FILE_plus _IO_stdin_, _IO_stdout_, _IO_stderr_; -#define _IO_stdin ((_IO_FILE*)(&_IO_stdin_)) -#define _IO_stdout ((_IO_FILE*)(&_IO_stdout_)) -#define _IO_stderr ((_IO_FILE*)(&_IO_stderr_)) - - - -typedef struct -{ - _G_ssize_t (*read) (struct _IO_FILE *, void *, _G_ssize_t ) ; - _G_ssize_t (*write) (struct _IO_FILE *, const void *, _G_ssize_t ) ; - _G_fpos_t (*seek) (struct _IO_FILE *, _G_off_t , int) ; - int (*close) (struct _IO_FILE *) ; -} _IO_cookie_io_functions_t; - - -struct _IO_cookie_file -{ - struct _IO_FILE file; - const void *vtable; - void *cookie; - _IO_cookie_io_functions_t io_functions; -}; - - - -extern "C" { - - -extern int __underflow (_IO_FILE *) ; -extern int __uflow (_IO_FILE *) ; -extern int __overflow (_IO_FILE *, int) ; - -#define _IO_getc_unlocked(_fp) ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end ? __uflow (_fp) : *(unsigned char *) (_fp)->_IO_read_ptr++) - - -#define _IO_peekc_unlocked(_fp) ((_fp)->_IO_read_ptr >= (_fp)->_IO_read_end && __underflow (_fp) == EOF ? EOF : *(unsigned char *) (_fp)->_IO_read_ptr) - - - - -#define _IO_putc_unlocked(_ch, _fp) (((_fp)->_IO_write_ptr >= (_fp)->_IO_write_end) ? __overflow (_fp, (unsigned char) (_ch)) : (unsigned char) (*(_fp)->_IO_write_ptr++ = (_ch))) - - - - -#define _IO_feof_unlocked(__fp) (((__fp)->_flags & _IO_EOF_SEEN) != 0) -#define _IO_ferror_unlocked(__fp) (((__fp)->_flags & _IO_ERR_SEEN) != 0) - -extern int _IO_getc (_IO_FILE *__fp) ; -extern int _IO_putc (int __c, _IO_FILE *__fp) ; -extern int _IO_feof (_IO_FILE *__fp) ; -extern int _IO_ferror (_IO_FILE *__fp) ; - -extern int _IO_peekc_locked (_IO_FILE *__fp) ; - - -#define _IO_PENDING_OUTPUT_COUNT(_fp) ((_fp)->_IO_write_ptr - (_fp)->_IO_write_base) - - -extern void _IO_flockfile (_IO_FILE *) ; -extern void _IO_funlockfile (_IO_FILE *) ; -extern int _IO_ftrylockfile (_IO_FILE *) ; - - - - -#define _IO_peekc(_fp) _IO_peekc_unlocked (_fp) -#define _IO_flockfile(_fp) -#define _IO_funlockfile(_fp) -#define _IO_ftrylockfile(_fp) -#define _IO_cleanup_region_start(_fct, _fp) -#define _IO_cleanup_region_end(_Doit) - - - -extern int _IO_vfscanf (_IO_FILE *, const char *, _G_va_list , int *) ; -extern int _IO_vfprintf (_IO_FILE *, const char *, _G_va_list ) ; -extern _G_ssize_t _IO_padn (_IO_FILE *, int, _G_ssize_t ) ; -extern _G_size_t _IO_sgetn (_IO_FILE *, void *, _G_size_t ) ; - -extern _G_fpos_t _IO_seekoff (_IO_FILE *, _G_off_t , int, int) ; -extern _G_fpos_t _IO_seekpos (_IO_FILE *, _G_fpos_t , int) ; - -extern void _IO_free_backup_area (_IO_FILE *) ; - - -} - - - - -} - - - - - - - - - - - - - - - - - - - - -#define _IO_wchar_t short - - -extern "C++" { -class istream; -class ostream; class streambuf; - - - - - -typedef _G_off_t streamoff; -typedef _G_fpos_t streampos; -typedef _G_ssize_t streamsize; - -typedef unsigned long __fmtflags; -typedef unsigned char __iostate; - -struct _ios_fields -{ - streambuf *_strbuf; - ostream* _tie; - int _width; - __fmtflags _flags; - short _fill; - __iostate _state; - __iostate _exceptions; - int _precision; - - void *_arrays; -}; - -#define _IOS_GOOD 0 -#define _IOS_EOF 1 -#define _IOS_FAIL 2 -#define _IOS_BAD 4 - -#define _IO_INPUT 1 -#define _IO_OUTPUT 2 -#define _IO_ATEND 4 -#define _IO_APPEND 8 -#define _IO_TRUNC 16 -#define _IO_NOCREATE 32 -#define _IO_NOREPLACE 64 -#define _IO_BIN 128 - - - -class ios : public _ios_fields { - ios& operator=(ios&); - ios (const ios&); - public: - typedef __fmtflags fmtflags; - typedef int iostate; - typedef int openmode; - typedef int streamsize; - enum io_state { - goodbit = 0 , - eofbit = 1 , - failbit = 2 , - badbit = 4 }; - enum open_mode { - in = 1 , - out = 2 , - ate = 4 , - app = 8 , - trunc = 16 , - nocreate = 32 , - noreplace = 64 , - bin = 128 , - binary = 128 }; - enum seek_dir { beg, cur, end}; - typedef enum seek_dir seekdir; - - enum { skipws= 01 , - left= 02 , right= 04 , internal= 010 , - dec= 020 , oct= 040 , hex= 0100 , - showbase= 0200 , showpoint= 0400 , - uppercase= 01000 , showpos= 02000 , - scientific= 04000 , fixed= 010000 , - unitbuf= 020000 , stdio= 040000 - - - - }; - enum { - basefield=dec+oct+hex, - floatfield = scientific+fixed, - adjustfield = left+right+internal - }; - - - - ostream* tie() const { return _tie; } - ostream* tie(ostream* val) { ostream* save=_tie; _tie=val; return save; } - - - short fill() const { return (short )_fill; } - short fill(short newf) - {short oldf = (short )_fill; _fill = (char)newf; return oldf;} - fmtflags flags() const { return _flags; } - fmtflags flags(fmtflags new_val) { - fmtflags old_val = _flags; _flags = new_val; return old_val; } - int precision() const { return _precision; } - int precision(int newp) { - unsigned short oldp = _precision; _precision = (unsigned short)newp; - return oldp; } - fmtflags setf(fmtflags val) { - fmtflags oldbits = _flags; - _flags |= val; return oldbits; } - fmtflags setf(fmtflags val, fmtflags mask) { - fmtflags oldbits = _flags; - _flags = (_flags & ~mask) | (val & mask); return oldbits; } - fmtflags unsetf(fmtflags mask) { - fmtflags oldbits = _flags; - _flags &= ~mask; return oldbits; } - int width() const { return _width; } - int width(int val) { int save = _width; _width = val; return save; } - - - - - void _throw_failure() const { } - - void clear(iostate state = 0) { - _state = _strbuf ? state : state|badbit; - if (_state & _exceptions) _throw_failure(); } - void set(iostate flag) { _state |= flag; - if (_state & _exceptions) _throw_failure(); } - void setstate(iostate flag) { _state |= flag; - if (_state & _exceptions) _throw_failure(); } - int good() const { return _state == 0; } - int eof() const { return _state & ios::eofbit; } - int fail() const { return _state & (ios::badbit|ios::failbit); } - int bad() const { return _state & ios::badbit; } - iostate rdstate() const { return _state; } - operator void*() const { return fail() ? (void*)0 : (void*)(-1); } - int operator!() const { return fail(); } - iostate exceptions() const { return _exceptions; } - void exceptions(iostate enable) { - _exceptions = enable; - if (_state & _exceptions) _throw_failure(); } - - streambuf* rdbuf() const { return _strbuf; } - streambuf* rdbuf(streambuf *_s) { - streambuf *_old = _strbuf; _strbuf = _s; clear (); return _old; } - - static int sync_with_stdio(int on); - static void sync_with_stdio() { sync_with_stdio(1); } - static fmtflags bitalloc(); - static int xalloc(); - void*& pword(int); - void* pword(int) const; - long& iword(int); - long iword(int) const; - - - - - - - - - - - class Init { - public: - Init () { } - }; - - protected: - inline ios(streambuf* sb = 0, ostream* tie_to = 0); - inline virtual ~ios(); - inline void init(streambuf* sb, ostream* tie = 0); -}; - - - - -typedef ios::seek_dir _seek_dir; - - - - - - - - - - -class streammarker : private _IO_marker { - friend class streambuf; - void set_offset(int offset) { _pos = offset; } - public: - streammarker(streambuf *sb); - ~streammarker(); - int saving() { return 1; } - int delta(streammarker&); - int delta(); -}; - -struct streambuf : public _IO_FILE { - friend class ios; - friend class istream; - friend class ostream; - friend class streammarker; - const void *&_vtable() { return *(const void**)((_IO_FILE*)this + 1); } - protected: - static streambuf* _list_all; - _IO_FILE*& xchain() { return _chain; } - void _un_link(); - void _link_in(); - char* gptr() const - { return _flags & 0x100 ? _IO_save_base : _IO_read_ptr; } - char* pptr() const { return _IO_write_ptr; } - char* egptr() const - { return _flags & 0x100 ? _IO_save_end : _IO_read_end; } - char* epptr() const { return _IO_write_end; } - char* pbase() const { return _IO_write_base; } - char* eback() const - { return _flags & 0x100 ? _IO_save_base : _IO_read_base;} - char* base() const { return _IO_buf_base; } - char* ebuf() const { return _IO_buf_end; } - int blen() const { return _IO_buf_end - _IO_buf_base; } - void xput_char(char c) { *_IO_write_ptr++ = c; } - int xflags() { return _flags ; } - int xflags(int f) {int fl = _flags ; _flags = f; return fl;} - void xsetflags(int f) { _flags |= f; } - void xsetflags(int f, int mask) - { _flags = (_flags & ~mask) | (f & mask); } - void gbump(int n) - { _flags & 0x100 ? (_IO_save_base+=n):(_IO_read_ptr+=n);} - void pbump(int n) { _IO_write_ptr += n; } - void setb(char* b, char* eb, int a=0); - void setp(char* p, char* ep) - { _IO_write_base=_IO_write_ptr=p; _IO_write_end=ep; } - void setg(char* eb, char* g, char *eg) { - if (_flags & 0x100 ) _IO_free_backup_area(this); - _IO_read_base = eb; _IO_read_ptr = g; _IO_read_end = eg; } - char *shortbuf() { return _shortbuf; } - - int in_backup() { return _flags & 0x100 ; } - - char *Gbase() { return in_backup() ? _IO_save_base : _IO_read_base; } - - char *eGptr() { return in_backup() ? _IO_save_end : _IO_read_end; } - - char *Bbase() { return in_backup() ? _IO_read_base : _IO_save_base; } - char *Bptr() { return _IO_backup_base; } - - char *eBptr() { return in_backup() ? _IO_read_end : _IO_save_end; } - char *Nbase() { return _IO_save_base; } - char *eNptr() { return _IO_save_end; } - int have_backup() { return _IO_save_base != (__null) ; } - int have_markers() { return _markers != (__null) ; } - void free_backup_area(); - void unsave_markers(); - int put_mode() { return _flags & 0x800 ; } - int switch_to_get_mode(); - - streambuf(int flags=0); - public: - static int flush_all(); - static void flush_all_linebuffered(); - virtual ~streambuf(); - virtual int overflow(int c = (-1) ); - virtual int underflow(); - virtual int uflow(); - virtual int pbackfail(int c); - - virtual streamsize xsputn(const char* s, streamsize n); - virtual streamsize xsgetn(char* s, streamsize n); - virtual streampos seekoff(streamoff, _seek_dir, int mode=ios::in|ios::out); - virtual streampos seekpos(streampos pos, int mode = ios::in|ios::out); - - streampos pubseekoff(streamoff o, _seek_dir d, int mode=ios::in|ios::out) - { return _IO_seekoff (this, o, d, mode); } - streampos pubseekpos(streampos pos, int mode = ios::in|ios::out) - { return _IO_seekpos (this, pos, mode); } - streampos sseekoff(streamoff, _seek_dir, int mode=ios::in|ios::out); - streampos sseekpos(streampos pos, int mode = ios::in|ios::out); - virtual streambuf* setbuf(char* p, int len); - virtual int sync(); - virtual int doallocate(); - - int seekmark(streammarker& mark, int delta = 0); - int sputbackc(char c); - int sungetc(); - int unbuffered() { return _flags & 2 ? 1 : 0; } - int linebuffered() { return _flags & 0x200 ? 1 : 0; } - void unbuffered(int i) - { if (i) _flags |= 2 ; else _flags &= ~2 ; } - void linebuffered(int i) - { if (i) _flags |= 0x200 ; else _flags &= ~0x200 ; } - int allocate() { - if (base() || unbuffered()) return 0; - else return doallocate(); } - - void allocbuf() { if (base() == (__null) ) doallocbuf(); } - void doallocbuf(); - int in_avail() { return _IO_read_end - _IO_read_ptr; } - int out_waiting() { return _IO_write_ptr - _IO_write_base; } - streamsize sputn(const char* s, streamsize n) { return xsputn(s, n); } - streamsize padn(char pad, streamsize n) { return _IO_padn(this, pad, n); } - streamsize sgetn(char* s, streamsize n) { return _IO_sgetn(this, s, n); } - int ignore(int); - int get_column(); - int set_column(int); - long sgetline(char* buf, _G_size_t n, char delim, int putback_delim); - int sputc(int c) { return _IO_putc(c, this); } - int sbumpc() { return _IO_getc(this); } - int sgetc() { return (( this )->_IO_read_ptr >= ( this )->_IO_read_end && __underflow ( this ) == (-1) ? (-1) : *(unsigned char *) ( this )->_IO_read_ptr) ; } - int snextc() { - if (_IO_read_ptr >= _IO_read_end && __underflow(this) == (-1) ) - return (-1) ; - else return _IO_read_ptr++, sgetc(); } - void stossc() { if (_IO_read_ptr < _IO_read_end) _IO_read_ptr++; } - int vscan(char const *fmt0, _G_va_list ap, ios* stream = (__null) ); - int scan(char const *fmt0 ...); - int vform(char const *fmt0, _G_va_list ap); - int form(char const *fmt0 ...); - - - - - virtual streamsize sys_read(char* buf, streamsize size); - virtual streamsize sys_write(const char*, streamsize); - virtual streampos sys_seek(streamoff, _seek_dir); - virtual int sys_close(); - virtual int sys_stat(void*); -}; - - - - -class filebuf : public streambuf { - protected: - void init(); - public: - static const int openprot; - filebuf(); - filebuf(int fd); - filebuf(int fd, char* p, int len); - - - - ~filebuf(); - filebuf* attach(int fd); - filebuf* open(const char *filename, const char *mode); - filebuf* open(const char *filename, ios::openmode mode, int prot = 0664); - virtual int underflow(); - virtual int overflow(int c = (-1) ); - int is_open() const { return _fileno >= 0; } - int fd() const { return is_open() ? _fileno : (-1) ; } - filebuf* close(); - virtual int doallocate(); - virtual streampos seekoff(streamoff, _seek_dir, int mode=ios::in|ios::out); - virtual streambuf* setbuf(char* p, int len); - streamsize xsputn(const char* s, streamsize n); - streamsize xsgetn(char* s, streamsize n); - virtual int sync(); - protected: - - int is_reading() { return eback() != egptr(); } - char* cur_ptr() { return is_reading() ? gptr() : pptr(); } - - char* file_ptr() { return eGptr(); } - - virtual streamsize sys_read(char* buf, streamsize size); - virtual streampos sys_seek(streamoff, _seek_dir); - virtual streamsize sys_write(const char*, streamsize); - virtual int sys_stat(void*); - virtual int sys_close(); - - - - -}; - -inline void ios::init(streambuf* sb, ostream* tie_to) { - _state = sb ? ios::goodbit : ios::badbit; _exceptions=0; - _strbuf=sb; _tie = tie_to; _width=0; _fill=' '; - - _flags=ios::skipws|ios::dec; - - - - _precision=6; _arrays = 0; } - -inline ios::ios(streambuf* sb, ostream* tie_to) { init(sb, tie_to); } - -inline ios::~ios() { - - - - if (_arrays) delete [] _arrays; -} -} - - - -extern "C++" { -class istream; class ostream; -typedef ios& (*__manip)(ios&); -typedef istream& (*__imanip)(istream&); -typedef ostream& (*__omanip)(ostream&); - -extern istream& ws(istream& ins); -extern ostream& flush(ostream& outs); -extern ostream& endl(ostream& outs); -extern ostream& ends(ostream& outs); - -class ostream : virtual public ios -{ - - void do_osfx(); - public: - ostream() { } - ostream(streambuf* sb, ostream* tied= (__null) ); - int opfx() { - if (!good()) return 0; - else { if (_tie) _tie->flush(); ; return 1;} } - void osfx() { ; - if (flags() & (ios::unitbuf|ios::stdio)) - do_osfx(); } - ostream& flush(); - ostream& put(char c) { _strbuf->sputc(c); return *this; } - - - - - - ostream& write(const char *s, streamsize n); - ostream& write(const unsigned char *s, streamsize n) - { return write((const char*)s, n);} - ostream& write(const signed char *s, streamsize n) - { return write((const char*)s, n);} - ostream& write(const void *s, streamsize n) - { return write((const char*)s, n);} - ostream& seekp(streampos); - ostream& seekp(streamoff, _seek_dir); - streampos tellp(); - ostream& form(const char *format ...); - ostream& vform(const char *format, _G_va_list args); - - ostream& operator<<(char c); - ostream& operator<<(unsigned char c) { return (*this) << (char)c; } - ostream& operator<<(signed char c) { return (*this) << (char)c; } - ostream& operator<<(const char *s); - ostream& operator<<(const unsigned char *s) - { return (*this) << (const char*)s; } - ostream& operator<<(const signed char *s) - { return (*this) << (const char*)s; } - ostream& operator<<(const void *p); - ostream& operator<<(int n); - ostream& operator<<(unsigned int n); - ostream& operator<<(long n); - ostream& operator<<(unsigned long n); - - __extension__ ostream& operator<<(long long n); - __extension__ ostream& operator<<(unsigned long long n); - - ostream& operator<<(short n) {return operator<<((int)n);} - ostream& operator<<(unsigned short n) {return operator<<((unsigned int)n);} - - ostream& operator<<(bool b) { return operator<<((int)b); } - - ostream& operator<<(double n); - ostream& operator<<(float n) { return operator<<((double)n); } - - - - ostream& operator<<(long double n) { return operator<<((double)n); } - - ostream& operator<<(__omanip func) { return (*func)(*this); } - ostream& operator<<(__manip func) {(*func)(*this); return *this;} - ostream& operator<<(streambuf*); - - - -}; - -class istream : virtual public ios -{ - -protected: - _G_size_t _gcount; - - int _skip_ws(); - public: - istream(): _gcount (0) { } - istream(streambuf* sb, ostream*tied= (__null) ); - istream& get(char* ptr, int len, char delim = '\n'); - istream& get(unsigned char* ptr, int len, char delim = '\n') - { return get((char*)ptr, len, delim); } - istream& get(char& c); - istream& get(unsigned char& c) { return get((char&)c); } - istream& getline(char* ptr, int len, char delim = '\n'); - istream& getline(unsigned char* ptr, int len, char delim = '\n') - { return getline((char*)ptr, len, delim); } - istream& get(signed char& c) { return get((char&)c); } - istream& get(signed char* ptr, int len, char delim = '\n') - { return get((char*)ptr, len, delim); } - istream& getline(signed char* ptr, int len, char delim = '\n') - { return getline((char*)ptr, len, delim); } - istream& read(char *ptr, streamsize n); - istream& read(unsigned char *ptr, streamsize n) - { return read((char*)ptr, n); } - istream& read(signed char *ptr, streamsize n) - { return read((char*)ptr, n); } - istream& read(void *ptr, streamsize n) - { return read((char*)ptr, n); } - istream& get(streambuf& sb, char delim = '\n'); - istream& gets(char **s, char delim = '\n'); - int ipfx(int need = 0) { - if (!good()) { set(ios::failbit); return 0; } - else { - ; - if (_tie && (need == 0 || rdbuf()->in_avail() < need)) _tie->flush(); - if (!need && (flags() & ios::skipws)) return _skip_ws(); - else return 1; - } - } - int ipfx0() { - if (!good()) { set(ios::failbit); return 0; } - else { - ; - if (_tie) _tie->flush(); - if (flags() & ios::skipws) return _skip_ws(); - else return 1; - } - } - int ipfx1() { - if (!good()) { set(ios::failbit); return 0; } - else { - ; - if (_tie && rdbuf()->in_avail() == 0) _tie->flush(); - return 1; - } - } - void isfx() { ; } - int get() { if (!ipfx1()) return (-1) ; - else { int ch = _strbuf->sbumpc(); - if (ch == (-1) ) set(ios::eofbit); - return ch; - } } - int peek(); - _G_size_t gcount() { return _gcount; } - istream& ignore(int n=1, int delim = (-1) ); - int sync (); - istream& seekg(streampos); - istream& seekg(streamoff, _seek_dir); - streampos tellg(); - istream& putback(char ch) { - if (good() && _strbuf->sputbackc(ch) == (-1) ) clear(ios::badbit); - return *this;} - istream& unget() { - if (good() && _strbuf->sungetc() == (-1) ) clear(ios::badbit); - return *this;} - istream& scan(const char *format ...); - istream& vscan(const char *format, _G_va_list args); - - - - - - - istream& operator>>(char*); - istream& operator>>(unsigned char* p) { return operator>>((char*)p); } - istream& operator>>(signed char*p) { return operator>>((char*)p); } - istream& operator>>(char& c); - istream& operator>>(unsigned char& c) {return operator>>((char&)c);} - istream& operator>>(signed char& c) {return operator>>((char&)c);} - istream& operator>>(int&); - istream& operator>>(long&); - - __extension__ istream& operator>>(long long&); - __extension__ istream& operator>>(unsigned long long&); - - istream& operator>>(short&); - istream& operator>>(unsigned int&); - istream& operator>>(unsigned long&); - istream& operator>>(unsigned short&); - - istream& operator>>(bool&); - - istream& operator>>(float&); - istream& operator>>(double&); - istream& operator>>(long double&); - istream& operator>>( __manip func) {(*func)(*this); return *this;} - istream& operator>>(__imanip func) { return (*func)(*this); } - istream& operator>>(streambuf*); -}; - -class iostream : public istream, public ostream -{ - public: - iostream() { } - iostream(streambuf* sb, ostream*tied= (__null) ); -}; - -class _IO_istream_withassign : public istream { -public: - _IO_istream_withassign& operator=(istream&); - _IO_istream_withassign& operator=(_IO_istream_withassign& rhs) - { return operator= (static_cast<istream&> (rhs)); } -}; - -class _IO_ostream_withassign : public ostream { -public: - _IO_ostream_withassign& operator=(ostream&); - _IO_ostream_withassign& operator=(_IO_ostream_withassign& rhs) - { return operator= (static_cast<ostream&> (rhs)); } -}; - -extern _IO_istream_withassign cin; - -extern _IO_ostream_withassign cout, cerr; - -extern _IO_ostream_withassign clog - - - -; - -extern istream& lock(istream& ins); -extern istream& unlock(istream& ins); -extern ostream& lock(ostream& outs); -extern ostream& unlock(ostream& outs); - -struct Iostream_init { } ; - -inline ios& dec(ios& i) -{ i.setf(ios::dec, ios::dec|ios::hex|ios::oct); return i; } -inline ios& hex(ios& i) -{ i.setf(ios::hex, ios::dec|ios::hex|ios::oct); return i; } -inline ios& oct(ios& i) -{ i.setf(ios::oct, ios::dec|ios::hex|ios::oct); return i; } -} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#pragma interface - -#define _IOMANIP_H - - - -extern "C++" { - - - - - - - - -template<class TP> class smanip; - -template<class TP> class sapp { - ios& (*_f)(ios&, TP); -public: - sapp(ios& (*f)(ios&, TP)) : _f(f) {} - - smanip<TP> operator()(TP a) - { return smanip<TP>(_f, a); } -}; - -template<class TP> -inline istream& operator>>(istream& i, const smanip<TP>& m); -template<class TP> -inline ostream& operator<<(ostream& o, const smanip<TP>& m); - -template <class TP> class smanip { - ios& (*_f)(ios&, TP); - TP _a; -public: - smanip(ios& (*f)(ios&, TP), TP a) : _f(f), _a(a) {} - - friend - istream& operator>> <>(istream& i, const smanip<TP>& m); - friend - ostream& operator<< <>(ostream& o, const smanip<TP>& m); -}; - - -extern template class smanip<int>; -extern template class smanip<ios::fmtflags>; - - -template<class TP> -inline istream& operator>>(istream& i, const smanip<TP>& m) -{ (*m._f)(i, m._a); return i; } - -template<class TP> -inline ostream& operator<<(ostream& o, const smanip<TP>& m) -{ (*m._f)(o, m._a); return o;} - - -extern template istream& operator>>(istream&, const smanip<int>&); -extern template istream& operator>>(istream&, const smanip<ios::fmtflags>&); -extern template ostream& operator<<(ostream&, const smanip<int>&); -extern template ostream& operator<<(ostream&, const smanip<ios::fmtflags>&); - - - - - - -template<class TP> class imanip; - -template<class TP> class iapp { - istream& (*_f)(istream&, TP); -public: - iapp(istream& (*f)(istream&,TP)) : _f(f) {} - - imanip<TP> operator()(TP a) - { return imanip<TP>(_f, a); } -}; - -template <class TP> -inline istream& operator>>(istream&, const imanip<TP>&); - -template <class TP> class imanip { - istream& (*_f)(istream&, TP); - TP _a; -public: - imanip(istream& (*f)(istream&, TP), TP a) : _f(f), _a(a) {} - - friend - istream& operator>> <>(istream& i, const imanip<TP>& m); -}; - -template <class TP> -inline istream& operator>>(istream& i, const imanip<TP>& m) -{ return (*m._f)( i, m._a); } - - - - - -template<class TP> class omanip; - -template<class TP> class oapp { - ostream& (*_f)(ostream&, TP); -public: - oapp(ostream& (*f)(ostream&,TP)) : _f(f) {} - - omanip<TP> operator()(TP a) - { return omanip<TP>(_f, a); } -}; - -template <class TP> -inline ostream& operator<<(ostream&, const omanip<TP>&); - -template <class TP> class omanip { - ostream& (*_f)(ostream&, TP); - TP _a; -public: - omanip(ostream& (*f)(ostream&, TP), TP a) : _f(f), _a(a) {} - - friend - ostream& operator<< <>(ostream& o, const omanip<TP>& m); -}; - -template <class TP> -inline ostream& operator<<(ostream& o, const omanip<TP>& m) -{ return (*m._f)(o, m._a); } - - - - - - - - - -#define __DEFINE_IOMANIP_FN1(type,param,function) extern ios& __iomanip_##function (ios&, param); inline type<param> function (param n) { return type<param> (__iomanip_##function, n); } - - - - -extern ios& __iomanip_setbase (ios&, int ); inline smanip < int > setbase ( int n) { return smanip < int > (__iomanip_setbase , n); } -extern ios& __iomanip_setfill (ios&, int ); inline smanip < int > setfill ( int n) { return smanip < int > (__iomanip_setfill , n); } -extern ios& __iomanip_setprecision (ios&, int ); inline smanip < int > setprecision ( int n) { return smanip < int > (__iomanip_setprecision , n); } -extern ios& __iomanip_setw (ios&, int ); inline smanip < int > setw ( int n) { return smanip < int > (__iomanip_setw , n); } - -extern ios& __iomanip_resetiosflags (ios&, ios::fmtflags ); inline smanip < ios::fmtflags > resetiosflags ( ios::fmtflags n) { return smanip < ios::fmtflags > (__iomanip_resetiosflags , n); } -extern ios& __iomanip_setiosflags (ios&, ios::fmtflags ); inline smanip < ios::fmtflags > setiosflags ( ios::fmtflags n) { return smanip < ios::fmtflags > (__iomanip_setiosflags , n); } -} - - - - -#define LS_hh - - -#define Mouvement_hh - - - -#define usuel_hh - - - - - - -#define _MATH_H - - -extern "C" { - - -#pragma ident "@(#)math.h 2.5 95/02/07" - - - - - - - - - - - - - - - - - - -typedef union _h_val { - unsigned long _i[2]; - double _d; -} _h_val; - - -extern const _h_val __huge_val; - - - - - -#define HUGE_VAL __huge_val._d - - - - - - - -#define M_E 2.7182818284590452354 -#define M_LOG2E 1.4426950408889634074 -#define M_LOG10E 0.43429448190325182765 -#define M_LN2 0.69314718055994530942 -#define M_LN10 2.30258509299404568402 -#define M_PI 3.14159265358979323846 -#define M_PI_2 1.57079632679489661923 -#define M_PI_4 0.78539816339744830962 -#define M_1_PI 0.31830988618379067154 -#define M_2_PI 0.63661977236758134308 -#define M_2_SQRTPI 1.12837916709551257390 -#define M_SQRT2 1.41421356237309504880 -#define M_SQRT1_2 0.70710678118654752440 - -extern int signgam; - -#define MAXFLOAT ((float)3.40282346638528860e+38) - - - - - -enum version {libm_ieee = -1, c_issue_4, ansi_1, strict_ansi}; - - -extern const enum version _lib_version; - - - - - -#define exception __math_exception - -struct __math_exception { - -#undef exception - - int type; - char *name; - double arg1; - double arg2; - double retval; -}; - -#define HUGE MAXFLOAT - -#define _ABS(x) ((x) < 0 ? -(x) : (x)) - -#define _REDUCE(TYPE, X, XN, C1, C2) { double x1 = (double)(TYPE)X, x2 = X - x1; X = x1 - (XN) * (C1); X += x2; X -= (XN) * (C2); } - - - -#define DOMAIN 1 -#define SING 2 -#define OVERFLOW 3 -#define UNDERFLOW 4 -#define TLOSS 5 -#define PLOSS 6 - -#define _POLY1(x, c) ((c)[0] * (x) + (c)[1]) -#define _POLY2(x, c) (_POLY1((x), (c)) * (x) + (c)[2]) -#define _POLY3(x, c) (_POLY2((x), (c)) * (x) + (c)[3]) -#define _POLY4(x, c) (_POLY3((x), (c)) * (x) + (c)[4]) -#define _POLY5(x, c) (_POLY4((x), (c)) * (x) + (c)[5]) -#define _POLY6(x, c) (_POLY5((x), (c)) * (x) + (c)[6]) -#define _POLY7(x, c) (_POLY6((x), (c)) * (x) + (c)[7]) -#define _POLY8(x, c) (_POLY7((x), (c)) * (x) + (c)[8]) -#define _POLY9(x, c) (_POLY8((x), (c)) * (x) + (c)[9]) - - - - - - -extern double acos (double) ; -extern double asin (double) ; -extern double atan (double) ; -extern double atan2 (double, double) ; -extern double cos (double) ; -extern double sin (double) ; -extern double tan (double) ; - -extern double cosh (double) ; -extern double sinh (double) ; -extern double tanh (double) ; - -extern double exp (double) ; -extern double frexp (double, int *) ; -extern double ldexp (double, int) ; -extern double log (double) ; -extern double log10 (double) ; -extern double modf (double, double *) ; - -extern double pow (double, double) ; -extern double sqrt (double) ; - -extern double ceil (double) ; -extern double fabs (double) ; -extern double floor (double) ; -extern double fmod (double, double) ; - - - - - - -extern double erf (double) ; -extern double erfc (double) ; -extern double gamma (double) ; -extern double hypot (double, double) ; -extern int isnan (double) ; -extern double j0 (double) ; -extern double j1 (double) ; -extern double jn (int, double) ; -extern double lgamma (double) ; -extern double y0 (double) ; -extern double y1 (double) ; -extern double yn (int, double) ; - - - - - - -extern double acosh (double) ; -extern double asinh (double) ; -extern double atanh (double) ; -extern double cbrt (double) ; -extern double logb (double) ; -extern double nextafter (double, double) ; -extern double remainder (double, double) ; -extern double scalb (double, double) ; - - - - -extern double expm1 (double) ; -extern int ilogb (double) ; -extern double log1p (double) ; -extern double rint (double) ; - - - - - - - -#define exception __math_exception - -extern int matherr (struct __math_exception *) ; - -#undef exception - - - - - -extern double significand (double) ; - - - - -extern double copysign (double, double) ; -extern double scalbn (double, int) ; - - - - - - - - - - - - - -extern float modff (float, float *) ; - - - - - - - - - -#define _FLOATINGPOINT_H - - -extern "C" { - - -#pragma ident "@(#)floatingpoint.h 2.4 94/06/09" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#define _STDIO_H - -#pragma ident "@(#)stdio.h 1.39 95/12/04 SMI" - - - - - - - - - -#define _SYS_FEATURE_TESTS_H - -#pragma ident "@(#)feature_tests.h 1.7 94/12/06 SMI" - - -extern "C" { - - - - - - - - - - - - - - - -} - - - - - - - - - - -#define _SYS_VA_LIST_H - -#pragma ident "@(#)va_list.h 1.6 96/01/26 SMI" - - - - - - - - - - - - -extern "C" { - - - - - -typedef void *__va_list; - - - - - - - -} - - - - - - -extern "C" { - - - -#define _SIZE_T -typedef unsigned int size_t; - - -typedef long fpos_t; - - - - - - - - - - -#define BUFSIZ 1024 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -#define _NFILE 20 - - - -#define _SBFSIZ 8 - -#define _IOFBF 0000 -#define _IOLBF 0100 -#define _IONBF 0004 -#define _IOEOF 0020 -#define _IOERR 0040 - -#define _IOREAD 0001 -#define _IOWRT 0002 -#define _IORW 0200 -#define _IOMYBUF 0010 - - - - - -#define FOPEN_MAX _NFILE -#define FILENAME_MAX 1024 - -#define SEEK_SET 0 -#define SEEK_CUR 1 -#define SEEK_END 2 -#define TMP_MAX 17576 - - - - -#define L_ctermid 9 -#define L_cuserid 9 - - - - - -#define P_tmpdir "/var/tmp/" - - -#define L_tmpnam 25 - - -#define stdin (&__iob[0]) -#define stdout (&__iob[1]) -#define stderr (&__iob[2]) - - - - - - -typedef struct -{ - - - - - int _cnt; - unsigned char *_ptr; - - unsigned char *_base; - unsigned char _flag; - unsigned char _file; -} FILE; - - -extern FILE __iob[20 ]; - - - -extern FILE *_lastbuf; -extern unsigned char *_bufendtab[]; - -extern unsigned char _sibuf[], _sobuf[]; - - - - -extern int remove(const char *); -extern int rename(const char *, const char *); -extern FILE *tmpfile(void); -extern char *tmpnam(char *); - - - -extern int fclose(FILE *); -extern int fflush(FILE *); -extern FILE *fopen(const char *, const char *); -extern FILE *freopen(const char *, const char *, FILE *); -extern void setbuf(FILE *, char *); -extern int setvbuf(FILE *, char *, int, size_t); - -extern int fprintf(FILE *, const char *, ...); - -extern int fscanf(FILE *, const char *, ...); - -extern int printf(const char *, ...); - -extern int scanf(const char *, ...); - -extern int sprintf(char *, const char *, ...); - -extern int sscanf(const char *, const char *, ...); -extern int vfprintf(FILE *, const char *, __va_list); -extern int vprintf(const char *, __va_list); -extern int vsprintf(char *, const char *, __va_list); -extern int fgetc(FILE *); -extern char *fgets(char *, int, FILE *); -extern int fputc(int, FILE *); -extern int fputs(const char *, FILE *); -extern int getc(FILE *); -extern int getchar(void); -extern char *gets(char *); -extern int putc(int, FILE *); -extern int putchar(int); -extern int puts(const char *); -extern int ungetc(int, FILE *); -extern size_t fread(void *, size_t, size_t, FILE *); -extern size_t fwrite(const void *, size_t, size_t, FILE *); -extern int fgetpos(FILE *, fpos_t *); -extern int fseek(FILE *, long, int); -extern int fsetpos(FILE *, const fpos_t *); -extern long ftell(FILE *); -extern void rewind(FILE *); -extern void clearerr(FILE *); -extern int feof(FILE *); -extern int ferror(FILE *); -extern void perror(const char *); - -extern int __filbuf(FILE *); -extern int __flsbuf(int, FILE *); - - - - - - - -extern FILE *fdopen(int, const char *); -extern char *ctermid(char *); -extern int fileno(FILE *); - - - - - - - - - - - - - -extern FILE *popen(const char *, const char *); -extern char *cuserid(char *); -extern char *tempnam(const char *, const char *); -extern int getopt(int, char *const *, const char *); - -extern int getsubopt(char **, char *const *, char **); - -extern char *optarg; -extern int optind, opterr, optopt; -extern int getw(FILE *); -extern int putw(int, FILE *); -extern int pclose(FILE *); - - - - - - - - - - - - - - - - - -#define getc(p) (--(p)->_cnt < 0 ? __filbuf(p) : (int)*(p)->_ptr++) -#define putc(x, p) (--(p)->_cnt < 0 ? __flsbuf((unsigned char) (x), (p)) : (int)(*(p)->_ptr++ = (x))) - - - - - - - -#define getchar() getc(stdin) -#define putchar(x) putc((x), stdout) -#define clearerr(p) ((void)((p)->_flag &= ~(_IOERR | _IOEOF))) -#define feof(p) ((p)->_flag & _IOEOF) -#define ferror(p) ((p)->_flag & _IOERR) - - - - -#define fileno(p) ((p)->_file) - - - - - - - -} - - - - - - - - - - -#define _SYS_IEEEFP_H - -#pragma ident "@(#)ieeefp.h 2.7 94/11/09" - - -extern "C" { - - - - - - -enum fp_direction_type { - fp_nearest = 0, - fp_tozero = 1, - fp_positive = 2, - fp_negative = 3 -}; - -enum fp_precision_type { - fp_extended = 0, - fp_single = 1, - fp_double = 2, - fp_precision_3 = 3 -}; - -enum fp_exception_type { - fp_inexact = 0, - fp_division = 1, - fp_underflow = 2, - fp_overflow = 3, - fp_invalid = 4 -}; - -enum fp_trap_enable_type { - fp_trap_inexact = 0, - fp_trap_division = 1, - fp_trap_underflow = 2, - fp_trap_overflow = 3, - fp_trap_invalid = 4 -}; - - - - - - -enum fp_class_type { - fp_zero = 0, - fp_subnormal = 1, - fp_normal = 2, - fp_infinity = 3, - fp_quiet = 4, - fp_signaling = 5 -}; - - -} - - - - - - - - - - - - - - - -#define N_IEEE_EXCEPTION 5 - -typedef int sigfpe_code_type; - -typedef void (*sigfpe_handler_type)(); - -#define SIGFPE_DEFAULT (void (*)())0 -#define SIGFPE_IGNORE (void (*)())1 -#define SIGFPE_ABORT (void (*)())2 - -extern sigfpe_handler_type sigfpe (sigfpe_code_type, sigfpe_handler_type) ; - - - - -typedef float single; - - -#define _EXTENDED -typedef unsigned extended[3]; - - -typedef long double quadruple; - -typedef unsigned fp_exception_field_type; - - - - - - - -#define DECIMAL_STRING_LENGTH 512 - -typedef char decimal_string[512 ]; - - -typedef struct { - enum fp_class_type fpclass; - int sign; - int exponent; - decimal_string ds; - - - int more; - - - int ndigits; - - -} decimal_record; - -enum decimal_form { - fixed_form, - - - floating_form - -}; - -typedef struct { - enum fp_direction_type rd; - - enum decimal_form df; - - int ndigits; -} decimal_mode; - -enum decimal_string_form { - invalid_form, - whitespace_form, - fixed_int_form, - fixed_intdot_form, - fixed_dotfrac_form, - fixed_intdotfrac_form, - floating_int_form, - floating_intdot_form, - floating_dotfrac_form, - floating_intdotfrac_form, - inf_form, - infinity_form, - nan_form, - nanstring_form -}; - -extern void single_to_decimal (single *, decimal_mode *, decimal_record *, - fp_exception_field_type *) ; -extern void double_to_decimal (double *, decimal_mode *, decimal_record *, - fp_exception_field_type *) ; -extern void extended_to_decimal (extended *, decimal_mode *, - decimal_record *, fp_exception_field_type *) ; -extern void quadruple_to_decimal (quadruple *, decimal_mode *, - decimal_record *, fp_exception_field_type *) ; - -extern void decimal_to_single (single *, decimal_mode *, decimal_record *, - fp_exception_field_type *) ; -extern void decimal_to_double (double *, decimal_mode *, decimal_record *, - fp_exception_field_type *) ; -extern void decimal_to_extended (extended *, decimal_mode *, - decimal_record *, fp_exception_field_type *) ; -extern void decimal_to_quadruple (quadruple *, decimal_mode *, - decimal_record *, fp_exception_field_type *) ; - -extern void string_to_decimal (char **, int, int, decimal_record *, - enum decimal_string_form *, char **) ; -extern void func_to_decimal (char **, int, int, decimal_record *, - enum decimal_string_form *, char **, - int (*)(void), int *, int (*)(int)) ; -extern void file_to_decimal (char **, int, int, decimal_record *, - enum decimal_string_form *, char **, - FILE *, int *) ; - -extern char *seconvert (single *, int, int *, int *, char *) ; -extern char *sfconvert (single *, int, int *, int *, char *) ; -extern char *sgconvert (single *, int, int, char *) ; -extern char *econvert (double, int, int *, int *, char *) ; -extern char *fconvert (double, int, int *, int *, char *) ; -extern char *gconvert (double, int, int, char *) ; -extern char *qeconvert (quadruple *, int, int *, int *, char *) ; -extern char *qfconvert (quadruple *, int, int *, int *, char *) ; -extern char *qgconvert (quadruple *, int, int, char *) ; - -extern char *ecvt (double, int, int *, int *) ; -extern char *fcvt (double, int, int *, int *) ; -extern char *gcvt (double, int, char *) ; - - - - - -extern double atof (const char *) ; -extern double strtod (const char *, char **) ; - - -} - - - - - - - - -} - - - - - - - - - - - - - - - - - - - - - - - - - -#pragma interface - -#define _String_h 1 - - - - - - - - - - - - - - - - - - - - - - - -#pragma interface - -#define _Regex_h 1 - - - - - - - -struct re_pattern_buffer; -struct re_registers; - -class Regex -{ -private: - - Regex(const Regex&) {} - void operator = (const Regex&) {} - -protected: - re_pattern_buffer* buf; - re_registers* reg; - -public: - Regex(const char* t, - int fast = 0, - int bufsize = 40, - const char* transtable = 0); - - ~Regex(); - - int match(const char* s, int len, int pos = 0) const; - int search(const char* s, int len, - int& matchlen, int startpos = 0) const; - int match_info(int& start, int& length, int nth = 0) const; - - int OK() const; -}; - - - - - - - - - - - - - - - - - - -struct StrRep -{ - unsigned short len; - unsigned short sz; - char s[1]; - - -}; - - - -StrRep* Salloc(StrRep*, const char*, int, int); -StrRep* Scopy(StrRep*, const StrRep*); -StrRep* Scat(StrRep*, const char*, int, const char*, int); -StrRep* Scat(StrRep*, const char*, int,const char*,int, const char*,int); -StrRep* Sprepend(StrRep*, const char*, int); -StrRep* Sreverse(const StrRep*, StrRep*); -StrRep* Supcase(const StrRep*, StrRep*); -StrRep* Sdowncase(const StrRep*, StrRep*); -StrRep* Scapitalize(const StrRep*, StrRep*); - - - -class String; -class SubString; - -class SubString -{ - friend class String; -protected: - - String& S; - unsigned short pos; - unsigned short len; - - void assign(const StrRep*, const char*, int = -1); - SubString(String& x, int p, int l); - -public: - SubString(const SubString& x); - - - - - ~SubString(); - - SubString& operator = (const String& y); - SubString& operator = (const SubString& y); - SubString& operator = (const char* t); - SubString& operator = (char c); - - - - int contains(char c) const; - int contains(const String& y) const; - int contains(const SubString& y) const; - int contains(const char* t) const; - int contains(const Regex& r) const; - - - - int matches(const Regex& r) const; - - - - friend ostream& operator<<(ostream& s, const SubString& x); - - - - unsigned int length() const; - int empty() const; - const char* chars() const; - - int OK() const; - -}; - - -class String -{ - friend class SubString; - -protected: - StrRep* rep; - - - - int search(int, int, const char*, int = -1) const; - int search(int, int, char) const; - int match(int, int, int, const char*, int = -1) const; - int _gsub(const char*, int, const char* ,int); - int _gsub(const Regex&, const char*, int); - SubString _substr(int, int); - -public: - - - - String(); - String(const String& x); - String(const SubString& x); - String(const char* t); - String(const char* t, int len); - String(char c); - - ~String(); - - String& operator = (const String& y); - String& operator = (const char* y); - String& operator = (char c); - String& operator = (const SubString& y); - - - - String& operator += (const String& y); - String& operator += (const SubString& y); - String& operator += (const char* t); - String& operator += (char c); - - void prepend(const String& y); - void prepend(const SubString& y); - void prepend(const char* t); - void prepend(char c); - - - - - - friend inline void cat(const String&, const String&, String&); - friend inline void cat(const String&, const SubString&, String&); - friend inline void cat(const String&, const char*, String&); - friend inline void cat(const String&, char, String&); - - friend inline void cat(const SubString&, const String&, String&); - friend inline void cat(const SubString&, const SubString&, String&); - friend inline void cat(const SubString&, const char*, String&); - friend inline void cat(const SubString&, char, String&); - - friend inline void cat(const char*, const String&, String&); - friend inline void cat(const char*, const SubString&, String&); - friend inline void cat(const char*, const char*, String&); - friend inline void cat(const char*, char, String&); - - - - - - friend inline void cat(const String&,const String&, const String&,String&); - friend inline void cat(const String&,const String&,const SubString&,String&); - friend inline void cat(const String&,const String&, const char*, String&); - friend inline void cat(const String&,const String&, char, String&); - friend inline void cat(const String&,const SubString&,const String&,String&); - inline friend void cat(const String&,const SubString&,const SubString&,String&); - friend inline void cat(const String&,const SubString&, const char*, String&); - friend inline void cat(const String&,const SubString&, char, String&); - friend inline void cat(const String&,const char*, const String&, String&); - friend inline void cat(const String&,const char*, const SubString&, String&); - friend inline void cat(const String&,const char*, const char*, String&); - friend inline void cat(const String&,const char*, char, String&); - - friend inline void cat(const char*, const String&, const String&,String&); - friend inline void cat(const char*,const String&,const SubString&,String&); - friend inline void cat(const char*,const String&, const char*, String&); - friend inline void cat(const char*,const String&, char, String&); - friend inline void cat(const char*,const SubString&,const String&,String&); - friend inline void cat(const char*,const SubString&,const SubString&,String&); - friend inline void cat(const char*,const SubString&, const char*, String&); - friend inline void cat(const char*,const SubString&, char, String&); - friend inline void cat(const char*,const char*, const String&, String&); - friend inline void cat(const char*,const char*, const SubString&, String&); - friend inline void cat(const char*,const char*, const char*, String&); - friend inline void cat(const char*,const char*, char, String&); - - - - - - - int index(char c, int startpos = 0) const; - int index(const String& y, int startpos = 0) const; - int index(const SubString& y, int startpos = 0) const; - int index(const char* t, int startpos = 0) const; - int index(const Regex& r, int startpos = 0) const; - - - - int contains(char c) const; - int contains(const String& y) const; - int contains(const SubString& y) const; - int contains(const char* t) const; - int contains(const Regex& r) const; - - - - - int contains(char c, int pos) const; - int contains(const String& y, int pos) const; - int contains(const SubString& y, int pos) const; - int contains(const char* t, int pos) const; - int contains(const Regex& r, int pos) const; - - - - int matches(char c, int pos = 0) const; - int matches(const String& y, int pos = 0) const; - int matches(const SubString& y, int pos = 0) const; - int matches(const char* t, int pos = 0) const; - int matches(const Regex& r, int pos = 0) const; - - - - int freq(char c) const; - int freq(const String& y) const; - int freq(const SubString& y) const; - int freq(const char* t) const; - - - - - - - - SubString at(int pos, int len); - SubString operator () (int pos, int len); - - SubString at(const String& x, int startpos = 0); - SubString at(const SubString& x, int startpos = 0); - SubString at(const char* t, int startpos = 0); - SubString at(char c, int startpos = 0); - SubString at(const Regex& r, int startpos = 0); - - SubString before(int pos); - SubString before(const String& x, int startpos = 0); - SubString before(const SubString& x, int startpos = 0); - SubString before(const char* t, int startpos = 0); - SubString before(char c, int startpos = 0); - SubString before(const Regex& r, int startpos = 0); - - SubString through(int pos); - SubString through(const String& x, int startpos = 0); - SubString through(const SubString& x, int startpos = 0); - SubString through(const char* t, int startpos = 0); - SubString through(char c, int startpos = 0); - SubString through(const Regex& r, int startpos = 0); - - SubString from(int pos); - SubString from(const String& x, int startpos = 0); - SubString from(const SubString& x, int startpos = 0); - SubString from(const char* t, int startpos = 0); - SubString from(char c, int startpos = 0); - SubString from(const Regex& r, int startpos = 0); - - SubString after(int pos); - SubString after(const String& x, int startpos = 0); - SubString after(const SubString& x, int startpos = 0); - SubString after(const char* t, int startpos = 0); - SubString after(char c, int startpos = 0); - SubString after(const Regex& r, int startpos = 0); - - - - - - void del(int pos, int len); - - - - void del(const String& y, int startpos = 0); - void del(const SubString& y, int startpos = 0); - void del(const char* t, int startpos = 0); - void del(char c, int startpos = 0); - void del(const Regex& r, int startpos = 0); - - - - int gsub(const String& pat, const String& repl); - int gsub(const SubString& pat, const String& repl); - int gsub(const char* pat, const String& repl); - int gsub(const char* pat, const char* repl); - int gsub(const Regex& pat, const String& repl); - - - - - - friend int split(const String& x, String res[], int maxn, - const String& sep); - friend int split(const String& x, String res[], int maxn, - const Regex& sep); - - friend String common_prefix(const String& x, const String& y, - int startpos = 0); - friend String common_suffix(const String& x, const String& y, - int startpos = -1); - friend String replicate(char c, int n); - friend String replicate(const String& y, int n); - friend String join(String src[], int n, const String& sep); - - - - friend inline String reverse(const String& x); - friend inline String upcase(const String& x); - friend inline String downcase(const String& x); - friend inline String capitalize(const String& x); - - - - void reverse(); - void upcase(); - void downcase(); - void capitalize(); - - - - char& operator [] (int i); - const char& operator [] (int i) const; - char elem(int i) const; - char firstchar() const; - char lastchar() const; - - - - operator const char*() const; - const char* chars() const; - - - - - friend inline ostream& operator<<(ostream& s, const String& x); - friend ostream& operator<<(ostream& s, const SubString& x); - friend istream& operator>>(istream& s, String& x); - - friend int readline(istream& s, String& x, - char terminator = '\n', - int discard_terminator = 1); - - - - unsigned int length() const; - int empty() const; - - - void alloc(int newsize); - - - - int allocation() const; - - - void error(const char* msg) const; - - int OK() const; -}; - -typedef String StrTmp; - - - -int compare(const String& x, const String& y); -int compare(const String& x, const SubString& y); -int compare(const String& x, const char* y); -int compare(const SubString& x, const String& y); -int compare(const SubString& x, const SubString& y); -int compare(const SubString& x, const char* y); -int fcompare(const String& x, const String& y); - -extern StrRep _nilStrRep; -extern String _nilString; - - - -inline unsigned int String::length() const { return rep->len; } -inline int String::empty() const { return rep->len == 0; } -inline const char* String::chars() const { return &(rep->s[0]); } -inline int String::allocation() const { return rep->sz; } - -inline unsigned int SubString::length() const { return len; } -inline int SubString::empty() const { return len == 0; } -inline const char* SubString::chars() const { return &(S.rep->s[pos]); } - - - - -inline String::String() - : rep(&_nilStrRep) {} -inline String::String(const String& x) - : rep(Scopy(0, x.rep)) {} -inline String::String(const char* t) - : rep(Salloc(0, t, -1, -1)) {} -inline String::String(const char* t, int tlen) - : rep(Salloc(0, t, tlen, tlen)) {} -inline String::String(const SubString& y) - : rep(Salloc(0, y.chars(), y.length(), y.length())) {} -inline String::String(char c) - : rep(Salloc(0, &c, 1, 1)) {} - -inline String::~String() { if (rep != &_nilStrRep) delete rep; } - -inline SubString::SubString(const SubString& x) - :S(x.S), pos(x.pos), len(x.len) {} -inline SubString::SubString(String& x, int first, int l) - :S(x), pos(first), len(l) {} - -inline SubString::~SubString() {} - - - -inline String& String::operator = (const String& y) -{ - rep = Scopy(rep, y.rep); - return *this; -} - -inline String& String::operator=(const char* t) -{ - rep = Salloc(rep, t, -1, -1); - return *this; -} - -inline String& String::operator=(const SubString& y) -{ - rep = Salloc(rep, y.chars(), y.length(), y.length()); - return *this; -} - -inline String& String::operator=(char c) -{ - rep = Salloc(rep, &c, 1, 1); - return *this; -} - - -inline SubString& SubString::operator = (const char* ys) -{ - assign(0, ys); - return *this; -} - -inline SubString& SubString::operator = (char ch) -{ - assign(0, &ch, 1); - return *this; -} - -inline SubString& SubString::operator = (const String& y) -{ - assign(y.rep, y.chars(), y.length()); - return *this; -} - -inline SubString& SubString::operator = (const SubString& y) -{ - assign(y.S.rep, y.chars(), y.length()); - return *this; -} - - - -inline void cat(const String& x, const String& y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const String& x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const String& x, const char* y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), y, -1); -} - -inline void cat(const String& x, char y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), &y, 1); -} - -inline void cat(const SubString& x, const String& y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const SubString& x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const SubString& x, const char* y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), y, -1); -} - -inline void cat(const SubString& x, char y, String& r) -{ - r.rep = Scat(r.rep, x.chars(), x.length(), &y, 1); -} - -inline void cat(const char* x, const String& y, String& r) -{ - r.rep = Scat(r.rep, x, -1, y.chars(), y.length()); -} - -inline void cat(const char* x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, x, -1, y.chars(), y.length()); -} - -inline void cat(const char* x, const char* y, String& r) -{ - r.rep = Scat(r.rep, x, -1, y, -1); -} - -inline void cat(const char* x, char y, String& r) -{ - r.rep = Scat(r.rep, x, -1, &y, 1); -} - -inline void cat(const String& a, const String& x, const String& y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const String& a, const String& x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const String& a, const String& x, const char* y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y, -1); -} - -inline void cat(const String& a, const String& x, char y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), &y, 1); -} - -inline void cat(const String& a, const SubString& x, const String& y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const String& a, const SubString& x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const String& a, const SubString& x, const char* y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), y, -1); -} - -inline void cat(const String& a, const SubString& x, char y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x.chars(), x.length(), &y, 1); -} - -inline void cat(const String& a, const char* x, const String& y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x, -1, y.chars(), y.length()); -} - -inline void cat(const String& a, const char* x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x, -1, y.chars(), y.length()); -} - -inline void cat(const String& a, const char* x, const char* y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x, -1, y, -1); -} - -inline void cat(const String& a, const char* x, char y, String& r) -{ - r.rep = Scat(r.rep, a.chars(), a.length(), x, -1, &y, 1); -} - - -inline void cat(const char* a, const String& x, const String& y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const char* a, const String& x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const char* a, const String& x, const char* y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y, -1); -} - -inline void cat(const char* a, const String& x, char y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), &y, 1); -} - -inline void cat(const char* a, const SubString& x, const String& y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const char* a, const SubString& x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y.chars(), y.length()); -} - -inline void cat(const char* a, const SubString& x, const char* y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), y, -1); -} - -inline void cat(const char* a, const SubString& x, char y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x.chars(), x.length(), &y, 1); -} - -inline void cat(const char* a, const char* x, const String& y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x, -1, y.chars(), y.length()); -} - -inline void cat(const char* a, const char* x, const SubString& y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x, -1, y.chars(), y.length()); -} - -inline void cat(const char* a, const char* x, const char* y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x, -1, y, -1); -} - -inline void cat(const char* a, const char* x, char y, String& r) -{ - r.rep = Scat(r.rep, a, -1, x, -1, &y, 1); -} - - - - -inline String& String::operator +=(const String& y) -{ - cat(*this, y, *this); - return *this; -} - -inline String& String::operator +=(const SubString& y) -{ - cat(*this, y, *this); - return *this; -} - -inline String& String::operator += (const char* y) -{ - cat(*this, y, *this); - return *this; -} - -inline String& String:: operator +=(char y) -{ - cat(*this, y, *this); - return *this; -} - - - - - -inline String operator + (const String& x, const String& y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const String& x, const SubString& y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const String& x, const char* y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const String& x, char y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const SubString& x, const String& y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const SubString& x, const SubString& y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const SubString& x, const char* y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const SubString& x, char y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const char* x, const String& y) return r; -{ - cat(x, y, r); -} - -inline String operator + (const char* x, const SubString& y) return r; -{ - cat(x, y, r); -} - -inline String reverse(const String& x) return r; -{ - r.rep = Sreverse(x.rep, r.rep); -} - -inline String upcase(const String& x) return r; -{ - r.rep = Supcase(x.rep, r.rep); -} - -inline String downcase(const String& x) return r; -{ - r.rep = Sdowncase(x.rep, r.rep); -} - -inline String capitalize(const String& x) return r; -{ - r.rep = Scapitalize(x.rep, r.rep); -} - - - - - -inline void String::prepend(const String& y) -{ - rep = Sprepend(rep, y.chars(), y.length()); -} - -inline void String::prepend(const char* y) -{ - rep = Sprepend(rep, y, -1); -} - -inline void String::prepend(char y) -{ - rep = Sprepend(rep, &y, 1); -} - -inline void String::prepend(const SubString& y) -{ - rep = Sprepend(rep, y.chars(), y.length()); -} - - - - -inline void String::reverse() -{ - rep = Sreverse(rep, rep); -} - - -inline void String::upcase() -{ - rep = Supcase(rep, rep); -} - - -inline void String::downcase() -{ - rep = Sdowncase(rep, rep); -} - - -inline void String::capitalize() -{ - rep = Scapitalize(rep, rep); -} - - - -inline char& String::operator [] (int i) -{ - if (((unsigned)i) >= length()) error("invalid index"); - return rep->s[i]; -} - -inline const char& String::operator [] (int i) const -{ - if (((unsigned)i) >= length()) error("invalid index"); - return rep->s[i]; -} - -inline char String::elem (int i) const -{ - if (((unsigned)i) >= length()) error("invalid index"); - return rep->s[i]; -} - -inline char String::firstchar() const -{ - return elem(0); -} - -inline char String::lastchar() const -{ - return elem(length() - 1); -} - - - -inline int String::index(char c, int startpos) const -{ - return search(startpos, length(), c); -} - -inline int String::index(const char* t, int startpos) const -{ - return search(startpos, length(), t); -} - -inline int String::index(const String& y, int startpos) const -{ - return search(startpos, length(), y.chars(), y.length()); -} - -inline int String::index(const SubString& y, int startpos) const -{ - return search(startpos, length(), y.chars(), y.length()); -} - -inline int String::index(const Regex& r, int startpos) const -{ - int unused; return r.search(chars(), length(), unused, startpos); -} - -inline int String::contains(char c) const -{ - return search(0, length(), c) >= 0; -} - -inline int String::contains(const char* t) const -{ - return search(0, length(), t) >= 0; -} - -inline int String::contains(const String& y) const -{ - return search(0, length(), y.chars(), y.length()) >= 0; -} - -inline int String::contains(const SubString& y) const -{ - return search(0, length(), y.chars(), y.length()) >= 0; -} - -inline int String::contains(char c, int p) const -{ - return match(p, length(), 0, &c, 1) >= 0; -} - -inline int String::contains(const char* t, int p) const -{ - return match(p, length(), 0, t) >= 0; -} - -inline int String::contains(const String& y, int p) const -{ - return match(p, length(), 0, y.chars(), y.length()) >= 0; -} - -inline int String::contains(const SubString& y, int p) const -{ - return match(p, length(), 0, y.chars(), y.length()) >= 0; -} - -inline int String::contains(const Regex& r) const -{ - int unused; return r.search(chars(), length(), unused, 0) >= 0; -} - -inline int String::contains(const Regex& r, int p) const -{ - return r.match(chars(), length(), p) >= 0; -} - - -inline int String::matches(const SubString& y, int p) const -{ - return match(p, length(), 1, y.chars(), y.length()) >= 0; -} - -inline int String::matches(const String& y, int p) const -{ - return match(p, length(), 1, y.chars(), y.length()) >= 0; -} - -inline int String::matches(const char* t, int p) const -{ - return match(p, length(), 1, t) >= 0; -} - -inline int String::matches(char c, int p) const -{ - return match(p, length(), 1, &c, 1) >= 0; -} - -inline int String::matches(const Regex& r, int p) const -{ - int l = (p < 0)? -p : length() - p; - return r.match(chars(), length(), p) == l; -} - - -inline int SubString::contains(const char* t) const -{ - return S.search(pos, pos+len, t) >= 0; -} - -inline int SubString::contains(const String& y) const -{ - return S.search(pos, pos+len, y.chars(), y.length()) >= 0; -} - -inline int SubString::contains(const SubString& y) const -{ - return S.search(pos, pos+len, y.chars(), y.length()) >= 0; -} - -inline int SubString::contains(char c) const -{ - return S.search(pos, pos+len, c) >= 0; -} - -inline int SubString::contains(const Regex& r) const -{ - int unused; return r.search(chars(), len, unused, 0) >= 0; -} - -inline int SubString::matches(const Regex& r) const -{ - return r.match(chars(), len, 0) == len; -} - - -inline int String::gsub(const String& pat, const String& r) -{ - return _gsub(pat.chars(), pat.length(), r.chars(), r.length()); -} - -inline int String::gsub(const SubString& pat, const String& r) -{ - return _gsub(pat.chars(), pat.length(), r.chars(), r.length()); -} - -inline int String::gsub(const Regex& pat, const String& r) -{ - return _gsub(pat, r.chars(), r.length()); -} - -inline int String::gsub(const char* pat, const String& r) -{ - return _gsub(pat, -1, r.chars(), r.length()); -} - -inline int String::gsub(const char* pat, const char* r) -{ - return _gsub(pat, -1, r, -1); -} - - - -inline ostream& operator<<(ostream& s, const String& x) -{ - s << x.chars(); return s; -} - - - -inline int operator==(const String& x, const String& y) -{ - return compare(x, y) == 0; -} - -inline int operator!=(const String& x, const String& y) -{ - return compare(x, y) != 0; -} - -inline int operator>(const String& x, const String& y) -{ - return compare(x, y) > 0; -} - -inline int operator>=(const String& x, const String& y) -{ - return compare(x, y) >= 0; -} - -inline int operator<(const String& x, const String& y) -{ - return compare(x, y) < 0; -} - -inline int operator<=(const String& x, const String& y) -{ - return compare(x, y) <= 0; -} - -inline int operator==(const String& x, const SubString& y) -{ - return compare(x, y) == 0; -} - -inline int operator!=(const String& x, const SubString& y) -{ - return compare(x, y) != 0; -} - -inline int operator>(const String& x, const SubString& y) -{ - return compare(x, y) > 0; -} - -inline int operator>=(const String& x, const SubString& y) -{ - return compare(x, y) >= 0; -} - -inline int operator<(const String& x, const SubString& y) -{ - return compare(x, y) < 0; -} - -inline int operator<=(const String& x, const SubString& y) -{ - return compare(x, y) <= 0; -} - -inline int operator==(const String& x, const char* t) -{ - return compare(x, t) == 0; -} - -inline int operator!=(const String& x, const char* t) -{ - return compare(x, t) != 0; -} - -inline int operator>(const String& x, const char* t) -{ - return compare(x, t) > 0; -} - -inline int operator>=(const String& x, const char* t) -{ - return compare(x, t) >= 0; -} - -inline int operator<(const String& x, const char* t) -{ - return compare(x, t) < 0; -} - -inline int operator<=(const String& x, const char* t) -{ - return compare(x, t) <= 0; -} - -inline int operator==(const SubString& x, const String& y) -{ - return compare(y, x) == 0; -} - -inline int operator!=(const SubString& x, const String& y) -{ - return compare(y, x) != 0; -} - -inline int operator>(const SubString& x, const String& y) -{ - return compare(y, x) < 0; -} - -inline int operator>=(const SubString& x, const String& y) -{ - return compare(y, x) <= 0; -} - -inline int operator<(const SubString& x, const String& y) -{ - return compare(y, x) > 0; -} - -inline int operator<=(const SubString& x, const String& y) -{ - return compare(y, x) >= 0; -} - -inline int operator==(const SubString& x, const SubString& y) -{ - return compare(x, y) == 0; -} - -inline int operator!=(const SubString& x, const SubString& y) -{ - return compare(x, y) != 0; -} - -inline int operator>(const SubString& x, const SubString& y) -{ - return compare(x, y) > 0; -} - -inline int operator>=(const SubString& x, const SubString& y) -{ - return compare(x, y) >= 0; -} - -inline int operator<(const SubString& x, const SubString& y) -{ - return compare(x, y) < 0; -} - -inline int operator<=(const SubString& x, const SubString& y) -{ - return compare(x, y) <= 0; -} - -inline int operator==(const SubString& x, const char* t) -{ - return compare(x, t) == 0; -} - -inline int operator!=(const SubString& x, const char* t) -{ - return compare(x, t) != 0; -} - -inline int operator>(const SubString& x, const char* t) -{ - return compare(x, t) > 0; -} - -inline int operator>=(const SubString& x, const char* t) -{ - return compare(x, t) >= 0; -} - -inline int operator<(const SubString& x, const char* t) -{ - return compare(x, t) < 0; -} - -inline int operator<=(const SubString& x, const char* t) -{ - return compare(x, t) <= 0; -} - - - - -inline SubString String::_substr(int first, int l) -{ - if (first < 0 || (unsigned)(first + l) > length() ) - return SubString(_nilString, 0, 0) ; - else - return SubString(*this, first, l); -} - - - - - -#define booleen_hh - - -typedef int booleen; - -const booleen VRAI=1; -const booleen FAUX=0; - - - - -#define valeur_bidon 12345678 - -#define fors(type, i, imin, imax) for(type i=imin; i< imax; i++) -#define fore(type, i, imin, imax) for(type i=imin; i<=imax; i++) - -void verif_nb_param(int argc, char* argv[], int nb_params); - -booleen f_exists(String nom); - - -template<class Type> -inline Type carre(const Type x) -{ - return x*x; -} - -template<class Type> -inline Type cube(const Type x) -{ - return x*x*x; -} - -template<class Type> -inline Type rac3(const Type x) -{ - if(fabs(x)<1E-5) - return 0; - else - if(x>0) - return exp(log(x)/3); - else - return -exp(log(-x)/3); -} - -template<class Type> -inline Type min(const Type a,const Type b) -{ - return (a>b)?b:a; -} - -template<class Type> -inline Type max(const Type a,const Type b) -{ - return (a<b)?b:a; -} - -template<class Type> -inline Type min(const Type a,const Type b,const Type c) -{ - return min(a,min(b,c)); -} - -template<class Type> -inline Type max(const Type a,const Type b,const Type c) -{ - return max(a,max(b,c)); -} - -template <class Type> -inline void echange(Type& a,Type& b) -{ - Type t=a; - a=b; - b=t; -} - - -String i2S(int n,int l=0); - -template <class Type> -inline booleen dans(Type x, Type a, Type b) -{ - return (a<=x) && (x<=b); -} - -template <class Type> -inline Type mabs(Type x) -{ - return (x<0) ? -x : x ; -} - -template <class Type> -inline booleen dans2(Type x, Type a, Type b) - -{ - return mabs(x-(a+b)/2) <= mabs((a-b)/2) ; -} - -template <class Type> -inline booleen proche(Type x, Type y, Type eps) -{ - return mabs(x-y)<eps; -} - -template <class Type> -inline int arrondi(Type x) -{ - return int(x+0.5); -} - -template<class Type> -unsigned char arrondi_ng(Type x) -{ - if((-0.5<x) && (x<255.5)) - return (unsigned char)(x+0.5); - else - { - if(x<-3.0 || x>268.0) - cerr<<"arrondi_ng : attention x= "<<x<<endl; - - if(x<0.0) - return 0; - else - return 255; - } -} - -template<class Type> -unsigned char arrondi_ng_err(Type x) -{ - if((-0.5<x) && (x<255.5)) - return (unsigned char)(x+0.5); - else - { - if(x<0.0) - return 0; - else - return 255; - } -} - -inline int nb_diff2(int a,int b) -{ - if(a==b) - return 1; - else - return 2; -} - -inline int nb_diff3(int a,int b,int c) -{ - if(a==b || a==c) - return nb_diff2(b,c); - else - return 1+nb_diff2(b,c); -} - -inline int nb_diff4(int a,int b,int c,int d) -{ - if(a==b || a==c || a==d) - return nb_diff3(b,c,d); - else - return 1+nb_diff3(b,c,d); -} - -float echMSB(float a); - -void plante(); -void arrete(); - -void touche(); - -template<class Type> -void lis_param(istream& f, Type& param) -{ - f>>param; - f.ignore(20000,'\n'); -} - -void lis_chaine(istream& s, String chaine); - -template<class Type_dest, class Type_source> -void convert(Type_dest& dest, const Type_source& source) -{ - dest=source; -} - - - - -struct Vect2Dent -{ - int di; - int dj; -}; - - - - - - -struct depl2D -{ - double x; - double y; - depl2D() : x(0.0), y(0.0) - { } - - - depl2D(double xx, double yy) : x(xx), y(yy) - { } - double amplitude() - { - return max(mabs(x),mabs(y)); - } -}; - -ostream& operator<<(ostream& s, depl2D m); - -class Mouvement -{ -private: - Mouvement* read_mv(istream& s); -protected: - double t_x; - double t_y; - double centre_x; - double centre_y; -public: - Mouvement(); - Mouvement(double i_t_x, double i_t_y, double i_centre_x, double i_centre_y); - virtual void Id()=0; - virtual void centre(double x,double y)=0; - virtual void applique(double& xx, double& yy, double x, double y) const=0; - virtual void applique(float& xx, float& yy, float x, float y) const=0; - virtual depl2D calc_depl(double x, double y)=0; - double Centre_x() const - { - return centre_x; - } - double Centre_y() const - { - return centre_y; - } - - virtual int nb_param() const=0; - - - virtual void init_from_vect_d(const double param[])=0; - virtual void init_vect_d(double param[]) const=0; - virtual void init_from_vect_f(const float param[])=0; - virtual void init_vect_f(float param[]) const=0; - - virtual Mouvement* clone() const=0; - virtual String nom() const=0; - virtual void dump(ostream& s) const=0; - - virtual booleen trop_grand(float seuil) const=0; - booleen trop_grand2(float seuil, float seuil_t) const; -}; - -ostream& operator<<(ostream& s, const Mouvement& m); -Mouvement* read_mv(istream& s); - - - - -class AFF; - -class LS : public Mouvement -{ -protected: - double k; - double theta; -public: - LS(); - LS(double i_t_x, double i_t_y, double i_k, double i_theta, double i_centre_x, double i_centre_y); - LS(istream& s); - LS(const AFF& aff); - int nb_param() const; - void update(double d_t_x, double d_t_y, double d_k, double d_theta); - void init_from_vect_d(const double param[]); - void init_vect_d(double param[]) const; - void init_from_vect_f(const float param[]); - void init_vect_f(float param[]) const; - friend class AFF; - void dump(ostream& s) const; -}; - -ostream& operator<<(ostream& s, const LS& m); - - - - -#define AFF_hh - - - -class LS; - -class AFF: public Mouvement -{ -protected: - double a; - double b; - double c; - double d; -public: - AFF(); - AFF(double i_t_x, double i_t_y, - double i_a, double i_b, double i_c, double i_d, - double i_centre_x, double i_centre_y); - AFF(istream& s); - AFF(const LS& ls); - int nb_param() const; - void init_from_vect_d(const double param[]); - void init_vect_d(double param[]) const; - void init_from_vect_f(const float param[]); - void init_vect_f(float param[]) const; - - friend class LS; - void dump(ostream& s) const; -}; - -ostream& operator<<(ostream& s, const AFF& m); - - - - - - - - - -LS::LS() : - k(0.0), theta(0.0) -{ } - -LS::LS(double i_t_x, double i_t_y, - double i_k, double i_theta, - double i_centre_x, double i_centre_y) : - Mouvement(i_t_x, i_t_y, i_centre_x, i_centre_y), - k(i_k), - theta(i_theta) -{ } - -LS::LS(istream& s) -{ - s>>k>>theta>>t_x>>theta>>k>>t_y>>centre_x>>centre_y; -} - -LS::LS(const AFF& aff): Mouvement(aff.t_x, aff.t_y, aff.centre_x, aff.centre_y) -{ - const double eps_k=1E-6; - if(mabs(aff.a-aff.d)>eps_k) - { - cout<<"AFF_2_LS : delta k < "<<eps_k<<endl; - cout<<aff.a<<endl<<aff.d<<endl; - plante(); - } - else - k=(aff.a+aff.d)/2; - - const double eps_theta=1E-6; - if(mabs(aff.c+aff.b)>eps_theta) - { - cout<<"AFF_2_LS : delta theta < "<<eps_theta<<endl; - plante(); - } - else - theta=(aff.c-aff.b)/2; -} - -int LS::nb_param() const -{ - return 4; -} - -void LS::update(double d_t_x, - double d_t_y, - double d_k, - double d_theta) -{ - t_x+=d_t_x; - t_y+=d_t_y; - k+=d_k; - theta+=d_theta; -} - -void LS::init_from_vect_d(const double param[]) -{ - t_x=param[0]; - t_y=param[1]; - k=param[2]; - theta=param[3]; -} - -void LS::init_vect_d(double param[]) const -{ - param[0]=t_x; - param[1]=t_y; - param[2]=k; - param[3]=theta; -} - -void LS::init_from_vect_f(const float param[]) -{ - t_x=param[0]; - t_y=param[1]; - k=param[2]; - theta=param[3]; -} - -void LS::init_vect_f(float param[]) const -{ - param[0]=t_x; - param[1]=t_y; - param[2]=k; - param[3]=theta; -} - - - - - - - - - - - - - - - -void LS::dump(ostream& s) const -{ - const int largeur=14; - s.setf(ios::left,ios::adjustfield); - s<<nom()<<endl - <<setw(largeur)<<k<<setw(largeur)<<-theta<<setw(largeur)<<t_x<<endl - <<setw(largeur)<<theta<<setw(largeur)<<k<<setw(largeur)<<t_y<<endl - <<centre_x<<' '<<centre_y<<endl; -} - -ostream& operator<<(ostream& s, const LS& m) -{ - m.dump(s); - return s; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb102.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb102.C deleted file mode 100755 index 9bbd47f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb102.C +++ /dev/null @@ -1,34 +0,0 @@ -// Error: intenral compiler error on 1998/05/28 snapshot. -#include <stdio.h> -#include <stdlib.h> - -void evilRises (void **ptr) -{ - int *pi; - - pi = new int; - - *pi = 0; - - *ptr = (void *)pi; -} - -int main (int argc, char *argv[]) -{ -#ifdef WORKAROUND - union foo -#else - union -#endif - { - int a; - int b; - int c; - } *fred, barney; - - evilRises((void **)&fred); - - barney = *fred; - - return EXIT_SUCCESS; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb103.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb103.C deleted file mode 100755 index ef25fb4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb103.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// Error: Internal compiler error in 2.7.2 & EGCS 1.0.0 - -template <int nlimb, int i> -inline unsigned f (unsigned* ptr); -template <int nlimb> -inline unsigned f<nlimb,nlimb> (unsigned* ptr) -{ //ERROR - partial specialization of function? - return 1; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb104.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb104.C deleted file mode 100755 index 10c5945..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb104.C +++ /dev/null @@ -1,29 +0,0 @@ -#include <string.h> - -class SomeClass_t { -public: - SomeClass_t () : x (11) {} -protected: - float x; -}; - -class DynamicOnly_t { -public: - static DynamicOnly_t* create (const char* name = "UNDEF", - const SomeClass_t& somec = *(new SomeClass_t -())) { - return new DynamicOnly_t (name, somec); - } - DynamicOnly_t (const char* name, const SomeClass_t& somec) : - m_somec (somec) { - strncpy (m_Name, name, sizeof (m_Name)); - } -private: - SomeClass_t m_somec; - char m_Name[255]; -}; - -int main (int argc, char* argv[]) { - DynamicOnly_t* ptr = DynamicOnly_t::create (); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb105.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb105.C deleted file mode 100755 index f431fba..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb105.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -template< class T > -void sort( T* t, int n ) - { - struct -/*line5*/ { - int operator()(T i, T j) - { - return (i < j) ? -1 : ((j < i) ? 1 : 0) ; - } - } c ; - sort(t, n, c, 0) ; - } diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb106.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb106.C deleted file mode 100755 index 9363171..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb106.C +++ /dev/null @@ -1,37 +0,0 @@ -// Skip if not native -// Special g++ Options: -O2 -fPIC -// Build don't link: -struct T -{ - char* f1; - int f2; -}; - -void f(T*); -int g(); - -extern char a1[]; - -inline int m(int a, int b) {return b < a ? 2 : 1;} - -void -h() -{ - T a[10]; - int i(0); - - bool c; - if (c) - { - a[i++].f1 = "asf"; - f(a); - i = 0; - } - - a[i].f1 = &a1[1]; - a[i].f2 = m(1, g()); - i++; - - a[i].f1 = "zxv"; - a[i].f2 = 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb107.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb107.C deleted file mode 100755 index 8d0f3cb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb107.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -template <class T> -struct X -{ - virtual void f(int) const; -}; - -template <class T> -struct Y: public X<T> -{ - virtual void f(int) const; -}; - -template <class T> -void Y<T>::f(int) const -{ -} - -template <> -void Y<bool>::f(int) const; diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb108.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb108.C deleted file mode 100755 index 3bf71b0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb108.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -class X -{ - public: - virtual void f() const = 0; -}; - -template <class T> -class Y: public X -{ - public: - virtual void f() const; -}; - -template <class T> -void Y<T>::f() const -{ -} - -template <> -void Y<bool>::f() const; diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb109.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb109.C deleted file mode 100755 index ccd206b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb109.C +++ /dev/null @@ -1,71 +0,0 @@ -#include<map> -#include<iostream.h> -#include<vector> -#include<string> - -// empty parameter class with a minimal set of operations -// if there are no weights for edges necessary -struct Empty -{ - public: - Empty(int=0) {} - bool operator<(const Empty&) const { return true;} -}; -inline ostream& operator<<(ostream& os, const Empty&) { return os;} -inline istream& operator>>(istream& is, Empty& ) { return is;} - - -template<class VertexType, class EdgeType> -class Graph -{ - public: - // public type interface - typedef map<int, EdgeType > Successor; - typedef pair<VertexType, Successor> vertex; - typedef vector<vertex> GraphType; - typedef typename GraphType::iterator iterator; - typedef typename GraphType::const_iterator const_iterator; - - // a lot of stuff deleted .... - - private: - bool directed; - GraphType C; // container - ostream* pOut; -}; // ERROR - candidates - -// all graph-methods delet -template<class VertexType, class EdgeType> -ostream& operator<<(ostream& os, Graph<VertexType,EdgeType>& G) -{ - // display of vertices with successors - for(int i = 0; i < G.size(); ++i) // ERROR - no size function - { - os << G[i].first << " <"; // ERROR - no index operator - - // The compiler does not like this line!!!!!! - typename Graph<VertexType, EdgeType>::Successor::iterator - startN = G[i].second.begin(), // ERROR - no index operator - endN = G[i].second.end(); // ERROR - no index operator - - while(startN != endN) - { - os << G[(*startN).first].first << ' ' // vertex - << (*startN).second << ' '; // ERROR - no index operator - ++startN; - } - os << ">\n"; - } - return os; -} - -int main() -{ - // no edge weighting, therefore type Empty: - Graph<string, Empty> V(true); // ERROR - no bool constructor - // ReadGraph(V, "gra1.dat"); - - // display of vertices with successors - cout << V; - -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb11.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb11.C deleted file mode 100755 index 307aa6a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb11.C +++ /dev/null @@ -1,29 +0,0 @@ -// Build don't link: - -template<int N1, int N2> -struct meta_max { - enum { max = (N1 > N2) ? N1 : N2 }; -}; - -struct X { - enum { - a = 0, - n = 0 - }; -}; - -template<class T1, class T2> -struct Y { - - enum { - a = T1::a + T2::a, - - // NB: if the next line is changed to - // n = (T1::n > T2::n) ? T1::n : T2::n - // the problem goes away. - - n = meta_max<T1::n,T2::n>::max - }; -}; - -int z = Y<X,X>::a; diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb110.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb110.C deleted file mode 100755 index 54a1c8b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb110.C +++ /dev/null @@ -1,26 +0,0 @@ -// Build don't link: -class X -{ - public: - virtual void f() const = 0; -}; - -template <class T> -class Y: public X -{ - public: - virtual void f() const; -}; - -template <class T> -void Y<T>::f() const -{ -} - -template <> -void Y<bool>::f() const; - -template <> -void Y<bool>::f() const -{ -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb111.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb111.C deleted file mode 100755 index 8afc921..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb111.C +++ /dev/null @@ -1,6 +0,0 @@ - int main() { - for(int i=1; i < 9; i++); - for(int i=1; i < 9; i++); - - return 0; - } diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb112.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb112.C deleted file mode 100755 index 3233287..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb112.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -template <class STRUCT, class MEMBER> inline STRUCT * -setback(MEMBER *bp, MEMBER STRUCT::*offset) -{ - // The implementation of this function may be platform dependend - if(!bp) return 0; // NULL pointers remain NULL - union { int i; MEMBER STRUCT::*of; } u; // Switch types. Casting won't -+work. - u.of = offset; - return (STRUCT *) ((int) bp - u.i); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb113.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb113.C deleted file mode 100755 index f3c28b9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb113.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -#include <iostream.h> - -class X : public std::streambuf -{ -} ; diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb114.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb114.C deleted file mode 100755 index 020b88b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb114.C +++ /dev/null @@ -1,29 +0,0 @@ -#include <string.h> - -class SomeClass_t { -public: - SomeClass_t () : x (11) {} -protected: - float x; -}; - -class DynamicOnly_t { -public: - static DynamicOnly_t* create (const char* name = "UNDEF", - const SomeClass_t& somec = *(new SomeClass_t -())) { - return new DynamicOnly_t (name, somec); - } - DynamicOnly_t (const char* name, const SomeClass_t& somec) : - m_somec (somec) { - strncpy (m_Name, name, sizeof (m_Name)); - } -private: - SomeClass_t m_somec; - char m_Name[255]; -}; - -int main (int argc, char* argv[]) { - DynamicOnly_t* ptr = DynamicOnly_t::create (); //* - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb115.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb115.C deleted file mode 100755 index 30eab78..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb115.C +++ /dev/null @@ -1,9 +0,0 @@ -// Special g++ Options: -O - -#include <iostream.h> -#include <typeinfo> - -int main() { - int *i1, *i2; - cerr << (typeid(i1)==typeid(i2)) << endl; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb116.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb116.C deleted file mode 100755 index 63f5e79..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb116.C +++ /dev/null @@ -1,23 +0,0 @@ -template <class INT> -class b -{ -private: - char a(int x) - { - union { - int i; - char c; - } val; - val.i = x; - return val.c; - }; - -public: - b() { - } -}; - -int main() { - b<int> n; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb118.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb118.C deleted file mode 100755 index 23498c7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb118.C +++ /dev/null @@ -1,37 +0,0 @@ -// Test for obsolete specialization syntax. Turn off -pedantic. -// Special g++ Options: - -#include <iostream.h> -#include <typeinfo> - -template <typename T> -class A { -public: - void test (); -}; - -template <typename T> -void -A<T>::test(){ - cerr << "test for " << typeid(*this).name() << endl; -} -// Specialization declaration -void -A<double>::test(); - -// Specialization definition -void -A<double>::test(){ - cerr << "specialization for " << typeid(*this).name() << endl; -} - - -int -main(){ - A<int> ai; - A<double> ad; - ai.test(); - ad.test(); - return 0; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb119.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb119.C deleted file mode 100755 index cecea83..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb119.C +++ /dev/null @@ -1,10 +0,0 @@ -template<bool B> -void f() -{ -} - -int main() -{ - f<bool>(); // ERROR - .* -} - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb12.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb12.C deleted file mode 100755 index 5c948f1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb12.C +++ /dev/null @@ -1,32 +0,0 @@ -// Build don't link: -// Error: Internal Compiler Error in 2.7.2. & egcs 1.0.0 - -#ifndef NO_META_MAX -template<int N1, int N2> -struct meta_max { - enum { max = (N1 > N2) ? N1 : N2 }; -}; -#endif - -struct X { - enum { - a = 0, - n = 0 - }; -}; - -template<class T1, class T2> -struct Y { - - enum { - a = T1::a + T2::a, - - // NB: if the next line is changed to - // n = (T1::n > T2::n) ? T1::n : T2::n - // the problem goes away. - - n = meta_max<T1::n,T2::n>::max - }; -}; - -int z = Y<X,X>::a; diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb120.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb120.C deleted file mode 100755 index b94820c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb120.C +++ /dev/null @@ -1,22 +0,0 @@ -template<double functionToIntegrate(double)> -double integrate(double a, double b, int numSamplePoints) -{ - // PRECONDITION(numSamplePoints > 1); - double delta = (b-a) / (numSamplePoints-1); - double sum = 0.; - for (int i=0; i < numSamplePoints; ++i) - sum += functionToIntegrate(a + i*delta); - return sum * (b-a) / numSamplePoints; -} - -inline double myFunction(double x) -{ - return 1 / (1 + x); -} - -// Example use -int main() { -double z = integrate<myFunction>(0.0, 1.0, 50); - return 0 ; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb121.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb121.C deleted file mode 100755 index 456615d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb121.C +++ /dev/null @@ -1,21 +0,0 @@ -//Build don't link: -class A { -private: - int i1_; -public: - void f(int const i1 = 1); // ERROR - previous specification -}; - -void -A::f(int const i1 = 1) -{ // ERROR - duplicate default argument - i1_ = i1; -} - -int -main() -{ - A a; - a.f(); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb122.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb122.C deleted file mode 100755 index 9cf3033..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb122.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -// Disable -ansi -pedantic-errors because of GNU extension -// Special g++ Options: -template<class foo> -class bar { -public: - void baz() { (({ while( foo::baz() );})); } -}; -template<class foo> -void baz() { (({ while( foo::baz() );})); } diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb123.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb123.C deleted file mode 100755 index dd729d4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb123.C +++ /dev/null @@ -1,10 +0,0 @@ -// Special g++ Options: -O2 -W -// Build don't link: -#include "stdio.h" - -void writeNote() throw( int ) -{ - printf( "hello world\n" ); - try { } - catch( int ){ throw; } -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb124.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb124.C deleted file mode 100755 index c9c7395..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb124.C +++ /dev/null @@ -1,3 +0,0 @@ -//Build don't link: -#include <stdexcept> -class X : public std::runtime_error {}; diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb125.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb125.C deleted file mode 100755 index aff6ae6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb125.C +++ /dev/null @@ -1,23 +0,0 @@ -// This is a crash test; we don't care how many normal errors we get. -// excess errors test - XFAIL *-*-* - -struct test_box - { - void print(void); - }; - -void test<class BOX> (test_box *); // ERROR - illegal code - -class test_square - { - friend void test<class BOX> (test_box *); // ERROR - does not match - } - - - -template <class BOX> void test(BOX *the_box) // ERROR - semicolon missing - { - the_box->print(); - }; - -template void test<> (test_box *); diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb126.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb126.C deleted file mode 100755 index 8c634e8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb126.C +++ /dev/null @@ -1,29 +0,0 @@ -#include <string.h> - -class SomeClass_t { -public: - SomeClass_t () : x (11) {} -protected: - float x; -}; - -class DynamicOnly_t { -public: - static DynamicOnly_t* create (const char* name = "UNDEF", - const SomeClass_t& somec = *(new SomeClass_t -())) { - return new DynamicOnly_t (name, somec); - } - DynamicOnly_t (const char* name, const SomeClass_t& somec) : - m_somec (somec) { - strncpy (m_Name, name, sizeof (m_Name)); - } -private: - SomeClass_t m_somec; - char m_Name[255]; -}; - -int main (int argc, char* argv[]) { - DynamicOnly_t* ptr = DynamicOnly_t::create (); - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb127.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb127.C deleted file mode 100755 index cf5f69f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb127.C +++ /dev/null @@ -1,59 +0,0 @@ -// Gets ICE 40. - -#include <vector> -#include<string> - -using namespace std; - -class ODEsolver -{ - private: - void eulerODE(vector<double>& y, double& t, double& dt); - void midpointODE(vector<double>& y, double& t, double& dt); - - protected: - void (ODEsolver::*useMethod)(vector<double>&, double&, double&); - void init(); - - public: - ODEsolver(); - void timeloop(vector<double>& y, double ts, double te, double dt); -}; - - -ODEsolver::ODEsolver() -{ - init(); -} - - -void ODEsolver::eulerODE(vector<double>& y, double& t, double& dt) -{ - y[0] = dt * 2.; -} - -void ODEsolver::midpointODE(vector<double>& y, double& t, double& dt) -{ - y[0] = dt * 3.; -} - - - -void ODEsolver::init() -{ - ODEsolver::useMethod = &ODEsolver::midpointODE; -} - -void ODEsolver::timeloop(vector<double>& y, double ts, double te, double dt) -{ - (ODEsolver::useMethod)(y,ts,dt); -} - -int main (int nargs, char** args) -{ - ODEsolver solver; - vector<double> y(2); double t_start=5.; double t_end=7.; double dt=2.; - solver.timeloop(y,t_start,t_end,dt); - cout << y[0] << endl; - return(0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb128.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb128.C deleted file mode 100755 index d056e39..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb128.C +++ /dev/null @@ -1,11 +0,0 @@ -template<class T> -struct A { - typedef T* iterator; // ERROR - pointer to reference -public: - A(){} -}; - -void f() -{ - A<int&> a; // ERROR - instantiated from here -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb129.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb129.C deleted file mode 100755 index a39d0c5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb129.C +++ /dev/null @@ -1,22 +0,0 @@ -// Build don't link: -// Gives ICE on EGCS release branch as of 98/06/08 on i686-pc-linux-gnulibc1) -// From: Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-karlsruhe.de> -// Message-Id: <199806081358.PAA02505@achibm5.chemie.uni-karlsruhe.de> -#include <list> -#include <functional> -#include <algorithm> -#include <cassert> -int main() -{ - list<int> l; - l.push_back(1); - l.push_back(2); - - list<int>::iterator it = - find_if( l.begin(), l.end(), - // This is a typo, it should be bind2nd, but an - // ICE is not a very helpful diagnostic! - binder2nd( equal_to<int>(), 2 ) ); // ERROR - - assert( *(it) == 2 ); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb13.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb13.C deleted file mode 100755 index f0e4848..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb13.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -template<class T> -class Array { -public: - typedef T T_numtype; -}; - -template<class T_array> -void f(T_array, typename T_array::T_numtype) -{ -} - -void g() -{ - f(Array<float>(), float()); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb130.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb130.C deleted file mode 100755 index 48bbb8f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb130.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -// Gives spurious warnings when compiled with -Wall -// EGCS 06/08/98 i686-pc-linux-gnulibc1 -// Special g++ Options: -Wall -// Message-Id: <199806081358.PAA02505@achibm5.chemie.uni-karlsruhe.de> -// From: Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-karlsruhe.de> - - -#include <hash_set> -std::hash_set<int> foo; - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb131.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb131.C deleted file mode 100755 index d966fd9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb131.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -// From: Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-karlsruhe.de> -// Reported against EGCS snaps 98/06/18. - -struct a { - a(); - void junk( float ); - void junk( double ); - - void bar( double ); - void bar( float ); - - void foo( void (a::*member)(float) ); // ERROR - candidate -}; - -a::a() -{ - foo( &junk ); // ERROR - junk is an unqualified-id. - foo( &bar ); // ERROR - bar is an unqualified-id. -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb132.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb132.C deleted file mode 100755 index 5b6bc6a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb132.C +++ /dev/null @@ -1,28 +0,0 @@ -// Build don't link: -// From: Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-karlsruhe.de> -// Reported against EGCS snaps 98/06/28. -// Special g++ Options: -O -Wall -fgcse -frerun-loop-opt -// -// Compilation of this program with the flags g++ -Wall -O -fgcse -// -frerun-loop-opt or -O2 produces spurious warnings in the standard -// header <std/bastring.h>. -// -// They vanish if the declaration of a::b is taken out. - -#include <string> - -string foo(); -struct a { - void bar(); - enum b { c, d }; - b theb; - string baz; -}; - -void -a::bar() -{ - baz += foo() + foo(); - baz += foo() + foo() + "foo"; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb133.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb133.C deleted file mode 100755 index 5ffdf9e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb133.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -// Gives ICE 109 -// From: Klaus-Georg Adams <Klaus-Georg.Adams@chemie.uni-karlsruhe.de> -// Reported against EGCS snaps 98/06/28. - -int main() -{ - try { - } - catch (bad_alloc) { // ERROR - parse error - return 1; - } - return 0; -} - - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb14.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb14.C deleted file mode 100755 index de00e7b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb14.C +++ /dev/null @@ -1,36 +0,0 @@ -template<int N> -struct I { -}; - -template<class T> -struct A { - - int r; - - template<class T1, class T2> - void operator()(T1, T2) - { r = 0; } - - template<int N1, int N2> - void operator()(I<N1>, I<N2>) - { r = 1; } -}; - -int main() -{ - A<float> x; - I<0> a; - I<1> b; - - x(a,b); - if (x.r != 1) - abort(); - - x(float(), double()); - if (x.r != 0) - abort(); - - return 0; -} - - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb15.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb15.C deleted file mode 100755 index 902d463..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb15.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: -#include<iostream.h> -#include<stddef.h> - -struct A { - A() { - cerr<<"A constructing\n"; - throw 1; - } - void *operator new(size_t sz) { - cerr<<"A allocated\n"; - return ::operator new(sz); - } - void operator delete (void *p) { - cerr<<"A deleted\n"; - ::operator delete (p); - } -}; - -int main() { - try { - new A(); - } catch (...) { - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb16.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb16.C deleted file mode 100755 index 5dc259d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb16.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -template<class T> -struct A { - typedef T T1; -}; - -template<class T> -struct B : T::T1 { // insert `typename' before T::T1 -}; - -struct C { }; - -B<A<C> > z; - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb17.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb17.C deleted file mode 100755 index f32dadb..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb17.C +++ /dev/null @@ -1,56 +0,0 @@ -// excess errors test - XFAIL -// covariant return types in are currently not support for complex inheritance -#include <stdio.h> - -class A { -public: - virtual void print(); - virtual A * clone(); -}; - -class B : virtual public A { -public: - void print(); - B * clone(); -}; - -void A::print() -{ - printf("A\n"); -} - -void B::print() -{ - printf("B\n"); -} - - -A * A::clone() -{ - return this; -} - -B * B::clone() -{ - return this; -} - - -int main() -{ - A * a = new B; - B * b = dynamic_cast<B *>(a); - - printf("%p\n",b); // (*2*) - b->print(); - - a = b; - printf("%p\n",a); - a->print(); - - a = a->clone(); - printf("%p\n",a); - a->print(); // (*1*) - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb18.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb18.C deleted file mode 100755 index fd953fe..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb18.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: -class C { }; - -void foo() -{ - C c; - void * v = static_cast<void *>(c); // ERROR - illegal cast -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb19.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb19.C deleted file mode 100755 index a5ddd36..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb19.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: - -#define CRASH 1 -#ifdef CRASH -#define VIRTUAL virtual -#else -#define VIRTUAL -#endif - -class A {}; -class B : public VIRTUAL A {}; -template <class Imp> class C : public /*virtual*/ Imp {}; -// define CRASH and uncomment here ^^^^^^^^^^^ -// and the crash goes away!!!! - -template class C<B>; diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb2.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb2.C deleted file mode 100755 index b200021..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb2.C +++ /dev/null @@ -1,17 +0,0 @@ -// Build don't link: -typedef __SIZE_TYPE__ size_t; -inline void *operator new(size_t, void *place) throw() { return place; } - -struct A -{ - A(); - ~A(); -}; - -void testfunc( void ) -{ - A* mybuf; - A v[1]; - - new (mybuf) A(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb20.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb20.C deleted file mode 100755 index 08c76d0..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb20.C +++ /dev/null @@ -1,33 +0,0 @@ -// Error: ICE on 2.7.2.3 and EGCS 1.0.0. -// Build don't link: - -template<int N1, int N2> -struct meta_max { - enum { max = (N1 > N2) ? N1 : N2 }; -}; - -struct X { - enum { - a = 0, - n = 0 - }; -}; - -template<class T1, class T2, class T3> -struct Y { - - enum { - a = T1::a + T2::a + T3::a, - n = meta_max<meta_max<T1::n,T2::n>::max, T3::n>::max - }; -}; - -template<class T> -struct Z { - enum { - a = T::a, - n = T::n - }; -}; - -Z<Y<X,X,X> > z; diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb21.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb21.C deleted file mode 100755 index b3468d9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb21.C +++ /dev/null @@ -1,22 +0,0 @@ -#include <vector> - -#include <strstream.h> - -/*----------------------------------------*/ - -struct connection_t { - connection_t() {} -}; - -vector<connection_t> connections; - -/*----------------------------------------*/ - -int -main() { - ostrstream str; - - connections.insert(connections.end(), connection_t()); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb22.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb22.C deleted file mode 100755 index bfe513b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb22.C +++ /dev/null @@ -1,26 +0,0 @@ -// Ambiguous conversion, three candidates: -// builtin == (int, int), and the two user-defined operators -// Each one requires a user-defined ICS where another uses builtin conversions, -// so none is the best viable function. - -class MyInt -{ -public: - MyInt(int = 0) {} - operator int() const {return 2;} -}; - -bool operator==(const MyInt& a, const int& b) -{ // ERROR - candidate - return (int)a == b; -} - -bool operator==(const MyInt& a, const MyInt& b) -{ // ERROR - candidate - return (int)a == (int)b; -} - -bool f() -{ - return 3 == MyInt(); // ERROR - ambiguous -} // ERROR - no return value diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb23.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb23.C deleted file mode 100755 index 8a0602a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb23.C +++ /dev/null @@ -1,20 +0,0 @@ -// Build don't link: -class foo { -protected: - void __duplicate (); - -}; - -class bar : public virtual foo { -protected: - void __duplicate() { - foo::__duplicate (); - } -}; - -class oops : public virtual bar { -protected: - void __duplicate() { - foo::__duplicate (); - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb24.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb24.C deleted file mode 100755 index b1f0104..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb24.C +++ /dev/null @@ -1,23 +0,0 @@ -// Build don't link: -#include <iostream.h> - -template < class T > -class X -{ - protected: - - union { - int x; - double y; - }; -}; - -template < class T > -class Y : public X<T> -{ - public: - - using X<T>::x; - - void f () { cout << x << endl; } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb26.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb26.C deleted file mode 100755 index 2374b55..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb26.C +++ /dev/null @@ -1,30 +0,0 @@ -// -// egcs-2.90.06 -// cannot declare friend of enclosing class using its scope, works fine -// without scope or for definition of foo::bar::f -// - -class foo -{ -public: - static int f(); - class bar { - friend int foo::f(); -// friend int f(); - static int x; - public: - static int f() {return foo::f();}; - }; -}; - -int foo::bar::x; - -int foo::f() { - return bar::x; -} - -int -main () -{ - return foo::bar::f (); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb27.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb27.C deleted file mode 100755 index 9e44f3a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb27.C +++ /dev/null @@ -1,39 +0,0 @@ -/* bug.cc */ -/* simple program to demonstrate the bug with named return values in gcc -*/ -/* (w) 4.9.97 by Kurt Garloff <K.Garloff@ping.de> */ -// Special g++ Options: -// 8/28/1998 - This dies in add_conversions from dfs_walk, null CLASSTYPE_METHOD_VEC -// for the test<T> record_type. This is marked as an expected failure for now, -// until we actually fix it. - -#include <iostream.h> - -template <class T> class test; -template <class T> test<T> operator + (const test<T>& a, const test<T>& b); - -// A simple numerical class -template <class T> -class test -{ - T elem; - public: - test () { elem = 0; }; - test (const T& a) { elem = a; }; - test<T>& operator += (const test<T>& a) { elem += a.elem; return *this; }; - friend test<T> operator + <> (const test<T>&, const test<T>&); - friend ostream& operator << (ostream& os, const test<T>& a) - { return os << a.elem; }; -}; - -// named return value version -template <class T> -test<T> operator + (const test<T>& a, const test<T>& b) return c(a); -{ c += b; }; - -int main() -{ - test<int> x, y; - x += 5; cout << x << endl; - y = x + test<int>(2); cout << y << endl; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb28.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb28.C deleted file mode 100755 index 6c3130e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb28.C +++ /dev/null @@ -1,17 +0,0 @@ -//Build don't link: -#include <vector.h> -enum s { S }; -class a -{ - vector<s> vs; - friend class b; -}; -struct b -{ - vector<a> va; - operator vector< vector<s> >() - { - vector< vector<s> > vvs(va.size()); - return vvs; - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb29.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb29.C deleted file mode 100755 index f1017a7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb29.C +++ /dev/null @@ -1,16 +0,0 @@ -//Build don't link: -#include <vector.h> -enum s { S }; -class a -{ - vector<s> vs; - friend class b; -}; -struct b -{ - vector<a> va; - operator vector< vector<s> >() - { - return vector< vector<s> >(va.size()); - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb3.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb3.C deleted file mode 100755 index d257043..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb3.C +++ /dev/null @@ -1,11 +0,0 @@ -// Build don't link: -#include <complex.h> -template<class T> -class Vec { -public: - Vec() { data = new T; } - Vec<T> split() { Vec<T> tmp; operator=(tmp); return tmp; } - void operator=(const Vec<T> &v) { data = new T; } - T *data; -}; -template class Vec<complex<double> >; diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb30.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb30.C deleted file mode 100755 index c116ab4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb30.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -#include <fstream.h> - -class bifstream : public ifstream { -public: - bifstream(); -// ~bifstream(); -}; - -void load_bin() -{ - bifstream InFile; - - if (!InFile) - return; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb31.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb31.C deleted file mode 100755 index 1a18af5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb31.C +++ /dev/null @@ -1,17 +0,0 @@ -#include<iostream.h> - -int main() { - try { - throw 1; - } catch(...) { - try { - throw; - } catch(int) { - } - try { - throw; - } catch(int) { - } - } - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb32.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb32.C deleted file mode 100755 index 95e1617..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb32.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -class A { -public: - void malloc(unsigned int); -}; - -void A::malloc(unsigned int) {} - -void foo() { - A a; - a.malloc(3); // <-- line 10 -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb33.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb33.C deleted file mode 100755 index 3797ab3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb33.C +++ /dev/null @@ -1,11 +0,0 @@ -#include <fstream.h> -#include <stdio.h> - -int -main() -{ - printf("If you see this, you don't have a problem!\n"); -#ifdef EXPOSE_BUG - ifstream a; -#endif -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb34.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb34.C deleted file mode 100755 index 08167b5..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb34.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -class Base { -public: - class Bar { public: virtual ~Bar() {}; }; -}; - -class Derived : public Base { -public: - class Bar : public Base::Bar {}; -}; - -template <class T> -class XYZ : public T::Bar { -}; - -void test() { - XYZ<Base> b; - XYZ<Derived> d; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb35.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb35.C deleted file mode 100755 index e28fb49..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb35.C +++ /dev/null @@ -1,38 +0,0 @@ -// Build don't link: - -class string -{ -public: - string(); - string(const string& x); - string(const char* t); - - ~string(); -}; - -void set_status(string message); - -class StatusDelay { -private: - string cause; - -public: - StatusDelay(const string& c) - : cause(c) - { - set_status(cause); - } - - ~StatusDelay() - { - set_status(cause); - } -}; - -static char delay_message[] = "Filtering files"; - -static void searchRemote() -{ - StatusDelay delay(delay_message); - return; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb36.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb36.C deleted file mode 100755 index 415e5bd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb36.C +++ /dev/null @@ -1,17 +0,0 @@ -#include <vector> - -template <typename T=float> class foo { -public: - foo(); - foo(vector<int> v); -private: - vector<int> v; - T t; -}; - -template <typename T> -foo<T>::foo() :v(), t() {} -template <typename T=float> -foo<T>::foo(vector<int> v_) :v(v_), t() {} // ERROR - default arg for member template - -foo<float> a; diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb37.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb37.C deleted file mode 100755 index be4b57d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb37.C +++ /dev/null @@ -1,26 +0,0 @@ -// Build don't link: -template<class T> -struct A { - typedef T T1; -}; - -template<class T> -struct B { - typedef T T2; -}; - -template<class T> -struct C { -}; - -template<class E> -C<typename E::T2::T1> -foo (E) -{ - return C<typename E::T2::T1>(); -} - -void test() -{ - foo(B<A<int> >()); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb38.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb38.C deleted file mode 100755 index 9a75405..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb38.C +++ /dev/null @@ -1,37 +0,0 @@ -// Build don't link: -class string -{ -public: - string(); - string(const string& x); - string(const char* t); - - ~string(); -}; - -void set_status(string message); - -class StatusDelay { -private: - string cause; - -public: - StatusDelay(const string& c) - : cause(c) - { - set_status(cause); - } - - ~StatusDelay() - { - set_status(cause); - } -}; - -static char delay_message[] = "Filtering files"; - -static void searchRemote() -{ - StatusDelay delay(delay_message); - return; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb39.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb39.C deleted file mode 100755 index feefca7..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb39.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -#include <ctype.h> -#include <iostream.h> -// #include <streambuf.h> -#include <libio.h> -#include <strstream.h> - -extern bool foo2 (ostream &out, istream &in); - -bool -foo1 (ostream &out, const char *in) -{ - strstreambuf sb (in, (int) strlen (in)); - istream fmt (&sb); - return foo2 (out, fmt); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb4.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb4.C deleted file mode 100755 index b51d3ea..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb4.C +++ /dev/null @@ -1,48 +0,0 @@ -// Error: Internal Compiler Error in GCC 2.7.2 and EGCS 1998/05/28 snapshot. - -#include <iostream.h> - -class some_base - { -public: - class base_func_args; - virtual void func(base_func_args &) = 0; // ERROR - referenced below - }; - -class some_base::base_func_args - { -public: - int i; - }; - -class some_derived : public some_base - { -public: - class derived_func_args; - void func(derived_func_args &); - }; - - -class derived_func_args : public some_base::base_func_args - { -public: - float f; - }; - -class some_derived::func(derived_func_args &a) // ERROR - illegal member syntax - { - cout << a.i << ' ' << a.f << endl; - } - -int -main() - { - some_derived d; // ERROR - abstract class - some_derived::derived_func_args dfa; // ERROR - incomplete class - some_base *b = &d; - - dfa.i = 10; - dfa.f = 20; - b->func(dfs); // ERROR - dfs not declared - return 0; - } diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb41.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb41.C deleted file mode 100755 index 3c97e01..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb41.C +++ /dev/null @@ -1,13 +0,0 @@ -#include <iostream.h> -#include <iterator.h> -#include <string> - -ostream_iterator<string> oo(cout); - -int main() -{ - *oo = "Hello, "; - ++oo; - *oo = "world!\n"; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb43.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb43.C deleted file mode 100755 index 7f86472..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb43.C +++ /dev/null @@ -1,38 +0,0 @@ -// All the pointer_to_binary_function cases used to fail because g++ -// couldn't handle converting an overloaded function to a class type. -// The first one should still fail because it requires an implicit conversion -// to pointer_to_binary_function, which has an `explicit' constructor. - -#include <vector.h> -#include <algo.h> - -template <class T> class Expr -{ -public : - Expr(){}; - Expr(const T&){}; -}; - -template <class T > -inline bool compare(const Expr<T> a, const Expr<T> b){ return true; }; - -int main() -{ - vector<int> a(3); - sort( a.begin(), a.end(), - static_cast<bool (*)(const Expr<int>,const Expr<int>)>(compare) ); - sort( a.begin(), a.end(), compare<int> ); - sort<vector<int>::iterator, - pointer_to_binary_function<const Expr<int>, const Expr<int>, bool> > - ( a.begin(), a.end(), compare ); // ERROR - constructor is explicit - sort( a.begin(), a.end(), - ptr_fun<const Expr<int>, const Expr<int>, bool> (compare) ); - sort( a.begin(), a.end(), - ptr_fun(compare<int>) ); - sort( a.begin(), a.end(), - pointer_to_binary_function<const Expr<int>, const Expr<int>, bool>(compare) ); - sort( a.begin(), a.end(), - pointer_to_binary_function<const Expr<int>, const Expr<int>, bool>(compare<int>) ); - sort( a.begin(), a.end(), - pointer_to_binary_function<const Expr<int>, const Expr<int>, bool>(compare<>) ); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb44.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb44.C deleted file mode 100755 index 54eab15..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb44.C +++ /dev/null @@ -1,35 +0,0 @@ -// spurious 'const' in error. -// For egcs-2.91.34, the warning message refers to -// class ostream & operator <<(class ostream &, const class Vector<T> &) -// Also, the template instantiation does not provide the missing -// friend function, the non-template function does - -#include <stdio.h> -#include <iostream.h> - -template <class T> -class Vector -{ - friend ostream& operator<< (ostream& out, const Vector<T> & vec); // WARNING - -}; - -template <class T> -ostream& operator<< (ostream& out, const Vector<T> & vec) -{ - abort(); // this should not be called -} - -template class Vector<char>; -template ostream& operator<< (ostream& out, const Vector<char> &); - -ostream& operator<< (ostream& out, const Vector<char>&) -{ - return out; -} - -int main() -{ - Vector<char> vc; - ostream out; - out << vc; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb45.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb45.C deleted file mode 100755 index 9e2642c..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb45.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -class A {}; -class B : public virtual A {}; -template <class Imp> class C : public Imp {}; - -template class C<B>; diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb46.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb46.C deleted file mode 100755 index ad077e3..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb46.C +++ /dev/null @@ -1,27 +0,0 @@ -#include <iostream.h> - -class A1 { - friend class B; - public: - virtual void foo() {}; -}; - -class A2 : public virtual A1 {friend class B;}; - -class A3 : public virtual A1, private A2 {friend class B;}; - -class B -{ - public: - B(A1* a) : itsA(dynamic_cast<A2*>(a)) {}; - A2* itsA; -}; - -int main() -{ - A1* a=new A3; - B b(a); - - if (b.itsA) cout << "cast ok" << endl; else cout << "cast failed" << endl; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb48.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb48.C deleted file mode 100755 index 1d10bed..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb48.C +++ /dev/null @@ -1,10 +0,0 @@ -// Build don't link: -char *t1 (const char *s) -{ - return const_cast<char *>(s); -} - -char *&t1 (const char *&s) -{ - return const_cast<char *&>(s); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb49.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb49.C deleted file mode 100755 index 95c454e..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb49.C +++ /dev/null @@ -1,49 +0,0 @@ -// Build don't link: -// excess errors test - -// Here we declare ::S -typedef struct s1 *S; - -struct s1 -{ - int s; -}; - -struct A -{ - // Here we declare A::S - typedef struct s1 *S; -}; - -template<class T, class U> class XX; - -template<class T, class U> -class X -{ -public: - static T *do_something (); - friend class T; // ERROR - `T' is a template parameter - friend class XX<T, U>; -}; - -struct N -{ - // Here we declare N::S - class S - { - }; - - // Should use N::S and A::S. - typedef X<S, A::S> X_S; - - void bug (); -}; - -void -N::bug () -{ - // X_S is template class X<N::S, A::S> - // `s' is N::S. - S *s = X_S::do_something (); -} - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb5.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb5.C deleted file mode 100755 index 6609be8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb5.C +++ /dev/null @@ -1,13 +0,0 @@ -// Build don't link: -enum { a, b }; - -class Bug { - int pri:8; - int flags:24; -public: - void bug() { - flags |= a; // this does not work - } -}; - -void dummy(Bug x) { x.bug(); } diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb50.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb50.C deleted file mode 100755 index c7f9076..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb50.C +++ /dev/null @@ -1,16 +0,0 @@ -struct foo { }; -int f(int a, int b) -{ - if (b == 0) - throw foo(); - return a / b; -} -int main() -{ - try { - f(0, 0); - return 1; - } catch (foo x) { - return 0; - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb51.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb51.C deleted file mode 100755 index 0357f92..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb51.C +++ /dev/null @@ -1,36 +0,0 @@ -// Build don't link: -typedef unsigned long Xv_opaque; - -class DynaString -{ -public: - DynaString(); - DynaString( const DynaString& dynaStr ); - DynaString( const long n ); - ~DynaString(); - - int operator ==( const char* const string ) const; -}; - -class DDE_Defaults -{ -public: - DynaString GetHost(); - DynaString GetService(); - DynaString GetDatabase(); -}; - -extern DDE_Defaults* ddeDefaults; - -void -f() -{ - DynaString tempHost, tempService, tempDatabase; - if( (tempHost = ddeDefaults->GetHost()) == 0 - || (tempService = ddeDefaults->GetService()) == 0 - || (tempDatabase = ddeDefaults->GetDatabase()) == 0 - ) - { - } -} - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb52.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb52.C deleted file mode 100755 index 50b4516..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb52.C +++ /dev/null @@ -1,37 +0,0 @@ -// Build don't link: -class base { -protected: - virtual void f(); -}; - -class d1 : public virtual base { -protected: - void f(); -}; - -void d1::f() -{ - base::f(); -} - -class dd1 : public virtual d1 { -protected: - void f(); -}; - -void dd1::f() -{ - d1::f(); - base::f(); -} - -class d1_and_base : public virtual d1, public virtual base { -protected: - void f(); -}; - -void d1_and_base::f() -{ - d1::f(); - base::f(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb54.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb54.C deleted file mode 100755 index dfcf3a9..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb54.C +++ /dev/null @@ -1,7 +0,0 @@ -#include <iomanip.h> - -int main() -{ - cout << setbase(3) << endl; - exit (0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb55.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb55.C deleted file mode 100755 index 4ba4b54..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb55.C +++ /dev/null @@ -1,12 +0,0 @@ -// Build don't link: -// Since the constructor is in streambuf.h, additional diagnostics are -// produced, which are not really supported in the old-deja framework -// excess errors test - XFAIL *-*-* -#include <strstream.h> - -void -t( char* buf ) -{ - istrstream str = buf; //ERROR - inaccessible copy constructor -} - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb56.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb56.C deleted file mode 100755 index 2d497f8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb56.C +++ /dev/null @@ -1,9 +0,0 @@ -// Error: Internal compiler error on 1998/05/28 snapshot. -// Build don't link: - -class foo { - typedef int sometype; -}; - -struct die : public foo::sometype { // ERROR - invalid base type -}; diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb57.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb57.C deleted file mode 100755 index 5f7de55..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb57.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -#include <exception> -//using namespace std; -class A { - class B : public std::exception {} - ; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb58.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb58.C deleted file mode 100755 index 3612034..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb58.C +++ /dev/null @@ -1,14 +0,0 @@ -// Special g++ Options: -// Test for g++ array init extension - -class A { -public: - A(int i) {} -private: - A( const A & ) {} -}; - -main() -{ - A *list = new A[10](4); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb59.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb59.C deleted file mode 100755 index 7c0c153..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb59.C +++ /dev/null @@ -1,28 +0,0 @@ -#define INC_FUNCTIONAL 1 -#define USE_STATIC_CAST 1 - -#include <vector> -#include <numeric> -#ifdef INC_FUNCTIONAL -#include <functional> -#endif - -template<class R> int p( int val, R& r ) -{ - return val + r; -} - -template<class R> void f( vector<R>& v ) -{ -#ifdef USE_STATIC_CAST - accumulate( v.begin(), v.end(), 0, static_cast<int (*)(int, R&)>(p) ); -#else - accumulate( v.begin(), v.end(), 0, p<R> ); -#endif -} - -int main() -{ - vector<int> r; - f( r ); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb6.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb6.C deleted file mode 100755 index 157bf47..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb6.C +++ /dev/null @@ -1,14 +0,0 @@ -// Build don't link: -class A { -public: - A() { t=0; } - double t; -}; -template <class T> -class B { -public: - void f1() { new T; f2(); } - void f2() { new T; } -}; -template class B<A>; - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb60.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb60.C deleted file mode 100755 index 64ca71d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb60.C +++ /dev/null @@ -1,18 +0,0 @@ -//Build don't link: -#include <string> - -class t { -public: - t(const string& s) : s_(s) {} - string s_; - static t* t_; -}; - -t* t::t_; - -t* makeT() -{ - return new t("test"); - return t::t_ ? t::t_ : - t::t_ = new t("test"); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb61.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb61.C deleted file mode 100755 index 370273a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb61.C +++ /dev/null @@ -1,8 +0,0 @@ -// Build don't link: -void -action0(float& arg1) -{ - long cn0 = 1; - - arg1 = cn0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb62.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb62.C deleted file mode 100755 index 02646b2..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb62.C +++ /dev/null @@ -1,7 +0,0 @@ -//Build don't link: -#include <vector> - -void f(void) -{ - vector<int> l(5, 0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb63.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb63.C deleted file mode 100755 index 0e85591..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb63.C +++ /dev/null @@ -1,15 +0,0 @@ -//Special g++ Options: -//This uses GNU extensions, so disable -ansi -#include <stdio.h> - -class A { -public: - A(bool b) { abort(); } - A(int a, bool b) { printf("cool\n"); } -}; - -main() { - A* a; - a = new A[2] = { A(1,false), A(1,false) } ; - a = new A[2](1,false); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb64.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb64.C deleted file mode 100755 index da043af..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb64.C +++ /dev/null @@ -1,25 +0,0 @@ -// Build don't link: -template <class A> -class B:public A { - B(){} -}; - -template <class A> -class C:public B<A> { - C(){} -}; - -/* -g++ bugsol.C -bugsol.C:9: Internal compiler error. -bugsol.C:9: Please submit a full bug report to `egcs-bugs@cygnus.com'. - -g++ -v -Reading specs from -/home/pierre/local/lib/gcc-lib/i586-pc-linux-gnulibc1/egcs-2.90.16/specs -gcc version egcs-2.90.16 971105 (gcc2-970802 experimental) - -egcc compiled with gcc version 2.7.2.1 on debian 1.3.1 - -*/ - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb65.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb65.C deleted file mode 100755 index 94be7ec..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb65.C +++ /dev/null @@ -1,22 +0,0 @@ -#include <iterator> - -template<size_t n, size_t i> struct PartialDotProduct { - template<class T> - static T Expand(T* a, T* b) { return T(); } -}; - -const int N = 10; - -template<class In1, class In2> -typename iterator_traits<In1>::value_type -dot(In1 f1, In2 f2) -{ - return PartialDotProduct<N, 0>::Expand(f1, f2); // line 14 -} - -int main() -{ - double a[N], b[N]; - - double s = dot(&a[0], &b[0]); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb66.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb66.C deleted file mode 100755 index d79865f..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb66.C +++ /dev/null @@ -1,22 +0,0 @@ -#include <assert.h> -#include <iostream.h> - -int bar () -{ - throw 100; -} - -int main () -{ - int i = 0; - try - { - i = bar (); - } - catch (...) - { - } - -// cout << "i = " << i << endl; - assert (i == 0) ; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb67.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb67.C deleted file mode 100755 index 45cdedd..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb67.C +++ /dev/null @@ -1,6 +0,0 @@ -// Build don't link: -/* -Check whether a typedef for a basic type as a baseclass is diagnosed. -*/ -typedef int an_int; -class bar : public an_int {}; // ERROR - not an aggregate diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb69.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb69.C deleted file mode 100755 index 9cc5f4a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb69.C +++ /dev/null @@ -1,9 +0,0 @@ - #include <iostream.h> - struct foo { - foo(int x) { cerr << "foo's int constructor (" << x << ")\n"; }; - }; - struct bar : foo { - typedef int an_int; - bar() : bar::an_int(3) {}; // will call foo::foo(3) - }; -int main() { bar b; } diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb7.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb7.C deleted file mode 100755 index fc43aab..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb7.C +++ /dev/null @@ -1,16 +0,0 @@ -// Build don't link: -#include <vector> - -class T -{ - public: - T(); - -}; - -vector <T> tp; - -void f() -{ - tp.insert(tp.begin(), 10 , T()); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb70.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb70.C deleted file mode 100755 index 30da184..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb70.C +++ /dev/null @@ -1,17 +0,0 @@ -// conversion ops should be treated as coming from the most derived class -// for overload resolution. See [over.match.funcs]. -// Build don't link: - -class X { -public: - operator bool() const; -}; - -class Y : public X { -private: - operator void*() const; -}; - -int f(Y const& y) { - return bool(y); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb71.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb71.C deleted file mode 100755 index 1417c4a..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb71.C +++ /dev/null @@ -1,37 +0,0 @@ -// Build don't link: -typedef __SIZE_TYPE__ size_t; - -class A { - -public: - void operator delete(void*, size_t); - void* operator new(size_t); -}; - -class B : public A { -friend class D; - - B(); - unsigned counter; -}; - -class D { - - int ins( B*&); -}; //WARNING - only private members - -int -D::ins( B*& tempN) -{ - unsigned i; - - if (i == 10) { - } - else { - } - - tempN = new B(); - tempN->counter = 20; - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb73.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb73.C deleted file mode 100755 index b5aae39..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb73.C +++ /dev/null @@ -1,14 +0,0 @@ -// Special g++ Options: -O -Wall -// Depeletes VM. - -#include <iostream.h> -#include <list> -#include <algorithm> -using namespace std; - -int main() -{ - int daten [16] = { 1, 4, 4, 6, 1, 2, 2, 3, 6, 6, 6, 5, 7, 5, 4, 4}; - list<int> menge; - copy (daten, daten+16, back_inserter(menge)); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb74.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb74.C deleted file mode 100755 index 1ec7da6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb74.C +++ /dev/null @@ -1,33 +0,0 @@ -// Build don't link: -class base { -public: - virtual ~base(); -}; - - -class foo : public base { - -public : - - foo (char *cs); - - virtual void op (unsigned char dummy = false); - unsigned char m_dummy; -}; - - -void foo :: op ( unsigned char dummy) - -{ - bool bar; - - if (dummy) { - foo IT_tempPhase( 0 ); - return; - } - - if ((m_dummy || bar)) { - - } - -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb75.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb75.C deleted file mode 100755 index 41ad816..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb75.C +++ /dev/null @@ -1,19 +0,0 @@ -// Build don't link: -int*& foo (int const *& x) -{ - return const_cast<int*&> (x); -} - -/* -If the references in this example are changed to pointers (change -all `&''s to `*'), no warnings result. - -I think this is incorrect according to CD2 5.2.11, para 4: - -4 An lvalue of type T1 can be explicitly converted to an lvalue of type - T2 using the cast const_cast<T2&> (where T1 and T2 are object types) - if a pointer to T1 can be explicitly converted to the type pointer to - T2 using a const_cast. The result of a reference const_cast refers to - the original object. - -*/ diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb76.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb76.C deleted file mode 100755 index e2817ee..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb76.C +++ /dev/null @@ -1,19 +0,0 @@ -//Build don't link: -// the template operator!= interferes. It should be in a namespace. -// excess errors test - XFAIL *-*-* - -#include <utility> - -enum T { - V1 -}; - -struct X { - T t : 31; -}; - -void -f(X& v) { - if( v.t != V1 ) { // complains about taking address of bitfield - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb77.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb77.C deleted file mode 100755 index 206b27d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb77.C +++ /dev/null @@ -1,30 +0,0 @@ -#include <stream.h> -#include <strstream.h> - -int -main(int, char* []) -{ - strstream s; - - s << "line 1\nline 2\n\nline 4"; - s << ends; - - int nLine = 0; - - while( true ) { - char* line = 0; - s.gets(&line); - - if( ! line ) { - break; - } - - ++nLine; - cout << nLine << ": " << line << endl; - - if( nLine > 10 ) { // stop infinite loop - break; - } - } - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb78.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb78.C deleted file mode 100755 index 3baea64..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb78.C +++ /dev/null @@ -1,136 +0,0 @@ -// Special g++ Options: -W -Wall -O - -//This is the source code from FAQ-259, found in chapter 20 of "C++ FAQs." -//Copyright (C) 1994, Addison-Wesley Publishers, Inc.; All rights reserved. -// -//The book, "C++ FAQs" is by Marshall P. Cline and Greg A. Lomow, -//Copyright (C) 1994, Addison-Wesley Publishers, Inc.; All rights reserved. -// -//This code is presented for its instructional value. It has been tested with -//care, but it is not guaranteed for any particular purpose. Neither the -//publisher nor the authors offer any warranties or representations, nor do -//they accept any liabilities with respect to this code. - -#include <string.h> -#include <iostream.h> - -class BadIndex { }; - -class String { -public: - - String() - : len_(0), data_(new char[1]) - { data_[0] = '\0'; } - - String(const char* s) - : len_(strlen(s)), data_(new char[len_ + 1]) - { memcpy(data_, s, len_ + 1); } - - ~String() - { delete [] data_; } - - String(const String& s) - : len_(s.len_), data_(new char[s.len_ + 1]) - { memcpy(data_, s.data_, len_ + 1); } - - String& operator= (const String& s) - { - if (len_ != s.len_) { //makes self-assignment harmless - char* newData = new char[s.len_ + 1]; - delete [] data_; - data_ = newData; - len_ = s.len_; - } - memcpy(data_, s.data_, len_ + 1); - return *this; - } - - unsigned len() const - { return len_; } - - char& operator[] (unsigned i) - { indexTest(i); return data_[i]; } - char operator[] (unsigned i) const - { indexTest(i); return data_[i]; } - - friend ostream& operator<< (ostream& o, const String& s) - { return o.write(s.data_, s.len_); } - - friend int operator== (const String& a, const String& b) - { return a.len_ == b.len_ && - memcmp(a.data_, b.data_, a.len_) == 0; } - friend int operator!= (const String& a, const String& b) - { return ! (a == b); } - -private: - void indexTest(unsigned i) const - { if (i >= len_) throw BadIndex(); } - unsigned len_; //ORDER DEPENDENCY; see FAQ-190 - char* data_; //ORDER DEPENDENCY; see FAQ-190 -}; - -class AccessViolation { }; -class BadFileName { }; - -class File { -public: - File(const String& filename) - throw(AccessViolation, BadFileName) - { - cout << "Open " << filename << "\n"; - if (filename == "badAccess.txt") - throw AccessViolation(); - if (filename == "badName.txt") - throw BadFileName(); - } -}; - -class UserClass { -public: - void f(const String& filename) throw(BadFileName); -}; - -void -UserClass::f(const String& filename) throw(BadFileName) -{ - try { - File f(filename); // WARNING - unused - } - catch (const AccessViolation& e) { - cout << " FULLY recover from access-violation\n"; - } - catch (const BadFileName& e) { - cout << " PARTIALLY recover from bad-file-name\n"; - throw; - } -} - -void -tryIt(const String& filename) -{ - try { - UserClass u; - u.f(filename); - cout << " OK\n"; - } - catch (const BadFileName& e) { - cout << " Finish recovering from bad-file-name\n"; - } -} - -int -main() -{ - tryIt("goodFile.txt"); - tryIt("badAccess.txt"); - tryIt("badName.txt"); -} - -// g++ -O -o warn warn.C -W -Wall -// warn.C: In method `void UserClass::f(const class String &)': -// warn.C:96: warning: unused variable `class File f' -// warn.C:101: warning: `struct cp_eh_info * __exception_info' might -// be used uninitialized in this function - - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb79.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb79.C deleted file mode 100755 index 5691532..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb79.C +++ /dev/null @@ -1,23 +0,0 @@ -// Makes bogus x86 assembly code. -#include <iostream.h> - -template<class T> -T max(T a, T b) -{ - return (a > b) ? a : b; -} - -// Prototypes (enable one or the other) -double max<>(double, double); // ERROR - bogus code -// int max(int, int); - -int main() -{ - int i = 123; - double d = 1234.5678; - - cout.precision(12); - cout << max(d, i) << endl; // #1 - cout << max(i, d) << endl; // #2 - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb8.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb8.C deleted file mode 100755 index 213bb6d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb8.C +++ /dev/null @@ -1,13 +0,0 @@ - -class foo { -public: - operator <<(const void *); //ERROR - no return type - operator <<(char *); //ERROR - no return type -}; - -void main() -{ //ERROR - wrong return type for main - foo f; - f << (void*)0; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb80.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb80.C deleted file mode 100755 index 7161423..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb80.C +++ /dev/null @@ -1,7 +0,0 @@ -// Build don't link: -#include <exception> - -class A { - class B : public std::exception {} - ; -}; diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb81.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb81.C deleted file mode 100755 index 919fd58..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb81.C +++ /dev/null @@ -1,42 +0,0 @@ -// Build don't link: -class x -{ -public: - x (int init_buffer_size=0); - ~x (); -}; - - - -class xSequence -{ -public: - xSequence (); - ~xSequence (); - x Get(int index)const; -}; - - - -class foo -{ -public: - bool bar(const x & name, x & value); - -}; - - - -bool foo::bar(const x & name, x & value) -{ - bool result = false; - - xSequence seq; - x v1, v2; - if(result ? bar(seq.Get(1),v2) : bar(seq.Get(2),v2)) - - ; - - return result; -} - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb82.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb82.C deleted file mode 100755 index 1e4d8c6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb82.C +++ /dev/null @@ -1,12 +0,0 @@ -#include <stdio.h> - -template <int n1> -double val <int> () -{ // ERROR - bogus code - return (double) n1; -}; - -int main () -{ - printf ("%d\n", val<(int)3> ()); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb83.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb83.C deleted file mode 100755 index 7121e14..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb83.C +++ /dev/null @@ -1,16 +0,0 @@ -// Skip if not native -// Special g++ Options: -fprofile-arcs -ftest-coverage -void -swap(int& x, int& y) throw() -{ - int tmp = x; - x = y; - y = tmp; -} - -main() -{ - int i = 5; - int j = 7; - swap(i, j); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb84.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb84.C deleted file mode 100755 index dce51d8..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb84.C +++ /dev/null @@ -1,17 +0,0 @@ -// Error: Internal Compiler error on GCC 2.7.2.3 & EGCS 1998/05/23 snapshot. - -class A { -public: - enum { ONE, TWO, THREE }; -}; - -template <const unsigned c1,const unsigned c2,const unsigned c3> -void f() { - -} - -int -main() -{ - f<A::ONE,A::TWO,A::THREE>(); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb86.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb86.C deleted file mode 100755 index 463d2d1..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb86.C +++ /dev/null @@ -1,5 +0,0 @@ -// Build don't link: -template <class T> -class Q { - friend void foo<T> (); -}; diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb87.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb87.C deleted file mode 100755 index eee6ff6..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb87.C +++ /dev/null @@ -1,6 +0,0 @@ -template <unsigned X, class T> struct Foo { - friend void operator<<(int, Foo const &) {} -}; -template <unsigned X> class Bar : public Foo<X,int> {}; -inline Bar<0> bar(int,int,int) { return Bar<3>(); } // ERROR - no conversion - diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb88.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb88.C deleted file mode 100755 index 006fe56..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb88.C +++ /dev/null @@ -1,15 +0,0 @@ -// Another magic NULL problem. -// Special g++ Options: -w - -#include <stddef.h> - -int main() -{ - try - { - throw(NULL); - } - catch (...) - { - } -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb9.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb9.C deleted file mode 100755 index cec7002..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb9.C +++ /dev/null @@ -1,21 +0,0 @@ -// Build don't link: -template <class Key> -class d0om_Hashmap -{ -public: - typedef int value_type; - - class iterator - { - public: - value_type* operator-> () const; - }; - -}; - - -template <class Key> -d0om_Hashmap<Key>::value_type* d0om_Hashmap<Key>::iterator::operator-> () const -{ - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb90.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb90.C deleted file mode 100755 index 2a43645..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb90.C +++ /dev/null @@ -1,22 +0,0 @@ -// Special g++ Options: -O2 -// Build don't link: - -#ifdef HIDE_BUG -#define realloc Realloc -#endif - -class TmpRgn { -public: - void - realloc(); -}; - -class TmpActor { - TmpRgn tmpRgn; - -public: - void - realloc() { - tmpRgn.realloc(); - } -}; diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb91.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb91.C deleted file mode 100755 index 8262b79..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb91.C +++ /dev/null @@ -1,85 +0,0 @@ -#include <sys/types.h> -#include <algorithm> -typedef short _eb91_int16_t; -typedef char _eb91_int8_t; -typedef unsigned char _eb91_u_int8_t; -typedef unsigned short _eb91_u_int16_t; - -template <class INT> -class other_endian -{ -private: - - INT value; - - - _eb91_u_int16_t change_endian(_eb91_u_int16_t x) - { - union { - _eb91_u_int16_t i; - _eb91_u_int8_t c[2]; - } val; - val.i = x; - swap(val.c[0], val.c[1]); - return val.i; - }; - - _eb91_int16_t change_endian(_eb91_int16_t x) - { - union { - _eb91_int16_t i; - _eb91_int8_t c[2]; - } val; - val.i = x; - swap(val.c[0], val.c[1]); - return val.i; - }; -public: - other_endian(const INT i = 0) - { - value = change_endian(i); - } - - operator INT() - { - return change_endian(value); - } -}; - -template <class INT> -class same_endian -{ - INT value; - -public: - same_endian(const INT i = 0) - { - value = i; - } - - operator INT() - { - return value; - } -}; - - - - - - - - - - - - - - - - - -int main() { - other_endian <_eb91_u_int16_t> little_endian_16_bit_int; - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb92.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb92.C deleted file mode 100755 index 8cb1639..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb92.C +++ /dev/null @@ -1 +0,0 @@ -template<int N> f<0>(){} // ERROR - invalid code diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb93.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb93.C deleted file mode 100755 index 988e65d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb93.C +++ /dev/null @@ -1,30 +0,0 @@ -// Error: Internal compiler error on egcs 1998/05/28 snapshot. - -const double M_PI=3.14159265358979323846; - -template<int N,int I,int J,int K> -inline double SineSeries() -{ - const double x=I*2*M_PI/N; - const bool go=K+1!=J; - return 1.0-x*x/(2*K+2)/(2*K+3)*SineSeries<N*go,I*go,J*go,(K+1)*go>(); -} - -template<> -inline double SineSeries<0,0,0,0>() -{ - return 1.0; -} - -template<int N,int I> -inline double Sine() -{ - const double x=(I*2*M_PI/N); - return x * SineSeries<N,I,10,0>(); -} - -int main() -{ - double f=Sine<32,5>() - return 0; // ERROR - parse error -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb94.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb94.C deleted file mode 100755 index 7f7c0b4..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb94.C +++ /dev/null @@ -1,15 +0,0 @@ - - -class baseClass -{ -private: -static int variable; -}; - -class myClass : public baseClass -{ -private: -static int variable; // this is intentionally duplicated -}; - -myClass::variable = 0; //ERROR - no type diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb95.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb95.C deleted file mode 100755 index 0d8e405..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb95.C +++ /dev/null @@ -1,17 +0,0 @@ -struct A {}; - -template <class T> -void operator+ (A &i, T &b) {} - -template<class T> -void func (A &a, T &b) {} - -int main() -{ - A a; - -#if STRANGE - func(a, "egcs"); -#endif - a+"egcs"; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb97.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb97.C deleted file mode 100755 index e05cc41..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb97.C +++ /dev/null @@ -1,24 +0,0 @@ -// Creates bad assembly on sparc and x86 -template<unsigned long SIZE> -struct Array { }; - -template<unsigned long SIZE> -Array<SIZE> test_ok(const Array<SIZE>& a) { - Array<SIZE> result; - return(result); -} - -template<unsigned long SIZE> -Array<SIZE + 1> test_error(const Array<SIZE>& a) { - Array<SIZE + 1> result; - return(result); -} - -int main(int argc, char* argv[]) { - Array<2> a; - - test_ok(a); - test_error(a); // <<< MARKED LINE! - - return(0); -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb98.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb98.C deleted file mode 100755 index cc19f09..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb98.C +++ /dev/null @@ -1,17 +0,0 @@ -// Error: Internal compiler error in egcs 1998/05/28 snapshot. - - - template<class T, unsigned int Length> - inline - unsigned int - extent(T (&x)[Length]) - { - return Length; - } - - extern int b[]; - - void f() - { - extent(b); // ERROR - no matching function - } diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/eb99.C b/gcc/testsuite/g++.old-deja/g++.robertl/eb99.C deleted file mode 100755 index 4cced8b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/eb99.C +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - -class ref_counted -{ - -protected: - ref_counted( void ) : _count( 0 ) {} - -public: - - unsigned int add_ref( void ) { return ++_count; } - unsigned int release( void ) { return --_count; } - unsigned int count( void ) const { return _count; } - - -protected: - unsigned int _count; -}; - - - - - -template < class T > -class ref_ptr -{ - -public: - ref_ptr( T* ptr = 0 ) : _ptr( ptr ) - { - add_ref(); - } - - ref_ptr( const ref_ptr & rptr ) : _ptr( rptr.get() ) - { - add_ref(); - } - - ~ref_ptr( void ) { release(); } - - - T* get( void ) const { return _ptr; } - T* operator->( void ) const { return get(); } - T& operator*( void ) const { return *get(); } - - bool operator!( void ) const { return get() == 0; } - bool operator==( const ref_ptr & rptr ) const { return *get() == *rptr; -} - bool operator<( const ref_ptr & rptr ) const { return *get() < *rptr; } - - - bool operator==( T* ptr ) const { return *get() == *ptr; } - bool operator<( T* ptr ) const { return *get() < *ptr; } - - const ref_ptr & operator=( const ref_ptr & rptr ) - { - release(); - _ptr = rptr.get(); - add_ref(); - - return *this; - } - - T* operator=( T* ptr ) - { - release(); - _ptr = ptr; - add_ref(); - - return _ptr; - } - -protected: - void add_ref( void ) - { - if( _ptr ) - _ptr->add_ref(); - } - - void release( void ) - { - if( _ptr && 0 == _ptr->release() ) - { - delete _ptr; - _ptr = 0; - } - } - - -protected: - T * _ptr; -}; - - -template< class T > -bool operator==( T* ptr, const ref_ptr< T > & rptr ) -{ - return *ptr == *rptr; -} - -template< class T > -bool operator<( T* ptr, const ref_ptr< T > & rptr ) -{ - return *ptr < *rptr; -} - - - -class Baz : public ref_counted { - int dummy; -}; - - -class Bar; - -int main() { - ref_ptr<Baz> foo; - static_cast<Bar *> (foo)->DoSomething; //ERROR - invalid cast -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/ebnull-cast.C b/gcc/testsuite/g++.old-deja/g++.robertl/ebnull-cast.C deleted file mode 100755 index d220e90..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/ebnull-cast.C +++ /dev/null @@ -1,18 +0,0 @@ -class null { - null (null const&); - void operator& (); - - public: - null () {} - - template <typename T> - operator T* () const { return 0; } -} const null; - - -int main () -{ - int *p = static_cast<int*>(null); - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/ebnull-oldcast.C b/gcc/testsuite/g++.old-deja/g++.robertl/ebnull-oldcast.C deleted file mode 100755 index cf6c21b..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/ebnull-oldcast.C +++ /dev/null @@ -1,17 +0,0 @@ -class null { - null (null const&); - void operator& (); - - public: - null () {} - - template <typename T> - operator T* () const { return 0; } -} const null; - -int main () -{ - int *p = (int*) null; - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/g++.robertl/ebnull.C b/gcc/testsuite/g++.old-deja/g++.robertl/ebnull.C deleted file mode 100755 index e6eea2d..0000000 --- a/gcc/testsuite/g++.old-deja/g++.robertl/ebnull.C +++ /dev/null @@ -1,17 +0,0 @@ -class null { - null (null const&); - void operator& (); - - public: - null () {} - - template <typename T> - operator T* () const { return 0; } -} const null; - -int main () -{ - int *p = null; - - return 0; -} diff --git a/gcc/testsuite/g++.old-deja/old-deja.exp b/gcc/testsuite/g++.old-deja/old-deja.exp deleted file mode 100755 index 70b822a..0000000 --- a/gcc/testsuite/g++.old-deja/old-deja.exp +++ /dev/null @@ -1,65 +0,0 @@ -# Copyright (C) 1988, 90, 91, 92, 1994, 1997 Free Software Foundation, Inc. - -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. - -# Please email any bugs, comments, and/or additions to this file to: -# bug-g++@prep.ai.mit.edu - -# This file was written by Rob Savoye. (rob@cygnus.com) - -# -# these tests come from the original DejaGnu test suite -# developed at Cygnus Support. If this isn't deja gnu, I -# don't know what is... -# - -# load support procs -load_lib old-dejagnu.exp -load_lib g++.exp - - -# When a testcase doesn't have any special options, use these. -if ![info exists DEFAULT_CXXFLAGS] { - set DEFAULT_CXXFLAGS "-ansi -pedantic-errors" - -} - -old-dejagnu-init -global GXX_UNDER_TEST - -# -# main test loop -# - -set dirlen [expr [string length "$srcdir/$subdir"] + 1]; -foreach file [lsort [find $srcdir/$subdir *.C]] { - # If we're only testing specific files and this isn't one of them, skip it. - set tfile [string range $file $dirlen end]; - if ![runtest_file_p $runtests $tfile] then { - continue - } - verbose "Testing $file" - - # We don't want old-dejagnu.exp to have to know about all the global - # variables we use. For now we tell it about CXXFLAGS and LIBS and - # leave LDFLAGS alone. - old-dejagnu $GXX_UNDER_TEST "$file" "$tfile" "" "$DEFAULT_CXXFLAGS" "-lstdc++" -} - -# The framework doesn't like to see any error remnants, -# so remove them. -if [info exists errorInfo] then { - unset errorInfo -} |