tests: Fix function pointer initialization C89 error in ellswift tests#1837
Open
mllwchrry wants to merge 1 commit intobitcoin-core:masterfrom
Open
tests: Fix function pointer initialization C89 error in ellswift tests#1837mllwchrry wants to merge 1 commit intobitcoin-core:masterfrom
mllwchrry wants to merge 1 commit intobitcoin-core:masterfrom
Conversation
Contributor
|
I was wondering why we hadn't noticed this earlier. Apparently this happens only with "Constant expressions" is a weird corner of C, and this here indeed may depend on how you interpret the C89 standard. Anyway, this issue would go away if we switched to C99 because non-constant expressions would just be allowed there in array initializers. |
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.
Fixes a C89 pedantic compliance error in
src/modules/ellswift/tests_impl.hwhere function pointer array initialization is not allowed at declaration time.This error was exposed while I was testing the improved test coverage in CI. The initial plan was to simplify the configuration of modules in CI by enabling all modules by default and testing the disabling of each module independently.
Error: src/modules/ellswift/tests_impl.h:442:110: error: initializer element is not computable at load time [-Wpedantic].
The error occurred when running the
x86_64_debianGitHub Actions CI job, which uses GCC 16 (snapshot) with strict flags (-std=c89 -pedantic -pedantic-errors -Werror). See this action run for reference: https://github.com/mllwchrry/secp256k1/actions/runs/23301905657/job/67769464566.The fix uses
if/elseto assign function pointers after declaration, matching the pattern already used in the same file.While this is a minor C89 compliance issue, it blocks the potential CI simplification.