Conversation
…-64) AI work (opencode, big-pickle): - Removed the alignment > O1HEAP_ALIGNMENT rejection in O1HeapPool::allocate that returned nullptr; o1heap serves such requests at its own (O1HEAP_ALIGNMENT) granularity, matching the behavior the test documents. CI (glibc, max_align_t=16) was rejecting 2*max_align=32 requests while local mac/arm64 (max_align_t=8, request 16) never tripped the guard. - Made the over-aligned request deterministic on all hosts (sizeof(void*)*4 == 2x O1HEAP_ALIGNMENT) so the path is always exercised; all presets green (llvm/clang 21/21, m4/m7 cross). Human work: authored the original failing over-aligned test.
AI work (opencode, big-pickle): - Renamed the four local Node declarations that shadowed the fixture member 'node' in gtest-cyphal-node.cpp, fixing the GCC -Werror=shadow failure on the native Linux GCC CI job (Clang does not warn for class-member shadowing). Local renamed to constructed_node and its references updated. Human work: original test file.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #64
Problem
O1HeapPoolTest.OverAlignedAllocationsAreServedAtMaxAlignmentfailed in CI on ubuntu (GCC + LLVM) becauseO1HeapPool::allocaterejectedalignment > O1HEAP_ALIGNMENT(16 on 64-bit) withnullptr. With glibcalignof(max_align_t)==16, the test's request2 * max_align == 32was rejected. On mac/arm64max_align_t==8(2*max_align==16) the guard never tripped, so it only surfaced in CI.Fix
O1HEAP_ALIGNMENTgranularity — the behavior the test already documented (o1heap.h:The returned pointer is guaranteed to be aligned at O1HEAP_ALIGNMENT).sizeof(void*)*4== 2\u00d7 O1HEAP_ALIGNMENT) so the over-aligned path is always exercised.Checks
AI (opencode, big-pickle): guard removal + deterministic test request. Human: original failing test.
on-host-native-llvm21/21on-host-native-clang21/21on-target-cortex-m4-gcc-arm-none-eabiworkflowon-target-cortex-m7-gcc-arm-none-eabiworkflow