[vecops] Alignment-related fix for getting first element of small vector #20541
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.
In the RVec code, we assumed that the location of the SmallVectorBase subobject inside the RVec is identical to the RVec itself.
This assumption is not always correct. For example, on AArch64 GCC 14, some extra padding seems to be inserted before the base class.
This commit generalized the implementation of getting the first element by first casting to the SmallVectorBase class, which is what is required to calculate the correct offset to the SmallVectorBase data members.
We can see in this PRs CI run if it actually works: