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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.2.2/] [gcc/] [testsuite/] [g++.dg/] [tree-ssa/] [pr16688.C] - Diff between revs 149 and 154

Go to most recent revision | Only display areas with differences | Details | Blame | View Log

Rev 149 Rev 154
/* PR 16688.  Test provided by Wolfgang Bangerth.  The alias analyzer
/* PR 16688.  Test provided by Wolfgang Bangerth.  The alias analyzer
   was aborting when trying to group aliases.  */
   was aborting when trying to group aliases.  */
/* { dg-do compile } */
/* { dg-do compile } */
/* { dg-options "-O2" } */
/* { dg-options "-O2" } */
template
template
struct iterator_traits;
struct iterator_traits;
template
template
struct iterator_traits<_Tp*> {
struct iterator_traits<_Tp*> {
    typedef _Tp& reference;
    typedef _Tp& reference;
};
};
template struct NI {
template struct NI {
    _Iterator current;
    _Iterator current;
    typedef typename iterator_traits<_Iterator>::reference reference;
    typedef typename iterator_traits<_Iterator>::reference reference;
    NI() { }
    NI() { }
    NI(const _Iterator& __i) : current(__i) { }
    NI(const _Iterator& __i) : current(__i) { }
    reference operator*() const { return *current; }
    reference operator*() const { return *current; }
    NI& operator++() { return *this; }
    NI& operator++() { return *this; }
    const _Iterator& base() const { return current; }
    const _Iterator& base() const { return current; }
};
};
template
template
inline int
inline int
operator-(const NI<_IteratorL>& __lhs,
operator-(const NI<_IteratorL>& __lhs,
          const NI<_IteratorR>& __rhs)
          const NI<_IteratorR>& __rhs)
{ return __lhs.base() - __rhs.base(); }
{ return __lhs.base() - __rhs.base(); }
template
template
inline _OI
inline _OI
__copy_aux(_II __first, _II __last, _OI __result)
__copy_aux(_II __first, _II __last, _OI __result)
{
{
  struct __copy {
  struct __copy {
      static _OI
      static _OI
      copy(_II __first, _II __last, _OI __result)
      copy(_II __first, _II __last, _OI __result)
        {
        {
          for (; __first != __last; ++__result, ++__first)
          for (; __first != __last; ++__result, ++__first)
            *__result = *__first;
            *__result = *__first;
          return __result;
          return __result;
        }
        }
  };
  };
  return __copy::copy(__first, __last, __result);
  return __copy::copy(__first, __last, __result);
}
}
struct __copy_normal
struct __copy_normal
{
{
    template
    template
    static _OI
    static _OI
    copy_n(_II __first, _II __last, _OI __result)
    copy_n(_II __first, _II __last, _OI __result)
      {
      {
        return __copy_aux(__first, __last, __result);
        return __copy_aux(__first, __last, __result);
      }
      }
};
};
template
template
inline _OutputIterator
inline _OutputIterator
copy(_InputIterator __first, _InputIterator __last,
copy(_InputIterator __first, _InputIterator __last,
     _OutputIterator __result)
     _OutputIterator __result)
{
{
  return __copy_normal::copy_n(__first, __last, __result);
  return __copy_normal::copy_n(__first, __last, __result);
}
}
template 
template 
void uninitialized_fill_n(T,U,V);
void uninitialized_fill_n(T,U,V);
template
template
struct _Vector_base {
struct _Vector_base {
    struct _Vector_impl {
    struct _Vector_impl {
        _Tp* start;
        _Tp* start;
        _Tp* finish;
        _Tp* finish;
        _Tp* end_of_storage;
        _Tp* end_of_storage;
        _Vector_impl() : start(0), finish(0), end_of_storage(0)
        _Vector_impl() : start(0), finish(0), end_of_storage(0)
          { }
          { }
    } impl;
    } impl;
    _Vector_base(unsigned __n) {
    _Vector_base(unsigned __n) {
      impl.start = allocate(__n);
      impl.start = allocate(__n);
      impl.finish = impl.start;
      impl.finish = impl.start;
      impl.end_of_storage = impl.start + __n;
      impl.end_of_storage = impl.start + __n;
    }
    }
    ~_Vector_base() {
    ~_Vector_base() {
      deallocate(impl.start,
      deallocate(impl.start,
                    impl.end_of_storage - impl.start);
                    impl.end_of_storage - impl.start);
    }
    }
    _Tp* allocate(unsigned __n);
    _Tp* allocate(unsigned __n);
    void deallocate(_Tp* __p, unsigned __n);
    void deallocate(_Tp* __p, unsigned __n);
    NI<_Tp*> begin() { return NI<_Tp*> (impl.start); }
    NI<_Tp*> begin() { return NI<_Tp*> (impl.start); }
};
};
template
template
struct vector : _Vector_base<_Tp>
struct vector : _Vector_base<_Tp>
{
{
    vector(int __n)
    vector(int __n)
                    : _Vector_base<_Tp>(__n)
                    : _Vector_base<_Tp>(__n)
      {
      {
        uninitialized_fill_n(this->impl.start, __n, _Tp());
        uninitialized_fill_n(this->impl.start, __n, _Tp());
      }
      }
};
};
struct Tensor
struct Tensor
{
{
    Tensor ();
    Tensor ();
    Tensor (const Tensor &);
    Tensor (const Tensor &);
    double values[2];
    double values[2];
};
};
inline
inline
Tensor::Tensor (const Tensor &p)
Tensor::Tensor (const Tensor &p)
{
{
  for (unsigned int i=0; i<2; ++i)
  for (unsigned int i=0; i<2; ++i)
    values[i] = p.values[i];
    values[i] = p.values[i];
}
}
struct TriaAccessor
struct TriaAccessor
{
{
    typedef void * AccessorData;
    typedef void * AccessorData;
    void copy_from (const TriaAccessor &);
    void copy_from (const TriaAccessor &);
    void operator = (const TriaAccessor *);
    void operator = (const TriaAccessor *);
    TriaAccessor & operator = (const TriaAccessor &);
    TriaAccessor & operator = (const TriaAccessor &);
    bool operator == (const TriaAccessor &) const;
    bool operator == (const TriaAccessor &) const;
    bool operator != (const TriaAccessor &) const;
    bool operator != (const TriaAccessor &) const;
    void operator ++ ();
    void operator ++ ();
    int state () const;
    int state () const;
    bool used () const;
    bool used () const;
    int present_level;
    int present_level;
    int present_index;
    int present_index;
    int** levels;
    int** levels;
};
};
inline int TriaAccessor::state () const {
inline int TriaAccessor::state () const {
  if ((present_level>=0) && (present_index>=0))
  if ((present_level>=0) && (present_index>=0))
    return 0;
    return 0;
  else
  else
    if ((present_level==-1) && (present_index==-1))
    if ((present_level==-1) && (present_index==-1))
      return 1;
      return 1;
    else
    else
      return 2;
      return 2;
}
}
inline
inline
void TriaAccessor::operator ++ () {
void TriaAccessor::operator ++ () {
  ++this->present_index;
  ++this->present_index;
  while (this->present_index >=
  while (this->present_index >=
         static_cast(*this->levels[this->present_level]))
         static_cast(*this->levels[this->present_level]))
    {
    {
      ++this->present_level;
      ++this->present_level;
      this->present_index = 0;
      this->present_index = 0;
      if (this->present_level >= static_cast(1))
      if (this->present_level >= static_cast(1))
        {
        {
          this->present_level = this->present_index = -1;
          this->present_level = this->present_index = -1;
          return;
          return;
        }
        }
    }
    }
}
}
struct MGDoFObjectAccessor : TriaAccessor {};
struct MGDoFObjectAccessor : TriaAccessor {};
struct TriaRawIterator
struct TriaRawIterator
{
{
    TriaRawIterator ();
    TriaRawIterator ();
    TriaRawIterator (const TriaRawIterator &);
    TriaRawIterator (const TriaRawIterator &);
    TriaRawIterator (const MGDoFObjectAccessor &a);
    TriaRawIterator (const MGDoFObjectAccessor &a);
    const MGDoFObjectAccessor & operator * () const;
    const MGDoFObjectAccessor & operator * () const;
    MGDoFObjectAccessor & operator * ();
    MGDoFObjectAccessor & operator * ();
    const MGDoFObjectAccessor * operator -> () const;
    const MGDoFObjectAccessor * operator -> () const;
    MGDoFObjectAccessor * operator -> ();
    MGDoFObjectAccessor * operator -> ();
    TriaRawIterator & operator = (const TriaRawIterator &);
    TriaRawIterator & operator = (const TriaRawIterator &);
    bool operator == (const TriaRawIterator &) const;
    bool operator == (const TriaRawIterator &) const;
    bool operator != (const TriaRawIterator &) const;
    bool operator != (const TriaRawIterator &) const;
    bool operator < (const TriaRawIterator &) const;
    bool operator < (const TriaRawIterator &) const;
    MGDoFObjectAccessor accessor;
    MGDoFObjectAccessor accessor;
    TriaRawIterator & operator ++ ();
    TriaRawIterator & operator ++ ();
};
};
struct TriaIterator : TriaRawIterator
struct TriaIterator : TriaRawIterator
{
{
    TriaIterator ();
    TriaIterator ();
    TriaIterator (const TriaIterator &i);
    TriaIterator (const TriaIterator &i);
    TriaIterator &
    TriaIterator &
    operator = (const TriaIterator &);
    operator = (const TriaIterator &);
    TriaIterator &
    TriaIterator &
    operator = (const TriaRawIterator &);
    operator = (const TriaRawIterator &);
};
};
inline
inline
TriaRawIterator::TriaRawIterator (const TriaRawIterator &i) :
TriaRawIterator::TriaRawIterator (const TriaRawIterator &i) :
                accessor (i.accessor) {}
                accessor (i.accessor) {}
