Closed FAlbertDev closed 3 months ago
I'm working on a regression test [...]. Similar issues should be discovered this way.
Let me add that this type of warning is easily missed by our current CI. As far as I know, we don't really "consume" our headers from a user perspective: namely, without -DBOTAN_IS_BEING_BUILT
. This hides such (likely compiler-dependent) issues.
Let me add that this type of warning is easily missed by our current CI. As far as I know, we don't really "consume" our headers from a user perspective: namely, without -DBOTAN_IS_BEING_BUILT. This hides such (likely compiler-dependent) issues.
This is so. This even managed to let us ship a header that Clang rejected as invalid (#4234)
Leveraging our time zone difference here and fishing for early feedback: 😏
@FAlbertDev's idea is to extend the 'amalgamation' CI target (as it practically includes all headers at once) and create a super simple example file that showcases the include of botan_all.h
. The make examples
target does not set -DBOTAN_IS_BEING_BUILT
, already now. Perhaps as the only build target in the project.
Hence, compiling the examples in the amalgamation build with -Werror
could be a reasonable way to catch such things in the future, on all three major compilers, with fairly minimal effort.
The deprecation of BigInt::Base is problematic when including bigint.h in applications. Since the BigInt::Base is deprecated, we cannot declare methods like:
This produces errors in applications like (at least with MSVC):
Instead, I propose only deprecating the enum values.
I'm working on a regression test by writing an example using the amalgamation header in amalgamation ci jobs. Similar issues should be discovered this way.