From 655d48fca0342bfc6d1b5c0cf5330e1694769bf0 Mon Sep 17 00:00:00 2001 From: sramzy1 Date: Wed, 25 Feb 2026 10:13:33 +0200 Subject: [PATCH 1/2] const correctness for public interfaces in MemoryManagedResource --- .../shared/fake/my_bounded_memory_resource.cpp | 4 ++-- .../shared/fake/my_bounded_memory_resource.h | 12 ++++++------ .../fake/my_bounded_shared_memory_resource.h | 4 ++-- score/memory/shared/fake/my_memory_resource.h | 7 ++++--- score/memory/shared/managed_memory_resource.h | 15 ++++++++++++++- .../memory/shared/memory_resource_proxy_test.cpp | 4 ++++ score/memory/shared/memory_resource_registry.cpp | 2 +- .../shared/memory_resource_registry_test.cpp | 8 ++++---- .../shared/new_delete_delegate_resource.cpp | 6 +++--- .../memory/shared/new_delete_delegate_resource.h | 4 ++-- score/memory/shared/shared_memory_resource.cpp | 4 ++-- score/memory/shared/shared_memory_resource.h | 5 ++--- .../shared_memory_resource_heap_allocator_mock.h | 4 ++-- score/memory/shared/shared_memory_resource_mock.h | 4 ++-- 14 files changed, 50 insertions(+), 33 deletions(-) diff --git a/score/memory/shared/fake/my_bounded_memory_resource.cpp b/score/memory/shared/fake/my_bounded_memory_resource.cpp index 54311f82..1ac2a118 100644 --- a/score/memory/shared/fake/my_bounded_memory_resource.cpp +++ b/score/memory/shared/fake/my_bounded_memory_resource.cpp @@ -82,7 +82,7 @@ MyBoundedMemoryResource::~MyBoundedMemoryResource() { if (should_free_memory_on_destruction_) { - std::free(baseAddress_); + std::free(const_cast(baseAddress_)); } MemoryResourceRegistry::getInstance().remove_resource(memoryResourceId_); } @@ -118,7 +118,7 @@ void MyBoundedMemoryResource::do_deallocate(void* /*memory*/, const std::size_t deallocatedMemory_ += bytes; } -MemoryResourceProxy* MyBoundedMemoryResource::AllocateMemoryResourceProxy(const std::uint64_t memory_resource_id) +const MemoryResourceProxy* MyBoundedMemoryResource::AllocateMemoryResourceProxy(const std::uint64_t memory_resource_id) { // We allocate the MemoryResourceProxy using worst case alignment so that any further allocations will start at an // aligned memory address. This is important so that GetUserAllocatedBytes() is never affected by the allocation of diff --git a/score/memory/shared/fake/my_bounded_memory_resource.h b/score/memory/shared/fake/my_bounded_memory_resource.h index 9e203410..aa39de75 100644 --- a/score/memory/shared/fake/my_bounded_memory_resource.h +++ b/score/memory/shared/fake/my_bounded_memory_resource.h @@ -45,12 +45,12 @@ class MyBoundedMemoryResource final : public ManagedMemoryResource MyBoundedMemoryResource& operator=(const MyBoundedMemoryResource&) noexcept = default; MyBoundedMemoryResource& operator=(MyBoundedMemoryResource&&) noexcept = default; - MemoryResourceProxy* getMemoryResourceProxy() noexcept override + const MemoryResourceProxy* getMemoryResourceProxy() const noexcept override { return manager_; } - void* getBaseAddress() const noexcept override + const void* getBaseAddress() const noexcept override { return baseAddress_; } @@ -105,18 +105,18 @@ class MyBoundedMemoryResource final : public ManagedMemoryResource return false; } - MemoryResourceProxy* AllocateMemoryResourceProxy(const std::uint64_t memory_resource_id); + const MemoryResourceProxy* AllocateMemoryResourceProxy(const std::uint64_t memory_resource_id); static std::uint64_t instanceId; static std::size_t memoryResourceProxyAllocationSize_; - void* baseAddress_; - void* endAddress_; + const void* baseAddress_; + const void* endAddress_; std::size_t virtual_address_space_to_reserve_; std::size_t already_allocated_bytes_; std::size_t deallocatedMemory_; std::uint64_t memoryResourceId_; - MemoryResourceProxy* manager_; + const MemoryResourceProxy* manager_; bool should_free_memory_on_destruction_; }; diff --git a/score/memory/shared/fake/my_bounded_shared_memory_resource.h b/score/memory/shared/fake/my_bounded_shared_memory_resource.h index 17bb4057..fe760e09 100644 --- a/score/memory/shared/fake/my_bounded_shared_memory_resource.h +++ b/score/memory/shared/fake/my_bounded_shared_memory_resource.h @@ -54,12 +54,12 @@ class MyBoundedSharedMemoryResource final : public ISharedMemoryResource return false; } - MemoryResourceProxy* getMemoryResourceProxy() noexcept override + const MemoryResourceProxy* getMemoryResourceProxy() const noexcept override { return resource_.getMemoryResourceProxy(); } - void* getBaseAddress() const noexcept override + const void* getBaseAddress() const noexcept override { return resource_.getBaseAddress(); } diff --git a/score/memory/shared/fake/my_memory_resource.h b/score/memory/shared/fake/my_memory_resource.h index 658fb04d..7f4ac1ec 100644 --- a/score/memory/shared/fake/my_memory_resource.h +++ b/score/memory/shared/fake/my_memory_resource.h @@ -44,14 +44,15 @@ class MyMemoryResource : public ManagedMemoryResource { } - MemoryResourceProxy* getMemoryResourceProxy() noexcept override + const MemoryResourceProxy* getMemoryResourceProxy() const noexcept override { MemoryResourceRegistry::getInstance().clear(); - score::cpp::ignore = MemoryResourceRegistry::getInstance().insert_resource({memoryResourceId_, this}); + score::cpp::ignore = MemoryResourceRegistry::getInstance().insert_resource( + {memoryResourceId_, const_cast(this)}); return &this->manager_; } - void* getBaseAddress() const noexcept override + const void* getBaseAddress() const noexcept override { return baseAddress_; } diff --git a/score/memory/shared/managed_memory_resource.h b/score/memory/shared/managed_memory_resource.h index 5c682c65..294664f2 100644 --- a/score/memory/shared/managed_memory_resource.h +++ b/score/memory/shared/managed_memory_resource.h @@ -65,6 +65,19 @@ class ManagedMemoryResource : public ::score::cpp::pmr::memory_resource ~ManagedMemoryResource() noexcept override = default; /** +<<<<<<< HEAD +======= + * We need to return a raw pointer, since we need to convert this + * pointer into an OffsetPtr if it shall be stored in shared memory. + * @return MemoryResourceProxy* that identifies _this_ memory_resource. + */ + + /// \todo: getMemoryResourceProxy should not return a non const pointer and the method should also be marked const. + /// This issue will be investigated and fixed in Ticket-146625" + virtual const MemoryResourceProxy* getMemoryResourceProxy() const noexcept = 0; + + /** +>>>>>>> 8a2efcd (const correctness for public interfaces in MemoryManagedResource) * @brief Construct T allocating underlying MemoryResource * @tparam T The type that shall be constructed * @tparam Args The argument types @@ -96,7 +109,7 @@ class ManagedMemoryResource : public ::score::cpp::pmr::memory_resource * @brief Get the start address of the memory region that this memory resource is managing * @return void* start address of memory resource (e.g. mmap result) */ - virtual void* getBaseAddress() const noexcept = 0; + virtual const void* getBaseAddress() const noexcept = 0; /** * @brief Get the start address of the region available to a user of this memory resource. diff --git a/score/memory/shared/memory_resource_proxy_test.cpp b/score/memory/shared/memory_resource_proxy_test.cpp index 6bb248c2..1d4f152e 100644 --- a/score/memory/shared/memory_resource_proxy_test.cpp +++ b/score/memory/shared/memory_resource_proxy_test.cpp @@ -148,8 +148,12 @@ TEST_F(BoundCheckedMemoryResourceProxyTest, AllocationIsPossibleWhenProxyInBound { // Given a registered memory resource and its respective MemoryResourceProxy // When allocating memory on the MemoryResourceProxy +<<<<<<< HEAD ManagedMemoryResourceTestAttorney attorney(memoryResource); const MemoryResourceProxy* proxy = attorney.getMemoryResourceProxy(); +======= + const MemoryResourceProxy* proxy = memoryResource.getMemoryResourceProxy(); +>>>>>>> 8a2efcd (const correctness for public interfaces in MemoryManagedResource) // Align the memory since that will be done before allocating the new memory const auto initial_number_allocated_bytes = memoryResource.getAllocatedMemory(); diff --git a/score/memory/shared/memory_resource_registry.cpp b/score/memory/shared/memory_resource_registry.cpp index ebd1b197..2cece0ee 100644 --- a/score/memory/shared/memory_resource_registry.cpp +++ b/score/memory/shared/memory_resource_registry.cpp @@ -66,7 +66,7 @@ auto score::memory::shared::MemoryResourceRegistry::insert_resource( // If we successfully inserted the ID into the registry, add the memory_range to known_regions. if (!input.second->IsOffsetPtrBoundsCheckBypassingEnabled() && result.second) { - void* const memory_range_start = resource->getBaseAddress(); + const void* const memory_range_start = resource->getBaseAddress(); const void* const memory_range_end = resource->getEndAddress(); if ((memory_range_start == nullptr) || (memory_range_end == nullptr)) diff --git a/score/memory/shared/memory_resource_registry_test.cpp b/score/memory/shared/memory_resource_registry_test.cpp index c4922776..cc5981cf 100644 --- a/score/memory/shared/memory_resource_registry_test.cpp +++ b/score/memory/shared/memory_resource_registry_test.cpp @@ -48,11 +48,11 @@ class BasicMemoryResource : public ManagedMemoryResource end_address_{reinterpret_cast(memory_range.second)} { } - MemoryResourceProxy* getMemoryResourceProxy() noexcept override + const MemoryResourceProxy* getMemoryResourceProxy() const noexcept override { return nullptr; } - void* getBaseAddress() const noexcept override + const void* getBaseAddress() const noexcept override { return base_address_; } @@ -97,11 +97,11 @@ class BoundsCheckBypassingMemoryResource : public ManagedMemoryResource end_address_{reinterpret_cast(memory_range.second)} { } - MemoryResourceProxy* getMemoryResourceProxy() noexcept override + const MemoryResourceProxy* getMemoryResourceProxy() const noexcept override { return nullptr; } - void* getBaseAddress() const noexcept override + const void* getBaseAddress() const noexcept override { return base_address_; } diff --git a/score/memory/shared/new_delete_delegate_resource.cpp b/score/memory/shared/new_delete_delegate_resource.cpp index d34d0d94..ed79bce0 100644 --- a/score/memory/shared/new_delete_delegate_resource.cpp +++ b/score/memory/shared/new_delete_delegate_resource.cpp @@ -61,7 +61,7 @@ NewDeleteDelegateMemoryResource::~NewDeleteDelegateMemoryResource() } } -void* NewDeleteDelegateMemoryResource::getBaseAddress() const noexcept +const void* NewDeleteDelegateMemoryResource::getBaseAddress() const noexcept { // Suppress "AUTOSAR C++14 A5-2-4" rule finding: "reinterpret_cast shall not be used.". // This class holds no real memory, it only has a made-up buffer. @@ -76,7 +76,7 @@ void* NewDeleteDelegateMemoryResource::getBaseAddress() const noexcept void* NewDeleteDelegateMemoryResource::getUsableBaseAddress() const noexcept { - return getBaseAddress(); + return const_cast(getBaseAddress()); } const void* NewDeleteDelegateMemoryResource::getEndAddress() const noexcept @@ -92,7 +92,7 @@ const void* NewDeleteDelegateMemoryResource::getEndAddress() const noexcept // NOLINTEND(cppcoreguidelines-pro-type-reinterpret-cast): see above } -const MemoryResourceProxy* NewDeleteDelegateMemoryResource::getMemoryResourceProxy() noexcept +const MemoryResourceProxy* NewDeleteDelegateMemoryResource::getMemoryResourceProxy() const noexcept { // Suppress "AUTOSAR C++14 A9-3-1" rule finding: "Member functions shall not return non-const “raw” pointers or // references to private or protected data owned by the class.". diff --git a/score/memory/shared/new_delete_delegate_resource.h b/score/memory/shared/new_delete_delegate_resource.h index 6179cdf9..a81dfe63 100644 --- a/score/memory/shared/new_delete_delegate_resource.h +++ b/score/memory/shared/new_delete_delegate_resource.h @@ -52,8 +52,8 @@ class NewDeleteDelegateMemoryResource : public score::memory::shared::ManagedMem ~NewDeleteDelegateMemoryResource() override; - const MemoryResourceProxy* getMemoryResourceProxy() noexcept override; - void* getBaseAddress() const noexcept override; + const MemoryResourceProxy* getMemoryResourceProxy() const noexcept override; + const void* getBaseAddress() const noexcept override; void* getUsableBaseAddress() const noexcept override; std::size_t GetUserAllocatedBytes() const noexcept override; diff --git a/score/memory/shared/shared_memory_resource.cpp b/score/memory/shared/shared_memory_resource.cpp index c623e24b..0796ddf6 100644 --- a/score/memory/shared/shared_memory_resource.cpp +++ b/score/memory/shared/shared_memory_resource.cpp @@ -677,7 +677,7 @@ auto SharedMemoryResource::GetLockFilePath(const std::string& input_path) noexce } // coverity[autosar_cpp14_m7_3_1_violation] false-positive: class method (Ticket-234468) -auto SharedMemoryResource::getMemoryResourceProxy() noexcept -> const MemoryResourceProxy* +auto SharedMemoryResource::getMemoryResourceProxy() const noexcept -> const MemoryResourceProxy* { SCORE_LANGUAGE_FUTURECPP_ASSERT_PRD_MESSAGE(this->control_block_ != nullptr, "Control block containing MemoryResourceProxy has not yet been created."); @@ -731,7 +731,7 @@ auto SharedMemoryResource::do_allocate(const std::size_t bytes, const std::size_ return new_address_aligned; } -auto SharedMemoryResource::getBaseAddress() const noexcept -> void* +auto SharedMemoryResource::getBaseAddress() const noexcept -> const void* { // Suppress "AUTOSAR C++14 A9-3-1" rule finding: "Member functions shall not return non-const “raw” pointers or // references to private or protected data owned by the class.". diff --git a/score/memory/shared/shared_memory_resource.h b/score/memory/shared/shared_memory_resource.h index 3308bdbd..409df189 100644 --- a/score/memory/shared/shared_memory_resource.h +++ b/score/memory/shared/shared_memory_resource.h @@ -60,14 +60,13 @@ class SharedMemoryResource : public ISharedMemoryResource, public std::enable_sh SharedMemoryResource(SharedMemoryResource&& other) = delete; SharedMemoryResource& operator=(SharedMemoryResource&&) = delete; - // coverity[autosar_cpp14_m7_3_1_violation] false-positive: class method (Ticket-234468) - const MemoryResourceProxy* getMemoryResourceProxy() noexcept override; + const MemoryResourceProxy* getMemoryResourceProxy() const noexcept override; /** * @brief Get the start address of the memory region that this memory resource is managing * @return void* start address of memory resource (e.g. mmap result) */ - void* getBaseAddress() const noexcept override; + const void* getBaseAddress() const noexcept override; /** * @brief Get the start address of the region available to a user of this SharedMemoryResource. diff --git a/score/memory/shared/shared_memory_resource_heap_allocator_mock.h b/score/memory/shared/shared_memory_resource_heap_allocator_mock.h index 43e0fb11..8415d2bb 100644 --- a/score/memory/shared/shared_memory_resource_heap_allocator_mock.h +++ b/score/memory/shared/shared_memory_resource_heap_allocator_mock.h @@ -28,7 +28,7 @@ class SharedMemoryResourceHeapAllocatorMock : public ISharedMemoryResource public: explicit SharedMemoryResourceHeapAllocatorMock(const std::uint64_t mem_res_id) : resource_{mem_res_id} {} - MOCK_METHOD(void*, getBaseAddress, (), (const, noexcept, override)); + MOCK_METHOD(const void*, getBaseAddress, (), (const, noexcept, override)); MOCK_METHOD(void*, getUsableBaseAddress, (), (const, noexcept, override)); @@ -46,7 +46,7 @@ class SharedMemoryResourceHeapAllocatorMock : public ISharedMemoryResource MOCK_METHOD(std::string_view, GetIdentifier, (), (const, noexcept, override)); - const MemoryResourceProxy* getMemoryResourceProxy() noexcept override + const MemoryResourceProxy* getMemoryResourceProxy() const noexcept override { return resource_.getMemoryResourceProxy(); } diff --git a/score/memory/shared/shared_memory_resource_mock.h b/score/memory/shared/shared_memory_resource_mock.h index e1281a6d..605a092a 100644 --- a/score/memory/shared/shared_memory_resource_mock.h +++ b/score/memory/shared/shared_memory_resource_mock.h @@ -25,9 +25,9 @@ namespace score::memory::shared class SharedMemoryResourceMock : public ISharedMemoryResource { public: - MOCK_METHOD(MemoryResourceProxy*, getMemoryResourceProxy, (), (noexcept, override)); + MOCK_METHOD(const MemoryResourceProxy*, getMemoryResourceProxy, (), (const, noexcept, override)); - MOCK_METHOD(void*, getBaseAddress, (), (const, noexcept, override)); + MOCK_METHOD(const void*, getBaseAddress, (), (const, noexcept, override)); MOCK_METHOD(void*, getUsableBaseAddress, (), (const, noexcept, override)); From d25e03c90c6db27d76ea70d5f2f765a60d860cd9 Mon Sep 17 00:00:00 2001 From: sramzy1 Date: Wed, 25 Feb 2026 13:45:17 +0200 Subject: [PATCH 2/2] fix tracing lib compilation issue --- .../interface_types/shared_memory_location_helpers.h | 4 ++-- score/memory/shared/fake/my_bounded_memory_resource.h | 2 +- .../shared/fake/my_bounded_shared_memory_resource.h | 2 +- score/memory/shared/fake/my_memory_resource.h | 2 +- score/memory/shared/managed_memory_resource.h | 8 -------- score/memory/shared/memory_resource_proxy_test.cpp | 4 ---- score/memory/shared/memory_resource_registry_test.cpp | 4 ++-- score/memory/shared/new_delete_delegate_resource.cpp | 2 +- score/memory/shared/new_delete_delegate_resource.h | 2 +- score/memory/shared/shared_memory_resource.cpp | 2 +- score/memory/shared/shared_memory_resource.h | 2 +- .../shared/shared_memory_resource_heap_allocator_mock.h | 2 +- score/memory/shared/shared_memory_resource_mock.h | 2 +- 13 files changed, 13 insertions(+), 25 deletions(-) diff --git a/score/analysis/tracing/common/interface_types/shared_memory_location_helpers.h b/score/analysis/tracing/common/interface_types/shared_memory_location_helpers.h index 0cc7ca7e..e11b5d04 100644 --- a/score/analysis/tracing/common/interface_types/shared_memory_location_helpers.h +++ b/score/analysis/tracing/common/interface_types/shared_memory_location_helpers.h @@ -62,7 +62,7 @@ auto GetPointerFromLocation(SharedMemoryLocation memory_location, ResourcePointe // coverity[autosar_cpp14_m5_0_17_violation] // coverity[autosar_cpp14_a5_2_4_violation] // coverity[autosar_cpp14_m5_2_8_violation] - return reinterpret_cast(static_cast(resource_ptr->getBaseAddress()) + memory_location.offset_);// NOLINT(cppcoreguidelines-pro-type-reinterpret-cast, cppcoreguidelines-pro-bounds-pointer-arithmetic): Tolerated see above + return reinterpret_cast(const_cast(static_cast(resource_ptr->getBaseAddress())) + memory_location.offset_); // NOLINT(cppcoreguidelines-pro-type-reinterpret-cast, cppcoreguidelines-pro-bounds-pointer-arithmetic): Tolerated see above // clang-format on } @@ -84,7 +84,7 @@ score::Result GetOffsetFromPointer(T* pointer, ResourcePointer memo // coverity[autosar_cpp14_a5_2_4_violation] // coverity[autosar_cpp14_m5_2_8_violation] // coverity[autosar_cpp14_m5_0_9_violation] - return static_cast(reinterpret_cast(pointer) - static_cast(memory_resource->getBaseAddress()));// NOLINT(cppcoreguidelines-pro-type-reinterpret-cast): Tolerated + return static_cast(reinterpret_cast(pointer) - static_cast(memory_resource->getBaseAddress())); // NOLINT(cppcoreguidelines-pro-type-reinterpret-cast): Tolerated // clang-format on } diff --git a/score/memory/shared/fake/my_bounded_memory_resource.h b/score/memory/shared/fake/my_bounded_memory_resource.h index aa39de75..27f80726 100644 --- a/score/memory/shared/fake/my_bounded_memory_resource.h +++ b/score/memory/shared/fake/my_bounded_memory_resource.h @@ -45,7 +45,7 @@ class MyBoundedMemoryResource final : public ManagedMemoryResource MyBoundedMemoryResource& operator=(const MyBoundedMemoryResource&) noexcept = default; MyBoundedMemoryResource& operator=(MyBoundedMemoryResource&&) noexcept = default; - const MemoryResourceProxy* getMemoryResourceProxy() const noexcept override + const MemoryResourceProxy* getMemoryResourceProxy() noexcept override { return manager_; } diff --git a/score/memory/shared/fake/my_bounded_shared_memory_resource.h b/score/memory/shared/fake/my_bounded_shared_memory_resource.h index fe760e09..ac613c02 100644 --- a/score/memory/shared/fake/my_bounded_shared_memory_resource.h +++ b/score/memory/shared/fake/my_bounded_shared_memory_resource.h @@ -54,7 +54,7 @@ class MyBoundedSharedMemoryResource final : public ISharedMemoryResource return false; } - const MemoryResourceProxy* getMemoryResourceProxy() const noexcept override + const MemoryResourceProxy* getMemoryResourceProxy() noexcept override { return resource_.getMemoryResourceProxy(); } diff --git a/score/memory/shared/fake/my_memory_resource.h b/score/memory/shared/fake/my_memory_resource.h index 7f4ac1ec..8499e872 100644 --- a/score/memory/shared/fake/my_memory_resource.h +++ b/score/memory/shared/fake/my_memory_resource.h @@ -44,7 +44,7 @@ class MyMemoryResource : public ManagedMemoryResource { } - const MemoryResourceProxy* getMemoryResourceProxy() const noexcept override + const MemoryResourceProxy* getMemoryResourceProxy() noexcept override { MemoryResourceRegistry::getInstance().clear(); score::cpp::ignore = MemoryResourceRegistry::getInstance().insert_resource( diff --git a/score/memory/shared/managed_memory_resource.h b/score/memory/shared/managed_memory_resource.h index 294664f2..832ac939 100644 --- a/score/memory/shared/managed_memory_resource.h +++ b/score/memory/shared/managed_memory_resource.h @@ -65,19 +65,11 @@ class ManagedMemoryResource : public ::score::cpp::pmr::memory_resource ~ManagedMemoryResource() noexcept override = default; /** -<<<<<<< HEAD -======= * We need to return a raw pointer, since we need to convert this * pointer into an OffsetPtr if it shall be stored in shared memory. * @return MemoryResourceProxy* that identifies _this_ memory_resource. */ - - /// \todo: getMemoryResourceProxy should not return a non const pointer and the method should also be marked const. - /// This issue will be investigated and fixed in Ticket-146625" - virtual const MemoryResourceProxy* getMemoryResourceProxy() const noexcept = 0; - /** ->>>>>>> 8a2efcd (const correctness for public interfaces in MemoryManagedResource) * @brief Construct T allocating underlying MemoryResource * @tparam T The type that shall be constructed * @tparam Args The argument types diff --git a/score/memory/shared/memory_resource_proxy_test.cpp b/score/memory/shared/memory_resource_proxy_test.cpp index 1d4f152e..6bb248c2 100644 --- a/score/memory/shared/memory_resource_proxy_test.cpp +++ b/score/memory/shared/memory_resource_proxy_test.cpp @@ -148,12 +148,8 @@ TEST_F(BoundCheckedMemoryResourceProxyTest, AllocationIsPossibleWhenProxyInBound { // Given a registered memory resource and its respective MemoryResourceProxy // When allocating memory on the MemoryResourceProxy -<<<<<<< HEAD ManagedMemoryResourceTestAttorney attorney(memoryResource); const MemoryResourceProxy* proxy = attorney.getMemoryResourceProxy(); -======= - const MemoryResourceProxy* proxy = memoryResource.getMemoryResourceProxy(); ->>>>>>> 8a2efcd (const correctness for public interfaces in MemoryManagedResource) // Align the memory since that will be done before allocating the new memory const auto initial_number_allocated_bytes = memoryResource.getAllocatedMemory(); diff --git a/score/memory/shared/memory_resource_registry_test.cpp b/score/memory/shared/memory_resource_registry_test.cpp index cc5981cf..d1fb916e 100644 --- a/score/memory/shared/memory_resource_registry_test.cpp +++ b/score/memory/shared/memory_resource_registry_test.cpp @@ -48,7 +48,7 @@ class BasicMemoryResource : public ManagedMemoryResource end_address_{reinterpret_cast(memory_range.second)} { } - const MemoryResourceProxy* getMemoryResourceProxy() const noexcept override + const MemoryResourceProxy* getMemoryResourceProxy() noexcept override { return nullptr; } @@ -97,7 +97,7 @@ class BoundsCheckBypassingMemoryResource : public ManagedMemoryResource end_address_{reinterpret_cast(memory_range.second)} { } - const MemoryResourceProxy* getMemoryResourceProxy() const noexcept override + const MemoryResourceProxy* getMemoryResourceProxy() noexcept override { return nullptr; } diff --git a/score/memory/shared/new_delete_delegate_resource.cpp b/score/memory/shared/new_delete_delegate_resource.cpp index ed79bce0..1ebe5aa9 100644 --- a/score/memory/shared/new_delete_delegate_resource.cpp +++ b/score/memory/shared/new_delete_delegate_resource.cpp @@ -92,7 +92,7 @@ const void* NewDeleteDelegateMemoryResource::getEndAddress() const noexcept // NOLINTEND(cppcoreguidelines-pro-type-reinterpret-cast): see above } -const MemoryResourceProxy* NewDeleteDelegateMemoryResource::getMemoryResourceProxy() const noexcept +const MemoryResourceProxy* NewDeleteDelegateMemoryResource::getMemoryResourceProxy() noexcept { // Suppress "AUTOSAR C++14 A9-3-1" rule finding: "Member functions shall not return non-const “raw” pointers or // references to private or protected data owned by the class.". diff --git a/score/memory/shared/new_delete_delegate_resource.h b/score/memory/shared/new_delete_delegate_resource.h index a81dfe63..73f3e75d 100644 --- a/score/memory/shared/new_delete_delegate_resource.h +++ b/score/memory/shared/new_delete_delegate_resource.h @@ -52,7 +52,7 @@ class NewDeleteDelegateMemoryResource : public score::memory::shared::ManagedMem ~NewDeleteDelegateMemoryResource() override; - const MemoryResourceProxy* getMemoryResourceProxy() const noexcept override; + const MemoryResourceProxy* getMemoryResourceProxy() noexcept override; const void* getBaseAddress() const noexcept override; void* getUsableBaseAddress() const noexcept override; diff --git a/score/memory/shared/shared_memory_resource.cpp b/score/memory/shared/shared_memory_resource.cpp index 0796ddf6..11e395c0 100644 --- a/score/memory/shared/shared_memory_resource.cpp +++ b/score/memory/shared/shared_memory_resource.cpp @@ -677,7 +677,7 @@ auto SharedMemoryResource::GetLockFilePath(const std::string& input_path) noexce } // coverity[autosar_cpp14_m7_3_1_violation] false-positive: class method (Ticket-234468) -auto SharedMemoryResource::getMemoryResourceProxy() const noexcept -> const MemoryResourceProxy* +auto SharedMemoryResource::getMemoryResourceProxy() noexcept -> const MemoryResourceProxy* { SCORE_LANGUAGE_FUTURECPP_ASSERT_PRD_MESSAGE(this->control_block_ != nullptr, "Control block containing MemoryResourceProxy has not yet been created."); diff --git a/score/memory/shared/shared_memory_resource.h b/score/memory/shared/shared_memory_resource.h index 409df189..04afc705 100644 --- a/score/memory/shared/shared_memory_resource.h +++ b/score/memory/shared/shared_memory_resource.h @@ -60,7 +60,7 @@ class SharedMemoryResource : public ISharedMemoryResource, public std::enable_sh SharedMemoryResource(SharedMemoryResource&& other) = delete; SharedMemoryResource& operator=(SharedMemoryResource&&) = delete; - const MemoryResourceProxy* getMemoryResourceProxy() const noexcept override; + const MemoryResourceProxy* getMemoryResourceProxy() noexcept override; /** * @brief Get the start address of the memory region that this memory resource is managing diff --git a/score/memory/shared/shared_memory_resource_heap_allocator_mock.h b/score/memory/shared/shared_memory_resource_heap_allocator_mock.h index 8415d2bb..6b4b5f01 100644 --- a/score/memory/shared/shared_memory_resource_heap_allocator_mock.h +++ b/score/memory/shared/shared_memory_resource_heap_allocator_mock.h @@ -46,7 +46,7 @@ class SharedMemoryResourceHeapAllocatorMock : public ISharedMemoryResource MOCK_METHOD(std::string_view, GetIdentifier, (), (const, noexcept, override)); - const MemoryResourceProxy* getMemoryResourceProxy() const noexcept override + const MemoryResourceProxy* getMemoryResourceProxy() noexcept override { return resource_.getMemoryResourceProxy(); } diff --git a/score/memory/shared/shared_memory_resource_mock.h b/score/memory/shared/shared_memory_resource_mock.h index 605a092a..45cc649d 100644 --- a/score/memory/shared/shared_memory_resource_mock.h +++ b/score/memory/shared/shared_memory_resource_mock.h @@ -25,7 +25,7 @@ namespace score::memory::shared class SharedMemoryResourceMock : public ISharedMemoryResource { public: - MOCK_METHOD(const MemoryResourceProxy*, getMemoryResourceProxy, (), (const, noexcept, override)); + MOCK_METHOD(const MemoryResourceProxy*, getMemoryResourceProxy, (), (noexcept, override)); MOCK_METHOD(const void*, getBaseAddress, (), (const, noexcept, override));