compile

command_line: /opt/hostedtoolcache/cmake/4.0.3/x64/cmake-4.0.3-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 -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:7067:15: note: Calling 'secp256k1_ecdsa_sig_verify'
 7067 |         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:60:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
   60 | #  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:60:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
   60 | #  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:60:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
   60 | #  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:60:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
   60 | #  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:60:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
   60 | #  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:60:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
   60 | #  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:60:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
   60 | #  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:60:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
   60 | #  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:60:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
   60 | #  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:60:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
   60 | #  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:60:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
   60 | #  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:60:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
   60 | #  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:60:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
   60 | #  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:60:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
   60 | #  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:5661:5: note: Calling 'test_scalar_split'
 5661 |     test_scalar_split(&secp256k1_scalar_zero);
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:5636:5: note: Calling 'secp256k1_scalar_split_lambda'
 5636 |     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:60:50: note: expanded from macro 'SECP256K1_CHECKMEM_MSAN_DEFINE'
   60 | #  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:362:11: note: 'scratch' is not equal to null
  362 |     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:362:5: note: Taking false branch
  362 |     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:362:5: note: Loop condition is false.  Exiting loop
  362 |     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:365:11: note: Assuming the condition is true
  365 |     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:365:5: note: Taking false branch
  365 |     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:365:5: note: Loop condition is false.  Exiting loop
  365 |     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:366:5: note: Taking false branch
  366 |     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:366:5: note: Loop condition is false.  Exiting loop
  366 |     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:367:11: note: Assuming field 'alloc_size' is equal to 0
  367 |     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:367:5: note: Taking false branch
  367 |     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:367:5: note: Loop condition is false.  Exiting loop
  367 |     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:368:5: note: Taking false branch
  368 |     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:368:5: note: Loop condition is false.  Exiting loop
  368 |     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:372:5: note: Taking false branch
  372 |     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:372:5: note: Loop condition is false.  Exiting loop
  372 |     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:373:11: note: Assuming the condition is true
  373 |     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:373:5: note: Taking false branch
  373 |     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:373:5: note: Loop condition is false.  Exiting loop
  373 |     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:374:5: note: Taking false branch
  374 |     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:374:5: note: Loop condition is false.  Exiting loop
  374 |     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:375:11: note: Assuming field 'alloc_size' is not equal to 0
  375 |     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:375:5: note: Taking false branch
  375 |     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:375:5: note: Loop condition is false.  Exiting loop
  375 |     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:376:11: note: Assuming the condition is true
  376 |     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:376:5: note: Taking false branch
  376 |     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:376:5: note: Loop condition is false.  Exiting loop
  376 |     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:379:5: note: Taking false branch
  379 |     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:379:5: note: Loop condition is false.  Exiting loop
  379 |     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:380:5: note: Taking false branch
  380 |     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:380:5: note: Loop condition is false.  Exiting loop
  380 |     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:381:5: note: Taking false branch
  381 |     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:381:5: note: Loop condition is false.  Exiting loop
  381 |     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:382:20: note: Field 'alloc_size' is not equal to 0
  382 |     CHECK(scratch->alloc_size != 0);
      |                    ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:382:5: note: Taking false branch
  382 |     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:382:5: note: Loop condition is false.  Exiting loop
  382 |     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:383:5: note: Taking false branch
  383 |     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:383:5: note: Loop condition is false.  Exiting loop
  383 |     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:387:5: note: Taking false branch
  387 |     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:387:5: note: Loop condition is false.  Exiting loop
  387 |     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:388:11: note: Assuming the condition is true
  388 |     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:388:5: note: Taking false branch
  388 |     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:388:5: note: Loop condition is false.  Exiting loop
  388 |     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:389:5: note: Taking false branch
  389 |     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:389:5: note: Loop condition is false.  Exiting loop
  389 |     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:390:5: note: Taking false branch
  390 |     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:390:5: note: Loop condition is false.  Exiting loop
  390 |     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:395:5: note: Taking false branch
  395 |     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:69:5: note: expanded from macro 'CHECK_ERROR_VOID'
   69 |     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:62:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   62 |     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:395:5: note: Loop condition is false.  Exiting loop
  395 |     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:69:5: note: expanded from macro 'CHECK_ERROR_VOID'
   69 |     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:62:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   62 |     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:395:5: note: Loop condition is false.  Exiting loop
  395 |     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:69:5: note: expanded from macro 'CHECK_ERROR_VOID'
   69 |     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:56:84: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   56 | #define CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, callback, callback_setter) do { \
      |                                                                                    ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:396:5: note: Taking false branch
  396 |     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:69:5: note: expanded from macro 'CHECK_ERROR_VOID'
   69 |     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:62:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   62 |     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:396:5: note: Loop condition is false.  Exiting loop
  396 |     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:69:5: note: expanded from macro 'CHECK_ERROR_VOID'
   69 |     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:62:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   62 |     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:396:5: note: Loop condition is false.  Exiting loop
  396 |     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:69:5: note: expanded from macro 'CHECK_ERROR_VOID'
   69 |     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:56:84: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   56 | #define CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, callback, callback_setter) do { \
      |                                                                                    ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:402:5: note: Taking false branch
  402 |     CHECK_ERROR(CTX, secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 0));
      |     ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:54: note: expanded from macro 'CHECK_ERROR'
   79 | #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:402:5: note: Loop condition is false.  Exiting loop
  402 |     CHECK_ERROR(CTX, secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 0));
      |     ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:54: note: expanded from macro 'CHECK_ERROR'
   79 | #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:402:5: note: Taking false branch
  402 |     CHECK_ERROR(CTX, secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 0));
      |     ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:32: note: expanded from macro 'CHECK_ERROR'
   79 | #define CHECK_ERROR(ctx, expr) CHECK_ERROR_VOID(ctx, CHECK((expr) == 0))
      |                                ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:69:5: note: expanded from macro 'CHECK_ERROR_VOID'
   69 |     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:62:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   62 |     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:402:5: note: Loop condition is false.  Exiting loop
  402 |     CHECK_ERROR(CTX, secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 0));
      |     ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:32: note: expanded from macro 'CHECK_ERROR'
   79 | #define CHECK_ERROR(ctx, expr) CHECK_ERROR_VOID(ctx, CHECK((expr) == 0))
      |                                ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:69:5: note: expanded from macro 'CHECK_ERROR_VOID'
   69 |     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:62:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   62 |     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:402:5: note: Loop condition is false.  Exiting loop
  402 |     CHECK_ERROR(CTX, secp256k1_scratch_max_allocation(&CTX->error_callback, scratch, 0));
      |     ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:32: note: expanded from macro 'CHECK_ERROR'
   79 | #define CHECK_ERROR(ctx, expr) CHECK_ERROR_VOID(ctx, CHECK((expr) == 0))
      |                                ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:69:5: note: expanded from macro 'CHECK_ERROR_VOID'
   69 |     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:56:84: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   56 | #define CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, callback, callback_setter) do { \
      |                                                                                    ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:403:5: note: Taking false branch
  403 |     CHECK_ERROR(CTX, secp256k1_scratch_alloc(&CTX->error_callback, scratch, 500));
      |     ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:54: note: expanded from macro 'CHECK_ERROR'
   79 | #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:403:5: note: Loop condition is false.  Exiting loop
  403 |     CHECK_ERROR(CTX, secp256k1_scratch_alloc(&CTX->error_callback, scratch, 500));
      |     ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:54: note: expanded from macro 'CHECK_ERROR'
   79 | #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:403:5: note: Taking false branch
  403 |     CHECK_ERROR(CTX, secp256k1_scratch_alloc(&CTX->error_callback, scratch, 500));
      |     ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:32: note: expanded from macro 'CHECK_ERROR'
   79 | #define CHECK_ERROR(ctx, expr) CHECK_ERROR_VOID(ctx, CHECK((expr) == 0))
      |                                ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:69:5: note: expanded from macro 'CHECK_ERROR_VOID'
   69 |     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:62:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   62 |     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:403:5: note: Loop condition is false.  Exiting loop
  403 |     CHECK_ERROR(CTX, secp256k1_scratch_alloc(&CTX->error_callback, scratch, 500));
      |     ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:32: note: expanded from macro 'CHECK_ERROR'
   79 | #define CHECK_ERROR(ctx, expr) CHECK_ERROR_VOID(ctx, CHECK((expr) == 0))
      |                                ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:69:5: note: expanded from macro 'CHECK_ERROR_VOID'
   69 |     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:62:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   62 |     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:403:5: note: Loop condition is false.  Exiting loop
  403 |     CHECK_ERROR(CTX, secp256k1_scratch_alloc(&CTX->error_callback, scratch, 500));
      |     ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:79:32: note: expanded from macro 'CHECK_ERROR'
   79 | #define CHECK_ERROR(ctx, expr) CHECK_ERROR_VOID(ctx, CHECK((expr) == 0))
      |                                ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:69:5: note: expanded from macro 'CHECK_ERROR_VOID'
   69 |     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:56:84: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   56 | #define CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, callback, callback_setter) do { \
      |                                                                                    ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:404:27: note: Calling 'secp256k1_scratch_space_destroy'
  404 |     CHECK_ERROR_VOID(CTX, secp256k1_scratch_space_destroy(CTX, scratch));
      |                           ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:69:39: note: expanded from macro 'CHECK_ERROR_VOID'
   69 |     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:60:7: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   60 |     { 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:214:13: warning: Use of memory after it is freed [clang-analyzer-unix.Malloc]
  214 |             CHECK_ILLEGAL_VOID(STATIC_CTX, secp256k1_context_destroy(STATIC_CTX));
      |             ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:71:5: note: expanded from macro 'CHECK_ILLEGAL_VOID'
   71 |     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:19: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   61 |     ctx->callback = _saved_callback; \
      |     ~~~~~~~~~~~~~ ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:191:5: note: Assuming the condition is false
  191 |     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:191:5: note: Taking false branch
  191 |     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:191:5: note: Loop condition is false.  Exiting loop
  191 |     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:197:9: note: Taking false branch
  197 |         CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_randomize(STATIC_CTX, seed));
      |         ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:78:58: note: expanded from macro 'CHECK_ILLEGAL'
   78 | #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:197:9: note: Loop condition is false.  Exiting loop
  197 |         CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_randomize(STATIC_CTX, seed));
      |         ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:78:58: note: expanded from macro 'CHECK_ILLEGAL'
   78 | #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:197:9: note: Taking false branch
  197 |         CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_randomize(STATIC_CTX, seed));
      |         ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:78:34: note: expanded from macro 'CHECK_ILLEGAL'
   78 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
      |                                  ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:71:5: note: expanded from macro 'CHECK_ILLEGAL_VOID'
   71 |     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:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   62 |     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:197:9: note: Loop condition is false.  Exiting loop
  197 |         CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_randomize(STATIC_CTX, seed));
      |         ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:78:34: note: expanded from macro 'CHECK_ILLEGAL'
   78 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
      |                                  ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:71:5: note: expanded from macro 'CHECK_ILLEGAL_VOID'
   71 |     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:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   62 |     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:197:9: note: Loop condition is false.  Exiting loop
  197 |         CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_randomize(STATIC_CTX, seed));
      |         ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:78:34: note: expanded from macro 'CHECK_ILLEGAL'
   78 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
      |                                  ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:71:5: note: expanded from macro 'CHECK_ILLEGAL_VOID'
   71 |     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:56:84: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   56 | #define CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, callback, callback_setter) 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, NULL));
      |         ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:78:58: note: expanded from macro 'CHECK_ILLEGAL'
   78 | #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, NULL));
      |         ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:78:58: note: expanded from macro 'CHECK_ILLEGAL'
   78 | #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, NULL));
      |         ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:78:34: note: expanded from macro 'CHECK_ILLEGAL'
   78 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
      |                                  ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:71:5: note: expanded from macro 'CHECK_ILLEGAL_VOID'
   71 |     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:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   62 |     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, NULL));
      |         ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:78:34: note: expanded from macro 'CHECK_ILLEGAL'
   78 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
      |                                  ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:71:5: note: expanded from macro 'CHECK_ILLEGAL_VOID'
   71 |     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:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   62 |     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, NULL));
      |         ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:78:34: note: expanded from macro 'CHECK_ILLEGAL'
   78 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
      |                                  ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:71:5: note: expanded from macro 'CHECK_ILLEGAL_VOID'
   71 |     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:56:84: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   56 | #define CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, callback, callback_setter) do { \
      |                                                                                    ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:201:13: note: Assuming 'use_prealloc' is 0
  201 |         if (use_prealloc) {
      |             ^~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:201:9: note: Taking false branch
  201 |         if (use_prealloc) {
      |         ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:213:13: note: Taking false branch
  213 |             CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_clone(STATIC_CTX));
      |             ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:78:58: note: expanded from macro 'CHECK_ILLEGAL'
   78 | #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:213:13: note: Loop condition is false.  Exiting loop
  213 |             CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_clone(STATIC_CTX));
      |             ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:78:58: note: expanded from macro 'CHECK_ILLEGAL'
   78 | #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:213:13: note: Taking false branch
  213 |             CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_clone(STATIC_CTX));
      |             ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:78:34: note: expanded from macro 'CHECK_ILLEGAL'
   78 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
      |                                  ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:71:5: note: expanded from macro 'CHECK_ILLEGAL_VOID'
   71 |     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:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   62 |     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:213:13: note: Loop condition is false.  Exiting loop
  213 |             CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_clone(STATIC_CTX));
      |             ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:78:34: note: expanded from macro 'CHECK_ILLEGAL'
   78 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
      |                                  ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:71:5: note: expanded from macro 'CHECK_ILLEGAL_VOID'
   71 |     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:5: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   62 |     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:213:13: note: Loop condition is false.  Exiting loop
  213 |             CHECK_ILLEGAL(STATIC_CTX, secp256k1_context_clone(STATIC_CTX));
      |             ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:78:34: note: expanded from macro 'CHECK_ILLEGAL'
   78 | #define CHECK_ILLEGAL(ctx, expr) CHECK_ILLEGAL_VOID(ctx, CHECK((expr) == 0))
      |                                  ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:71:5: note: expanded from macro 'CHECK_ILLEGAL_VOID'
   71 |     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:56:84: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   56 | #define CHECK_COUNTING_CALLBACK_VOID(ctx, expr_or_stmt, callback, callback_setter) do { \
      |                                                                                    ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:214:44: note: Calling 'secp256k1_context_destroy'
  214 |             CHECK_ILLEGAL_VOID(STATIC_CTX, secp256k1_context_destroy(STATIC_CTX));
      |                                            ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:71:39: note: expanded from macro 'CHECK_ILLEGAL_VOID'
   71 |     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:60:7: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   60 |     { 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:214:44: note: Returning; memory was released via 1st parameter
  214 |             CHECK_ILLEGAL_VOID(STATIC_CTX, secp256k1_context_destroy(STATIC_CTX));
      |                                            ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:71:39: note: expanded from macro 'CHECK_ILLEGAL_VOID'
   71 |     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:60:7: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   60 |     { expr_or_stmt; } \
      |       ^~~~~~~~~~~~
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:214:13: note: Use of memory after it is freed
  214 |             CHECK_ILLEGAL_VOID(STATIC_CTX, secp256k1_context_destroy(STATIC_CTX));
      |             ^
/home/runner/work/nightly-builds/nightly-builds/src/tests.c:71:5: note: expanded from macro 'CHECK_ILLEGAL_VOID'
   71 |     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:19: note: expanded from macro 'CHECK_COUNTING_CALLBACK_VOID'
   61 |     ctx->callback = _saved_callback; \
      |     ~~~~~~~~~~~~~ ^
Status: 0
Loading...