Test results for amd64, panther, crypto_sign/edons128k08n72nu8l4mu3

[Page version: 20241022 22:45:02]

Measurements for amd64, panther, crypto_sign Test results for amd64, panther, crypto_sign Test results for crypto_sign/edons128k08n72nu8l4mu3
Computer: panther
Microarchitecture: amd64; Tiger Lake (806c1)
Architecture: amd64
CPU ID: GenuineIntel-000806c1-00-bfebfbff
SUPERCOP version: 20241022
Operation: crypto_sign
Primitive: edons128k08n72nu8l4mu3
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
145223830761 0 89668009 988 2712T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2024071720240716
145887029016 0 89668623 1028 2680T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2024071720240716
146660149063 0 89688703 1028 2680T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2024071720240716
162026519732 0 89655773 1020 2680T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2024071720240716
162071447446 0 89686687 1028 2680T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2024071720240716
171850922513 0 89658544 996 2712T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2024071720240716
178326822274 0 89657952 996 2712T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2024071720240716
231640216141 0 89650952 988 2712T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall2024071720240716
261488217723 0 89655348 1020 2680T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall2024071720240716

Compiler output


mpfq_2_128.c: mpfq_2_128.c:154:35: warning: passing 'char *' to parameter of type 'const unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
mpfq_2_128.c:         int ret = mpn_set_str(zz, tmp, len, k->io_type);
mpfq_2_128.c:                                   ^~~
mpfq_2_128.c: .../supercop-data/panther/amd64/include/gmp.h:1595:68: note: passing argument to parameter here
mpfq_2_128.c: __GMP_DECLSPEC mp_size_t mpn_set_str (mp_ptr, const unsigned char *, size_t, int);
mpfq_2_128.c:                                                                    ^
mpfq_2_128.c: 1 warning generated.
sign.c: sign.c:815:63: warning: incompatible function pointer types passing 'int (const unsigned long *, const unsigned long *)' to parameter of type '__compar_fn_t' (aka 'int (*)(const void *, const void *)') [-Wincompatible-function-pointer-types]
sign.c:     qsort(allcandidates, NumberOfAllCandidates, sizeof(Kelt), compare);
sign.c:                                                               ^~~~~~~
sign.c: /usr/include/stdlib.h:831:20: note: passing argument to parameter '__compar' here
sign.c:                    __compar_fn_t __compar) __nonnull ((1, 4));
sign.c:                                  ^
sign.c: sign.c:566:83: warning: for loop has empty body [-Wempty-body]
sign.c:     for(i=0; i<(1<<(mu + 1 + ErrorBasisDimension))+2; i++) Kinit(allcandidates[i]);
sign.c:                                                                                   ^
sign.c: sign.c:566:83: note: put the semicolon on a separate line to silence this warning
sign.c: sign.c:880:84: warning: for loop has empty body [-Wempty-body]
sign.c:     for(i=0; i<(1<<(mu + 1 + ErrorBasisDimension))+2; i++) Kclear(allcandidates[i]);
sign.c:                                                                                    ^
sign.c: sign.c:880:84: note: put the semicolon on a separate line to silence this warning
sign.c: sign.c:975:63: warning: incompatible function pointer types passing 'int (const unsigned long *, const unsigned long *)' to parameter of type '__compar_fn_t' (aka 'int (*)(const void *, const void *)') [-Wincompatible-function-pointer-types]
sign.c:     qsort(allcandidates, NumberOfAllCandidates, sizeof(Kelt), compare);
sign.c:                                                               ^~~~~~~
sign.c: /usr/include/stdlib.h:831:20: note: passing argument to parameter '__compar' here
sign.c:                    __compar_fn_t __compar) __nonnull ((1, 4));
sign.c:                                  ^
sign.c: sign.c:934:83: warning: for loop has empty body [-Wempty-body]
sign.c:     for(i=0; i<(1<<(mu + 1 + ErrorBasisDimension))+2; i++) Kinit(allcandidates[i]);
sign.c:                                                                                   ^
sign.c: sign.c:934:83: note: put the semicolon on a separate line to silence this warning
sign.c: sign.c:913:19: warning: unused variable 'hash' [-Wunused-variable]
sign.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