inline
inline
TriaIterator::TriaIterator (const TriaIterator &i) :
TriaIterator::TriaIterator (const TriaIterator &i) :
                TriaRawIterator (static_cast(i)) {}
                TriaRawIterator (static_cast(i)) {}
inline
inline
TriaRawIterator & TriaRawIterator::operator ++ () {
TriaRawIterator & TriaRawIterator::operator ++ () {
  while (++accessor, (this->accessor.state() == 0))
  while (++accessor, (this->accessor.state() == 0))
    if (this->accessor.used() == true)
    if (this->accessor.used() == true)
      return *this;
      return *this;
  return *this;
  return *this;
}
}
struct Comp {
struct Comp {
    Comp (const Tensor &dir) : dir(dir) {}
    Comp (const Tensor &dir) : dir(dir) {}
    bool operator () (const TriaIterator &c1, const TriaIterator &c2) const;
    bool operator () (const TriaIterator &c1, const TriaIterator &c2) const;
    const Tensor dir;
    const Tensor dir;
};
};
template
template
void x1(Iter first, Iter last, int i, Comp comp)
void x1(Iter first, Iter last, int i, Comp comp)
{
{
  x1(Iter(), last, i, comp);
  x1(Iter(), last, i, comp);
}
}
template
template
inline void x2(Iter first, Iter last, Comp comp)
inline void x2(Iter first, Iter last, Comp comp)
{
{
  if (first.base() != last.base())
  if (first.base() != last.base())
    x1(first, last, (last - first), comp);
    x1(first, last, (last - first), comp);
}
}
void downstream_dg (const Tensor& direction)
void downstream_dg (const Tensor& direction)
{
{
  vector ordered_cells(13);
  vector ordered_cells(13);
  const Comp comparator(direction);
  const Comp comparator(direction);
  TriaIterator begin, end;
  TriaIterator begin, end;
  copy (begin, end, ordered_cells.begin());
  copy (begin, end, ordered_cells.begin());
  x2 (ordered_cells.begin(), ordered_cells.begin(), comparator);
  x2 (ordered_cells.begin(), ordered_cells.begin(), comparator);
}
}
 
 

powered by: WebSVN 2.1.0

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