www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/03/11/07:04:26

From: "Sven A. Havemann" <havemann AT uran DOT informatik DOT uni-bonn DOT de>
Message-Id: <9603111250.ZM914@Neptun.informatik.uni-bonn.de>
Date: Mon, 11 Mar 1996 12:50:28 +0100
To: djgpp AT delorie DOT com
Subject: DJGPP V2 2.7.2 not gcc 2.7.2 ?
Cc: bug-g++@prep.ai.mit.edu
Mime-Version: 1.0

Dear DJGPP makers!
==================

First of all I'd like to tell you how positively surprised I was when I got
V2.0 yesterday, I've been using DJGPP since quite a while... The installation
procedure was really easy and cool, including CWSDPMI and everything, and be
assured that you've done a great work with your readmes and faq in info, and
you should'nt take complaints about 'I can't find my includes' or so too
seriously. - It's well done.

So much for the positive surprise, I was also disappointed about the gcc 2.7.2
compatibility. - I've got gcc272b.zip from Feb 22 and gpp272b.zip from Feb 5
from ftp://ftp.uni-koeln.de/pc/djgpp/v2gnu which are the most recent versions,
AFAIK, and recompiling my library which worked well under gcc 2.6.3 I
encountered an internal compiler error which didn't occur under the 'real' gcc
2.7.2, the one we use on Sun/Sparc here.

Any remarks? The abort happened in quite an innocent line, I've included the
header below, it's just a bit tricky, so I didn'd include the whole thing, but
just to let You estimate whether it's because of a DJGPP/UNIX difference or
it's because DJGPP 2.7.2 contains partly the 2.7.0 version which was famous for
this kind of funny failure... - I also have some other innocent looking lines
where the poor thing aborts all of a sudden... No idea what they have in
common.

				Any reply is appreciated, Your's, Sven.


=========================================================================

gcc -c -o obj/t_var.o ./src/database/t_var.cc -fno-implicit-templates
-DDOS_GNU270 -DNO_TEMPLATE_STATIC -DNO_IMPLICIT_TEMPLATES -I./include
-I/compiler/cgi/include -I/compiler/cgi/src/common -I/compiler/pccts/h

