compile
command_line: /opt/hostedtoolcache/cmake/4.1.2/x64/cmake-4.1.2-linux-x86_64/bin/cmake -E __run_co_compile --tidy=clang-tidy-18;--extra-arg-before=--driver-mode=gcc --source=/home/runner/work/nightly-builds/nightly-builds/src/tests.c -- /usr/bin/clang-18 -DCOMB_BLOCKS=43 -DCOMB_TEETH=6 -DECMULT_WINDOW_SIZE=15 -DENABLE_MODULE_ECDH=1 -DENABLE_MODULE_ELLSWIFT=1 -DENABLE_MODULE_EXTRAKEYS=1 -DENABLE_MODULE_MUSIG=1 -DENABLE_MODULE_SCHNORRSIG=1 -DSUPPORTS_CONCURRENCY=1 -DUSE_ASM_X86_64=1 -DVERIFY -g -std=c90 -Wall -pedantic -Wcast-align -Wconditional-uninitialized -Wextra -Wnested-externs -Wno-long-long -Wno-overlength-strings -Wno-unused-function -Wreserved-identifier -Wshadow -Wstrict-prototypes -Wundef -MD -MT src/CMakeFiles/tests.dir/tests.c.o -MF src/CMakeFiles/tests.dir/tests.c.o.d -o src/CMakeFiles/tests.dir/tests.c.o -c /home/runner/work/nightly-builds/nightly-builds/src/tests.c
working_directory: "/home/runner/work/nightly-builds/nightly-builds/build"
Target: tests
Target Type: EXECUTABLE
Source: /home/runner/work/nightly-builds/nightly-builds/src/tests.c
Language: C
Config: Debug
stderr:
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:65:20: warning: The left operand of '<' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
65 | no |= (a->d[3] < SECP256K1_N_3); /* No need for a > check. */
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:7076:15: note: Calling 'secp256k1_ecdsa_sig_verify'
7076 | CHECK(secp256k1_ecdsa_sig_verify(&sr, &ss, &key, &msg) == 0);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:18: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^~~~
/home/runner/work/nightly-builds/nightly-builds/src/util.h:136:39: note: expanded from macro 'EXPECT'
136 | #define EXPECT(x,c) __builtin_expect((x),(c))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/ecdsa_impl.h:204:9: note: Left side of '||' is false
204 | if (secp256k1_scalar_is_zero(sigr) || secp256k1_scalar_is_zero(sigs)) {
| ^
/home/runner/work/nightly-builds/nightly-builds/src/ecdsa_impl.h:204:5: note: Taking false branch
204 | if (secp256k1_scalar_is_zero(sigr) || secp256k1_scalar_is_zero(sigs)) {
| ^
/home/runner/work/nightly-builds/nightly-builds/src/ecdsa_impl.h:209:5: note: Calling 'secp256k1_scalar_mul'
209 | secp256k1_scalar_mul(&u1, &sn, message);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:861:5: note: Calling 'secp256k1_scalar_reduce_512'
861 | secp256k1_scalar_reduce_512(r, l);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:459:5: note: Loop condition is false. Exiting loop
459 | SECP256K1_CHECKMEM_MSAN_DEFINE(&m0, sizeof(m0));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:70:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
70 | # define SECP256K1_CHECKMEM_MSAN_DEFINE(p, len) SECP256K1_CHECKMEM_NOOP((p), (len))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:42:41: note: expanded from macro 'SECP256K1_CHECKMEM_NOOP'
42 | #define SECP256K1_CHECKMEM_NOOP(p, len) do { (void)(p); (void)(len); } while(0)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:460:5: note: Loop condition is false. Exiting loop
460 | SECP256K1_CHECKMEM_MSAN_DEFINE(&m1, sizeof(m1));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:70:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
70 | # define SECP256K1_CHECKMEM_MSAN_DEFINE(p, len) SECP256K1_CHECKMEM_NOOP((p), (len))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:42:41: note: expanded from macro 'SECP256K1_CHECKMEM_NOOP'
42 | #define SECP256K1_CHECKMEM_NOOP(p, len) do { (void)(p); (void)(len); } while(0)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:461:5: note: Loop condition is false. Exiting loop
461 | SECP256K1_CHECKMEM_MSAN_DEFINE(&m2, sizeof(m2));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:70:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
70 | # define SECP256K1_CHECKMEM_MSAN_DEFINE(p, len) SECP256K1_CHECKMEM_NOOP((p), (len))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:42:41: note: expanded from macro 'SECP256K1_CHECKMEM_NOOP'
42 | #define SECP256K1_CHECKMEM_NOOP(p, len) do { (void)(p); (void)(len); } while(0)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:462:5: note: Loop condition is false. Exiting loop
462 | SECP256K1_CHECKMEM_MSAN_DEFINE(&m3, sizeof(m3));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:70:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
70 | # define SECP256K1_CHECKMEM_MSAN_DEFINE(p, len) SECP256K1_CHECKMEM_NOOP((p), (len))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:42:41: note: expanded from macro 'SECP256K1_CHECKMEM_NOOP'
42 | #define SECP256K1_CHECKMEM_NOOP(p, len) do { (void)(p); (void)(len); } while(0)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:463:5: note: Loop condition is false. Exiting loop
463 | SECP256K1_CHECKMEM_MSAN_DEFINE(&m4, sizeof(m4));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:70:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
70 | # define SECP256K1_CHECKMEM_MSAN_DEFINE(p, len) SECP256K1_CHECKMEM_NOOP((p), (len))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:42:41: note: expanded from macro 'SECP256K1_CHECKMEM_NOOP'
42 | #define SECP256K1_CHECKMEM_NOOP(p, len) do { (void)(p); (void)(len); } while(0)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:464:5: note: Loop condition is false. Exiting loop
464 | SECP256K1_CHECKMEM_MSAN_DEFINE(&m5, sizeof(m5));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:70:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
70 | # define SECP256K1_CHECKMEM_MSAN_DEFINE(p, len) SECP256K1_CHECKMEM_NOOP((p), (len))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:42:41: note: expanded from macro 'SECP256K1_CHECKMEM_NOOP'
42 | #define SECP256K1_CHECKMEM_NOOP(p, len) do { (void)(p); (void)(len); } while(0)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:465:5: note: Loop condition is false. Exiting loop
465 | SECP256K1_CHECKMEM_MSAN_DEFINE(&m6, sizeof(m6));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:70:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
70 | # define SECP256K1_CHECKMEM_MSAN_DEFINE(p, len) SECP256K1_CHECKMEM_NOOP((p), (len))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:42:41: note: expanded from macro 'SECP256K1_CHECKMEM_NOOP'
42 | #define SECP256K1_CHECKMEM_NOOP(p, len) do { (void)(p); (void)(len); } while(0)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:546:5: note: Loop condition is false. Exiting loop
546 | SECP256K1_CHECKMEM_MSAN_DEFINE(&p0, sizeof(p0));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:70:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
70 | # define SECP256K1_CHECKMEM_MSAN_DEFINE(p, len) SECP256K1_CHECKMEM_NOOP((p), (len))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:42:41: note: expanded from macro 'SECP256K1_CHECKMEM_NOOP'
42 | #define SECP256K1_CHECKMEM_NOOP(p, len) do { (void)(p); (void)(len); } while(0)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:547:5: note: Loop condition is false. Exiting loop
547 | SECP256K1_CHECKMEM_MSAN_DEFINE(&p1, sizeof(p1));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:70:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
70 | # define SECP256K1_CHECKMEM_MSAN_DEFINE(p, len) SECP256K1_CHECKMEM_NOOP((p), (len))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:42:41: note: expanded from macro 'SECP256K1_CHECKMEM_NOOP'
42 | #define SECP256K1_CHECKMEM_NOOP(p, len) do { (void)(p); (void)(len); } while(0)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:548:5: note: Loop condition is false. Exiting loop
548 | SECP256K1_CHECKMEM_MSAN_DEFINE(&p2, sizeof(p2));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:70:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
70 | # define SECP256K1_CHECKMEM_MSAN_DEFINE(p, len) SECP256K1_CHECKMEM_NOOP((p), (len))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:42:41: note: expanded from macro 'SECP256K1_CHECKMEM_NOOP'
42 | #define SECP256K1_CHECKMEM_NOOP(p, len) do { (void)(p); (void)(len); } while(0)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:549:5: note: Loop condition is false. Exiting loop
549 | SECP256K1_CHECKMEM_MSAN_DEFINE(&p3, sizeof(p3));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:70:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
70 | # define SECP256K1_CHECKMEM_MSAN_DEFINE(p, len) SECP256K1_CHECKMEM_NOOP((p), (len))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:42:41: note: expanded from macro 'SECP256K1_CHECKMEM_NOOP'
42 | #define SECP256K1_CHECKMEM_NOOP(p, len) do { (void)(p); (void)(len); } while(0)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:550:5: note: Loop condition is false. Exiting loop
550 | SECP256K1_CHECKMEM_MSAN_DEFINE(&p4, sizeof(p4));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:70:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
70 | # define SECP256K1_CHECKMEM_MSAN_DEFINE(p, len) SECP256K1_CHECKMEM_NOOP((p), (len))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:42:41: note: expanded from macro 'SECP256K1_CHECKMEM_NOOP'
42 | #define SECP256K1_CHECKMEM_NOOP(p, len) do { (void)(p); (void)(len); } while(0)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:598:5: note: Loop condition is false. Exiting loop
598 | SECP256K1_CHECKMEM_MSAN_DEFINE(r, sizeof(*r));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:70:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
70 | # define SECP256K1_CHECKMEM_MSAN_DEFINE(p, len) SECP256K1_CHECKMEM_NOOP((p), (len))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:42:41: note: expanded from macro 'SECP256K1_CHECKMEM_NOOP'
42 | #define SECP256K1_CHECKMEM_NOOP(p, len) do { (void)(p); (void)(len); } while(0)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:599:5: note: Loop condition is false. Exiting loop
599 | SECP256K1_CHECKMEM_MSAN_DEFINE(&c, sizeof(c));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:70:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
70 | # define SECP256K1_CHECKMEM_MSAN_DEFINE(p, len) SECP256K1_CHECKMEM_NOOP((p), (len))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:42:41: note: expanded from macro 'SECP256K1_CHECKMEM_NOOP'
42 | #define SECP256K1_CHECKMEM_NOOP(p, len) do { (void)(p); (void)(len); } while(0)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:675:36: note: Calling 'secp256k1_scalar_check_overflow'
675 | secp256k1_scalar_reduce(r, c + secp256k1_scalar_check_overflow(r));
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:65:20: note: The left operand of '<' is a garbage value
65 | no |= (a->d[3] < SECP256K1_N_3); /* No need for a > check. */
| ~~~~~~~ ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:902:48: warning: The left operand of '>>' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
902 | r->d[0] = shift < 512 ? (l[0 + shiftlimbs] >> shiftlow | (shift < 448 && shiftlow ? (l[1 + shiftlimbs] << shifthigh) : 0)) : 0;
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:5681:5: note: Calling 'test_scalar_split'
5681 | test_scalar_split(&secp256k1_scalar_zero);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:5656:5: note: Calling 'secp256k1_scalar_split_lambda'
5656 | secp256k1_scalar_split_lambda(&s1, &slam, full);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/scalar_impl.h:161:5: note: Taking false branch
161 | VERIFY_CHECK(r1 != k);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:157:22: note: expanded from macro 'VERIFY_CHECK'
157 | #define VERIFY_CHECK CHECK
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_impl.h:161:5: note: Loop condition is false. Exiting loop
161 | VERIFY_CHECK(r1 != k);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:157:22: note: expanded from macro 'VERIFY_CHECK'
157 | #define VERIFY_CHECK CHECK
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_impl.h:162:5: note: Taking false branch
162 | VERIFY_CHECK(r2 != k);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:157:22: note: expanded from macro 'VERIFY_CHECK'
157 | #define VERIFY_CHECK CHECK
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_impl.h:162:5: note: Loop condition is false. Exiting loop
162 | VERIFY_CHECK(r2 != k);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:157:22: note: expanded from macro 'VERIFY_CHECK'
157 | #define VERIFY_CHECK CHECK
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_impl.h:163:5: note: Taking false branch
163 | VERIFY_CHECK(r1 != r2);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:157:22: note: expanded from macro 'VERIFY_CHECK'
157 | #define VERIFY_CHECK CHECK
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_impl.h:163:5: note: Loop condition is false. Exiting loop
163 | VERIFY_CHECK(r1 != r2);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:157:22: note: expanded from macro 'VERIFY_CHECK'
157 | #define VERIFY_CHECK CHECK
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_impl.h:166:5: note: Calling 'secp256k1_scalar_mul_shift_var'
166 | secp256k1_scalar_mul_shift_var(&c1, k, &g1, 384);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:896:5: note: Taking false branch
896 | VERIFY_CHECK(shift >= 256);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:157:22: note: expanded from macro 'VERIFY_CHECK'
157 | #define VERIFY_CHECK CHECK
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:896:5: note: Loop condition is false. Exiting loop
896 | VERIFY_CHECK(shift >= 256);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:157:22: note: expanded from macro 'VERIFY_CHECK'
157 | #define VERIFY_CHECK CHECK
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:898:5: note: Calling 'secp256k1_scalar_mul_512'
898 | secp256k1_scalar_mul_512(l, a, b);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:812:5: note: Loop condition is false. Exiting loop
812 | SECP256K1_CHECKMEM_MSAN_DEFINE(l8, sizeof(*l8) * 8);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:70:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
70 | # define SECP256K1_CHECKMEM_MSAN_DEFINE(p, len) SECP256K1_CHECKMEM_NOOP((p), (len))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/checkmem.h:42:41: note: expanded from macro 'SECP256K1_CHECKMEM_NOOP'
42 | #define SECP256K1_CHECKMEM_NOOP(p, len) do { (void)(p); (void)(len); } while(0)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:898:5: note: Returning from 'secp256k1_scalar_mul_512'
898 | secp256k1_scalar_mul_512(l, a, b);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:902:15: note: 'shift' is < 512
902 | r->d[0] = shift < 512 ? (l[0 + shiftlimbs] >> shiftlow | (shift < 448 && shiftlow ? (l[1 + shiftlimbs] << shifthigh) : 0)) : 0;
| ^~~~~
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:902:15: note: '?' condition is true
/home/runner/work/nightly-builds/nightly-builds/src/scalar_4x64_impl.h:902:48: note: The left operand of '>>' is a garbage value
902 | r->d[0] = shift < 512 ? (l[0 + shiftlimbs] >> shiftlow | (shift < 448 && shiftlow ? (l[1 + shiftlimbs] << shifthigh) : 0)) : 0;
| ~~~~~~~~~~~~~~~~~ ^
/home/runner/work/nightly-builds/nightly-builds/src/scratch_impl.h:34:9: warning: Argument to free() is the address of the local variable 'local_scratch', which is not memory allocated by malloc() [clang-analyzer-unix.Malloc]
34 | free(scratch);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:375:11: note: 'scratch' is not equal to null
375 | CHECK(scratch != NULL);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:18: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^~~~
/home/runner/work/nightly-builds/nightly-builds/src/util.h:136:39: note: expanded from macro 'EXPECT'
136 | #define EXPECT(x,c) __builtin_expect((x),(c))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:375:5: note: Taking false branch
375 | CHECK(scratch != NULL);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:375:5: note: Loop condition is false. Exiting loop
375 | CHECK(scratch != NULL);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:378:11: note: Assuming the condition is true
378 | CHECK(secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 0) == 1000);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:18: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^~~~
/home/runner/work/nightly-builds/nightly-builds/src/util.h:136:39: note: expanded from macro 'EXPECT'
136 | #define EXPECT(x,c) __builtin_expect((x),(c))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:378:5: note: Taking false branch
378 | CHECK(secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 0) == 1000);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:378:5: note: Loop condition is false. Exiting loop
378 | CHECK(secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 0) == 1000);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:379:5: note: Taking false branch
379 | CHECK(secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 1) == 1000 - (ALIGNMENT - 1));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:379:5: note: Loop condition is false. Exiting loop
379 | CHECK(secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 1) == 1000 - (ALIGNMENT - 1));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:380:11: note: Assuming field 'alloc_size' is equal to 0
380 | CHECK(scratch->alloc_size == 0);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:18: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^~~~
/home/runner/work/nightly-builds/nightly-builds/src/util.h:136:39: note: expanded from macro 'EXPECT'
136 | #define EXPECT(x,c) __builtin_expect((x),(c))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:380:5: note: Taking false branch
380 | CHECK(scratch->alloc_size == 0);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:380:5: note: Loop condition is false. Exiting loop
380 | CHECK(scratch->alloc_size == 0);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:381:5: note: Taking false branch
381 | CHECK(scratch->alloc_size % ALIGNMENT == 0);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:381:5: note: Loop condition is false. Exiting loop
381 | CHECK(scratch->alloc_size % ALIGNMENT == 0);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:385:5: note: Taking false branch
385 | CHECK(secp256k1_scratch_alloc(&CTX->error_callback, scratch, 500) != NULL);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:385:5: note: Loop condition is false. Exiting loop
385 | CHECK(secp256k1_scratch_alloc(&CTX->error_callback, scratch, 500) != NULL);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:386:11: note: Assuming the condition is true
386 | CHECK(secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 0) == 1000 - adj_alloc);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:18: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^~~~
/home/runner/work/nightly-builds/nightly-builds/src/util.h:136:39: note: expanded from macro 'EXPECT'
136 | #define EXPECT(x,c) __builtin_expect((x),(c))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:386:5: note: Taking false branch
386 | CHECK(secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 0) == 1000 - adj_alloc);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:386:5: note: Loop condition is false. Exiting loop
386 | CHECK(secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 0) == 1000 - adj_alloc);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:387:5: note: Taking false branch
387 | CHECK(secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 1) == 1000 - adj_alloc - (ALIGNMENT - 1));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:387:5: note: Loop condition is false. Exiting loop
387 | CHECK(secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 1) == 1000 - adj_alloc - (ALIGNMENT - 1));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:388:11: note: Assuming field 'alloc_size' is not equal to 0
388 | CHECK(scratch->alloc_size != 0);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:18: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^~~~
/home/runner/work/nightly-builds/nightly-builds/src/util.h:136:39: note: expanded from macro 'EXPECT'
136 | #define EXPECT(x,c) __builtin_expect((x),(c))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:388:5: note: Taking false branch
388 | CHECK(scratch->alloc_size != 0);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:388:5: note: Loop condition is false. Exiting loop
388 | CHECK(scratch->alloc_size != 0);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:389:11: note: Assuming the condition is true
389 | CHECK(scratch->alloc_size % ALIGNMENT == 0);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:18: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ~~~~~~~~~^~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/util.h:136:39: note: expanded from macro 'EXPECT'
136 | #define EXPECT(x,c) __builtin_expect((x),(c))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:389:5: note: Taking false branch
389 | CHECK(scratch->alloc_size % ALIGNMENT == 0);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:389:5: note: Loop condition is false. Exiting loop
389 | CHECK(scratch->alloc_size % ALIGNMENT == 0);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:392:5: note: Taking false branch
392 | CHECK(secp256k1_scratch_alloc(&CTX->error_callback, scratch, 501) == NULL);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:392:5: note: Loop condition is false. Exiting loop
392 | CHECK(secp256k1_scratch_alloc(&CTX->error_callback, scratch, 501) == NULL);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:393:5: note: Taking false branch
393 | CHECK(secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 0) == 1000 - adj_alloc);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:393:5: note: Loop condition is false. Exiting loop
393 | CHECK(secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 0) == 1000 - adj_alloc);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:394:5: note: Taking false branch
394 | CHECK(secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 1) == 1000 - adj_alloc - (ALIGNMENT - 1));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:394:5: note: Loop condition is false. Exiting loop
394 | CHECK(secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 1) == 1000 - adj_alloc - (ALIGNMENT - 1));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:395:20: note: Field 'alloc_size' is not equal to 0
395 | CHECK(scratch->alloc_size != 0);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:395:5: note: Taking false branch
395 | CHECK(scratch->alloc_size != 0);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:395:5: note: Loop condition is false. Exiting loop
395 | CHECK(scratch->alloc_size != 0);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:396:5: note: Taking false branch
396 | CHECK(scratch->alloc_size % ALIGNMENT == 0);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:396:5: note: Loop condition is false. Exiting loop
396 | CHECK(scratch->alloc_size % ALIGNMENT == 0);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:400:5: note: Taking false branch
400 | CHECK(scratch->alloc_size == 0);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:400:5: note: Loop condition is false. Exiting loop
400 | CHECK(scratch->alloc_size == 0);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:401:11: note: Assuming the condition is true
401 | CHECK(secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 0) == 1000);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:18: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^~~~
/home/runner/work/nightly-builds/nightly-builds/src/util.h:136:39: note: expanded from macro 'EXPECT'
136 | #define EXPECT(x,c) __builtin_expect((x),(c))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:401:5: note: Taking false branch
401 | CHECK(secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 0) == 1000);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:401:5: note: Loop condition is false. Exiting loop
401 | CHECK(secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 0) == 1000);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:402:5: note: Taking false branch
402 | CHECK(secp256k1_scratch_alloc(&CTX->error_callback, scratch, 500) != NULL);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:402:5: note: Loop condition is false. Exiting loop
402 | CHECK(secp256k1_scratch_alloc(&CTX->error_callback, scratch, 500) != NULL);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:403:5: note: Taking false branch
403 | CHECK(scratch->alloc_size != 0);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:403:5: note: Loop condition is false. Exiting loop
403 | CHECK(scratch->alloc_size != 0);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:408:5: note: Taking false branch
408 | CHECK_ERROR_VOID(CTX, secp256k1_scratch_apply_checkpoint(&CTX->error_callback, scratch, checkpoint_2)); /* checkpoint_2 is after checkpoint */
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:70:5: note: expanded from macro 'CHECK_ERROR_VOID'
70 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, error_callback, secp256k1_context_set_error_callback)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:63:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
63 | CHECK(_calls_to_callback == 1); \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:408:5: note: Loop condition is false. Exiting loop
408 | CHECK_ERROR_VOID(CTX, secp256k1_scratch_apply_checkpoint(&CTX->error_callback, scratch, checkpoint_2)); /* checkpoint_2 is after checkpoint */
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:70:5: note: expanded from macro 'CHECK_ERROR_VOID'
70 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, error_callback, secp256k1_context_set_error_callback)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:63:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
63 | CHECK(_calls_to_callback == 1); \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:408:5: note: Loop condition is false. Exiting loop
408 | CHECK_ERROR_VOID(CTX, secp256k1_scratch_apply_checkpoint(&CTX->error_callback, scratch, checkpoint_2)); /* checkpoint_2 is after checkpoint */
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:70:5: note: expanded from macro 'CHECK_ERROR_VOID'
70 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, error_callback, secp256k1_context_set_error_callback)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:57:84: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
57 | #define CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, callback, callback_setter) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:409:5: note: Taking false branch
409 | CHECK_ERROR_VOID(CTX, secp256k1_scratch_apply_checkpoint(&CTX->error_callback, scratch, (size_t) -1)); /* this is just wildly invalid */
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:70:5: note: expanded from macro 'CHECK_ERROR_VOID'
70 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, error_callback, secp256k1_context_set_error_callback)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:63:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
63 | CHECK(_calls_to_callback == 1); \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:409:5: note: Loop condition is false. Exiting loop
409 | CHECK_ERROR_VOID(CTX, secp256k1_scratch_apply_checkpoint(&CTX->error_callback, scratch, (size_t) -1)); /* this is just wildly invalid */
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:70:5: note: expanded from macro 'CHECK_ERROR_VOID'
70 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, error_callback, secp256k1_context_set_error_callback)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:63:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
63 | CHECK(_calls_to_callback == 1); \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:409:5: note: Loop condition is false. Exiting loop
409 | CHECK_ERROR_VOID(CTX, secp256k1_scratch_apply_checkpoint(&CTX->error_callback, scratch, (size_t) -1)); /* this is just wildly invalid */
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:70:5: note: expanded from macro 'CHECK_ERROR_VOID'
70 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, error_callback, secp256k1_context_set_error_callback)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:57:84: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
57 | #define CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, callback, callback_setter) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:415:5: note: Taking false branch
415 | CHECK_ERROR(CTX, secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 0));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:80:54: note: expanded from macro 'CHECK_ERROR'
80 | #define CHECK_ERROR(ctx, expr) CHECK_ERROR_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:415:5: note: Loop condition is false. Exiting loop
415 | CHECK_ERROR(CTX, secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 0));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:80:54: note: expanded from macro 'CHECK_ERROR'
80 | #define CHECK_ERROR(ctx, expr) CHECK_ERROR_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:415:5: note: Taking false branch
415 | CHECK_ERROR(CTX, secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 0));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:80:32: note: expanded from macro 'CHECK_ERROR'
80 | #define CHECK_ERROR(ctx, expr) CHECK_ERROR_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:70:5: note: expanded from macro 'CHECK_ERROR_VOID'
70 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, error_callback, secp256k1_context_set_error_callback)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:63:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
63 | CHECK(_calls_to_callback == 1); \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:415:5: note: Loop condition is false. Exiting loop
415 | CHECK_ERROR(CTX, secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 0));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:80:32: note: expanded from macro 'CHECK_ERROR'
80 | #define CHECK_ERROR(ctx, expr) CHECK_ERROR_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:70:5: note: expanded from macro 'CHECK_ERROR_VOID'
70 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, error_callback, secp256k1_context_set_error_callback)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:63:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
63 | CHECK(_calls_to_callback == 1); \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:415:5: note: Loop condition is false. Exiting loop
415 | CHECK_ERROR(CTX, secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 0));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:80:32: note: expanded from macro 'CHECK_ERROR'
80 | #define CHECK_ERROR(ctx, expr) CHECK_ERROR_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:70:5: note: expanded from macro 'CHECK_ERROR_VOID'
70 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, error_callback, secp256k1_context_set_error_callback)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:57:84: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
57 | #define CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, callback, callback_setter) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:416:5: note: Taking false branch
416 | CHECK_ERROR(CTX, secp256k1_scratch_alloc(&CTX->error_callback, scratch, 500));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:80:54: note: expanded from macro 'CHECK_ERROR'
80 | #define CHECK_ERROR(ctx, expr) CHECK_ERROR_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:416:5: note: Loop condition is false. Exiting loop
416 | CHECK_ERROR(CTX, secp256k1_scratch_alloc(&CTX->error_callback, scratch, 500));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:80:54: note: expanded from macro 'CHECK_ERROR'
80 | #define CHECK_ERROR(ctx, expr) CHECK_ERROR_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:416:5: note: Taking false branch
416 | CHECK_ERROR(CTX, secp256k1_scratch_alloc(&CTX->error_callback, scratch, 500));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:80:32: note: expanded from macro 'CHECK_ERROR'
80 | #define CHECK_ERROR(ctx, expr) CHECK_ERROR_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:70:5: note: expanded from macro 'CHECK_ERROR_VOID'
70 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, error_callback, secp256k1_context_set_error_callback)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:63:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
63 | CHECK(_calls_to_callback == 1); \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:416:5: note: Loop condition is false. Exiting loop
416 | CHECK_ERROR(CTX, secp256k1_scratch_alloc(&CTX->error_callback, scratch, 500));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:80:32: note: expanded from macro 'CHECK_ERROR'
80 | #define CHECK_ERROR(ctx, expr) CHECK_ERROR_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:70:5: note: expanded from macro 'CHECK_ERROR_VOID'
70 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, error_callback, secp256k1_context_set_error_callback)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:63:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
63 | CHECK(_calls_to_callback == 1); \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:416:5: note: Loop condition is false. Exiting loop
416 | CHECK_ERROR(CTX, secp256k1_scratch_alloc(&CTX->error_callback, scratch, 500));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:80:32: note: expanded from macro 'CHECK_ERROR'
80 | #define CHECK_ERROR(ctx, expr) CHECK_ERROR_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:70:5: note: expanded from macro 'CHECK_ERROR_VOID'
70 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, error_callback, secp256k1_context_set_error_callback)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:57:84: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
57 | #define CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, callback, callback_setter) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:417:27: note: Calling 'secp256k1_scratch_space_destroy'
417 | CHECK_ERROR_VOID(CTX, secp256k1_scratch_space_destroy(CTX, scratch));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:70:39: note: expanded from macro 'CHECK_ERROR_VOID'
70 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, error_callback, secp256k1_context_set_error_callback)
| ^~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:61:7: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
61 | { expr_or_stmt; } \
| ^~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/secp256k1.c:229:18: note: 'ctx' is not equal to null
229 | VERIFY_CHECK(ctx != NULL);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:157:22: note: expanded from macro 'VERIFY_CHECK'
157 | #define VERIFY_CHECK CHECK
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:18: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^~~~
/home/runner/work/nightly-builds/nightly-builds/src/util.h:136:39: note: expanded from macro 'EXPECT'
136 | #define EXPECT(x,c) __builtin_expect((x),(c))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/secp256k1.c:229:5: note: Taking false branch
229 | VERIFY_CHECK(ctx != NULL);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:157:22: note: expanded from macro 'VERIFY_CHECK'
157 | #define VERIFY_CHECK CHECK
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/secp256k1.c:229:5: note: Loop condition is false. Exiting loop
229 | VERIFY_CHECK(ctx != NULL);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:157:22: note: expanded from macro 'VERIFY_CHECK'
157 | #define VERIFY_CHECK CHECK
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/secp256k1.c:230:5: note: Calling 'secp256k1_scratch_destroy'
230 | secp256k1_scratch_destroy(&ctx->error_callback, scratch);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/scratch_impl.h:27:9: note: 'scratch' is not equal to NULL
27 | if (scratch != NULL) {
| ^~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/scratch_impl.h:27:5: note: Taking true branch
27 | if (scratch != NULL) {
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scratch_impl.h:28:13: note: Assuming the condition is false
28 | if (secp256k1_memcmp_var(scratch->magic, "scratch", 8) != 0) {
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/scratch_impl.h:28:9: note: Taking false branch
28 | if (secp256k1_memcmp_var(scratch->magic, "scratch", 8) != 0) {
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scratch_impl.h:32:9: note: Taking false branch
32 | VERIFY_CHECK(scratch->alloc_size == 0); /* all checkpoints should be applied */
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:157:22: note: expanded from macro 'VERIFY_CHECK'
157 | #define VERIFY_CHECK CHECK
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scratch_impl.h:32:9: note: Loop condition is false. Exiting loop
32 | VERIFY_CHECK(scratch->alloc_size == 0); /* all checkpoints should be applied */
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:157:22: note: expanded from macro 'VERIFY_CHECK'
157 | #define VERIFY_CHECK CHECK
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/scratch_impl.h:34:9: note: Argument to free() is the address of the local variable 'local_scratch', which is not memory allocated by malloc()
34 | free(scratch);
| ^ ~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:215:13: warning: Use of memory after it is freed [clang-analyzer-unix.Malloc]
215 | CHECK_ILLEGAL_VOID(STATIC_CTX, secp256k1_context_destroy(STATIC_CTX));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:72:5: note: expanded from macro 'CHECK_ILLEGAL_VOID'
72 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, illegal_callback, secp256k1_context_set_illegal_callback)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:62:19: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
62 | ctx->callback = _saved_callback; \
| ~~~~~~~~~~~~~ ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:192:5: note: Assuming the condition is false
192 | CHECK(secp256k1_context_no_precomp == secp256k1_context_static);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:9: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^~~~~~~~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/util.h:136:21: note: expanded from macro 'EXPECT'
136 | #define EXPECT(x,c) __builtin_expect((x),(c))
| ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:192:5: note: Taking false branch
192 | CHECK(secp256k1_context_no_precomp == secp256k1_context_static);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:192:5: note: Loop condition is false. Exiting loop
192 | CHECK(secp256k1_context_no_precomp == secp256k1_context_static);
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:198:9: note: Taking false branch
198 | CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_randomize(STATIC_CTX, seed));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:58: note: expanded from macro 'CHECK_ILLEGAL'
79 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:198:9: note: Loop condition is false. Exiting loop
198 | CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_randomize(STATIC_CTX, seed));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:58: note: expanded from macro 'CHECK_ILLEGAL'
79 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:198:9: note: Taking false branch
198 | CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_randomize(STATIC_CTX, seed));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:34: note: expanded from macro 'CHECK_ILLEGAL'
79 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:72:5: note: expanded from macro 'CHECK_ILLEGAL_VOID'
72 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, illegal_callback, secp256k1_context_set_illegal_callback)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:63:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
63 | CHECK(_calls_to_callback == 1); \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:198:9: note: Loop condition is false. Exiting loop
198 | CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_randomize(STATIC_CTX, seed));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:34: note: expanded from macro 'CHECK_ILLEGAL'
79 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:72:5: note: expanded from macro 'CHECK_ILLEGAL_VOID'
72 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, illegal_callback, secp256k1_context_set_illegal_callback)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:63:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
63 | CHECK(_calls_to_callback == 1); \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:198:9: note: Loop condition is false. Exiting loop
198 | CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_randomize(STATIC_CTX, seed));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:34: note: expanded from macro 'CHECK_ILLEGAL'
79 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:72:5: note: expanded from macro 'CHECK_ILLEGAL_VOID'
72 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, illegal_callback, secp256k1_context_set_illegal_callback)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:57:84: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
57 | #define CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, callback, callback_setter) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:199:9: note: Taking false branch
199 | CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_randomize(STATIC_CTX, NULL));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:58: note: expanded from macro 'CHECK_ILLEGAL'
79 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:199:9: note: Loop condition is false. Exiting loop
199 | CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_randomize(STATIC_CTX, NULL));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:58: note: expanded from macro 'CHECK_ILLEGAL'
79 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:199:9: note: Taking false branch
199 | CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_randomize(STATIC_CTX, NULL));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:34: note: expanded from macro 'CHECK_ILLEGAL'
79 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:72:5: note: expanded from macro 'CHECK_ILLEGAL_VOID'
72 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, illegal_callback, secp256k1_context_set_illegal_callback)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:63:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
63 | CHECK(_calls_to_callback == 1); \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:199:9: note: Loop condition is false. Exiting loop
199 | CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_randomize(STATIC_CTX, NULL));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:34: note: expanded from macro 'CHECK_ILLEGAL'
79 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:72:5: note: expanded from macro 'CHECK_ILLEGAL_VOID'
72 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, illegal_callback, secp256k1_context_set_illegal_callback)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:63:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
63 | CHECK(_calls_to_callback == 1); \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:199:9: note: Loop condition is false. Exiting loop
199 | CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_randomize(STATIC_CTX, NULL));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:34: note: expanded from macro 'CHECK_ILLEGAL'
79 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:72:5: note: expanded from macro 'CHECK_ILLEGAL_VOID'
72 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, illegal_callback, secp256k1_context_set_illegal_callback)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:57:84: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
57 | #define CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, callback, callback_setter) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:202:13: note: Assuming 'use_prealloc' is 0
202 | if (use_prealloc) {
| ^~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:202:9: note: Taking false branch
202 | if (use_prealloc) {
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:214:13: note: Taking false branch
214 | CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_clone(STATIC_CTX));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:58: note: expanded from macro 'CHECK_ILLEGAL'
79 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:214:13: note: Loop condition is false. Exiting loop
214 | CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_clone(STATIC_CTX));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:58: note: expanded from macro 'CHECK_ILLEGAL'
79 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:214:13: note: Taking false branch
214 | CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_clone(STATIC_CTX));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:34: note: expanded from macro 'CHECK_ILLEGAL'
79 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:72:5: note: expanded from macro 'CHECK_ILLEGAL_VOID'
72 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, illegal_callback, secp256k1_context_set_illegal_callback)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:63:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
63 | CHECK(_calls_to_callback == 1); \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:149:5: note: expanded from macro 'CHECK'
149 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:214:13: note: Loop condition is false. Exiting loop
214 | CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_clone(STATIC_CTX));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:34: note: expanded from macro 'CHECK_ILLEGAL'
79 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:72:5: note: expanded from macro 'CHECK_ILLEGAL_VOID'
72 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, illegal_callback, secp256k1_context_set_illegal_callback)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:63:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
63 | CHECK(_calls_to_callback == 1); \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/util.h:148:21: note: expanded from macro 'CHECK'
148 | #define CHECK(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:214:13: note: Loop condition is false. Exiting loop
214 | CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_clone(STATIC_CTX));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:34: note: expanded from macro 'CHECK_ILLEGAL'
79 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:72:5: note: expanded from macro 'CHECK_ILLEGAL_VOID'
72 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, illegal_callback, secp256k1_context_set_illegal_callback)
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:57:84: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
57 | #define CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, callback, callback_setter) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:215:44: note: Calling 'secp256k1_context_destroy'
215 | CHECK_ILLEGAL_VOID(STATIC_CTX, secp256k1_context_destroy(STATIC_CTX));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:72:39: note: expanded from macro 'CHECK_ILLEGAL_VOID'
72 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, illegal_callback, secp256k1_context_set_illegal_callback)
| ^~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:61:7: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
61 | { expr_or_stmt; } \
| ^~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/secp256k1.c:188:20: note: Assuming 'ctx' is not equal to null
188 | ARG_CHECK_VOID(ctx == NULL || secp256k1_context_is_proper(ctx));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/secp256k1.c:53:18: note: expanded from macro 'ARG_CHECK_VOID'
53 | if (EXPECT(!(cond), 0)) { \
| ~~~~~~~~~^~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/util.h:136:39: note: expanded from macro 'EXPECT'
136 | #define EXPECT(x,c) __builtin_expect((x),(c))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/secp256k1.c:188:20: note: Left side of '||' is false
188 | ARG_CHECK_VOID(ctx == NULL || secp256k1_context_is_proper(ctx));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/secp256k1.c:188:5: note: Assuming the condition is false
188 | ARG_CHECK_VOID(ctx == NULL || secp256k1_context_is_proper(ctx));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/secp256k1.c:53:16: note: expanded from macro 'ARG_CHECK_VOID'
53 | if (EXPECT(!(cond), 0)) { \
| ~~~~~~~^~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/util.h:136:39: note: expanded from macro 'EXPECT'
136 | #define EXPECT(x,c) __builtin_expect((x),(c))
| ^
/home/runner/work/nightly-builds/nightly-builds/src/secp256k1.c:188:5: note: Taking false branch
188 | ARG_CHECK_VOID(ctx == NULL || secp256k1_context_is_proper(ctx));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/secp256k1.c:53:5: note: expanded from macro 'ARG_CHECK_VOID'
53 | if (EXPECT(!(cond), 0)) { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/secp256k1.c:188:5: note: Loop condition is false. Exiting loop
188 | ARG_CHECK_VOID(ctx == NULL || secp256k1_context_is_proper(ctx));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/secp256k1.c:52:30: note: expanded from macro 'ARG_CHECK_VOID'
52 | #define ARG_CHECK_VOID(cond) do { \
| ^
/home/runner/work/nightly-builds/nightly-builds/src/secp256k1.c:191:9: note: 'ctx' is not equal to NULL
191 | if (ctx == NULL) {
| ^~~
/home/runner/work/nightly-builds/nightly-builds/src/secp256k1.c:191:5: note: Taking false branch
191 | if (ctx == NULL) {
| ^
/home/runner/work/nightly-builds/nightly-builds/src/secp256k1.c:196:5: note: Memory is released
196 | free(ctx);
| ^~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:215:44: note: Returning; memory was released via 1st parameter
215 | CHECK_ILLEGAL_VOID(STATIC_CTX, secp256k1_context_destroy(STATIC_CTX));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:72:39: note: expanded from macro 'CHECK_ILLEGAL_VOID'
72 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, illegal_callback, secp256k1_context_set_illegal_callback)
| ^~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:61:7: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
61 | { expr_or_stmt; } \
| ^~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:215:13: note: Use of memory after it is freed
215 | CHECK_ILLEGAL_VOID(STATIC_CTX, secp256k1_context_destroy(STATIC_CTX));
| ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:72:5: note: expanded from macro 'CHECK_ILLEGAL_VOID'
72 | CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, illegal_callback, secp256k1_context_set_illegal_callback)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:62:19: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
62 | ctx->callback = _saved_callback; \
| ~~~~~~~~~~~~~ ^