From 15433c214df295f2281a90fcf283355b21beca0e Mon Sep 17 00:00:00 2001 From: Martin Jambor Date: Tue, 30 Aug 2022 18:50:35 +0200 Subject: [PATCH] vec: Add array_slice constructors from non-const and gc vectors This patch adds constructors of array_slice that are required to create them from non-const (heap or auto) vectors or from GC vectors. gcc/ChangeLog: 2022-08-08 Martin Jambor * 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 d048fa54ce8..1abe777baeb 100644 --- a/gcc/vec.h +++ b/gcc/vec.h @@ -2267,6 +2267,18 @@ public: array_slice (const vec &v) : m_base (v.address ()), m_size (v.length ()) {} + template + array_slice (vec &v) + : m_base (v.address ()), m_size (v.length ()) {} + + template + array_slice (const vec *v) + : m_base (v ? v->address () : nullptr), m_size (v ? v->length () : 0) {} + + template + array_slice (vec *v) + : m_base (v ? v->address () : nullptr), m_size (v ? v->length () : 0) {} + iterator begin () { return m_base; } iterator end () { return m_base + m_size; }