In file included from ./src/database/t_var.cc:15:
include/t_lstrbt.hh:119: Internal compiler error.
include/t_lstrbt.hh:119: Please submit a full bug report to
`bug-g++@prep.ai.mit.edu'.
make.exe: *** [obj/t_var.o] Error 1

Look for this mark in the header below:     <<====== line 119 !


// **********************************************
// ** t_lstrbt.hh - HEADER
// **********************************************
// ** TEMPLATE FOR DYNAMIC LISTS BASED ON RED-BLACK-TREES
// **********************************************
//
// Written by Sven Havemann, Bonn, august 1995
// For copyright and legal information see file legal.doc
//


#ifndef T_LSTRBT_HH
#define T_LSTRBT_HH


#include "t_base.hh"
#include "t_rbnode.hh"
#include "t_rbfind.hh"
#include "t_rbtree.hh"


// **********************************************
// ** TEMPLATE T_TLISTRB - HEADER
// **********************************************


template<class Key, class Content, class Node, class KeyEqual, class
KeySmaller>
class t_IteratorRb;

template<class Key, class Content, class Node, class KeyEqual, class
KeySmaller>
class t_ListRb
{
 public:
   typedef t_IteratorRb<Key,Content,Node,KeyEqual,KeySmaller> RbIter;
   typedef t_ListRb<Key,Content,Node,KeyEqual,KeySmaller> RbList;

   t_ListRb  () ;
   t_ListRb  (const t_ListRb<Key,Content,Node,KeyEqual,KeySmaller>& other) ;
   ~t_ListRb () ;

   RbIter ins        (const Key& key, const Content& c) ; // ins if not there
   RbIter operator() (const Key& key, const Content& c) ; // ins or change

   RbList& del        (const RbIter& i) ;
   Content operator-= (const RbIter& i) ;
   RbList& backspace  (const RbIter& i) ;
   RbList& erase      () ;

   Content& operator[] (const Key& key) const ;
   RbIter find       (const Key& key) const ;
   RbIter findOrPred (const Key& key) const ;
   RbIter findOrSucc (const Key& key) const ;

   RbIter begin() const ;
   RbIter operator* () const;
   RbIter end() const ;
   RbIter null() const ;
   RbIter root() const ;

   RbList&  operator =(const RbList& other) ;
   t_Bool operator == (const RbList& other) const ;
   t_Bool operator != (const RbList& other) const ;

   long   size    () const ;
   t_Bool isEmpty () const ;

   t_Bool dump(ostream& os=cout) const ;

 protected:
   t_RbTree tree;
};


// **********************************************
// ** TEMPLATE T_LISTRBIO - HEADER
// **********************************************


template<class Key, class Content, class Node, class KeyEqual, class
KeySmaller>
class t_ListRbIO
 : public t_ListRb<Key,Content,Node,KeyEqual,KeySmaller>, public t_BaseIO
{
 public:
   typedef t_IteratorRb<Key,Content,Node,KeyEqual,KeySmaller> RbIter;
   typedef t_ListRb<Key,Content,Node,KeyEqual,KeySmaller> RbList;

   t_ListRbIO  () ;
   t_ListRbIO  (const t_ListRbIO<Key,Content,Node,KeyEqual,KeySmaller>& other)
;
   virtual
   ~t_ListRbIO () ;

   virtual
   istream& in  (istream& is) ;
   virtual
   ostream& out (ostream& os) const ;
};


// **********************************************
// ** TEMPLATE T_ITERATORRB - HEADER
// **********************************************


template<class Key, class Content, class Node, class KeyEqual, class
KeySmaller>
class t_IteratorRb
{
 public:
   typedef t_IteratorRb<Key,Content,Node,KeyEqual,KeySmaller> RbIter;
   typedef t_ListRb<Key,Content,Node,KeyEqual,KeySmaller> RbList;

   t_IteratorRb  () ;
   t_IteratorRb  (const RbIter& other) ;
   ~t_IteratorRb () ;

   const Key& key        () const ;
   Content& operator*  () const ;
   Content& operator[] (const Key& key) ;
   RbIter& operator =  (const RbIter& i) ;
   t_Bool  operator == (const RbIter& i) const ;   <<====== line 119 !!
   t_Bool  operator != (const RbIter& i) const ;
   RbIter& operator ++ () ;       // prefix ++a
   RbIter  operator ++ (int d) ;  // postfix a++
   RbIter& operator -- () ;       // prefix --a
   RbIter  operator -- (int d) ;  // postfix a--

   RbIter& operator += (int offset) ;
   RbIter& operator -= (int offset) ;
   RbIter  operator +  (int offset) const ;
   RbIter  operator -  (int offset) const ;
   long    operator -  (const RbIter& i) const ;
   long    index       () const;
           operator t_Bool () const ;

   t_Bool ofSameList (const RbIter& i) const ;
   t_Bool isAtBegin  () const ;
   t_Bool isAtEnd    () const ;
   t_Bool isNull     () const ;
   t_Bool isRoot     () const ;


 private:

   friend class t_ListRb<Key,Content,Node,KeyEqual,KeySmaller>;
   t_IteratorRb (const t_RbTree& aTree, t_RbNode* aNode);

   const t_RbTree* tree;
   Node* node;
};


#include "t_lstrbt.icc"

#endif


--
-------------------------------------------------------------------------------
 Sven A. Havemann - Rosental 24 - 53111 Bonn - Deutschland - 0049/228/656860
 Keywords:  Polynomial Curves & Surfaces,  Generative Modeling, 4D Animation
FG Computergraphik:
Institut f. Informatik III,             Tel:   (0228) 550-391
Universitaet Bonn                       Fax:   (0228) 550-382
Roemerstr. 164,                         Email: havemann AT graphics DOT cs DOT uni-bonn DOT de
D-53117 Bonn, Deutschland                      oder    sven_havemann AT su DOT maus DOT de
-------------------------------------------------------------------------------

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019