OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [g++.dg/] [tree-ssa/] [pr27548.C] - Rev 717

Go to most recent revision | Compare with Previous | Blame | View Log

// PR tree-optimization/27548
// { dg-do compile }
// { dg-options "-O1" }

namespace Gambit
{
  template < class T > class Array
  {
  protected:int mindex, maxdex;
    T *data;
    int InsertAt (const T & t, int n)
    {
      T *new_data = new T[++this->maxdex - this->mindex + 1] - this->mindex;
      int i;
      for (i = this->mindex; i <= n - 1; i++)
          new_data[i] = this->data[i];
        new_data[i++] = t;
    }
  public:   Array (unsigned int len = 0):mindex (1), maxdex (len),
      data ((len) ? new T[len] -
            1 : 0)
    {
    }
    virtual ~ Array ()
    {
      if (maxdex >= mindex)
        delete[](data + mindex);
    }
    const T & operator[] (int index) const
    {
    }
    int Append (const T & t)
    {
      return InsertAt (t, this->maxdex + 1);
    }
  };
}

class gIndexOdometer
{
private:Gambit::Array < int >MinIndices;
    Gambit::Array < int >CurIndices;
    gIndexOdometer (const Gambit::Array < int >, const Gambit::Array < int >);
  void SetIndex (const int &, const int &);
  int NoIndices () const;
  gIndexOdometer AfterExcisionOf (int &) const;
};
gIndexOdometer
gIndexOdometer::AfterExcisionOf (int &to_be_zapped) const
{
  Gambit::Array < int >NewMins, NewMaxs;
  int i;
  for (i = 1; i <= NoIndices (); i++)
    {
      NewMins.Append (MinIndices[i]);
    }
  gIndexOdometer NewOdo (NewMins, NewMaxs);
  for (i = 1; i < to_be_zapped; i++)
    NewOdo.SetIndex (i, CurIndices[i]);
}

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.