URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [testsuite/] [g++.dg/] [other/] [pr50464.C] - Rev 693
Compare with Previous | Blame | View Log
// { dg-do compile { target i?86-*-* x86_64-*-* } }// { dg-options "-O3 -mxop" }typedef long unsigned int size_t;typedef unsigned long ulong_t;typedef signed long slong_t;template<typename _Iterator>struct iterator_traits{typedef typename _Iterator::reference reference;};template<typename _Tp>struct iterator_traits<_Tp*>{typedef _Tp& reference;};template<typename _Iterator, typename _Container>class __normal_iterator{protected:_Iterator _M_current;typedef iterator_traits<_Iterator> __traits_type;public:typedef typename __traits_type::reference reference;explicit__normal_iterator(const _Iterator& __i) : _M_current(__i) { }referenceoperator*() const{ return *_M_current; }__normal_iterator&operator++(){++_M_current;return *this;}const _Iterator&base() const{ return _M_current; }};template<typename _Iterator, typename _Container>inline booloperator!=(const __normal_iterator<_Iterator, _Container>& __lhs,const __normal_iterator<_Iterator, _Container>& __rhs){ return __lhs.base() != __rhs.base(); }template<typename _Tp>class allocator{public:typedef _Tp* pointer;typedef _Tp value_type;template<typename _Tp1>struct rebind{ typedef allocator<_Tp1> other; };pointer allocate(size_t __n, const void* = 0){return static_cast<_Tp*>(::operator new(__n * sizeof(_Tp)));}};template<typename _Tp, typename _Alloc>struct _Vector_base{typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type;struct _Vector_impl: public _Tp_alloc_type{typename _Tp_alloc_type::pointer _M_start;typename _Tp_alloc_type::pointer _M_finish;typename _Tp_alloc_type::pointer _M_end_of_storage;_Vector_impl(_Tp_alloc_type const& __a) { }};public:typedef _Alloc allocator_type;_Vector_base(size_t __n, const allocator_type& __a): _M_impl(__a){this->_M_impl._M_start = this->_M_allocate(__n);this->_M_impl._M_finish = this->_M_impl._M_start;this->_M_impl._M_end_of_storage = this->_M_impl._M_start + __n;}public:_Vector_impl _M_impl;typename _Tp_alloc_type::pointer_M_allocate(size_t __n){ return __n != 0 ? _M_impl.allocate(__n) : 0; }};template<typename _Tp, typename _Alloc = allocator<_Tp> >class vector : protected _Vector_base<_Tp, _Alloc>{typedef _Vector_base<_Tp, _Alloc> _Base;typedef typename _Base::_Tp_alloc_type _Tp_alloc_type;public:typedef _Tp value_type;typedef typename _Tp_alloc_type::pointer pointer;typedef __normal_iterator<pointer, vector> iterator;typedef _Alloc allocator_type;protected:using _Base::_M_allocate;using _Base::_M_impl;public:explicitvector(size_t __n, const value_type& __value = value_type(),const allocator_type& __a = allocator_type()): _Base(__n, __a){ _M_fill_initialize(__n, __value); }iterator begin(){ return iterator(this->_M_impl._M_start); }iterator end(){ return iterator(this->_M_impl._M_finish); }protected:void_M_fill_initialize(size_t __n, const value_type& __value){this->_M_impl._M_finish = this->_M_impl._M_end_of_storage;}};template<typename _InputIterator, typename _OutputIterator, typename _Tp>_OutputIteratorreplace_copy(_InputIterator __first, _InputIterator __last,_OutputIterator __result,const _Tp& __old_value, const _Tp& __new_value){;for (; __first != __last; ++__first, ++__result)if (*__first == __old_value)*__result = __new_value;else*__result = *__first;return __result;}extern size_t shape_rank;void createDataspaceIdentifier(){vector< ulong_t > dataspaceDims( shape_rank );vector< ulong_t > maxDataspaceDims( shape_rank );replace_copy(dataspaceDims.begin(), dataspaceDims.end(),maxDataspaceDims.begin(), ulong_t( 0 ), ((ulong_t)(slong_t)(-1)) );}
