Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ The format of this file is based on [Keep a Changelog](http://keepachangelog.com

### Fixed
- Removed template arguments when declaring special member functions of a template class. They are unnecessary and even disallowed by some compilers.
- Fixes for chunked managed pointer and chunked openmp loop macros

## [Version 0.15.2] - Release date 2025-09-15

Expand Down
14 changes: 7 additions & 7 deletions src/care/DefaultMacros.h
Original file line number Diff line number Diff line change
Expand Up @@ -101,15 +101,15 @@ OMP_FOR_BEGIN for (auto INDEX = _care_openmp_for_loop_begin_ndx; INDEX < _care_o
////////////////////////////////////////////////////////////////////////////////
#define CARE_CHECKED_CHUNKED_OPENMP_FOR_LOOP_START(INDEX, START_INDEX, END_INDEX, CHUNK_SIZE, CHECK) {\
CARE_NEST_BEGIN(CHECK) \
auto const _care_openmp_for_loop_end_ndx = END_INDEX; \
decltype(_care_openmp_for_loop_end_ndx) _care_openmp_for_loop_ndx = START_INDEX; \
auto _care_openmp_for_loop_end_ndx = END_INDEX; \
decltype(_care_openmp_for_loop_end_ndx) _care_openmp_for_loop_current_ndx = START_INDEX; \
decltype(_care_openmp_for_loop_end_ndx) _care_open_chunked_for_loop_chunk_size = CHUNK_SIZE > 0 ? CHUNK_SIZE : END_INDEX - START_INDEX ; \
while (_care_openmp_for_loop_begin_ndx < _care_openmp_for_loop_end_ndx) { \
decltype(_care_openmp_for_loop_end_ndx) _care_openmp_for_loop_chunk_begin_ndx = _care_openmp_for_loop_ndx ; \
decltype(_care_openmp_for_loop_end_ndx) _care_openmp_for_loop_chunk_end_ndx = (_care_openmp_for_loop_ndx + _care_open_chunked_for_loop_chunk_size) ? _care_openmp_for_loop_ndx + _care_open_chunked_for_loop_chunk_size : _care_openmp_for_loop_end_ndx ; \
while (_care_openmp_for_loop_current_ndx < _care_openmp_for_loop_end_ndx) { \
decltype(_care_openmp_for_loop_end_ndx) _care_openmp_for_loop_chunk_begin_ndx = _care_openmp_for_loop_current_ndx ; \
decltype(_care_openmp_for_loop_end_ndx) _care_openmp_for_loop_chunk_end_ndx = (_care_openmp_for_loop_current_ndx + _care_open_chunked_for_loop_chunk_size < _care_openmp_for_loop_end_ndx) ? _care_openmp_for_loop_current_ndx + _care_open_chunked_for_loop_chunk_size : _care_openmp_for_loop_end_ndx ; \
OMP_FOR_BEGIN for (auto INDEX = _care_openmp_for_loop_chunk_begin_ndx; INDEX < _care_openmp_for_loop_chunk_end_ndx; ++INDEX) {\

#define CARE_CHECKED_CHUNKED_OPENMP_FOR_LOOP_END(CHECK) } OMP_FOR_END } CARE_NEST_END(CHECK) }
#define CARE_CHECKED_CHUNKED_OPENMP_FOR_LOOP_END(CHECK) } OMP_FOR_END _care_openmp_for_loop_current_ndx = _care_openmp_for_loop_chunk_end_ndx; } CARE_NEST_END(CHECK) }



Expand Down Expand Up @@ -417,7 +417,7 @@ OMP_FOR_BEGIN for (auto INDEX = _care_openmp_for_loop_chunk_begin_ndx; INDEX < _
/// @arg[in] CHECK The variable to check that the start and end macros match
///
////////////////////////////////////////////////////////////////////////////////
#define CARE_CHECKED_CHUNKED_MANAGED_PTR_LOOP_START(INDEX, START_INDEX, END_INDEX, CHECK) CARE_CHECKED_CHUNKED_OPENMP_FOR_LOOP_START(INDEX, START_INDEX, END_INDEX, CHUNK_SIZE, CHECK)
#define CARE_CHECKED_CHUNKED_MANAGED_PTR_LOOP_START(INDEX, START_INDEX, END_INDEX, CHUNK_SIZE, CHECK) CARE_CHECKED_CHUNKED_OPENMP_FOR_LOOP_START(INDEX, START_INDEX, END_INDEX, CHUNK_SIZE, CHECK)

#define CARE_CHECKED_CHUNKED_MANAGED_PTR_LOOP_END(CHECK) CARE_CHECKED_CHUNKED_OPENMP_FOR_LOOP_END(CHECK)

Expand Down