Repro
mkdir repro cd repro cmake -DCMAKE_C_FLAGS="-Werror -Wsign-compare" -GNinja ..
Tested with GCC 12.2.1 but I think this will repro in any recent GCC or Clang.
Errors:
[11/397] Building C object CMakeFiles/mongocrypt.dir/src/mc-fle2-encryption-placeholder.c.o
FAILED: CMakeFiles/mongocrypt.dir/src/mc-fle2-encryption-placeholder.c.o
/usr/bin/cc -DBSON_STATIC -DKMS_MSG_STATIC -DMLIB_HAVE_STRINGS_H -DMLIB_USER -DMONGOCRYPT_LITTLE_ENDIAN -Dmongocrypt_EXPORTS -I/home/mark/src/libmongocrypt/kms-message/src -I/home/mark/src/libmongocrypt/src -I/home/mark/src/libmongocrypt/repro/src -I/home/mark/src/libmongocrypt/repro/_deps/embedded_mcd-src/src/libbson/src -I/home/mark/src/libmongocrypt/repro/_mongo-c-driver/src/libbson/src -I/home/mark/src/libmongocrypt/repro/_mongo-c-driver/src/libbson/src/bson -Werror -Wsign-compare -fPIC -Werror=implicit -Werror=return-type -Werror=incompatible-pointer-types -Werror=int-conversion -Werror=discarded-qualifiers -Werror=uninitialized -fPIC -std=gnu99 -MD -MT CMakeFiles/mongocrypt.dir/src/mc-fle2-encryption-placeholder.c.o -MF CMakeFiles/mongocrypt.dir/src/mc-fle2-encryption-placeholder.c.o.d -o CMakeFiles/mongocrypt.dir/src/mc-fle2-encryption-placeholder.c.o -c /home/mark/src/libmongocrypt/src/mc-fle2-encryption-placeholder.c
/home/mark/src/libmongocrypt/src/mc-fle2-encryption-placeholder.c: In function ‘mc_validate_sparsity’:
/home/mark/src/libmongocrypt/src/mc-fle2-encryption-placeholder.c:210:17: error: comparison of integer expressions of different signedness: ‘int64_t’ {aka ‘long int’} and ‘long unsigned int’ [-Werror=sign-compare]
210 | if (sparsity >= SIZE_MAX) {
| ^~
cc1: all warnings being treated as errors
[15/397] Building C object CMakeFiles/mongocrypt.dir/src/crypto/libcrypto.c.o
FAILED: CMakeFiles/mongocrypt.dir/src/crypto/libcrypto.c.o
/usr/bin/cc -DBSON_STATIC -DKMS_MSG_STATIC -DMLIB_HAVE_STRINGS_H -DMLIB_USER -DMONGOCRYPT_LITTLE_ENDIAN -Dmongocrypt_EXPORTS -I/home/mark/src/libmongocrypt/kms-message/src -I/home/mark/src/libmongocrypt/src -I/home/mark/src/libmongocrypt/repro/src -I/home/mark/src/libmongocrypt/repro/_deps/embedded_mcd-src/src/libbson/src -I/home/mark/src/libmongocrypt/repro/_mongo-c-driver/src/libbson/src -I/home/mark/src/libmongocrypt/repro/_mongo-c-driver/src/libbson/src/bson -Werror -Wsign-compare -fPIC -Werror=implicit -Werror=return-type -Werror=incompatible-pointer-types -Werror=int-conversion -Werror=discarded-qualifiers -Werror=uninitialized -fPIC -std=gnu99 -MD -MT CMakeFiles/mongocrypt.dir/src/crypto/libcrypto.c.o -MF CMakeFiles/mongocrypt.dir/src/crypto/libcrypto.c.o.d -o CMakeFiles/mongocrypt.dir/src/crypto/libcrypto.c.o -c /home/mark/src/libmongocrypt/src/crypto/libcrypto.c
In file included from /home/mark/src/libmongocrypt/repro/_deps/embedded_mcd-src/src/libbson/src/bson/bson-compat.h:35,
from /home/mark/src/libmongocrypt/repro/_deps/embedded_mcd-src/src/libbson/src/bson/bson.h:23,
from /home/mark/src/libmongocrypt/src/crypto/../mongocrypt-buffer-private.h:20,
from /home/mark/src/libmongocrypt/src/crypto/../mongocrypt-crypto-private.h:21,
from /home/mark/src/libmongocrypt/src/crypto/libcrypto.c:22:
/home/mark/src/libmongocrypt/src/crypto/libcrypto.c: In function ‘_encrypt_with_cipher’:
/home/mark/src/libmongocrypt/src/crypto/libcrypto.c:84:47: error: comparison of integer expressions of different signedness: ‘int’ and ‘uint32_t’ {aka ‘unsigned int’} [-Werror=sign-compare]
84 | EVP_CIPHER_iv_length (cipher) == args.iv->len);
| ^~
- is depended on by
-
SERVER-72017 Fix and/or suppress compiler warnings in libmongocrypt
-
- Backlog
-