mpfq_2_128.c: mpfq_2_128.c:154:35: warning: passing 'char *' to parameter of type 'const unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
mpfq_2_128.c:         int ret = mpn_set_str(zz, tmp, len, k->io_type);
mpfq_2_128.c:                                   ^~~
mpfq_2_128.c: .../supercop-data/panther/amd64/include/gmp.h:1595:68: note: passing argument to parameter here
mpfq_2_128.c: __GMP_DECLSPEC mp_size_t mpn_set_str (mp_ptr, const unsigned char *, size_t, int);
mpfq_2_128.c:                                                                    ^
mpfq_2_128.c: 1 warning generated.
sign.c: sign.c:815:63: warning: incompatible function pointer types passing 'int (const unsigned long *, const unsigned long *)' to parameter of type '__compar_fn_t' (aka 'int (*)(const void *, const void *)') [-Wincompatible-function-pointer-types]
sign.c:     qsort(allcandidates, NumberOfAllCandidates, sizeof(Kelt), compare);
sign.c:                                                               ^~~~~~~
sign.c: /usr/include/stdlib.h:831:20: note: passing argument to parameter '__compar' here
sign.c:                    __compar_fn_t __compar) __nonnull ((1, 4));
sign.c:                                  ^
sign.c: sign.c:566:83: warning: for loop has empty body [-Wempty-body]
sign.c:     for(i=0; i<(1<<(mu + 1 + ErrorBasisDimension))+2; i++) Kinit(allcandidates[i]);
sign.c:                                                                                   ^
sign.c: sign.c:566:83: note: put the semicolon on a separate line to silence this warning
sign.c: sign.c:880:84: warning: for loop has empty body [-Wempty-body]
sign.c:     for(i=0; i<(1<<(mu + 1 + ErrorBasisDimension))+2; i++) Kclear(allcandidates[i]);
sign.c:                                                                                    ^
sign.c: sign.c:880:84: note: put the semicolon on a separate line to silence this warning
sign.c: sign.c:975:63: warning: incompatible function pointer types passing 'int (const unsigned long *, const unsigned long *)' to parameter of type '__compar_fn_t' (aka 'int (*)(const void *, const void *)') [-Wincompatible-function-pointer-types]
sign.c:     qsort(allcandidates, NumberOfAllCandidates, sizeof(Kelt), compare);
sign.c:                                                               ^~~~~~~
sign.c: /usr/include/stdlib.h:831:20: note: passing argument to parameter '__compar' here
sign.c:                    __compar_fn_t __compar) __nonnull ((1, 4));
sign.c:                                  ^
sign.c: sign.c:934:83: warning: for loop has empty body [-Wempty-body]
sign.c:     for(i=0; i<(1<<(mu + 1 + ErrorBasisDimension))+2; i++) Kinit(allcandidates[i]);
sign.c:                                                                                   ^
sign.c: sign.c:934:83: note: put the semicolon on a separate line to silence this warning
sign.c: sign.c:925:10: warning: unused variable 'M' [-Wunused-variable]
sign.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


