🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: gnu.g++.lib.bug
1 messages
1 total messages Started by Ken Raeburn Thu, 09 Nov 1989 01:40
oops
#171
Author: Ken Raeburn
Date: Thu, 09 Nov 1989 01:40
177 lines
6109 bytes
------- Forwarded Message

Date: Wed, 8 Nov 89 20:24:55 EST
From: MAILER-DAEMON@MIT.EDU (Mail Delivery Subsystem)
Subject: Returned mail: User unknown
To: <raeburn@MIT.EDU>

   ----- Transcript of session follows -----
>>> RCPT To:<bug-libg++@PREP.AI.MIT.EDU>
<<< 550 <bug-libg++@PREP.AI.MIT.EDU>... User unknown
550 <bug-libg++@prep.ai.mit.edu>... User unknown

   ----- Unsent message follows -----
Received: from PROMETHEUS.MIT.EDU by MIT.EDU with SMTP
	id AA12832; Wed, 8 Nov 89 20:24:55 EST
Received: by prometheus.MIT.EDU (5.61/4.7) id AA29341; Wed, 8 Nov 89 20:25:25 -0500
Date: Wed, 8 Nov 89 20:25:25 -0500
Message-Id: <8911090125.AA29341@prometheus.MIT.EDU>
From: Ken Raeburn <Raeburn@MIT.EDU>
To: bug-libg++@PREP.AI.MIT.EDU, bug-g++@PREP.AI.MIT.EDU
Subject: problems with g++ and libg++ on dec-3100


Configuration: dec-3100; g++ version 1.36.1; gcc version 1.36.

test.hello.cc doesn't compile on the pmax; there is no `struct exec'
in <a.out.h> that gets compiled in.

>g++ -I/var/raeburn/libg++/g++-include  -O -fstrength-reduce  -felide-constructors -fschedule-insns -fdelayed-branch -fsave-memoized  -Wall  -c  tPlex.cc
>tPlex.cc: In function void MPtest ():
>tPlex.cc:535: The following insn was not recognizable:
>(insn/i 117 116 118 (set (reg:SI 93)
>       (neg:SI (mem/s:SI (plus:SI (reg:SI 87)
>                   (const_int 4))))) -1 (nil)
>   (nil))
>g++: Program cc1plus got fatal signal 4.

(Obvious...)  A stripped-down version of the preprocessed source,
which still causes the problem, is included below.  (Compiler options
used were: -O -fstrength-reduce -felide-constructors -fschedule-insns
-fdelayed-branch -fsave-memoized -Wall -S -v.  Removing -O eliminates
the problem.)

>dhrystone.cc: In function void _GLOBAL_$D$dhrystone_cc ():
>dhrystone.cc:691: warning: array size expression for delete ignored

This should probably say something about destructor functions (if
anything at all), rather than expecting the user to know what
"_GLOBAL_$D$foo" means.

>g++ -g -Wall -DGATHER_STATISTICS -O -fdelayed-branch -fsave-memoized -finline-functions -fstrength-reduce -felide-constructors -c  version.cc
>g++: This port of GCC does not support -g flag9@

gperf does not pass GXXFLAGS &c into subdirectories, so it failed
completely on my system.  (It assumed it could use -g.)

The "%e" construct in the compiler specification appears to have some
problems; sometimes a couple of garbage characters are printed after
the word "flag"; it's usually "8@" or "9@".

-- Ken

P.S.  The makefiles for libg++ shouldn't install it in the `all' rule
before preparing the tests.  Better to test the library before
installing it, just in case....

~~~~~~~~~~~~~~~~ foo.cc

typedef void* Pix;
extern unsigned int hash(int );
class intIChunk
{
protected:      
  int*           data;            
  int            base;            
  int            low;             
  int            fence;           
  int            top;             
  intIChunk*     nxt;             
  intIChunk*     prv;
public:
                 intIChunk(int*     d,        
                        int      base_idx,  
                        int      low_idx,  
                        int      fence_idx,
                        int      top_idx);
  virtual int    valid_index(int i);     
};
class intPlex
{
protected:      
  intIChunk*       hd;           
  int              lo;           
  int              fnc;          
  int              csize;        
  int              mods;         
  void             record_change();            
  void             invalidate();               
  void             del_chunk(intIChunk*);         
  intIChunk*       tl();                       
  int              one_chunk();                
public:
                    intPlex();                   
};

class intMChunk : public intIChunk
{
protected:
  unsigned long* map;           
  int            valid(int);
public:
                 intMChunk(int*    d,         
                        int      base_idx,  
                        int      low_idx,   
                        int      fence_idx,
                        int      top_idx);
  int            valid_index(int i);
};
class intMPlex: public intPlex
{
  intMChunk*       ch;           
  int              unused;       
  void             make_initial_chunks(int up = 1);
  void             cache(int idx);
  void             cache(const int* p);
  int              dopred(int);
  int              dosucc(int);
public:
                   intMPlex();                  
                   intMPlex(int ch_size);       
                   intMPlex(int lo,             
                            int ch_size);       
                   intMPlex(int lo,             
                            int hi,             
                            const int  initval, 
                            int ch_size = 0);   
                   intMPlex( intMPlex&);
  void             operator= ( intMPlex&);
  int              valid(int idx);
  void             prev(int& idx);
  void             next(int& x);
  int&             operator [] (int index);
};

inline int intMChunk::valid(int idx)
{
  unsigned int i = idx - base;
  return map[i /  32 ] & (1 << (i & ( 32  - 1)));
}

inline  int intMChunk:: valid_index(int i)
{
  return (i >= low
	  && i < fence
	  && valid(i));
}

static int foo = 17;

inline int& intMPlex:: operator [] (int idx)
{
    (void) (ch->intMChunk::valid_index(idx));
    return foo;
}

extern Pix px;
static intMPlex p(3);

void MPtest () 
{
  px = &p[0];
}

~~~~~~~~~~~~~~~~ end of foo.cc

------- End Forwarded Message
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads