@@ -496,13 +496,15 @@ using LocalAccessorImplPtr = std::shared_ptr<LocalAccessorImplHost>;
496496
497497class __SYCL_EXPORT LocalAccessorBaseHost {
498498public:
499- LocalAccessorBaseHost (sycl::range<3 > Size, int Dims, int ElemSize);
499+ LocalAccessorBaseHost (sycl::range<3 > Size, int Dims, int ElemSize,
500+ const property_list &PropertyList = {});
500501 sycl::range<3 > &getSize ();
501502 const sycl::range<3 > &getSize () const ;
502503 void *getPtr ();
503504 void *getPtr () const ;
504505 int getNumOfDims ();
505506 int getElementSize ();
507+ const property_list &getPropList () const ;
506508
507509protected:
508510 template <class Obj >
@@ -2366,8 +2368,8 @@ class __SYCL_SPECIAL_CLASS local_accessor_base :
23662368 (void )propList;
23672369 }
23682370#else
2369- : LocalAccessorBaseHost(range<3 >{1 , 1 , 1 }, AdjustedDim, sizeof (DataT)) {
2370- ( void ) propList;
2371+ : LocalAccessorBaseHost(range<3 >{1 , 1 , 1 }, AdjustedDim, sizeof (DataT),
2372+ propList) {
23712373 detail::constructorNotification (nullptr , LocalAccessorBaseHost::impl.get (),
23722374 access::target::local, AccessMode, CodeLoc);
23732375 GDBMethodsAnchor ();
@@ -2401,8 +2403,7 @@ class __SYCL_SPECIAL_CLASS local_accessor_base :
24012403 }
24022404#else
24032405 : LocalAccessorBaseHost(detail::convertToArrayOfN<3 , 1 >(AllocationSize),
2404- AdjustedDim, sizeof (DataT)) {
2405- (void )propList;
2406+ AdjustedDim, sizeof (DataT), propList) {
24062407 detail::constructorNotification (nullptr , LocalAccessorBaseHost::impl.get (),
24072408 access::target::local, AccessMode, CodeLoc);
24082409 GDBMethodsAnchor ();
@@ -2547,6 +2548,23 @@ class __SYCL_SPECIAL_CLASS __SYCL_TYPE(local_accessor) local_accessor
25472548 }
25482549
25492550#endif
2551+
2552+ public:
2553+ template <typename Property> bool has_property () const noexcept {
2554+ #ifndef __SYCL_DEVICE_ONLY__
2555+ return this ->getPropList ().template has_property <Property>();
2556+ #else
2557+ return false ;
2558+ #endif
2559+ }
2560+
2561+ template <typename Property> Property get_property () const {
2562+ #ifndef __SYCL_DEVICE_ONLY__
2563+ return this ->getPropList ().template get_property <Property>();
2564+ #else
2565+ return Property ();
2566+ #endif
2567+ }
25502568};
25512569
25522570// / Image accessors.
0 commit comments