mpfq_2_128.c: mpfq_2_128.c:154:35: warning: passing 'char *' to parameter of type 'const unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
mpfq_2_128.c:         int ret = mpn_set_str(zz, tmp, len, k->io_type);
mpfq_2_128.c:                                   ^~~
mpfq_2_128.c: .../supercop-data/panther/amd64/include/gmp.h:1595:68: note: passing argument to parameter here
mpfq_2_128.c: __GMP_DECLSPEC mp_size_t mpn_set_str (mp_ptr, const unsigned char *, size_t, int);
mpfq_2_128.c:                                                                    ^
mpfq_2_128.c: 1 warning generated.
sign.c: sign.c:815:63: warning: incompatible function pointer types passing 'int (const unsigned long *, const unsigned long *)' to parameter of type '__compar_fn_t' (aka 'int (*)(const void *, const void *)') [-Wincompatible-function-pointer-types]
sign.c:     qsort(allcandidates, NumberOfAllCandidates, sizeof(Kelt), compare);
sign.c:                                                               ^~~~~~~
sign.c: /usr/include/stdlib.h:831:20: note: passing argument to parameter '__compar' here
sign.c:                    __compar_fn_t __compar) __nonnull ((1, 4));
sign.c:                                  ^
sign.c: sign.c:566:83: warning: for loop has empty body [-Wempty-body]
sign.c:     for(i=0; i<(1<<(mu + 1 + ErrorBasisDimension))+2; i++) Kinit(allcandidates[i]);
sign.c:                                                                                   ^
sign.c: sign.c:566:83: note: put the semicolon on a separate line to silence this warning
sign.c: sign.c:880:84: warning: for loop has empty body [-Wempty-body]
sign.c:     for(i=0; i<(1<<(mu + 1 + ErrorBasisDimension))+2; i++) Kclear(allcandidates[i]);
sign.c:                                                                                    ^
sign.c: sign.c:880:84: note: put the semicolon on a separate line to silence this warning
sign.c: sign.c:975:63: warning: incompatible function pointer types passing 'int (const unsigned long *, const unsigned long *)' to parameter of type '__compar_fn_t' (aka 'int (*)(const void *, const void *)') [-Wincompatible-function-pointer-types]
sign.c:     qsort(allcandidates, NumberOfAllCandidates, sizeof(Kelt), compare);
sign.c:                                                               ^~~~~~~
sign.c: /usr/include/stdlib.h:831:20: note: passing argument to parameter '__compar' here
sign.c:                    __compar_fn_t __compar) __nonnull ((1, 4));
sign.c:                                  ^
sign.c: sign.c:934:83: warning: for loop has empty body [-Wempty-body]
sign.c:     for(i=0; i<(1<<(mu + 1 + ErrorBasisDimension))+2; i++) Kinit(allcandidates[i]);
sign.c:                                                                                   ^
sign.c: sign.c:934:83: note: put the semicolon on a separate line to silence this warning
sign.c: sign.c:913:51: warning: unused variable 'temphash' [-Wunused-variable]
sign.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


mpfq_2_128.c: mpfq_2_128.c:154:35: warning: passing 'char *' to parameter of type 'const unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
mpfq_2_128.c:         int ret = mpn_set_str(zz, tmp, len, k->io_type);
mpfq_2_128.c:                                   ^~~
mpfq_2_128.c: .../supercop-data/panther/amd64/include/gmp.h:1595:68: note: passing argument to parameter here
mpfq_2_128.c: __GMP_DECLSPEC mp_size_t mpn_set_str (mp_ptr, const unsigned char *, size_t, int);
mpfq_2_128.c:                                                                    ^
mpfq_2_128.c: 1 warning generated.
sign.c: sign.c:815:63: warning: incompatible function pointer types passing 'int (const unsigned long *, const unsigned long *)' to parameter of type '__compar_fn_t' (aka 'int (*)(const void *, const void *)') [-Wincompatible-function-pointer-types]
sign.c:     qsort(allcandidates, NumberOfAllCandidates, sizeof(Kelt), compare);
sign.c:                                                               ^~~~~~~
sign.c: /usr/include/stdlib.h:831:20: note: passing argument to parameter '__compar' here
sign.c:                    __compar_fn_t __compar) __nonnull ((1, 4));
sign.c:                                  ^
sign.c: sign.c:566:83: warning: for loop has empty body [-Wempty-body]
sign.c:     for(i=0; i<(1<<(mu + 1 + ErrorBasisDimension))+2; i++) Kinit(allcandidates[i]);
sign.c:                                                                                   ^
sign.c: sign.c:566:83: note: put the semicolon on a separate line to silence this warning
sign.c: sign.c:880:84: warning: for loop has empty body [-Wempty-body]
sign.c:     for(i=0; i<(1<<(mu + 1 + ErrorBasisDimension))+2; i++) Kclear(allcandidates[i]);
sign.c:                                                                                    ^
sign.c: sign.c:880:84: note: put the semicolon on a separate line to silence this warning
sign.c: sign.c:975:63: warning: incompatible function pointer types passing 'int (const unsigned long *, const unsigned long *)' to parameter of type '__compar_fn_t' (aka 'int (*)(const void *, const void *)') [-Wincompatible-function-pointer-types]
sign.c:     qsort(allcandidates, NumberOfAllCandidates, sizeof(Kelt), compare);
sign.c:                                                               ^~~~~~~
sign.c: /usr/include/stdlib.h:831:20: note: passing argument to parameter '__compar' here
sign.c:                    __compar_fn_t __compar) __nonnull ((1, 4));
sign.c:                                  ^
sign.c: sign.c:934:83: warning: for loop has empty body [-Wempty-body]
sign.c:     for(i=0; i<(1<<(mu + 1 + ErrorBasisDimension))+2; i++) Kinit(allcandidates[i]);
sign.c:                                                                                   ^
sign.c: sign.c:934:83: note: put the semicolon on a separate line to silence this warning
sign.c: sign.c:914:19: warning: unused variable 'SHA2ofC' [-Wunused-variable]
sign.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


mpfq_2_128.c: mpfq_2_128.c:154:35: warning: passing 'char *' to parameter of type 'const unsigned char *' converts between pointers to integer types with different sign [-Wpointer-sign]
mpfq_2_128.c:         int ret = mpn_set_str(zz, tmp, len, k->io_type);
mpfq_2_128.c:                                   ^~~
mpfq_2_128.c: .../supercop-data/panther/amd64/include/gmp.h:1595:68: note: passing argument to parameter here
mpfq_2_128.c: __GMP_DECLSPEC mp_size_t mpn_set_str (mp_ptr, const unsigned char *, size_t, int);
mpfq_2_128.c:                                                                    ^
mpfq_2_128.c: 1 warning generated.
sign.c: sign.c:815:63: warning: incompatible function pointer types passing 'int (const unsigned long *, const unsigned long *)' to parameter of type '__compar_fn_t' (aka 'int (*)(const void *, const void *)') [-Wincompatible-function-pointer-types]
sign.c:     qsort(allcandidates, NumberOfAllCandidates, sizeof(Kelt), compare);
sign.c:                                                               ^~~~~~~
sign.c: /usr/include/stdlib.h:831:20: note: passing argument to parameter '__compar' here
sign.c:                    __compar_fn_t __compar) __nonnull ((1, 4));
sign.c:                                  ^
sign.c: sign.c:566:83: warning: for loop has empty body [-Wempty-body]
sign.c:     for(i=0; i<(1<<(mu + 1 + ErrorBasisDimension))+2; i++) Kinit(allcandidates[i]);
sign.c:                                                                                   ^
sign.c: sign.c:566:83: note: put the semicolon on a separate line to silence this warning
sign.c: sign.c:880:84: warning: for loop has empty body [-Wempty-body]
sign.c:     for(i=0; i<(1<<(mu + 1 + ErrorBasisDimension))+2; i++) Kclear(allcandidates[i]);
sign.c:                                                                                    ^
sign.c: sign.c:880:84: note: put the semicolon on a separate line to silence this warning
sign.c: sign.c:975:63: warning: incompatible function pointer types passing 'int (const unsigned long *, const unsigned long *)' to parameter of type '__compar_fn_t' (aka 'int (*)(const void *, const void *)') [-Wincompatible-function-pointer-types]
sign.c:     qsort(allcandidates, NumberOfAllCandidates, sizeof(Kelt), compare);
sign.c:                                                               ^~~~~~~
sign.c: /usr/include/stdlib.h:831:20: note: passing argument to parameter '__compar' here
sign.c:                    __compar_fn_t __compar) __nonnull ((1, 4));
sign.c:                                  ^
sign.c: sign.c:934:83: warning: for loop has empty body [-Wempty-body]
sign.c:     for(i=0; i<(1<<(mu + 1 + ErrorBasisDimension))+2; i++) Kinit(allcandidates[i]);
sign.c:                                                                                   ^
sign.c: sign.c:934:83: note: put the semicolon on a separate line to silence this warning
sign.c: sign.c:916:19: warning: unused variable 'allrandombytes' [-Wunused-variable]
sign.c: ...

Number of similar (implementation,compiler) pairs: 1, namely:
ImplementationCompiler
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)

Compiler output


mpfq_2_128.c: mpfq_2_128.c: In function 'mpfq_2_128_sscan':
mpfq_2_128.c: mpfq_2_128.c:154:35: warning: pointer targets in passing argument 2 of '__gmpn_set_str' differ in signedness [-Wpointer-sign]
mpfq_2_128.c:   154 |         int ret = mpn_set_str(zz, tmp, len, k->io_type);
mpfq_2_128.c:       |                                   ^~~
mpfq_2_128.c:       |                                   |
mpfq_2_128.c:       |                                   char *
mpfq_2_128.c: In file included from mpfq.h:6,
mpfq_2_128.c:                  from mpfq_2_128.h:6,
mpfq_2_128.c:                  from mpfq_2_128.c:3:
mpfq_2_128.c: .../supercop-data/panther/amd64/include/gmp.h:1595:47: note: expected 'const unsigned char *' but argument is of type 'char *'
mpfq_2_128.c:  1595 | __GMP_DECLSPEC mp_size_t mpn_set_str (mp_ptr, const unsigned char *, size_t, int);
mpfq_2_128.c:       |                                               ^~~~~~~~~~~~~~~~~~~~~
sign.c: sign.c: In function 'crypto_sign_edons128k08n72nu8l4mu3_ref_timingleaks':
sign.c: sign.c:815:63: warning: passing argument 4 of 'qsort' from incompatible pointer type [-Wincompatible-pointer-types]
sign.c:   815 |     qsort(allcandidates, NumberOfAllCandidates, sizeof(Kelt), compare);
sign.c:       |                                                               ^~~~~~~
sign.c:       |                                                               |
sign.c:       |                                                               int (*)(const long unsigned int *, const long unsigned int *)
sign.c: In file included from sign.c:2:
sign.c: /usr/include/stdlib.h:831:20: note: expected '__compar_fn_t' {aka 'int (*)(const void *, const void *)'} but argument is of type 'int (*)(const long unsigned int *, const long unsigned int *)'
sign.c:   831 |      __compar_fn_t __compar) __nonnull ((1, 4));
sign.c:       |      ~~~~~~~~~~~~~~^~~~~~~~
sign.c: sign.c: In function 'crypto_sign_edons128k08n72nu8l4mu3_ref_timingleaks_open':
sign.c: sign.c:975:63: warning: passing argument 4 of 'qsort' from incompatible pointer type [-Wincompatible-pointer-types]
sign.c:   975 |     qsort(allcandidates, NumberOfAllCandidates, sizeof(Kelt), compare);
sign.c:       |                                                               ^~~~~~~
sign.c:       |                                                               |
sign.c:       |                                                               int (*)(const long unsigned int *, const long unsigned int *)
sign.c: In file included from sign.c:2:
sign.c: /usr/include/stdlib.h:831:20: note: expected '__compar_fn_t' {aka 'int (*)(const void *, const void *)'} but argument is of type 'int (*)(const long unsigned int *, const long unsigned int *)'
sign.c:   831 |      __compar_fn_t __compar) __nonnull ((1, 4));
sign.c:       |      ~~~~~~~~~~~~~~^~~~~~~~
sign.c: sign.c:926:10: warning: unused variable 'mm' [-Wunused-variable]
sign.c:   926 |     Kelt mm[mu], Cbase[NrColumns];
sign.c:       |          ^~
sign.c: sign.c:925:10: warning: unused variable 'M' [-Wunused-variable]
sign.c:   925 |     Kelt M[ProjectionDim], y[NrRows], C[NrColumns], allcandidates[(1<<(mu + 1 + ErrorBasisDimension))+2];
sign.c: ...

Number of similar (implementation,compiler) pairs: 4, namely:
ImplementationCompiler
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)

Namespace violations


gmp_export.o gmp_export T
gmp_import.o gmp_import T
mpfq_2_128.o mpfq_2_128_asprint T
mpfq_2_128.o mpfq_2_128_fprint T
mpfq_2_128.o mpfq_2_128_fscan T
mpfq_2_128.o mpfq_2_128_sscan T
rng.o AES256_CTR_DRBG_Update T
rng.o AES256_ECB T
rng.o DRBG_ctx B
rng.o handleErrors T
rng.o randombytes_init T
rng.o seedexpander T
rng.o seedexpander_init T
sign.o K B
sign.o PublicKey B
sign.o addcandidate T
sign.o compare T

Number of similar (implementation,compiler) pairs: 9, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -march=native -O -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refclang -mcpu=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Debian_Clang_11.0.1)
T:refgcc -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -O -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)
T:refgcc -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (10.2.1_20210110)