@@ -149,7 +149,7 @@ class multi_ptr {
149
149
(Space == access::address_space::generic_space ||
150
150
Space == access::address_space::local_space)>>
151
151
multi_ptr (local_accessor<ElementType, Dimensions> Accessor)
152
- : multi_ptr( Accessor.get_pointer().get( )) {}
152
+ : m_Pointer(detail::cast_AS<decorated_type *>( Accessor.get_pointer())) {}
153
153
154
154
// The following constructors are necessary to create multi_ptr<const
155
155
// ElementType, Space, DecorateAddress> from accessor<ElementType, ...>.
@@ -210,7 +210,7 @@ class multi_ptr {
210
210
multi_ptr (local_accessor<typename detail::remove_const_t <RelayElementType>,
211
211
Dimensions>
212
212
Accessor)
213
- : multi_ptr( Accessor.get_pointer().get( )) {}
213
+ : m_Pointer(detail::cast_AS<decorated_type *>( Accessor.get_pointer())) {}
214
214
215
215
// Assignment and access operators
216
216
multi_ptr &operator =(const multi_ptr &) = default ;
@@ -465,7 +465,7 @@ class multi_ptr<const void, Space, DecorateAddress> {
465
465
typename = typename detail::enable_if_t <
466
466
RelaySpace == Space && Space == access::address_space::local_space>>
467
467
multi_ptr (local_accessor<ElementType, Dimensions> Accessor)
468
- : multi_ptr( Accessor.get_pointer().get( )) {}
468
+ : m_Pointer(detail::cast_AS<decorated_type *>( Accessor.get_pointer())) {}
469
469
470
470
// Assignment operators
471
471
multi_ptr &operator =(const multi_ptr &) = default ;
@@ -591,7 +591,7 @@ class multi_ptr<void, Space, DecorateAddress> {
591
591
typename = typename detail::enable_if_t <
592
592
RelaySpace == Space && Space == access::address_space::local_space>>
593
593
multi_ptr (local_accessor<ElementType, Dimensions> Accessor)
594
- : multi_ptr( Accessor.get_pointer().get( )) {}
594
+ : m_Pointer(detail::cast_AS<decorated_type *>( Accessor.get_pointer())) {}
595
595
596
596
// Assignment operators
597
597
multi_ptr &operator =(const multi_ptr &) = default ;
@@ -848,7 +848,7 @@ class multi_ptr<ElementType, Space, access::decorated::legacy> {
848
848
std::is_const<ET>::value && std::is_same<ET, ElementType>::value>>
849
849
multi_ptr (
850
850
local_accessor<typename detail::remove_const_t <ET>, dimensions> Accessor)
851
- : multi_ptr( Accessor.get_pointer()) {}
851
+ : m_Pointer(detail::cast_AS< pointer_t >( Accessor.get_pointer() )) {}
852
852
853
853
// Only if Space == constant_space and element type is const
854
854
template <
@@ -1089,7 +1089,7 @@ class multi_ptr<void, Space, access::decorated::legacy> {
1089
1089
_Space == Space && (Space == access::address_space::generic_space ||
1090
1090
Space == access::address_space::local_space)>>
1091
1091
multi_ptr (local_accessor<ElementType, dimensions> Accessor)
1092
- : multi_ptr( Accessor.get_pointer()) {}
1092
+ : m_Pointer(detail::cast_AS< pointer_t >( Accessor.get_pointer() )) {}
1093
1093
1094
1094
// Only if Space == constant_space
1095
1095
template <
@@ -1232,7 +1232,7 @@ class multi_ptr<const void, Space, access::decorated::legacy> {
1232
1232
_Space == Space && (Space == access::address_space::generic_space ||
1233
1233
Space == access::address_space::local_space)>>
1234
1234
multi_ptr (local_accessor<ElementType, dimensions> Accessor)
1235
- : multi_ptr( Accessor.get_pointer()) {}
1235
+ : m_Pointer(detail::cast_AS< pointer_t >( Accessor.get_pointer() )) {}
1236
1236
1237
1237
// Only if Space == constant_space
1238
1238
template <
0 commit comments