> Am 26.08.2022 um 18:39 schrieb Martin Jambor <mjam...@suse.cz>: > > Hi, > > This patch adds constructors of array_slice that are required to > create them from non-const (heap or auto) vectors or from GC vectors. > > The use of non-const array_slices is somewhat limited, as creating one > from const vec<some_type> still leads to array_slice<const some_type>, > so I eventually also only resorted to having read-only array_slices. > But I do need the constructor from the gc vector. > > Bootstrapped and tested along code that actually uses it on > x86_64-linux. OK for trunk? > > Thanks, > > Martin > > > gcc/ChangeLog: > > 2022-08-08 Martin Jambor <mjam...@suse.cz> > > * vec.h (array_slice): Add constructors for non-const reference to > heap vector and pointers to heap vectors. > --- > gcc/vec.h | 12 ++++++++++++ > 1 file changed, 12 insertions(+) > > diff --git a/gcc/vec.h b/gcc/vec.h > index eed075addc9..b0477e1044c 100644 > --- a/gcc/vec.h > +++ b/gcc/vec.h > @@ -2264,6 +2264,18 @@ public: > array_slice (const vec<OtherT> &v) > : m_base (v.address ()), m_size (v.length ()) {} > > + template<typename OtherT> > + array_slice (vec<OtherT> &v) > + : m_base (v.address ()), m_size (v.length ()) {} > + > + template<typename OtherT> > + array_slice (const vec<OtherT, va_gc> *v) > + : m_base (v ? v->address () : nullptr), m_size (v ? v->length () : 0) {} > + > + template<typename OtherT> > + array_slice (vec<OtherT, va_gc> *v) > + : m_base (v ? v->address () : nullptr), m_size (v ? v->length () : 0) {} > + I don’t quite understand why the generic ctor doesn’t cover the GC case. It looks more like reference vs pointer? > iterator begin () { return m_base; } > iterator end () { return m_base + m_size; } > > -- > 2.37.2 >
Re: [PATCH 1/2] vec: Add array_slice constructors from non-const and gc vectors
Richard Biener via Gcc-patches Fri, 26 Aug 2022 11:22:46 -0700
- [PATCH 1/2] vec: Add array_slice constru... Martin Jambor
- Re: [PATCH 1/2] vec: Add array_slic... Richard Biener via Gcc-patches
- Re: [PATCH 1/2] vec: Add array_... Martin Jambor
- Re: [PATCH 1/2] vec: Add ar... Richard Biener via Gcc-patches
- Re: [PATCH 1/2] vec: Ad... Martin Jambor
- Re: [PATCH 1/2] vec: Ad... Martin Jambor
- Re: [PATCH 1/2] ve... Richard Biener via Gcc-patches
- Re: [PATCH 1/2... Martin Jambor
- Re: [PATCH... Richard Biener via Gcc-patches
- Re: [PATCH... Richard Sandiford via Gcc-patches