Implementation notes: amd64, hertz, crypto_sign/fslwe69
Computer: hertz
Microarchitecture: amd64; Zen 4 (a60f12)
Architecture: amd64
CPU ID: AuthenticAMD-00a60f12-178bfbff
SUPERCOP version: 20240808
Operation: crypto_sign
Primitive: fslwe69
Compiler output
aux.cpp: aux.cpp:238:19: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
aux.cpp: 238 | char random_char[number_chars];
aux.cpp: | ^~~~~~~~~~~~
aux.cpp: aux.cpp:238:19: note: function parameter 'number_chars' with unknown value cannot be used in a constant expression
aux.cpp: aux.cpp:236:21: note: declared here
aux.cpp: 236 | int init_random(int number_chars){
aux.cpp: | ^
aux.cpp: aux.cpp:495:28: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
aux.cpp: 495 | unsigned char temp_string[bytelength];
aux.cpp: | ^~~~~~~~~~
aux.cpp: aux.cpp:495:28: note: read of non-const variable 'bytelength' is not allowed in a constant expression
aux.cpp: aux.cpp:491:6: note: declared here
aux.cpp: 491 | int bytelength = length_char/(number_of_ZZ_pE*polynomial_degree);
aux.cpp: | ^
aux.cpp: 2 warnings generated.
fs_lwe_sign.cpp: fs_lwe_sign.cpp:388:18: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
fs_lwe_sign.cpp: 388 | ZZ_pE random_Dy[PublicParam.m];
fs_lwe_sign.cpp: | ^~~~~~~~~~~~~
fs_lwe_sign.cpp: fs_lwe_sign.cpp:388:18: note: function parameter 'PublicParam' with unknown value cannot be used in a constant expression
fs_lwe_sign.cpp: fs_lwe_sign.cpp:378:19: note: declared here
fs_lwe_sign.cpp: 378 | PublicParameter PublicParam,
fs_lwe_sign.cpp: | ^
fs_lwe_sign.cpp: fs_lwe_sign.cpp:429:19: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
fs_lwe_sign.cpp: 429 | NTL::ZZ_pE sk_ZZ[PP.m];
fs_lwe_sign.cpp: | ^~~~
fs_lwe_sign.cpp: fs_lwe_sign.cpp:429:19: note: read of non-constexpr variable 'PP' is not allowed in a constant expression
fs_lwe_sign.cpp: fs_lwe_sign.cpp:419:25: note: declared here
fs_lwe_sign.cpp: 419 | struct PublicParameter PP = {PUBLIC_PARAMETER_N, PUBLIC_PARAMETER_M,PUBLIC_PARAMETER_SIGMA,PUBLIC_PARAMETER_K};
fs_lwe_sign.cpp: | ^
fs_lwe_sign.cpp: fs_lwe_sign.cpp:430:17: warning: variable length arrays in C++ are a Clang extension [-Wvla-cxx-extension]
fs_lwe_sign.cpp: 430 | NTL::ZZ_pE rhf[PP.m];
fs_lwe_sign.cpp: | ^~~~
fs_lwe_sign.cpp: fs_lwe_sign.cpp:430:17: note: read of non-constexpr variable 'PP' is not allowed in a constant expression
fs_lwe_sign.cpp: fs_lwe_sign.cpp:419:25: note: declared here
fs_lwe_sign.cpp: 419 | struct PublicParameter PP = {PUBLIC_PARAMETER_N, PUBLIC_PARAMETER_M,PUBLIC_PARAMETER_SIGMA,PUBLIC_PARAMETER_K};
fs_lwe_sign.cpp: | ^
fs_lwe_sign.cpp: 3 warnings generated.
try.cpp: In file included from try-small.cpp:2:
try.cpp: ./try.cpp:58:31: error: use of undeclared identifier 'BYTES_SIGNATUR_E'
try.cpp: 58 | if (alloclen < TUNE_BYTES + crypto_sign_BYTES) alloclen = TUNE_BYTES + crypto_sign_BYTES;
try.cpp: | ^
try.cpp: ./crypto_sign.h:9:27: note: expanded from macro 'crypto_sign_BYTES'
try.cpp: 9 | #define crypto_sign_BYTES crypto_sign_fslwe69_BYTES
try.cpp: | ^
try.cpp: ./crypto_sign_fslwe69.h:40:35: note: expanded from macro 'crypto_sign_fslwe69_BYTES'
try.cpp: 40 | #define crypto_sign_fslwe69_BYTES crypto_sign_fslwe69_ref_timingleaks_BYTES
try.cpp: | ^
try.cpp: ./crypto_sign_fslwe69.h:23:52: note: expanded from macro 'crypto_sign_fslwe69_ref_timingleaks_BYTES'
try.cpp: 23 | #define crypto_sign_fslwe69_ref_timingleaks_BYTES (BYTES_SIGNATUR_E + BYTES_SIGNATUR_Z)
try.cpp: | ^
try.cpp: In file included from try-small.cpp:2:
try.cpp: ./try.cpp:58:31: error: use of undeclared identifier 'BYTES_SIGNATUR_Z'
try.cpp: ./crypto_sign.h:9:27: note: expanded from macro 'crypto_sign_BYTES'
try.cpp: 9 | #define crypto_sign_BYTES crypto_sign_fslwe69_BYTES
try.cpp: | ^
try.cpp: ./crypto_sign_fslwe69.h:40:35: note: expanded from macro 'crypto_sign_fslwe69_BYTES'
try.cpp: 40 | #define crypto_sign_fslwe69_BYTES crypto_sign_fslwe69_ref_timingleaks_BYTES
try.cpp: | ^
try.cpp: ./crypto_sign_fslwe69.h:23:71: note: expanded from macro 'crypto_sign_fslwe69_ref_timingleaks_BYTES'
try.cpp: 23 | #define crypto_sign_fslwe69_ref_timingleaks_BYTES (BYTES_SIGNATUR_E + BYTES_SIGNATUR_Z)
try.cpp: | ^
try.cpp: In file included from try-small.cpp:2:
try.cpp: ...
Number of similar (implementation,compiler) pairs: 3, namely:
Implementation | Compiler |
T:ref | clang++ -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1)) |
T:ref | clang++ -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1)) |
T:ref | clang++ -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1)) |
Compiler output
try.cpp: In file included from crypto_sign.h:4,
try.cpp: from try.cpp:8,
try.cpp: from try-small.cpp:2:
try.cpp: try.cpp: In function 'void allocate()':
try.cpp: crypto_sign_fslwe69.h:23:52: error: 'BYTES_SIGNATUR_E' was not declared in this scope
try.cpp: 23 | #define crypto_sign_fslwe69_ref_timingleaks_BYTES (BYTES_SIGNATUR_E + BYTES_SIGNATUR_Z)
try.cpp: | ^~~~~~~~~~~~~~~~
try.cpp: crypto_sign_fslwe69.h:40:35: note: in expansion of macro 'crypto_sign_fslwe69_ref_timingleaks_BYTES'
try.cpp: 40 | #define crypto_sign_fslwe69_BYTES crypto_sign_fslwe69_ref_timingleaks_BYTES
try.cpp: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
try.cpp: crypto_sign.h:9:27: note: in expansion of macro 'crypto_sign_fslwe69_BYTES'
try.cpp: 9 | #define crypto_sign_BYTES crypto_sign_fslwe69_BYTES
try.cpp: | ^~~~~~~~~~~~~~~~~~~~~~~~~
try.cpp: try.cpp:58:31: note: in expansion of macro 'crypto_sign_BYTES'
try.cpp: 58 | if (alloclen < TUNE_BYTES + crypto_sign_BYTES) alloclen = TUNE_BYTES + crypto_sign_BYTES;
try.cpp: | ^~~~~~~~~~~~~~~~~
try.cpp: crypto_sign_fslwe69.h:23:71: error: 'BYTES_SIGNATUR_Z' was not declared in this scope
try.cpp: 23 | #define crypto_sign_fslwe69_ref_timingleaks_BYTES (BYTES_SIGNATUR_E + BYTES_SIGNATUR_Z)
try.cpp: | ^~~~~~~~~~~~~~~~
try.cpp: crypto_sign_fslwe69.h:40:35: note: in expansion of macro 'crypto_sign_fslwe69_ref_timingleaks_BYTES'
try.cpp: 40 | #define crypto_sign_fslwe69_BYTES crypto_sign_fslwe69_ref_timingleaks_BYTES
try.cpp: | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
try.cpp: crypto_sign.h:9:27: note: in expansion of macro 'crypto_sign_fslwe69_BYTES'
try.cpp: 9 | #define crypto_sign_BYTES crypto_sign_fslwe69_BYTES
try.cpp: | ^~~~~~~~~~~~~~~~~~~~~~~~~
try.cpp: ...
Number of similar (implementation,compiler) pairs: 3, namely:
Implementation | Compiler |
T:ref | g++ -march=native -mtune=native -O2 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0) |
T:ref | g++ -march=native -mtune=native -O3 -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0) |
T:ref | g++ -march=native -mtune=native -Os -fwrapv -fPIC -fPIE -gdwarf-4 -Wall (13.2.0) |