Crypto: document that CRYPTOPP_ALIGN_DATA can expand to nothing - #1842
Open
bernardladenthin wants to merge 1 commit into
Open
Crypto: document that CRYPTOPP_ALIGN_DATA can expand to nothing#1842bernardladenthin wants to merge 1 commit into
bernardladenthin wants to merge 1 commit into
Conversation
The macro falls through to an empty definition for TC_WINDOWS_BOOT and for compilers that are neither MSVC nor GCC/Clang. Common/Xts.c is compiled into the bootloader and declares two buffers with it, so the caveat is reachable.
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.
What
Adds a two-line comment to the
CRYPTOPP_ALIGN_DATAdefinition insrc/Crypto/config.h. No functional change.Why
The macro has three branches, and the last one is empty:
Under MSVC with
TC_WINDOWS_BOOTthe first branch is skipped,__GNUC__is not defined either, so the macro expands to nothing. This is not visible at the ~79 call sites that use it.The caveat is reachable, not hypothetical:
src/Common/Xts.ccontains noTC_WINDOWS_BOOTguards and is compiled into the bootloader, where its twoCRYPTOPP_ALIGN_DATA(16) whiteningValue[]declarations lose their alignment. That is harmless there — bootloader code is real-mode without SSE — but it is not obvious from reading either file.Scope
Documentation only. The behaviour is intentional and is deliberately left unchanged.