Use of ossl_unused in err.h.in

Matt Caswell matt at openssl.org
Mon Oct 4 07:00:59 UTC 2021


Please raise a github issue for this.

Matt

On 02/10/2021 17:19, Arran Cudbard-Bell wrote:
> In current master HEAD and 3.0.0 calling ERR_GET_REASON  throws the following
>   warning:
> 
> src/lib/tls/session.c:1323:43: warning: 'ERR_GET_REASON' was marked unused but was used [-Wused-but-marked-unused]
>                  while ((ssl_err = ERR_peek_error()) && (ERR_GET_REASON(ssl_err) == BIO_R_UNSUPPORTED_METHOD)) {
> 
> This is because the static inline functions in include/openssl/err.h.in have
> been marked up with ossl_unused i.e. (__attribute__((unused))).
> 
> I'm not sure what compiler the OP of https://github.com/openssl/openssl/issues/12792
> was using, but it should not be generating a -Wunused-function for a static inline
> function in a header file.  These are by their nature public functions, and should not
> generate unused function warnings.  The only correct place to generate this warnings
> is when the functions's visibility is limited to the compilation unit, and those functions
> are not called within the compilation unit.
> 
> Can 067a3057c3aab0cdd9a3cdb13c2e0000f69a4170 either be reverted, or a guard
> added so that ossl_unused is only set in the absence of a macro being defined (happy
> to send a PR for this).
> 
> As it is currently, calling ERR_GET_LIB, ERR_GET_FUNC, ERR_GET_RFLAGS,
> ERR_GET_REASON, ERR_FATAL_ERROR will produce spurious
> "used-but-marked-unused" warnings at build time.
> 
> -Arran
> 


More information about the openssl-users mailing list