Forward-declare OQS_SIG in sig_stfl.h #1820
Merged
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.
When an application (e.g.,
oqs-provider
) includes<oqs/sig.h>
, the following happens:sig.h
includesoqs.h
at the top of the file.oqs.h
includessig.h
, but this include is skipped because of theOQS_SIG_H
include guard.oqs.h
includessig_stfl.h
.sig_stfl.h
referencesOQS_SIG
, which has not yet been defined.This breaks the application's build: see #1815, open-quantum-safe/oqs-provider#427, and open-quantum-safe/oqs-demos#281.
This PR resolves the issue by forward-declaring the OQS_SIG type in
sig_stfl.h
. This fixes the failingoqs-provider
build: see the downstream tests before and after.I don't believe that the forward-declaration violates any C programming rules / best practices, but it would be great if someone with more experience could confirm this.