Remove old autovect-branch by moving to "dead" directory.
[official-gcc.git] / old-autovect-branch / gcc / testsuite / g++.old-deja / g++.law / incdec1.C
blobb1fc4c404faa1d6fc6c543fb21ad6622bf2f7e1e
1 // { dg-do assemble  }
2 // { dg-options "-w -O3" }
3 // GROUPS passed incdec
4 typedef void* Pix;
5 class ndbArtPtrVec 
7 public:
8                         ndbArtPtrVec (ndbArtPtrVec&);
9 };
10 class intndbArtPtrVecMap
12 protected:
13   int                   count;
14   ndbArtPtrVec                   def;
15                         intndbArtPtrVecMap(ndbArtPtrVec& dflt);
16   virtual ndbArtPtrVec&          operator [] (int  key) = 0;  
17   virtual void          del(int  key) = 0;        
18 public:
19   virtual Pix           first() = 0;              
20   virtual void          next(Pix& i) = 0;         
21   virtual int&          key(Pix i) = 0;           
22   virtual ndbArtPtrVec&          contents(Pix i) = 0;      
24 struct intndbArtPtrVecAVLNode
26   ndbArtPtrVec                 cont;
27                       intndbArtPtrVecAVLNode(int  h, ndbArtPtrVec& c, 
28                                     intndbArtPtrVecAVLNode* l=0, intndbArtPtrVecAVLNode* r=0);
30 class intndbArtPtrVecAVLMap : intndbArtPtrVecMap 
32 protected:
33   intndbArtPtrVecAVLNode*   root;
34 public:
35   ndbArtPtrVec&          operator [] (int  key);
36   intndbArtPtrVecAVLMap(intndbArtPtrVecAVLMap&);
38 ndbArtPtrVec& intndbArtPtrVecAVLMap::operator [] (int  item)
40     ++count;
41     root = new intndbArtPtrVecAVLNode(item, def);
43 intndbArtPtrVecAVLMap::intndbArtPtrVecAVLMap(intndbArtPtrVecAVLMap& b) :intndbArtPtrVecMap(b.def)
45   for (Pix i = b.first(); i != 0; b.next(i)) 
46     (*this)[b.key(i)] = b.contents(i);