Implementation notes: amd64, hertz, crypto_aead/twine80n6clocv1

Computer: hertz
Microarchitecture: amd64; Zen 4 (a60f12)
Architecture: amd64
CPU ID: AuthenticAMD-00a60f12-178bfbff
SUPERCOP version: 20240716
Operation: crypto_aead
Primitive: twine80n6clocv1
TimeObject sizeTest sizeImplementationCompilerBenchmark dateSUPERCOP version
5665627343 0 28822620 812 1384T:refgcc_-march=native_-mtune=native_-O2_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
5795467835 0 28825116 812 1448T:refgcc_-march=native_-mtune=native_-O3_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716
16750256237 0 28819815 788 1352T:refgcc_-march=native_-mtune=native_-Os_-fwrapv_-fPIC_-fPIE_-gdwarf-4_-Wall2024071620240716

Compiler output


cloc.c: cloc.c:64:3: error: call to undeclared function 'pstate2'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
cloc.c:    64 |                 pstate2("After xoring associated data:", state);
cloc.c:       |                 ^
cloc.c: cloc.c:64:3: note: did you mean 'pstate'?
cloc.c: ./cloc.h:91:6: note: 'pstate' declared here
cloc.c:    91 | void pstate(const unsigned char* st, int len);
cloc.c:       |      ^
cloc.c: cloc.c:72:3: error: call to undeclared function 'pstate2'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
cloc.c:    72 |                 pstate2("After processing last partial associated data block:", state);
cloc.c:       |                 ^
cloc.c: cloc.c:93:2: error: call to undeclared function 'pstate2'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
cloc.c:    93 |         pstate2("After applying f1/f2 to state:", state);
cloc.c:       |         ^
cloc.c: cloc.c:133:4: error: call to undeclared function 'pstate2'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
cloc.c:   133 |                         pstate2("After xoring message block:", es);
cloc.c:       |                         ^
cloc.c: cloc.c:138:4: error: call to undeclared function 'pstate2'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
cloc.c:   138 |                         pstate2("After xoring ciphertext block:", es);
cloc.c:       |                         ^
cloc.c: cloc.c:145:3: error: call to undeclared function 'pstate2'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
cloc.c:   145 |                 pstate2("After applying fix1:", es);
cloc.c:       |                 ^
cloc.c: cloc.c:154:3: error: call to undeclared function 'pstate2'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
cloc.c:   154 |                 pstate2("After xoring last partial message block:", es);
cloc.c:       |                 ^
cloc.c: ...

Number of similar (implementation,compiler) pairs: 3, namely:
ImplementationCompiler
T:refclang -march=native -O2 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:refclang -march=native -O3 -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))
T:refclang -march=native -Os -fwrapv -Qunused-arguments -fPIC -fPIE -gdwarf-4 -Wall (Ubuntu_Clang_18.1.3_(1ubuntu1))

Compiler output


cloc.c: cloc.c: In function 'process_ad':
cloc.c: cloc.c:64:17: warning: implicit declaration of function 'pstate2'; did you mean 'pstate'? [-Wimplicit-function-declaration]
cloc.c:    64 |                 pstate2("After xoring associated data:", state);
cloc.c:       |                 ^~~~~~~
cloc.c:       |                 pstate
encrypt.c: encrypt.c: In function 'crypto_aead_twine80n6clocv1_ref_timingleaks_decrypt':
encrypt.c: encrypt.c:71:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation]
encrypt.c:    71 |     for(i = 0; i < CRYPTO_ABYTES; i++)
encrypt.c:       |     ^~~
encrypt.c: encrypt.c:76:9: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for'
encrypt.c:    76 |         return RETURN_SUCCESS;
encrypt.c:       |         ^~~~~~
twine.c: twine.c: In function 'Keyschedule':
twine.c: twine.c:451:17: warning: 'Keyschedule128' reading 32 bytes from a region of size 16 [-Wstringop-overread]
twine.c:   451 |                 Keyschedule128(sk);
twine.c:       |                 ^~~~~~~~~~~~~~~~~~
twine.c: twine.c:451:17: note: referencing argument 1 of type 'const uint8[32]' {aka 'const unsigned char[32]'}
twine.c: twine.c:317:6: note: in a call to function 'Keyschedule128'
twine.c:   317 | void Keyschedule128(const uint8 sk[128/4])
twine.c:       |      ^~~~~~~~~~~~~~

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

Namespace violations


cloc.o ae_encrypt T
cloc.o ae_init T
cloc.o process_ad T
twine.o CON_H R
twine.o CON_L R
twine.o Decode T
twine.o Encode T
twine.o Keyschedule T
twine.o Keyschedule128 T
twine.o Keyschedule80 T
twine.o S R
twine.o ek B
utils.o ae_allocate T
utils.o print_cxt T
utils.o pstate T
utils.o pstate2 T
utils.o xor_bytes T
utils.o xor_bytes2 T

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